Autres techniques de recherche. Symétries et Contraintes

publicité
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Programmation Logique et Par Contraintes
Avancée
Cours 9 Autres techniques de recherche.
Symétries et Contraintes Redondantes
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Autres techniques de Recherche d'une Solution Optimale
Autres techniques d'optimisation : Recherche locale
I
I
Ralf Treinen
Université Paris Diderot
UFR Informatique
I
I
On part d'une solution qu'on cherche à améliorer.
Pour toute aectation il y a une notion de voisinage, et une
fonction de mesure.
Tant que possible on passe d'un point au meilleur de ses
voisins (Hill Climbing).
Il est possible qu'on reste bloqué sur un optimum local.
IRIF, équipe PPS
[email protected]
23 février 2017
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Autres techniques de Recherche d'une Solution Optimale
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Autres techniques de Recherche d'une Solution Optimale
Recherche locale : exemple
Recherche locale : exemple
I
I
I
I
Problème de n dames (n = 5)
Aectations : associent à chaque ligne une colonne.
On cherche à minimiser le nombre de paires de dames qui se
menacent.
Les voisins d'une aectations sont obtenues par échangeant
deux lignes.
1
2
3
4
5
Q
Q
Q
Coût : 6. Échanger lignes 2 et 3.
Q
Q
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Autres techniques de Recherche d'une Solution Optimale
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Autres techniques de Recherche d'une Solution Optimale
Recherche locale : exemple
Recherche locale : exemple
1
2
3
4
5
1
2
3
4
5
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Coût : 0. Minimum atteint (local et global).
Coût : 2. Échanger lignes 2 et 5.
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Autres techniques de Recherche d'une Solution Optimale
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Autres techniques de Recherche d'une Solution Optimale
Recherche locale : exemple
Autres techniques : Simulated Annealing
1
2
3
4
5
I
Q
I
Q
Q
I
Q
Q
Coût : 1. Minimum local, mais pas minimum global.
I
Annealing : recuit (métallurgie).
Technique probabiliste.
Recherche locale, mais peut aussi avec une certaine probabilité
passer à des solutions moins bonnes.
Cette probabilité dépend de la température qui décroît
pendant le processus.
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Symétries
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Symétries
Symétries
L'intérêt d'identier des symétries
Qu'est-ce que c'est une symétrie dans un problème de résolution de
contrainte c par rapport à un domaine initial D ?
I Soit A l'ensemble des aectation des variables en c qui sont
cohérentes avec D .
I Soit S l'ensemble des solutions de c par rapport à D : S ⊆ A.
I Il y a une fonction de normalisation Norm : A → A telle que :
I
I
I
I
Norm
I
I
I
Il sut de chercher des solutions σ qui sont normales
On peut ajouter une contrainte qui exprime le fait qu'une
solution est normale (élimination de symétries).
On peut, si on le souhaite, obtenir facilement l'ensemble de
toutes les solutions puisqu'on peut évaluer facilement Norm− .
1
Norm(Norm(x)) = Norm(x)
−1
On peut facilement calculer Norm
(x)
x ∈ S ⇔ Norm(x) ∈ S
est idempotente :
On dit que x est normal (par rapport à N ) quand x = N(x).
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Symétries
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Symétries
Exemple de symétrie : N dames
Exemple de symétrie : coloration d'une carte
I
I
Problème des n dames : Variables X
Fonction de normalisation
1
N(σ) =
I
, . . . , Xn
σ
σ 0 : σ 0 (X ) = n − σ(X )
Contrainte supplémentaire : X
1
≤ n/2.
:
I
I
si σ(X
sinon
1
) ≤ n/2
Coloration d'une carte à n pays : variables C
Fonction de normalisation :
1
N(σ) =
I
σ
σ
, . . . , Cn .
si σ(C
avec 1 et σ(C ) échangés sinon
Contrainte supplémentaire : C
1
1
= 1.
1
)=1
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Symétries
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Contraintes redondantes
Éliminer plus de symétries ?
Contraintes redondantes
I
On pourrait même imposer que :
I
σ(Ci ) 6∈ {σ(Cj ) | j < i}
Alors σ(Ci ) > σ(Cj ) pour tout i > j
I Si
I
I
I
I
Cela éliminerait toutes les symétries dues aux permutations des
couleurs
Problème : on se sais pas réaliser cette contrainte.
Il existent seulement des solutions imparfaites, par exemple par
identication des parties connexes du graphe.
I
I
Une contrainte c 0 est redondante par rapport à une contrainte
c si c |= c 0 .
Le propagateur d'une contrainte redondante c 0 peut permettre
de faire des réductions de domaines que les propagateurs de c
ne peuvent pas faire.
Il peut être intéressant d'ajouter des propagateurs pour des
contraintes redondantes.
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Contraintes redondantes
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Contraintes redondantes
Exemple : des carrés magiques
Exemples (magic1.oz) I
Un carré magique de taille n est
I une matrice n × n avec des valeurs entre 1 et n
I toutes les cases ont une valeur diérente
I les sommes des lignes, des colonnes, et des deux diagonales
sont égales
I Exemple pour n = 3 :
declare
fun
2
2 7 6
9 5 1
4 3 8
in
{MagicSquare N}
NN = N*N
L1N = { L i s t . number 1 N 1} % [1 2 3 . . . N]
p r o c {$ Square}
Sum = {FD. decl }
f u n { Field I J} % domaine en l i g n e I colonne J
Square . ( ( I −1)*N + J )
end
p r o c { Assert F}
% {F 1} + {F 2} + . . . + {F N} =: Sum
{FD. sum {Map L1N F} '=: ' Sum}
in
end
{FD. tuple square NN 1#NN Square}
{FD. d i s t i n c t Square}
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Contraintes redondantes
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Contraintes redondantes
Exemples (magic1.oz) II
Exemples (magic1.oz) III
%% Diagonals
{ Assert f u n {$ I } { Field I I } end }
{ Assert f u n {$ I } { Field I N+1− I } end }
%% Columns
{For 1 N 1
p r o c {$ I } { Assert f u n {$ J} { Field I J}
%% Rows
{For 1 N 1
p r o c {$ J} { Assert f u n {$ I } { Field I J}
{FD. d i s t r i b u t e s p l i t Square}
end
end
}
end
}
end
}
end
}
end
end
{Browse { SearchAll P}}
End={OS. time}
{Show (End− Start )}
{MyExec {MagicSquare 4}}
declare
proc
{MyExec P}
Start End
Start={OS. time}
in
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Contraintes redondantes
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Contraintes redondantes
Amélioration : éliminer des symétries
L'exemple modié (magic2.oz) I
I
I
I
I
La version naïve prend 8 secondes (n=4)
Normalisation : on peut tourner tout carré tel que la valeur
dans la case (1,1) est minimale parmi les quatre coins.
On peut en plus tourner le carré tel que la case (N,1) est ≤ la
case (1,N).
Donc contraintes supplémentaire :
X1,1 < Xn,1 , Xn,1 < X1,n , X1,1 < Xn,n
I
Temps d'exécution avec ces propagateurs supplémentaires
(n=4) : 23 secondes
Ajouter les lignes :
%% Eliminate symmetries
{ F i e l d 1 1} <: { F i e l d N N}
{ F i e l d N 1} <: { F i e l d 1 N}
{ F i e l d 1 1} <: { F i e l d N 1}
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Contraintes redondantes
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondan
Contraintes redondantes
Ajouter un propagateur pour une contraintes redondante
L'exemple encore modié (magic3.oz) I
I
La somme de toutes les cases est
1 + 2 + ... + n
I
I
I
2
=
n2 ∗ (n2 + 1)
2
La somme de toutes les cases est égale à n fois la somme
d'une ligne (colonne, diagonale)
2
2
Contrainte redondante : n ∗(n + ) = n ∗ sum
Temps d'exécution avec ce propagateur supplémentaire
(n=4) : < 1 seconde.
1
2
Programmation Logique et Par Contraintes Avancée Cours 9 Autres techniques de recherche. Symétries et Contraintes Redondantes
Contraintes redondantes
Autres contraintes redondantes ?
I
On avait ajouté :
X1,1 < Xn,1 , Xn,1 < X1,n , X1,1 < Xn,n
I
Contrainte impliquée (donc redondante) :
X1,1 < X1,n
I
Est-ce qu'on gagne quelque chose si on ajoute le propagateur
pour cette contrainte redondante ?
Ajouter les lignes :
%% Redundant : sum of a l l f i e l d s = ( number rows )
NN* (NN+1) d i v 2 =: N*Sum
*
S
Téléchargement