33
Magic square An example of how to represent a problem An idea from Chris Beck

Magic square An example of how to represent a problem An idea from Chris Beck

Embed Size (px)

Citation preview

Magic square

An example of how to represent a problem

An idea from Chris Beck

• put a number in each square• each number is different• a number is in the range 1 to 16• the sum of a column is

• the same as a sum of a row • the same as the sum of a main diagonal

Back to CP

• put a number in each square• each number is different• a number is in the range 1 to 16• the sum of a column is

• the same as a sum of a row • the same as the sum of a main diagonal

1st stab

lkji

ll

jj

ii

i

mm

diagdiag

colcol

rowrow

D

,,

1

1

1

]16..1[

Use sum(x) = sum(y)where x and y are - different rows - different columns - different diagonalsEvery element of the array is different - represent as a clique of not equals

How does it go?For propagation and search?

• put a number in each square• each number is different• a number is in the range 1 to 16• the sum of a column is

• the same as a sum of a row • the same as the sum of a main diagonal

2nd stab

kdiag

kcol

krow

D

l

j

i

i

]16..1[

Use allDiff

But what is k?

How does model perform?

Magic

Magic

Could edit this

Magic

What is k?

Magic

Just a counter

Magic

S is actual square

v is S flattened

Magic

Create S, its transpose TSand S flattened into v

Magic

That’s why we flattened S

Magic

Transpose is neat (thanks Neil Moore)

Is this solution unique?

Magic square on the web

http://mathforum.org/alejandre/magic.square.html

http://mathworld.wolfram.com/MagicSquare.html

Is there an order 3 magic square with thenumber 5 in one of the outer corners?

Thanks to Chris Beck