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

Solving Kenken Puzzles – By Not Playing PowerPoint PPT Presentation


  • 86 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

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


Kenken Puzzle – Example


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

  • 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 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 Sets

  • Determined by Cage

    • Contiguous Cells

    • Arithmetic Operation

    • Total


Arithmetic Operations

  • AdditionAll Numbers

  • MultiplicationAll Numbers

  • SubtractionTwo Numbers

  • DivisionTwo Numbers


Singular Sets

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

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


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 Sets

  • 4x4 Puzzle156

  • 5x5 Puzzle1,700

  • 6x6 Puzzle23,430

  • 8x8 Puzzle7,686,392

  • 9x9 Puzzle172,565,640


Generate Viable Sets

Σd (d-1)n-1

Where

d - Dimension of puzzle

n - Number of Cells

Σ - Summation, n = 2 to d.


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 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 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

  • 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 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 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

  • What does the data file look like?

  • How do you render the puzzle?


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

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

------------------------------- 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

  • Using Conventional Method

  • By Not Playing (i.e. Cheating)


Solve Puzzle By Conventional Method

Too Much Trouble !!

Rather Play Piano, Watch Italian TV,

or Drink Heineken.


Solve Puzzle By Not Playing

  • Obtain Viable Sets for Each Cage

  • Perform Cartesian Product

  • Check Possible Solutions

  • Print Solution


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 Sets

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

1 2 1 21 3

2 1 2 13 1


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

  • 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

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 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

  • Works in Theory.

  • Even Works for 4x4 Puzzles.

  • Fails in Practice!

  • Reason --> Cartesian Product.


Why Solution “Fails”


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”


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


Lessons Learned

  • Viable Sets.

  • Cardinality of Viable Sets.

  • Computing Totals.

  • Limitation of Cartesian Product.

  • Alternative Solution.

  • Revised Perception of the Problem.


Thanks

  • Christine Clarke, PhD

    Executive Director,

    Biostatistics & Programming

    ReSearch Pharmaceutical Services, Inc.


Questions

  • John R. Gerlach

    SAS / CDISC Specialist

    [email protected]


  • Login