Solving kenken puzzles by not playing
This presentation is the property of its rightful owner.
Sponsored Links
1 / 40

Solving Kenken Puzzles – By Not Playing PowerPoint PPT Presentation


  • 80 Views
  • Uploaded on
  • Presentation posted in: General

Solving Kenken Puzzles – By Not Playing. John R. Gerlach PhilaSUG Meeting @ RPS June 8, 2010. Kenken Puzzles. Latin Square Integers (Row / Column Unique) Partitioned into Cages. Cages Contiguous Cells Arithmetic Operator Computed Total. Kenken Puzzle – Example.

Download Presentation

Solving Kenken Puzzles – By Not Playing

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Solving kenken puzzles by not playing

Solving Kenken Puzzles –By Not Playing

John R. Gerlach

PhilaSUG Meeting @ RPS

June 8, 2010


Kenken puzzles

Kenken Puzzles

  • Latin Square

    • Integers (Row / Column Unique)

    • Partitioned into Cages.

  • Cages

    • Contiguous Cells

    • Arithmetic Operator

    • Computed Total


Kenken puzzle example

Kenken Puzzle – Example


Kenken puzzle example1

Kenken Puzzle – Example


Assumptions

Assumptions

  • # Cells Per Cage L.E. Dimension

    • 4x4 Puzzle --> # Cells: 1-4

    • 6x6 Puzzle --> # Cells: 1-6

  • Puzzle is Well-Constructed

    • Unique Solution


Define viable sets

Define Viable Sets

  • An ordered collection of Natural numbers ranging from 1 to N whose values may be used more than once, however, cannot be consecutive.

  • Valid{1,2,3} {3,2,3}

  • Invalid{1,1,2} {1,2,3,3} {1,null,2}


Define viable sets1

Define Viable Sets

  • Addition & Multiplication

    • Sets {n1,n2}; {n1,n2,n3}; {n1,n2,n3,n4}

  • Subtraction

    • Sets {2,6} and {6,2} = 4, not -4

  • Division

    • Sets {2,6} and {6,2} = 3, not 0.33

    • Sets {1,2} and {2,1} = 2, not 0.50


Define viable sets2

Define Viable Sets

  • Determined by Cage

    • Contiguous Cells

    • Arithmetic Operation

    • Total


Arithmetic operations

Arithmetic Operations

  • AdditionAll Numbers

  • MultiplicationAll Numbers

  • SubtractionTwo Numbers

  • DivisionTwo Numbers


Singular sets

Singular Sets

  • Cage represents one cell having a number assigned at the onset of the puzzle.

    {1}, {2}, {3}, {4}, …, {n}


Generate viable sets

Generate Viable Sets

data p4sets;

do n1=1,2,3,4;

do n2=1,2,3,4;

do n3=.,1,2,3,4;

do n4=.,1,2,3,4;

< Determine Viability of Set >

end;

end;

end;

end;

run;


Generate viable sets1

Generate Viable Sets

  • 4x4 Puzzle156

  • 5x5 Puzzle1,700

  • 6x6 Puzzle23,430

  • 8x8 Puzzle7,686,392

  • 9x9 Puzzle172,565,640


Generate viable sets2

Generate Viable Sets

Σd (d-1)n-1

Where

d - Dimension of puzzle

n - Number of Cells

Σ - Summation, n = 2 to d.


Generate viable sets3

Generate Viable Sets

6x6 Puzzle

[ 6(6-1)2-1 ] + [ 6(6-1)3-1 ] + [ 6(6-1)4-1 ]

+ [ 6(6-1)5-1 ] + [ 6(6-1)6-1 ] =

30 + 150 + 750 + 3,750 + 18,750 =

23,430 Viable Sets


Generate viable sets4

Generate Viable Sets

---- Numbers ----- ------- Operators --------

Set 1 2 3 4 + - x /

---------------------------------------------------

1 1 2 . . 3 1 2 2

2 1 2 1 . 4 . 2 .

3 1 2 1 2 6 . 4 .

4 1 2 1 3 7 . 6 .

:::

9 1 2 3 4 10 . 24 .

10 1 2 4 . 7 . 8 .

11 1 2 4 1 8 . 8 .

12 1 2 4 2 9 . 16 .

13 1 2 4 3 10 . 24 .

14 1 3 . . 4 2 3 3


