1. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Vers un cadre générique pour la recherche locale :
application pour le Sudoku
ROADEF 2007, Grenoble, France
Tony LAMBERT, Eric MONFROY et Frédéric SAUBION
LINA, Université de Nantes, France
LERIA,Université d’Angers, France
Universidad Santa María, Valparaíso, Chile
Mardi 20 février 2007
1 / 21
2. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
CSP (Constraint Satisfaction Problem)
C2
Y
C1 U
Variables
X
C4 C5
Constraints
Z T
C3
2 / 21
3. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Outline
6 9 2 1 4
3 6 9 8
• La recherche Locale pour la résolution de 8 2
1 9 7 2
CSP
9 5
• Un cadre pour la Recherche Locale 8 4 6 7
• Algorithme Générique Itératif avec 9 5
fonctions de réduction 2 3 5 1
1 5 6 3 7
• Résultats pour le problème du Sudoku
1 2 3 4 5 6 7 8 9
• Conclusion
3 / 21
4. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Recherche Locale (RL) (1)
Définition :
• Explore l’espace de recherche D1 × D2 × · · · × Dn
• Se déplace de voisins en voisins par rapport à une fonction
d’évaluation
• Intensification
• Diversification
Propriétés :
• se concentrent sur des parties quot;prometteusesquot; de l’espace
de recherche ;
• ne donnent pas de réponse face aux problèmes
insatisfiables ;
• aucune garantie d’optimum global ;
• “rapides” pour trouver de “bonnes” solutions.
4 / 21
5. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Recherche Locale (2)
• Espace de Recherche : l’ensemble des configurations
possibles
• Outils : voisinage et fonction d’évaluation
Neighborhood
Set of
of s
possible
configurations
5 / 21
6. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Recherche Locale (3)
• Espace de Recherche : l’ensemble des configurations
possibles
• Outils : voisinage et fonction d’évaluation
Neighborhood
Set of
of s
possible
configurations
6 / 21
7. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Recherche Locale (4)
• Espace de Recherche : l’ensemble des configurations
possibles
• Outils : voisinage et fonction d’évaluation
Neighborhood
Set of
of s
possible
configurations
LS(p) = p’
p=( s 1 , s 2 , ..., sn)
s3 p’ = ( s 1 , s 2 , ..., s n , s n+1 )
s4
s6
s1 s2
s5
7 / 21
8. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
A cadre pour les techniques de Recherche Locale
• Idée :
• Contrôle fin
• Plus de stratégies
• Technique :
• Décomposer les solveurs en fonctions de bases ;
• Utiliser un algorithme générique pour la résolution hybride.
8 / 21
9. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Notre but :
• Utiliser un modèle théorique existant pour la résolution de
CSP
• Définir le processus de résolution
9 / 21
10. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Modèle abstrait de K.R. Apt [CP99]
Abstraction
Reduction functions
Constraint
Application
of functions
CSP
Fixed point
Partial Ordering
10 / 21
11. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Un algorithme Générique
F = { ensemble de fonctions de réduction}
X = initial CSP
G=F X=
While G = ∅
choose g ∈ G
G = G − {g}
G = G ∪ update(G, g, X )
X = g(X )
EndWhile
11 / 21
12. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Le modèle théorique pour la résolution de CSP
Relation d’ordre pour la recherche locale
LS =
{p = (s1 , · · · , si ) ∈ D i | ∀j, 1 ≤ j < i−1, sj+1 ∈ N (sj ) et s1 ∈ D}
i>0
12 / 21
13. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Le modèle théorique pour la résolution de CSP
Relation d’ordre pour la recherche locale
Considérons une relation ls sur LS D définie par :
1. (s1 , . . . , sn ) (s1 , . . . , sn )
ls
2. (s1 , . . . , sm ) ls (s1 , . . . , sn ) si n > m et ∀j, 1 ≤ j ≤
m, eval(sj ) = 0
et ∀i, 1 ≤ i ≤ n, eval(si ) = 0
3. (s1 , . . . , sm ) ls (s1 , . . . , sn ) si eval(sn ) = 0, ∀i, 1 ≤ i ≤
n − 1, eval(si ) = 0
et ∀j, 1 ≤ j ≤ m, eval(sj ) = 0
13 / 21
14. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Le modèle théorique pour la résolution de CSP
Ordre Partiel :
p
1
Function to pass from one LS
state to another
p
2
State of LS
p
3
p
4
p
5
Terminates with a fixed point : local minimum, maximum number of iteration
14 / 21
15. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Ordre RL
Caractéristiques d’un chemin de RL
• notion de solution
• longueur maximale
Point de vue opérationnel : chemin = échantillons
Un échantillon :
• Dépend d’un CSP
• Correspond à un état de recherche locale
15 / 21
16. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Voisinages et fonctions de mouvement
Voisinages :
• FullNeighbor : V = {s ∈ D|s ∈ V }
• TabuNeighbor : V = {s ∈ D| ∃k , n − l ≤ k ≤ n, sk = s}
• DescentNeighbor : p = (s1 , . . . , sn ) and V = s ⊂ D s.t.
∃s ∈ V s.t eval(s ) < eval(sn )
Mouvements :
• BestMove : p = p ⊕ s and eval(s ) = mins ∈V eval(s )
• ImproveMove : p = p ⊕ sn and p = p ⊕ s s.t.
eval(s ) < eval(sn )
• RandomMove : p = p ⊕ s and s ∈ V
16 / 21
17. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Instantiation de l’algorithme GI
Nous pouvant maintenant introduire l’ensemble de fonctions F .
Random walk :
Tabu search :
• FullNeighbor
• TabuNeighbor
• BestNeighBor
• BestNeighBor
• RandomNeighbor
Random walk + Descent :
TabuSearch + Descent :
• FullNeighbor
• TabuNeighbor
• BestNeighBor
• DescentNeighbor
• RandomNeighbor
• ImproveNeighBor
• DescentNeighbor
• BestNeighBor
• ImproveNeighBor
17 / 21
18. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Le problème du Sudoku
6 9 2 1 4
3 6 9 8
8 2
1 9 7 2
• problème n2 × n2 9 5
n4
8 4 6 7
• variables 9 5
• contraintes AllDiff 2 3 5 1
1 5 6 3 7
18 / 21
19. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
TabuSearch RandomWalk
n2 x n2 16x16 25x25 36x36 16x16 25x25 36x36
cpu time 3,14 115,08 3289,8 3,92 105,22 2495
deviations 1,28 52,3 1347,4 1,47 49,3 1099
mvts 405 3240 22333 443 2318 13975
Descent + TabuSearch Descent +RandomWalk
n2 x n2 16x16 25x25 36x36 16x16 25x25 36x36
cpu time 2,34 111,81 2948 2,41 82,94 2455
deviations 1,42 55,04 1476 1,11 36,99 1092
mvts Avg 534 3666 20878 544 2581 14908
19 / 21
20. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Conclusion et perspectives
• Un modèle générique pour la Recherche Locale
• Définir des stratégies
• Apprendre des stratégies dynamiquement
• Fournir plus d’outils dans un environnement générique
20 / 21
21. OUTLINE UN CADRE POUR LA RECHERCHE LOCALE RÉSULTATS POUR LE PROBLÈME DU SUDOKU CONCLUSION
Vers un cadre générique pour la recherche locale :
application pour le Sudoku
ROADEF 2007, Grenoble, France
Tony LAMBERT, Eric MONFROY et Frédéric SAUBION
LINA, Université de Nantes, France
LERIA,Université d’Angers, France
Universidad Santa María, Valparaíso, Chile
Mardi 20 février 2007
21 / 21