Sudokus Et Algorithmes de Recuit (2006)

download Sudokus Et Algorithmes de Recuit (2006)

of 10

Transcript of Sudokus Et Algorithmes de Recuit (2006)

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    1/10

    Sudokus et algorithmes de recuit

    Renaud Sirdey

    13 janvier 2006

    Resume

    Nous presentons un algorithme de recuit simule pour une applicationludique dactualite : la resolution de Sudokus.

    Introduction

    Le Sudoku (est-il encore besoin de le presenter ?) semble etre le casse-tete dumoment. Dans la mesure ou il cache un probleme combinatoire redoutable, il estfort tentant de sen servir pour illustrer, de maniere ludique, lart de concevoir desalgorithmes de resolution de problemes combinatoires. Cest ce que nous faisonsici avec la methode dite du recuit simule.

    1 Regles du jeu

    Un Sudoku consiste en la donnee dune grille carree de 81 cases divisees en 9sous-carres de 3 cases de cote et partiellement remplie avec des chiffres de 1 a 9.Le but du jeu est de completer le remplissage de la grille avec des chiffres de 1 a 9de maniere a ce quaucun chiffre napparaisse deux fois dans la meme ligne, dansla meme colonne ou dans le meme sous-carre. En regle generale, il ny a quuneseule facon de completer la grille.

    La table 1 donne un exemple de grille completee.

    Comme le fait remarquer Jean-PaulDelahaye

    [3], completer un Sudoku estequivalent a completer le 9-coloriage dun graphe G = (V, E) dont les sommetssont les cases de la grille et ou deux sommets sont relies par une arete sils appar-tiennent a la meme ligne, a la meme colonne ou au meme sous-carre. Rappelonsquun 9-coloriage est une application f : V {1, 9} telle que f(v) = f(w) deslors que {v, w} E.

    Paru dans le magazine Quadrature (octobre-decembre 2006).Nortel et UMR CNRS Heudiasyc (universite de technologie de Compiegne). Courrier

    electronique : [email protected].

    1

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    2/10

    6 5 9 4 1 3 7 8 2

    3 1 7 2 8 5 4 9 6

    2 4 8 7 9 6 5 3 19 6 5 1 7 2 8 4 3

    8 7 2 9 3 4 1 6 5

    4 3 1 5 6 8 2 7 9

    7 2 6 3 4 1 9 5 8

    5 8 4 6 2 9 3 1 7

    1 9 3 8 5 7 6 2 4

    Tab. 1 Exemple de Sudoku (( diabolique )) complet. Les chiffres encadres in-diquent les donnees du probleme.

    Notons aussi que le probleme qui consiste a decider si un Sudoku (de taillearbitraire) peut etre complete ou non est N P-complet [17]. Ceci justifie uneapproche heuristique, si tant est, bien evidemment, que les algorithmes resultantssoient polynomiaux.

    2 Le recuit simule

    La methode du recuit simule a ete proposee dans les annees 80 [9, 2] et, alorigine, justifiee par analogie avec la technique dite du recuit utilisee par les

    physiciens afin de conduire certains systemes physiques dans un etat de basseenergie. Il sagit dune metaheuristique [4], autrement dit dun principe generalde construction dalgorithmes de resolution approchee pour les problemes dopti-misation difficile, en particulier combinatoire. Ses avantages sont detre relative-ment bien comprise sur le plan theorique et de conduire a des algorithmes assezsimples. Elle a par ailleurs ete utilisee avec succes dans le cadre dapplicationsindustrielles (voir [14] pour un exemple), et ce a de nombreuses reprises.

    Soit un probleme doptimisation combinatoire qui consiste, etant donne unensemble de solutions = {1, . . . , N} ainsi quune fonction economique c : {e1, . . . , eP}, a trouver un element

    tel que e1 = c() c() eP,

    pour tout . De maniere usuelle, c() sappelle la valeur de la solution .

    Aussi, on suppose donnee une fonction de voisinage V : 2.La methode est alors tres simple a enoncer. Au depart on commence avec une

    solution arbitraire. Soit la solution courante. A chaque iteration, une solutioncandidate est choisie uniformement dans le voisinage de la solution courante

    et acceptee avec une probabilite egale a min

    1, ec()c()

    T

    . Le parametre T

    sappelle la temperature et tend vers 0, de maniere monotone, selon une fonctionappelee loi de decroissance de la temperature. La meilleure solution rencontreedurant lexecution de lalgorithme est memorisee et ecrite lorsque la condition

    2

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    3/10

    darret choisie est verifiee.Bien que ce schema converge en probabilite vers une solution optimale sous

    des conditions assez peu restrictives (symetrie de la fonction de voisinage i. e.j V(i) i V(j) et forte connexite du graphe oriente induit), ce nestquau prix dune decroissance de la temperature extremement (comprendre pro-hibitivement) lente [6]. Qui plus est, on sait quil existe des instances du problemedu couplage de cardinalite maximum (probleme polynomial) et du problemede 3-coloriage dun graphe dont la resolution necessite un nombre exponentielditerations [13, 11].

    Ces resultats negatifs ne doivent pas obscurcir le tableau outre mesure : lapertinence pratique de la methode reste remarquable !

    Generalement, la mise en uvre dun algorithme de recuit simule passe parletude de la chane de Markov qui modelise lalgorithme lorsque la temperature

    reste constante et dont la matrice des probabilites de passage est donnee par[10, 1, 16]

    Aij(T) =

    0 si j V(i)1

    |V(i)|si j V(i) et c(j) c(i)

    ec(i)c(j)

    T

    |V(i)|si j V(i) et c(j) > c(i)

    1

    j:jV(i)

    Aij(T) si i = j

    .

    Sous les hypotheses de regularite (cest-a-dire, dans le present contexte, de forteconnexite du graphe oriente induit par la fonction de voisinage) et daperiodicite,cette chane admet une unique loi stationnaire exprimee comme suit

    ()i (T) =

    ec(i)TN

    j=1 e

    c(j)

    T

    . (1)

    Aussi,

    limT0

    ()i (T) = lim

    T0

    1Nj=1 e

    c(i)c(j)

    T

    =

    0 si c(i) > e11||

    sinon,

    ou = { : c() = e1}.

    3 Resolution de Sudokus

    Nous lavons vu, la methode du recuit simule permet de sattaquer a desproblemes doptimisation (ici, combinatoire). Pour lutiliser afin de resoudre desSudokus, il convient dassocier un probleme doptimisation a chaque instance.Pour ce faire, nous procedons de la maniere suivante : lensemble des solutions,

    3

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    4/10

    , est lensemble des grilles carrees de cote 9 dont les cases contiennent un chiffrede 1 a 9 quelconque, ceci a lexception des cases fixes qui definissent linstance.Sil y a m telles cases, on a N = || = 981m. Soit ,

    ijdenote le contenu de

    la case dont la ligne est i et la colonne j. On note cij() le nombre doccurencesdu chiffre ij dans la zone definit par lunion de la ligne i, de la colonne j et dusous-carre contenant la case ij, cette derniere netant pas comprise, la fonctioneconomique est alors definie par

    c() =1

    2

    9i=1

    9j=1

    cij().

    Il est clair quune solution de valeur nulle respecte les regles du jeu et resout doncle Sudoku.

    La fonction de voisinage, quant a elle, est definie comme suit. Deux grilles sontvoisines lune de lautre si lune peut sobtenir a partir de lautre en changeant lechiffre contenu dans une et une seule case (non fixe bien sur). La forte connexitedu graphe oriente induit par cette relation de voisinage est evidente.

    Il convient ensuite de chercher a simuler avec une precision acceptable la loistationnaire a une temperature suffisamment faible pour avoir de bonnes chancesde tirer une solution optimale. Pour ce faire lidee consiste a demarrer lalgorithmea une temperature relativement elevee, temperature a laquelle la convergence versla loi stationnaire est extremement rapide1, et a faire decrotre la temperature detelle maniere que les lois stationnaires associees a deux valeurs successives soientproches. Typiquement [1], on choisira

    Tk+1 =Tk

    1 + log(1+)eP+1

    Tk, (2)

    ce qui garantit que|

    ()i (Tk)

    ()i (Tk+1)| ,

    ou est un petit reel positif. En consequence, il est raisonnable descompterquapres avoir fait decrotre la temperature il suffit dun petit nombre diterationspour se rapprocher de la nouvelle loi stationnaire, de maniere satisfaisante. Bienentendu, ce raisonnement est de nature heuristique et il existe dautres facons de

    proceder [15].Reste a fixer le nombre diterations par palier et a savoir quand sarreter

    lorsque lalgorithme tarde a fournir une solution de valeur nulle. Concernant lepremier point, on choisit generalement un nombre diterations proportionnel a

    1Rappelons que la convergence vers la loi stationnaire est geometrique et que la vitesse deconvergence depend de la valeur absolue de la deuxieme plus grande valeur propre de la matricedes probabilites de passage [8, 12]. Malheureusement, celle-ci est extremement faible a bassetemperature.

    4

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    5/10

    la taille (( naturelle )) du probleme, ici le nombre de cases de la grille. Concer-nant le second point, on sait [10], pour un probleme doptimisation combinatoirequelconque, que les solutions issues de la loi stationnaire a la temperature

    Tf =

    log N log(1 )(3)

    ont une valeur inferieure ou egale a e1 + avec une probabilite dau moins . Afinde sen convaincre, il suffit de remarquer que

    1 =

    i:ei>e1+

    N(i)eeiT

    K(T)

    e

    e1+T

    K(

    T) i:ei>e1+

    N(i)

    N

    N eT

    ee1T

    K(T) 1

    N eT ,

    ou N(i) est le nombre de solutions dont la valeur est egale a ei et ou

    K(T) =N

    j=1

    ec(j)

    T .

    Pour le present probleme, on choisira, par exemple, = 12

    , dans la mesure ou lafonction economique est a valeurs entieres. Lequation (3) se reecrit alors

    Tf =0.5

    (81 m)log9 log(1 ).

    En pratique, on pourra lui preferer la valeur

    Tf =0.5

    81log9 log(1 )

    qui fournit les memes garanties tout en ayant lavantage detre independante delinstance consideree.

    Par exemple, si lalgorithme atteint la temperature 0.00273852 il est raison-nable de conclure quune proximite suffisante a la loi stationnaire na pas pu etremaintenue car, dans le cas contraire, il y avait plus de 99% de chances de tirerune solution de valeur nulle. Il convient alors dabandonner et, par exemple, derelancer lalgorithme dans lespoir de faire mieux.

    Lencadre 1 donne lenonce de lalgorithme.

    5

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    6/10

    Poser = 0.1, eP =16202

    et faire T eP.

    Choisir arbitrairement et faire c c().

    Tant que T 0.00273852 faire

    Palier : pour k = 1 a 81 faire

    Choisir i et j uniformement dans {1, 9} tant que la case ij est fixe.

    Faire t ij et c1 cij().

    Choisir ij uniformement dans {1, 9} tant que ij = t.

    Faire c2 cij() et c c c1 + c2.

    Choisir u uniformement dans [0, 1].

    Si u eccT alors faire c c (acceptation).

    Sinon faire ij t (rejet).Si c = 0 alors ecrire et sarreter.

    Fin.

    Faire T T1+ log(1+

    )eP+1

    T.

    Fin.

    Encadre 1: Enonce de lalgorithme

    4 Resultats empiriques

    Pour se fixer les idees, nous avons essaye lalgorithme sur quatre Sudokus deniveau (( diabolique )) donnes tables 1, 2, 3 et 4.

    Ces quatres Sudokus ont respectivement 23, 26, 25 et 24 cases fixes et il faut,en moyenne2, respectivement 7.69, 2.28, 3.85 et 2.38 essais3 pour en venir a bout.Notons que lalgorithme ne parvient a resoudre le Sudoku (( diabolique )) donnedans [3] (23 cases fixes) quau prix de 11.11 essais, en moyenne.

    Aussi, precisons que lorsque lalgorithme narrive pas a resoudre un Sudoku,il termine generalement avec une solution de valeur tres faible (typiquement 2)ce qui est excellent sur le plan de loptimisation, bien quinutile pour le Sudoku(rappelons toutefois quil ny a theoriquement quune et une seule solution de

    valeur nulle, ce qui complique la tache de lalgorithme).Enfin, il convient dinsister sur le fait que nous ne pretendons ni que notre

    algorithme est competitif avec les meilleurs algorithmes de resolution de Sudokusni quil nexiste pas de maniere plus ingenieuse dappliquer la methode du recuitsimule a ce probleme (en particulier, de nombreux travaux traitent de lapplica-tion de la methode au probleme du coloriage, par exemple [7], et, a ce titre, sont

    2Estimee sur 100 essais.3Un essai requiert de lordre de 3 secondes sur un ordinateur portable des plus moyens.

    6

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    7/10

    5 4 9 1 7 2 3 8 6

    6 8 3 4 5 9 1 7 22 7 1 3 8 6 5 9 4

    3 2 4 5 9 7 6 1 8

    7 6 5 8 2 1 4 3 9

    9 1 8 6 4 3 2 5 7

    1 9 7 2 6 5 8 4 3

    4 5 6 9 3 8 7 2 1

    8 3 2 7 1 4 9 6 5

    Tab. 2 Un Sudoku de niveau (( diabolique )).

    9 5 2 1 4 7 6 3 8

    1 7 6 8 9 3 2 4 5

    4 8 3 2 5 6 7 1 9

    6 1 4 7 3 8 9 5 2

    7 2 9 5 6 1 4 8 35 3 8 4 2 9 1 7 6

    3 4 5 9 7 2 8 6 1

    2 6 1 3 8 4 5 9 78 9 7 6 1 5 3 2 4

    Tab. 3 Un autre Sudoku de niveau (( diabolique )).

    7 9 8 6 4 2 3 1 5

    4 1 5 9 7 3 6 2 8

    3 6 2 1 8 5 9 7 4

    6 7 4 5 2 8 1 9 3

    5 2 1 7 3 9 4 8 6

    8 3 9 4 6 1 7 5 2

    9 4 3 8 5 7 2 6 1

    1 8 6 2 9 4 5 3 7

    2 5 7 3 1 6 8 4 9

    Tab. 4 Encore un autre Sudoku de niveau (( diabolique )).

    7

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    8/10

    dun interet certain pour le present probleme).

    5 Generalisation et complexite

    Le Sudoku, tout comme notre algorithme, se generalise aisement. Soit n lecote des sous-carres. Un n-Sudoku consiste en la donnee dune grille carree de n4

    cases divisee en n2 sous-carres de n cases de cote et partiellement remplie avecdes nombres de 1 a n2 (rappelons que le nombre chromatique dun graphe Gest superieur ou egal a la cardinalite maximale dune clique de G [5], or, pournotre probleme, un sous-carre definit une clique de cardinalite n2 contenue dansle graphe a colorier).

    Considerons que T0, , et sont fixes et commencons par quantifier le nombrede paliers de temperature rencontres par lalgorithme. Il est aise de verifier quela loi de decroissance de la temperature donnee par lequation (2) est telle que

    Tk+l =Tk

    1 + l log(1+)eP+1

    Tk.

    Il suit que le nombre de paliers de temperature rencontres, note , est la solutionde lequation

    T0

    1 + log(1+)eP+1

    T0=

    log N log(1 ),

    soit

    = (1 + eP)(log N log(1 )) log(1 + )

    1 + ePT0 log(1 + )

    .

    Notons quavec T0 = eP le second terme de lequation ci-dessus est approximati-vement egal a 1

    log(1+), des que eP est suffisamment grand.

    Pour un n-Sudoku, eP est en O(n6), le nombre de paliers rencontres est donc

    en O(n10 log n), dans la mesure ou N n2n4. Puisque lon realise n4 iterations

    pour chaque valeur de la temperature et que le calcul de la valeur de la solutioncandidate est en O(n2), la complexite de lalgorithme est en O(n16 log n), doncpolynomiale. Toutefois, la taille (( naturelle )) du probleme est plutot le nombrede cases de la grille. Soit p = n4, lalgorithme est alors en O(p4 logp).

    Ce dernier resultat ne doit neanmoins pas masquer le fait que lalgorithme,bien qua complexite polynomiale, reste relativement (( gourmand )) : les cons-tantes cachees dans le O sont loin detre negligeables. Afin dameliorer lefficacitepratique de la methode, on pourra ajouter une condition darret ad hoc consistanta abandonner des lors que la valeur de la meilleure solution rencontree ne sest pasamelioree durant un nombre suffisamment grand (typiquement 10000) de paliersde temperature.

    8

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    9/10

    References

    [1] E. H. L. Aarts et P. J. M. van Laarhoven. (( Statistical cooling : ageneral approach to combinatorial optimization problems )). Philips Journalof Research, 40(4) :193226, 1985.

    [2] V. Cerny. (( Thermodynamical approach to the traveling salesman pro-blem : an efficient simulation algorithm )). Journal of Optimization Theoryand Applications, 5(1) :4151, 1985.

    [3] Jean-Paul Delahaye. (( Le tsunami du Sudoku )). Pour La Science,decembre 2005.

    [4] J. Dreo, A. Petrowski, P. Siarry et E. Taillard. Metaheuristiquespour loptimisation difficile. Algorithmes. Eyrolles, 2003.

    [5] M. Gondran et M. Minoux. Graphes et algorithmes, tome 37 de Collectionde la Direction des Etudes et Recherches d Electricite de France. Eyrolles,troisieme edition, 1995.

    [6] B. Hajek. (( Cooling schedule for optimal annealing )). Mathematics ofOperations Research, 13 :311329, 1988.

    [7] D. S. Johnson, C. R. Aragon, L. A. McGeogh et C. Schevon. (( Opti-mization by simulated annealingan experimental evaluation part II : graphcoloring and number partitioning )). Operations Research, 39 :378406, 1991.

    [8] J. G. Kemeny et J. L. Snell. Finite Markov Chains. The University Seriesin Undergraduate Mathematics. D. van Nostrand Company, Princeton, New

    Jersey, 1960.

    [9] S. Kirkpatrick, C. D. Gelatt Jr et M. P. Vecchi. (( Optimization bysimulated annealing )). Science, mai 1983.

    [10] M. Lundy et A. Mees. (( Convergence of an annealing algorithm )). Mathe-matical Programming, 34 :111124, 1986.

    [11] A. Nolte et R. Schrader. (( Simulated annealing and its problems to colorgraphs )). In AlgorithmsESA 96, tome 1136 de Lecture Notes in ComputerScience, pages 138151. Springer, 1996.

    [12] S. Ross. Stochastic Processes. Probability and Statistics. John Wiley &

    Sons, deuxieme edition, 1996.[13] G. H. Sasaki et B. Hajek. (( The time complexity of maximum matching

    by simulated annealing )). Journal of the ACM, 35(2) :387403, avril 1988.

    [14] R. Sirdey, J. Carlier et D. Nace. (( Approximate resolution of a resource-constrained scheduling problem )). Rapport technique PE/BSC/INF/016550V01 EN, Service darchitecture BSC, Nortel GSM Access R&D, France (sou-mis au Journal of Heuristics), 2005.

    9

  • 8/9/2019 Sudokus Et Algorithmes de Recuit (2006)

    10/10

    [15] E. Triki, Y. Colette et P. Siarry. (( A theoretical study on the behaviorof simulated annealing leading to a new cooling schedule )). European Journalof Operational Research, 166 :7792, 2005.

    [16] P. J. M. van Laarhoven et E. H. L. Aarts. Simulated annealing : theoryand applications. Mathematics and its Applications. Kluwer Academic Pu-blisher, 1987.

    [17] T. Yato. Complexity and completeness of finding another solution and itsapplication to puzzles. MSc thesis, Universite de Tokyo, 2003.

    10