Generate viable sets5

Generate Viable Sets

======== Numbers =========

1 2 3 4 ADD SUBT MULT DIV

-----------------------------------------------------------

^Miss ^Miss Miss Miss 12 12 12 8

^Miss ^Miss ^Miss Miss 36 . 36 .

^Miss ^Miss ^Miss ^Miss 108 . 108 .

===== ===== ===== =====

156 12 156 8


Determine viability

Determine Viability

  • First two numbers are equal.

    • {1,1,null,null}

  • 2nd and 3rd numbers are equal and not null.

    • {1,2,2,null}

  • 3rd and 4th numbers are equal and not null.

    • {1,3,1,1}

  • 3rd is null and 4th is not null.

    • {1,3,null,2}


Compute totals addition multiplication

Compute TotalsAddition & Multiplication

  • add = sum(of n1-n4);

  • if n2 eq .

    then mult = n1;

    else if n3 eq .

    then mult = n1 * n2;

    else if n4 eq .

    then mult = n1 * n2 * n3;

    else mult = n1 * n2 * n3 * n4;


Compute totals subtraction division

Compute TotalsSubtraction & Division

if n3 eq . and n4 eq .

then do;

if n1 gt n2

then subt = n1 – n2;

else subt = n2 – n1;

if n1 gt 2 and int(n1/n2) eq n1/n2

then div = n1 / n2;

else if n2 gt n1 and int(n2/n1) eq n2/n1

then div = n2 / n1;

end;

else do;

subt = .;

div = .;

end;


Define a puzzle

Define a Puzzle

  • What does the data file look like?

  • How do you render the puzzle?


Define 4x4 puzzles

Define 4x4 Puzzles

1 C1 3 + 1,1 1,2

1 C2 7 + 1,3 1,4

1 C3 5 + 2,1 2,2

1 C4 5 + 2,3 2,4

1 C5 7 + 3,1 3,2

1 C6 3 + 3,3 3,4

1 C7 5 + 4,1 4,2

1 C8 5 + 4,3 4,4

2 C1 10 + 1,1 1,2 1,3 2,3

2 C2 10 + 1,4 2,4 3,4 4,4

2 C3 9 + 2,1 3,1 4,1

2 C4 8 + 2,2 3,2 4,2

2 C5 3 + 3,3 4,3


Define 6x6 puzzle

Define 6x6 Puzzle

1 C1 3 . 1,1

1 C2 6 + 1,2 2,2

1 C3 11 + 1,3 2,3

1 C4 11 + 1,4 1,5 2,5

1 C5 3 . 2,4

1 C6 6 + 1,6 2,6

1 C7 6 + 2,1 3,1

1 C8 3 . 3,2

1 C9 6 + 3,3 4,3 5,3

1 C10 1 - 3,4 4,4

1 C11 12 + 3,5 3,6 4,6

1 C12 3 . 4,5

1 C13 6 . 4,1

1 C14 6 + 4,2 5,2

1 C15 13 + 5,4 5,5 6,5

1 C16 4 + 5,6 6,6

1 C17 4 - 5,1 6,1

1 C18 10 + 6,2 6,3

1 C19 2 . 6,4


Render 6x6 puzzle

Render 6x6 Puzzle

------------------------------- Column ---------------------------

Row 1 2 3 4 5 6

--------------------------------------------------------------------------

1 C1[ 3 ] C2[ 6 +] C3[ 11 +] C4[ 11 +] C4[ 11 +] C6[ 6 +]

2 C7[ 6 +] C2[ 6 +] C3[ 11 +] C5[ 3 ] C4[ 11 +] C6[ 6 +]

3 C7[ 6 +] C8[ 3 ] C9[ 6 +] C10[ 1 -] C11[ 12 +] C11[ 12 +]

4 C13[ 6 ] C14[ 6 +] C9[ 6 +] C10[ 1 -] C12[ 3 ] C11[ 12 +]

5 C17[ 4 -] C14[ 6 +] C9[ 6 +] C15[ 13 +] C15[ 13 +] C16[ 4 +]

6 C17[ 4 -] C18[ 10 +] C18[ 10 +] C19[ 2 ] C15[ 13 +] C16[ 4 +]


Solve puzzle

Solve Puzzle

  • Using Conventional Method

  • By Not Playing (i.e. Cheating)


