A method for cutting squares into distinct squares - Alain Colmerauer

Jun 28, 2008 - 6. 50. 15. 11. 19. 35. 8. 27. Fig. 1. The perfect square of order 21 (112 ..... 141. 96. 63. 1032 × 1032, 43 Squares. 260. 351. 580. 91. 169. 78. 229.
209KB taille 1 téléchargements 246 vues
A method for cutting squares into distinct squares Ian Gambini Laboratoire d’Informatique de Marseille - Universit´e de la M´editerran´ee - Facult´e des Sciences de Luminy - 163, avenue de Luminy, Case 901 - 13288 Marseille Cedex 9 - FRANCE

Abstract We are interested in dissecting squares into distinct squares. We impose the condition that the squares have integer sizes. This restriction does not reduce the number of solutions since it is always possible to scale a non-integer solution to obtain an integer one. This leads, when the square size n is fixed, to a finite enumeration. We propose an algorithm which enumerates a subset of solutions when n is fixed. In spite of the incompleteness of this algorithm, we find many solutions and, in particular, for each integer p between 21 and 63, we have a solution using p squares. A second algorithm, this time complete, but computationally prohibitive, allows us to find an unexpected result: the smallest decomposition using integer squares has a size of 110. This paper is devoted to the description of the algorithms and to the presentation of an interesting subset of solutions. Key words: squaring squares; perfect squares; squaring

1

Introduction

A dissection is called perfect when all the squares have distinct sizes and the order is the number of elements (squares) used in the dissection. Historically, the first perfect dissection was described by R. Sprague in 1939 [?]. Since then, many solutions have been found, the problem being to find the one with the smallest order. C.J. Bouwkamp, A.J.W. Duijvestijn and P. Medema [?] demonstrate that there is no possible dissection if the order is less than 21. In 1948, a perfect square of order 24 was found by T.H. Willcocks [?] (figure ??), followed in 1964 by J.S. Wilson [?] with a perfect square of order 25. In 1967, five perfect squares of order 25 were published by J.S. Wilson in his thesis [?].

Preprint submitted to Elsevier Preprint

28 June 2008

Then, three other perfect squares of order 25 were obtained by P.J. Federico in 1978 [?]. Finally, A.J.W. Duijvestijn [?] found a solution of order 21 (figure ??) the March 22, 1978 with the aid of a DEC-10 computer. This solution is the single one of minimal order (except for symmetries).

27

35 50 8 15

17 2

11 6

9 7

24

18

25

29

19

16

4

33

37

42

Fig. 1. The perfect square of order 21 (112 × 112)

The same kind of result has been proved for perfect compound squares [?], in which a strict subset of elements is arranged in the form of a rectangle. Figure ?? shows the only perfect compound solution of minimal order (order 24), except for symmetries. The method we describe is an heuristic algorithm which proceeds by enumeration of integer values. Those values are the sizes of the squares in the dissection, so that we only obtain solutions with integer square sizes. This is not really problematic because it is possible to show that we can always scale a solution to obtain integer sizes as follows: C. Berge [?] shows that each solution of this problem can be expressed as the only solution in the reals of a system of linear equations with integer coefficients, so that the solutions are all rationals. Therefore, by multiplying those sizes by a coefficient, we obtain integer solutions.

2

Our enumerative algorithm

The main idea of the method is motivated by another question: how can we find the perfect solution of order 21? Reconsider the figure ?? and suppose that we know the bottom of the solution. 2

39 55 81

16 495 14 3

1

20

18 56 38

30 51 29

31

8

2

64

43

35

33

Fig. 2. Perfect compound square of order 24 (175 × 175)

33

37

42

Fig. 3. Initial Configuration.

Starting with this configuration (figure ??), it is possible to find the square of size 4 extending the top of the square of size 37 and 33, and then the one of size 29 by extending the left side of the square of size 4 and 33. This way, we finally find the solution of the 21 squares. The question is then to define the rules which allow us to know the size of each new square. The idea consists of constructing the big square from the bottom to the top, piling up squares. From an algorithmic point of view, we only need to know the top line of the construction; this means that at each stage we only need to keep in memory a list of horizontal lines which we call plates. Let hi and li be the height and the width of the plate i, taking the lower left corner as origin. In such a case, we can define two simple rules for building squares: • The horizontal extension (figure ??), which consists in adding a square of size hi+1 − hi if hi+1 > hi and of size hi − hi+1 if hi > hi+1 . 3

hi+1 , li+1

hi , li Fig. 4. Horizontal extension

• The vertical extension (figure ??), which consists in placing a new square on the full length of the plate. This way, we add a square of size li .

hi+1 , li+1

hi−1 , li−1 hi , li

Fig. 5. Vertical extension

This way, applying these two rules to the initial configuration of the figure ??, we rapidly obtain the solution of order 21. The advantage of this method lies in its simplicity. The number of choices at each stage is small, and starting with an initial configuration the solution is completed rapidly. The main disadvantage is the initialization with its prohibitive enumeration. Effectively, we have to fix the number of squares at the bottom and we also have to fix their sizes, which is very expensive in terms of enumeration. This method is also limited because we can find many solutions but not all of them. For example, we cannot find the solution of order 24 (figure ??).

3

Details of the algorithm

The implementation of this method is, however, delicate because we have to take care not to process the same configuration more than once. A stage of the construction is made of two pieces of information: (1) The knowledge of the square sizes already used, to avoid using the same size again, since we are looking for perfect dissections. (2) The knowledge of the top of the construction is sufficient for using our construction rules. A possible codification could be to store a list of a couple (height, width) corresponding to each plate. We have to deal with fixing an order for the placement of the squares because doing the search by placing first a square a and then a square b gives the same results as placing the square b and then the square a. To avoid finding 4

the same solutions by processing the same configuration more than once, we have to choose a method for placing the squares which avoids constructing the same configuration more than once. This rule was not easy to find because we have to take care not to forget some complicated particular cases. What are the main stages of the algorithm? First, we have to enumerate the sizes for the square to be dissected. Next, to obtain an initial configuration, we have to enumerate the squares sizes at the bottom. The number of squares being enumerated at the bottom is a parameter of our algorithm. There are some modifications to improve this method. First, to avoid vertical symmetry, we impose the condition that the bottom left square be smaller than the bottom right one. This way we obtain an initial configuration like the one in figure ??. We can also notice in this figure the adjunction of two plates corresponding to the top of the square to be dissected. Taking this configuration rather than the first one allows to find more solutions by extending those plates. h0 , l0

h1 , l1

33

h4 , l4

h2 , l2

37

h3 , l3

42

Fig. 6. Initial configuration of the algorithm.

With regard to the method for placing new squares, we proceed from left to right. Each time we place a new square on a plate i, we have to look to the modifications of this placement on adjoining plates; the next square will be placed first on the modified plate at the extreme left. This way, we avoid constructing the same configuration, so that time is saved and each solution is obtained only once. An important property of this algorithm is that it cannot increase the number of plates during construction. This is true because our two construction rules (the horizontal extension and the vertical extension) do not create new plates, 5

they just modify the height (vertical extension) or the width (horizontal extension) of existing ones. This number of plates can only decrease and result in one plate when a solution of perfect square is found. However, this algorithm can also find decompositions of perfect rectangles. To find them, we have just to look at the plates. When all the initial plates have the same height, making a single plate, we know that we have found a dissection of a perfect rectangle. As a matter of fact, the two rules for the construction allow us to create new squares whose sizes are either sums or differences of sizes already used. So, if the squares used at the initialization stage have a greatest common divisor different from 1, each new square created by our rules will be also divisible by it. This will lead to a solution already found but with sizes multiplied by a constant. To avoid this, if the sizes of the initial squares have a greatest common divisor different from 1 we will not continue further. This test does not allow us to eliminate enough configurations and does not save much time, but this technique allows us to find only minimal integer solutions. Another remark can be made about this initial configuration. There are configurations which cannot give any solution. For example, the one in figure ?? cannot lead to a solution because our algorithm will never succeed in filling the space on the top of the square of size 15.

42

33 15

Fig. 7. Example of initial configuration without solution.

To generalize, for each plate i, if we take (hi−1 , li−1 ), (hi , li ), (hi+1 , li+1 ) as three consecutive plates resulted from initialization, then the configuration will have no solution if we have li < hi−1 − hi and li < hi+1 − hi . This remark allows for an acceleration of our algorithm.

4

Pseudo-code

We give a pseudo-code of the algorithm described before. There are two main parts. The first one (procedure solve) is very simple and its aim is to generate 6

all the possible initial configurations described in figure ?? and for each configuration, we launch the resolution. This step requires two parameters which are the size of the square to be dissected (square size) and the number of squares used at the bottom to create the initial configuration (nb base squares). Procedure solve(nb base squares, square size) h0 = hnb base squares+1 = square size l0 = lnb base squares+1 = 1 hinitialize enumerationi for each henumerationi do call horizontal extension(p0 , p1 )

This first step generates the starting top line of the construction stored in two vectors called hi and li representing the height and the width of the plate pi (i ∈ {0 . . . nb base squares + 1}). Now, following the previous explanation of the algorithm and paying attention to some particular cases, we can construct the following procedures (horizontal extension and vertical extension) : Procedure horizontal extension(pi , pi+1 ) if hi+1 > hi then if hi+1 − hi < li ∧ size not used(hi+1 − hi ) then hplace the square of size hi+1 − hi i if hi−1 − hi = li then if ¬last plate(pi+1 ) then CALL vertical extension(pi+1 ) else CALL vertical extension(pi ) hremove the squarei else if hi − hi+1 < li+1 ∧ size not used(hi − hi+1 ) then hplace the square of size hi − hi+1 i if ¬f irst plate(pi ) then if hi−1 ≥ li + hi+1 then CALL horizontal extension(pi−1 , pi ) else CALL vertical extension(pi ) else CALL vertical extension(pi+1 ) hremove the squarei if ¬last plate(pi+1 ) then CALL vertical extension(pi+1 )

These two procedures are the core of the algorithm and all the processing time is spent here. They correspond to the two main rules described before: the horizontal extension and the vertical extension. In this pseudo-code, we have used an array to represent the plates configuration but in a real implementation, it will be more efficient to use a linked list stored in an array. 7

Procedure vertical extension(pi ) if size not used(li ) ∧ hi + li ≤ square size then hsave configurationi h0 = hi−1 l0 = li−1 hplace the square of size li i if hi = hi+1 then hmerge plate pi+1 to pi i if hi−1 = hi then hmerge plate pi−1 to pi i htest if solution foundi if f irst plate(pi ) then if ¬last plate(pi ) then CALL horizontal extension(pi , pi+1 ) else if hi − li − hi−1 = li−1 then CALL vertical extension(pi−1 ) else if h0 = hi ∧ hi−1 − hi ≤ l0 then if ¬last plate(pi ) then CALL vertical extension(pi ) else CALL horizontal extension(pi−1 , pi ) hrestore configurationi if hi−1 − hi ≤ li ∨ hi+1 − hi ≤ li then CALL horizontal extension(pi , pi+1 ) 5

General results

An important parameter of our algorithm is the number of squares at the bottom of the construction. This number is also the number of plates at the beginning. Our choice was first to use three plates to find the solution of order 21. We can also start the algorithm with a different number of plates, but using three plates we rapidly obtained many solutions. The results obtained using three plates and enumerating the size of the square to be dissected from 6 to 1200 are as follows: • 2,718 perfect squared squares (not taking symmetries into account); • 5,961 perfect squared rectangles (not taking symmetries into account); • the only compound perfect square found is the one of size 196 of order 52 (cf. set of solutions); • the first perfect square found is the solution of order 21 of the figure ?? after 2.5 seconds; • 115,070,342 initial configuration processed out of 138,143,297 enumerated, on which 544,802,604,910 squares have been placed; • the calculation took 143 hours of processing time using a Pentium Pro 200 under Linux. Fig. 8. Order distribution of squares found (using 3 plates).

Figure ?? shows us the distribution of the orders in the solutions found. We 8

can observe a curve looking like a “bell” which extends to a higher order when we continue searching. This allows us to think that the bigger the size of the square to dissect, the better the chances of finding higher order solutions. A strange result was that our algorithm did not find any solution of order 22. This is true only if we start using 3 plates; but using 4 or 5 plates we find fewer solutions but we find two squares of order 22 (figure ??).

24 60

50

26 50

60

22 28 14 8 6 13 7 17 23 16 4 21 12 3 27 15 18

24 26

22

14

23

27 4

8 6 3 12 9 16 19 28 21 17 18

Fig. 9. Two perfect squares 110 × 110 of order 22

Having found squares of order 22, we have therefore found solutions from order 21 to 63. If we take the square of order 21 and if we dissect this smallest square into 21 distinct squares, we obtain a new dissection of order 41 but this time the solution is compound. So, using dissections from order 21 to 40, we can construct a new solution of any order greater or equal to 21. If we examine the existence of minimal integer solutions, the squares of figure ?? are interesting: they are the smallest ones (110 × 110) found by our algorithm. The question is then to know if 110 is the smallest size for integer solutions, and if the two squares found are the only ones. To test that, we have first shown the following property, by an enumeration of all possible cases, which allows us to have a reasonable processing time: Property 1 Squares of sizes 1, 2, 3 or 4 cannot appear on the sides of a dissection using integer sizes. The proof of this property is pretty simple to do manually but it takes a little bit long to explain it here. The idea of the method is the following: if the square of size 1 is placed at the bottom of a construction, since the square at the left side and the square at the right side are bigger, the only way to continue the construction is to place a square at the top of the square of size 1. The only way to do it is to place a new square of size 1 which is forbidden because all squares must have different sizes. So you cannot have a square of size 1 on the sides of an integer dissection. Similarly using squares of sizes 2, 3 and 4 one can complete the proof of property ??. 9

6

The second algorithm

To find the smallest square which can be dissected using squares of integer sizes, we have modified our first algorithm to make a new one. This new algorithm is simpler but the space search is prohibitive. Instead of using our two preceding rules, we now have a unique rule to apply at each stage of the algorithm: we consider all the possible configurations on the top of the smallest delimited plate. hi+1 , li+1

hi−1 , li−1 hi , li

Fig. 10. Delimited plate

We take the smallest plate to reduce the search space and we take only delimited plates to enumerate all possible configurations leading to a possible solution. If the plate is not delimited, we don’t know the definitive width of this plate because a horizontal extension is possible. This way, we are sure to find all possible solutions because at each stage we enumerate all the possible following configurations leading to a solution. The initialization of this algorithm is simpler than the previous one. Here, we start with a single plate at the bottom having the width of the square we want do dissect. In fact, instead of dissecting a plate, the basic rule can be simpler. At each stage, we place a new square at the left of the smallest plate delimited. This method is quite the same than before but is simpler to implement.

6.1

Pseudo-code

As said before, the starting procedure (solve2) is really simple. For technical reasons, we have to place two virtual plates to delimit the construction, otherwise the first plate will not be delimited as required for its decomposition. This way we are sure to always find a smallest delimited plate. The next step is to find the smallest plate delimited and start its decomposition (procedure next plate). If the plate width is equal to the square size then we know that we have found a solution. Finally, the most complex procedure is the decomposition of a plate (procedure decompose). In fact, the following procedure does not really decompose a plate. 10

Procedure solve2(square size) h0 = h2 = square size + 1 h1 = 0 l0 = l2 = 1 l1 = square size CALL decompose(p1 ) Procedure next plate() lmin = square size + 1 i=1 while ¬last plate(pi ) do if hi−1 > hi ∧ hi < hi+1 ∧ li < lmin then pmin = pi lmin = li i=i+1 if lmin = square size then if hmin = square size then hsquare foundi else hrectangle foundi CALL decompose(pmin ) else CALL decompose(pmin ) Its aim is just to place the first square of the plate decomposition. There are different cases: first we use the whole plate width, then we try to extend the previous plate (i.e. horizontal extension) and finally we enumerate all possible square sizes. In the first case, we have finish decomposing the plate so we have to find a new plate to decompose. In the last two cases, the plate decomposition is not finished so we continue the algorithm decomposing the remaining plate width. The procedure decompose can be optimized because the second test is useful only for the first square of the plate decomposition.

6.2

Results

We know that we can find all the dissections having a given size. The only problem is the extreme complexity of this new algorithm. We have tested this program to find all squares (and rectangles) of size less or equal to 112 × 112. 11

Procedure decompose(pi ) if size not used(li ) ∧ hi + li ≤ square size then hsave configurationi hplace the square of size li i if hi = hi+1 then hmerge plate pi+1 to pi i if hi = hi−1 then hmerge plate pi to pi−1 i CALL next plate() hrestore configurationi if size not used(hi−1 − hi ) ∧ hi−1 − hi < li then hplace the square of size hi−1 − hi i CALL decompose(pi ) hremove the squarei for size = 2 to M IN (li − 1, square size − hi ) do if size not used(size) ∧ size 6= hi−1 − hi then hplace the square of size size on pi i CALL decompose(pi+1 ) hremove the squarei

Here are the results: • 4 perfect squared squares (not taking symmetries into account), 3 of size 110 × 110 and 1 of size 112 × 112; • 118 perfect squared rectangles (not taking symmetries into account); • 1,633,183,723,812 squares have been placed; • the calculation took 360 hours of processing time using a Pentium Pro 200 under Linux. This new algorithm gave us not only the two solutions of figure ?? but also a new square of size 110 using 23 squares (figure ??). This square gives us the third and last square of size 110 (not found by our first algorithm). We have thus shown three properties: Property 2 The smallest perfect square using integer sizes has a size of 110. Property 3 The set of perfect squares of size 110 using integer sizes include only two solutions of order 22 (figure ??) and one of order 23 (figure ??). Property 4 The square of order 21 (figure ??) is the only one of size 112 × 112. 12

29

37

44 8 21

13 32

15

19

16 4 23

5 10 14 7 41

31

28 12

38

Fig. 11. Perfect square of size 110, using 23 squares

7

Interesting subset of solutions

For every order from 21 to 63, we give the first solution found by the algorithm, which corresponds to squares with minimal sizes. Among them, three are interesting: • the square 112 × 112 of order 21 is the one with the minimal order; • the one 110 × 110 of order 22 is the first one of minimal size found; • the one of size 976 of order 52, because at the present time, the algorithm has not found other compound perfect squares.

13

33

37

42

4 16 24 18 7 9 25 29 6 17 15 19 11 8 50 27 35

112 × 112, 21 Squares 80

142

56

104

24 32 43

83 65 71 101

44 29

119

53 63

106

326 × 326, 24 Squares 122

135

285

5347 126 90 74 98 94

235

164

210 251

102

291

229

752 × 752, 27 Squares 309 322

17 21 18

8159 96 124 88 120 152 64 144 84

276

49

23 50

27

15

110 × 110, 22 Squares 64 57

163 116 83 80 127 86 89 115 175

107

43 50

217 34

183

149

507 × 507, 25 Squares 189

251 235

62 127 78 91 114 66 99 72

529

66

57

63

60

257 × 257, 23 Squares 31 60 32 63 82 95 219 66 50 61 40 33 76 36 37 70 177 112 107

396 × 396, 26 Squares

130

68 55 52 48 71

124 84

162

164

440 186

969 × 969, 28 Squares 97 85 186 73

296

109

105

177

244

86

145

786 × 786, 29 Squares 68 52 88

135

123

147

84 82 53 60 124 77 5144 139 69 95

53 158

455

63 104

155

86

325

306

945 × 945, 30 Squares

301

499 × 499, 33 Squares

312 263 247

220

55

239

330

870 × 870, 31 Squares

43

96 41 51 133 178 82 57 32 39 64 150 76 37 66 170 113 216 151 132

212

81

136

62

314

331

163

167

135 164

363

134

98 66

253 276

206

123

22 33 209 32 24 17 29 28

208

60 110

344

279

60

8 14 6 13 7 4 16 12

55

79

28 22

230

62

232

26 24

241

191

678 × 678, 32 Squares 72

185 77108 124 70100 10474

611

205 165

192 172

286 325

497

1108 × 1108, 34 Squares

14

246

183

132 144

39 45 44 49 35 79

87 56 89 156 78 57 36 66 51

253

117

553 × 553, 35 Squares

147 11073 81 196 115 153 11484

290

173 178

486

188 163 135 228

258

238

248

641

116 94 166 72 138 88 150 141 85 122 77 188 111 168

330

152 101 117 72 62 138 95 144 82

290

409 316

118126

481

244

370

345

123101143 102 198 93 87 157 221 10976 242 166 159 238 79

396

48 91

128 122

166

333

60 68 77 45 52 65 109

408

317

211

104 70

281

247

221

749 × 749, 38 Squares

120117130

316

93 61 90

195 169

829 × 829, 37 Squares

142 134

362

459

233 226

1127 × 1127, 36 Squares 395

61 132 90 87 5153 97 99 174 93 103

206

95 132

181 113 78109107 140 83 91 99

346

224

92

465

363

241

311 276

535

1087 × 1087, 39 Squares 1121 × 1121, 40 Squares 1122 × 1122, 41 Squares 188

144 159

10061 98 176 120 72 73 111 71

233 143 90 196

445

63 148 114 96 95 11765 69 91 141 68

314 344

491

936 × 936, 42 Squares

374

178

149 116

443

905 × 905, 45 Squares

220

78

60 121 61 171 100 90 92 193

102 73 74 71 101 111 66 10067

469

237

168

527

372

191

331

375

1084 × 1084, 46 Squares 77

90118 153 79111 188 182 151 78112

458

76137 164

332

202 141 160 130

453

980 × 980, 48 Squares

580

10077 71 5965 75 83 90 79 199 92 85 69 7078 134

233 58

334

213

83

379 296

482

157 112 213

378

200

166

240 287

337

160 109

161

80 153

351

611

1032 × 1032, 43 Squares 1191 × 1191, 44 Squares

284 462

167 108113 192 79 83 158 90 228 132118 72 121 154 191 114 86 149 98 94 229 78135 169 91 260

7283 88 98 93

207 236

156

419

239

10859 91 98 106 72 75 104 97 114 6966 188 139 135 74 65 136 137 87 83

313

154 112109 73 135 104

212 249

204

171

300

494

214

481

268

963 × 963, 47 Squares 82110116 138 80106100 160 101128 74 132 10786 63103124 94 64 85 77 130 175 120 163

305 283

588

446

1169 × 1169, 49 Squares 1034 × 1034, 50 Squares

15

110 95 198 97 98 1318078138 220 89122 96 92 216 180 8475 121 167 264 152 136 207

120

328

216

552

647

11260 72 85 70

69 150 208 6362 6465 146 81 172 84 186 89 83 135

493

95 101

483

196

224

1199 × 1199, 51 Squares

297

76 141 8677 172 8281 187 95 99

255 73164 103 223

191 79

591

177

335 256

522

251 269

95 197 111 184 73 98102 106 173

389

279

566

1086 × 1086, 53 Squares 92 105

335

124 118

394

333

272

294

82 76 110 81104

104 152

295

88 89

80

257 263

75 162 79 71108 170

436

520

126

213

227

976 × 976, 52 Squares

128 84

104 110 76 229 8866 123 72 114 112 119 81 90

137 152 128 135

316

79 203

68

452

339

271

395

1113 × 1113, 54 Squares 1120 × 1120, 55 Squares 1005 × 1005, 56 Squares 75 71 188 134 8770 186 85 79 129 158

83

92 145

588

214

119 99102 215

138 235 74

289 299

75 150 10586 99 8473 112 204 141 79 85 70 83 11992

325

534

621

136 143 96

382

93 172 79 153 96 90 210 157 133 87123 13811984 111 132 257 127 188 75

107

246

536

239

361 312

673

500

1122 × 1122, 57 Squares 1157 × 1157, 58 Squares 1173 × 1173, 59 Squares 159

74 180 110

174 149 72 98

285 271

136 76 85 94 75125 77 148 219

303 335

76109 189 80

638

126115

214

90 99 160 135 73 77 127 115 141 205 78

571

141 111

176 111

284 108 554

71

321

179

165

588

250

68

75120128 69 107 208 7071101 87 78

450 215

198

114129 207 99 84 183

235

665

267

1192 × 1192, 60 Squares 1159 × 1159, 61 Squares 1115 × 1115, 62 Squares 76 155 98 71 9689 212 142 181 86 88 79130 180 92 160 116 151 108 81 137 199 127 173

300 336

636

535

1171 × 1171, 63 Squares

16

8

Conclusion

Until now, the vast majority of the results in this domain have been found using computer techniques, and mainly graph enumeration [?,?]. This approach was used to find the well known 21 squares solution [?] and also to find similar problems like Simple Perfect Square-Cylinders [?] and Simple Perfect 2 × 1 Squared Rectangles [?,?]. Another interesting method is to use constraint techniques to solve this problem [?]. This approach was also used to solve perfect square puzzles (where each square size is fixed) [?]. The benefit of the algorithm described here is that we can find squares and rectangles dissection rather rapidly and numerously. It seems that this method places squares astutely since we find optimal solutions for the order 21 and for the size 110 × 110. In addition, the solutions found are extremely rarely compound squares but it is easy to create compound dissections using noncompound ones.

References

[1] A. Augusteijn and A.J.W. Duijvestijn, Simple Perfect Square-Cylinders of Low Order, Journal of Combinatorial Theory, Series B 35, pages 333-337, 1983. [2] C. Berge, Notice sur l’utilisation de la notion de potentiel pour les r´eseaux de transport. Th´eorie des graphes et ses applications, pages 240-249, Dunod, 1958. [3] R.L. Brooks, A Procedure for Dissecting a Rectangle into Squares, and an Example for the Rectangle Whose Sides Are in the Ratio 2:1, Journal of Combinatorial Theory 8, pages 232-243, 1970. [4] A. Colmerauer, An Introduction to Prolog III, CACM, pages 25-30, 28(4):412418, 1990. [5] Y. Colombani, Carr´es Parfaits & Contraintes sur Intervalles d’Entiers, M´emoire de D.E.A., Facult´e des Sciences de Luminy, Universit´e de la M´editerran´ee, 1993. [6] A.J.W. Duijvestijn, Electronic Computation of Squared Rectangles, Thesis, Technological University, Eindhoven, The Netherlands, 1962 ; Philips Research Reports 17, pages 523-612, 1962. [7] A.J.W. Duijvestijn, Simple Perfect Squared Square of Lowest Order, Journal of Combinatorial Theory, Series B 25, pages 240-243, 1978. [8] A.J.W. Duijvestijn, A Lowest Order Simple Perfect 2 × 1 Squared Rectangle, Journal of Combinatorial Theory, Series B 26, pages 372-374, 1979.

17

[9] A.J.W. Duijvestijn, P.J. Federico and P. Leeuw, Compound Perfect Squares, American Math. Monthly, vol 89, pages 15-32, 1982. [10] P.J. Federico, Squaring rectangles and squares: A historical review with annotated bibliography, in Graph Theory and Related Topics, Academic Press, pages 173-196, 1979. [11] R. Sprague, Beispiel einer Zerlegung des Quadrats in lauter verschiedene Quadrate, Math. Z. 45, pages 607-608, 1939. [12] W.T. Tutte, A Census of Planar Maps, Canad. J. Math. 15, pages 249-271, 1963. [13] W.T. Tutte, Squared rectangles, Proceedings of the IBM Scientific Symposium on Combinatorial Problems, pages 3-9, 16-18 March 1964. [14] T.R.S. Walsh, Counting Non-isomorphic Three-Connected Planar Maps, Journal of Combinatorial Theory, Series B 32, pages 32-44, 1982. [15] T.H. Willcocks, Problem 7795 and solution, Fairy Chess Rev. 7, 1948. [16] J.C. Wilson, A Method for Finding Simple Perfect Squared Squarings, Thesis, University of Waterloo, 1967.

18