Solve puzzle by conventional method

Solve Puzzle By Conventional Method

Too Much Trouble !!

Rather Play Piano, Watch Italian TV,

or Drink Heineken.


Solve puzzle by not playing

Solve Puzzle By Not Playing

  • Obtain Viable Sets for Each Cage

  • Perform Cartesian Product

  • Check Possible Solutions

  • Print Solution


Obtain viable sets

Obtain Viable Sets

Cage 1: 3 Cells, 6+ Cage 2: 2 Cells, 2-

1 2 3 .1 3

1 3 2 .2 4

1 4 1 .3 1

2 1 3 .4 2

2 3 1 .

3 1 2 .

3 2 1 .


Obtain viable sets1

Obtain Viable Sets

Cage 3: 4 Cells, 4* Cage 4: 2 Cells, 3/

1 2 1 21 3

2 1 2 13 1


Perform cartesian product

Perform Cartesian Product

  • Combine every set representing Cage 1, with every set representing Cage 2,

    with every set representing Cage 3,

    :::

    with every set representing Cage n-1,

    with every set representing Cage n.


Check possible solution

Check Possible Solution

  • Put collection of Viable Sets in grid and check for Row / Column uniqueness.

  • Involved SAS Code.

    • Macro Variables, CAGES, VSETS

    • 2-Dimensional Matrices (Cage, Cell)

      • CAGES

      • VSETS

      • Puzzle


Print solution

Print Solution

data rep; array puzzle{4,4} r1c1-r1c4 r2c1-r2c4

r3c1-r3c4 r4c1-r4c4; array cols{4} col1-col4;

set kenken end=eof;

do row = 1 to 4;

do col = 1 to 4;

cols{col} = puzzle{row,col};

end;

output;

end;

keep row col1-col4;

run;


Print solution1

Print Solution

proc report data=rep nowindows headskip split='!';

columns row col1-col4;

define row / order noprint;

define col1 / display format=5. center '00'x;

define col2 / display format=5. center '00'x;

define col3 / display format=5. center '00'x;

define col4 / display format=5. center '00'x;

break after row / skip;

title1 'KenKen 4x4 Puzzle -- Solution';

run;


Sas solution

SAS Solution

  • Works in Theory.

  • Even Works for 4x4 Puzzles.

  • Fails in Practice!

  • Reason --> Cartesian Product.


Why solution fails

Why Solution “Fails”


Why solution fails1

18 Cages

4 Singular Cages

10 Two-cell Cages

4 Three-cell Cages

All Arithmetic Ops

24,883,200 Aggregate Sets

C1_VSETS 1

C2_VSETS 1

C3_VSETS 2

C4_VSETS 6

C5_VSETS 2

C6_VSETS 10

C7_VSETS 1

C8_VSETS 1

C9_VSETS 6

C10_VSETS 2

C11_VSETS 2

C12_VSETS 6

C13_VSETS 1

C14_VSETS 6

C15_VSETS 2

C16_VSETS 15

C17_VSETS 1

C18_VSETS 4

Why Solution “Fails”


Why solution fails2

17 Cages

3 Singular Cages

10 Two-cell Cages

3 Three-cell Cages

1 Four-cell Cage

All Arithmetic Ops

1,184,440,320,000

Aggregate Sets

C1_VSETS 4

C2_VSETS 10

C3_VSETS 6

C4_VSETS 4

C5_VSETS 2

C6_VSETS 1

C7_VSETS 15

C8_VSETS 6

C9_VSETS 1

C10_VSETS 10

C11_VSETS 10

C12_VSETS 6

C13_VSETS 7

C14_VSETS 102

C15_VSETS 1

C16_VSETS 4

C17_VSETS 2

Why Solution “Fails”


Supercomputers at nasa

Supercomputers at NASA


Lessons learned

Lessons Learned

  • Viable Sets.

  • Cardinality of Viable Sets.

  • Computing Totals.

  • Limitation of Cartesian Product.

  • Alternative Solution.

  • Revised Perception of the Problem.


Thanks

Thanks

  • Christine Clarke, PhD

    Executive Director,

    Biostatistics & Programming

    ReSearch Pharmaceutical Services, Inc.


Questions

Questions

  • John R. Gerlach

    SAS / CDISC Specialist

    [email protected]


  • Login