Algorithme optimal d`arc-consistance pour une séquence de

publicité
Algorithme optimal d'arc-consistance pour une
séquence de contraintes AtMost avec cardinalité
E.Hebrard M.J.Huguet M.Siala
Laboratoire d'Analyse et d'Architecture des Systèmes
(LAAS-CNRS)
Groupe MOGISA
http://www.laas.fr/MOGISA
 mai 
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Plan
1 Introduction
2 Domaines d'applications
Car-sequencing
Crew-Rostering
3 Algorithme proposé
4 Résultats expérimentaux
5 Conclusion & Perspectives
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence2/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC
Étant donné un CSP (X , D, C), une contrainte C ∈ C est dite
arc-consistante (ac) ssi, pour toute valeur j de chaque variable xi
qu'elle met en jeu, il existe une instanciation consistante w telle
que w [i ] = j . Dans ce cas, w est appelé support pour xi = j .
Algorithme d'arc-consistance
Le role d'un algorithme d'arc-consistance est de supprimer pour
chaque variable, toutes les valeurs inconsistantes (sans support).
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence3/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AtMostSeqCard sur des variables booléennes
AtMostSeqCard(u , q , d , [x1 , . . . , xn ]) ⇔
n^
−q
q
n
X
X
(
xi +l ≤ u ) ∧ (
xi = d )
i =0 l =1
i =1
Exemple AtMostSeqCard(2, 4, 4, [x1 , . . . , x7 ])
0 1 1
0
1 1 0
1 1 0
0
1 0 1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence4/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Complexité des algorithmes existants
REGULAR :
O (2
q −1 n )
GEN-SEQUENCE :
[Van Hoeve et al, 2009]
O (n
3 ) [Van Hoeve et al, 2008]
GEN-SEQUENCE + outils de programmation linéaire :
2
O (n log n ) [Maher et al, 2008]
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence5/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Car-sequencing
Figure: Chaine d'assemblage
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence6/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Crew-Rostering
Durée=7 jours, 4 employées, 3 périodes de 8h, 40h par semaine
(d=5), Atmost(1,3)
emp1
emp2
emp3
emp4
J
0
1
0
0
S
1
0
0
1
N
0
0
0
0
J
0
1
1
0
S
0
0
0
0
N
1
0
0
1
J
0
0
1
0
S
0
0
0
0
N
0
0
0
1
J
1
0
0
0
S
0
1
0
0
N
0
0
1
0
J
0
0
0
1
S
0
1
0
0
N
0
0
0
0
J
1
0
0
1
S
0
0
0
0
N
0
0
1
0
J
1
1
0
0
S
0
0
0
0
N
0
0
1
0
d
5
5
5
5
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence7/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Avant-propos
Soit (x1 , . . . , xn ) une séquence de variable booléenne sujette à
une contrainte AtMostSeqCard(u , q , d , [x1 , . . . , xn ])
L'algorithme proposée est basée sur une procédure gloutonne
(leftmost).
leftmost : Maximise la cardinalité sous les contraintes
AtMostSeq(u , q , [x1 , . . . , xn ]).
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence8/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
2
c
3
4
max
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
2
c
3
4
max
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
2
0
c
3
4
max
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
2
0
c
3
0
4
max
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
|
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
2
0
c
3
0
4
1
max
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
2
0
c
3
0
4
1
max
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
2
0
c
3
0
4
1
max
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
2
0
c
3
0
4
1
max
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
2
0
1
c
3
0
4
1
max
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
2
0
1
c
3
0
2
4
1
max
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
2
0
1
c
3
0
2
4
1
1
max
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
2
0
1
c
3
0
2
4
1
1
max
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
2
0
1
c
3
0
2
4
1
1
max
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
0
1
c
3
0
2
4
1
1
max
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
0
1
2
c
3
0
2
4
1
1
max
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
0
1
2
c
3
0
2
1
4
1
1
max
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
0
1
2
c
3
0
2
1
4
1
1
1
max
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
0
1
2
c
3
0
2
1
4
1
1
1
max
1
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
0
1
2
c
3
0
2
1
4
1
1
1
max
1
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
2
0
1
2
c
3
0
2
1
4
1
1
1
max
1
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
2
0
1
2
1
c
3
0
2
1
4
1
1
1
max
1
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
2
0
1
2
1
c
3
0
2
1
1
4
1
1
1
max
1
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
2
0
1
2
1
c
3
0
2
1
1
4
1
1
1
1
max
1
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
2
0
1
2
1
c
3
0
2
1
1
4
1
1
1
1
max
1
2
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
2
0
1
2
1
c
3
0
2
1
1
4
1
1
1
1
max
1
2
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
→
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
w
|
|
|
|
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
1
2
0
1
2
1
c
3
0
2
1
1
4
1
1
1
1
max
1
2
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
1
2
0
1
2
1
1
c
3
0
2
1
1
4
1
1
1
1
max
1
2
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
1
2
0
1
2
1
1
c
3
0
2
1
1
1
4
1
1
1
1
max
1
2
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
1
2
0
1
2
1
1
c
3
0
2
1
1
1
4
1
1
1
1
0
max
1
2
2
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
1
2
0
1
2
1
1
c
3
0
2
1
1
1
4
1
1
1
1
0
max
1
2
2
2
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
1
2
0
1
2
1
1
c
3
0
2
1
1
1
4
1
1
1
1
0
max
1
2
2
2
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
1
2
2
0
1
2
1
1
c
3
0
2
1
1
1
4
1
1
1
1
0
max
1
2
2
2
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
1
2
2
0
1
2
1
1
2
c
3
0
2
1
1
1
4
1
1
1
1
0
max
1
2
2
2
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
1
2
2
0
1
2
1
1
2
c
3
0
2
1
1
1
1
4
1
1
1
1
0
max
1
2
2
2
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
|
|
|
|
1
0
1
1
2
1
2
2
0
1
2
1
1
2
c
3
0
2
1
1
1
1
4
1
1
1
1
0
0
max
1
2
2
2
1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
1
2
2
0
1
2
1
1
2
c
3
0
2
1
1
1
1
4
1
1
1
1
0
0
max
1
2
2
2
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
2
1
2
2
0
1
2
1
1
2
c
3
0
2
1
1
1
1
4
1
1
1
1
0
0
max
1
2
2
2
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
2
1
2
2
1
0
0
2
2
1
2
1
2
2
0
1
2
1
1
2
1
0
0
2
2
1
2
1
1
2
c
3
0
2
1
1
1
1
0
0
1
2
1
2
1
1
1
1
4
1
1
1
1
0
0
0
1
1
1
2
1
1
1
0
0
max
1
2
2
2
1
2
2
1
1
2
2
2
2
2
1
2
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→
−
w = leftmost (u = 2, q = 4)
→ Complexité =
xi
w
.
0
.
1
.
.
.
0
.
0
1
.
.
1
.
.
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
2
1
2
2
1
0
0
2
2
1
2
1
2
2
0
1
2
1
1
2
1
0
0
2
2
1
2
1
1
2
c
3
0
2
1
1
1
1
0
0
1
2
1
2
1
1
1
1
4
1
1
1
1
0
0
0
1
1
1
2
1
1
1
0
0
max
1
2
2
2
1
2
2
1
1
2
2
2
2
2
1
2
O (n .q )
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence9/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Algorithme de ltrage
ub
←d−
Pn
i =1 MIN (xi )
: la demande qui reste à satisfaire
leftmost_count([x1 , . . . , xn ], u , q , d ) : procédure équivalente
à leftmost mais qui retourne la cardinalité maximale pour
chaque i .
L : résultat de leftmost_count sur la séquence [x1 , . . . , xn ]
R : résultat de leftmost_count sur la séquence [xn , . . . , x1 ]
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
10/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
11/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
→ Complexité équivalente à la complexité de leftmost :
O (n .q )
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
11/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
. 0 . . . . . . 0 1 0 . . . . . . . . . . 1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
→
−
w [i ]
. 0 . . . . . . 0 1 0 . . . . . . . . . . 1
1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
→
−
w [i ]
←
w−[i ]
. 0 . . . . . . 0 1 0 . . . . . . . . . . 1
1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1
1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
→
−
w [i ]
←
w−[i ]
L[ i ]
. 0 . . . . . . 0 1 0 . . . . . . . . . . 1
1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1
1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1
0 1 1 2 3 4 4 4 4 4 4 4 5 6 7 7 7 7 8 8 9 10 10
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
→
−
w [i ]
←
w−[i ]
L[ i ]
R [n − i + 1]
. 0 . . . . . . 0 1 0 . . . .
0
0
7
3
1 0 1 1 1 0 0 0 0 1 0 1 1 1
1 0 0 1 1 1 0 0 0 1 0 1 1 1
0 1 1 2 3 4 4 4 4 4 4 4 5 6 7
10 9 9 9 8 7 6 6 6 6 6 6 5 4
.
0
0
7
3
.
0
0
7
3
. . . . 1
1 0 1 1 1
0 1 1 1 1
8 8 9 10 10
3 3 2 1 0 0
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
. 0 . . . . . . 0 1 0 . . . .
0
0
7
3
1 0 1 1 1 0 0 0 0 1 0 1 1 1
←
−
w [i ]
1 0 0 1 1 1 0 0 0 1 0 1 1 1
L[ i ]
0 1 1 2 3 4 4 4 4 4 4 4 5 6 7
R [n − i + 1]
10 9 9 9 8 7 6 6 6 6 6 6 5 4
L[i ] + R [n − i + 1] 11 10 11 12 12 11 10 10 10 10 10 11 11 11
→
−
w [i ]
.
0
0
7
3
.
0
0
7
3
. . . . 1
1 0 1 1 1
0 1 1 1 1
8 8 9 10 10
3 3 2 1 0 0
10 10 10 11 11 11 11 10
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
. 0 . . . . . . 0 1 0 . . . .
0
0
7
3
1 0 1 1 1 0 0 0 0 1 0 1 1 1
←
−
w [i ]
1 0 0 1 1 1 0 0 0 1 0 1 1 1
L[ i ]
0 1 1 2 3 4 4 4 4 4 4 4 5 6 7
R [n − i + 1]
10 9 9 9 8 7 6 6 6 6 6 6 5 4
L[i ] + R [n − i + 1] 11 10 11 12 12 11 10 10 10 10 10 11 11 11
L[i − 1] + R [n − i ]
9 10 10 10 10 10 10 10 10 10 10 9 9 9
→
−
w [i ]
.
0
0
7
3
.
0
0
7
3
. . . . 1
1 0 1 1 1
0 1 1 1 1
8
3
10 10 10 11
10 10 10 10
8
3
11
10
9 10 10
2 1 0 0
11 11 10
9 9 10
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
. 0 . . . . . . 0 1 0 . . . .
0
0
7
3
1 0 1 1 1 0 0 0 0 1 0 1 1 1
←
−
w [i ]
1 0 0 1 1 1 0 0 0 1 0 1 1 1
L[ i ]
0 1 1 2 3 4 4 4 4 4 4 4 5 6 7
R [n − i + 1]
10 9 9 9 8 7 6 6 6 6 6 6 5 4
L[i ] + R [n − i + 1] 11 10 11 12 12 11 10 10 10 10 10 11 11 11
L[i − 1] + R [n − i ]
9 10 10 10 10 10 10 10 10 10 10 9 9 9
ac(D(x ))
1 0 . . . . 0 0 0 1 0 1 1 1
→
−
w [i ]
i
.
0
0
7
3
.
0
0
7
3
. . . . 1
1 0 1 1 1
0 1 1 1 1
8
3
10 10 10 11
10 10 10 10
0 0 0 .
8
3
11
10
.
9 10 10
2 1 0 0
11 11 10
9 9 10
1 1 1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
AC(u = 4, q = 8, d = 12, ub = 10)
D(xi )
. 0 . . . . . . 0 1 0 . . . .
0
0
7
3
1 0 1 1 1 0 0 0 0 1 0 1 1 1
←
−
w [i ]
1 0 0 1 1 1 0 0 0 1 0 1 1 1
L[ i ]
0 1 1 2 3 4 4 4 4 4 4 4 5 6 7
R [n − i + 1]
10 9 9 9 8 7 6 6 6 6 6 6 5 4
L[i ] + R [n − i + 1] 11 10 11 12 12 11 10 10 10 10 10 11 11 11
L[i − 1] + R [n − i ]
9 10 10 10 10 10 10 10 10 10 10 9 9 9
ac(D(x ))
1 0 . . . . 0 0 0 1 0 1 1 1
→
−
w [i ]
i
.
0
0
7
3
.
0
0
7
3
. . . . 1
1 0 1 1 1
0 1 1 1 1
8
3
10 10 10 11
10 10 10 10
0 0 0 .
8
3
11
10
.
9 10 10
2 1 0 0
11 11 10
9 9 10
1 1 1
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
12/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Complexité
Complexité équivalente à O(n.q)
En utilisant des structures de données spéciques, nous avons
pu amener la complexité à O(n) :
Cardinalité : on stocke le delta au lieu de la valeur absolue
On garde le nombre de sous-séquences pour chaque valeur de
cardinalité
Liste circulaire pour les cardinalités
c
c[1]
ptr
↑
c[2]
c[3]
..
c[q]
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
13/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Complexité
Complexité équivalente à O(n.q)
En utilisant des structures de données spéciques, nous avons
pu amener la complexité à O(n) :
Cardinalité : on stocke le delta au lieu de la valeur absolue
On garde le nombre de sous-séquences pour chaque valeur de
cardinalité
Liste circulaire pour les cardinalités
c
ptr
c[1]
c[2]
c[3]
..
c[q]
↑
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
13/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Complexité
Complexité équivalente à O(n.q)
En utilisant des structures de données spéciques, nous avons
pu amener la complexité à O(n) :
Cardinalité : on stocke le delta au lieu de la valeur absolue
On garde le nombre de sous-séquences pour chaque valeur de
cardinalité
Liste circulaire pour les cardinalités
c
ptr
c[1]
c[2]
c[3]
..
c[q]
↑
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
13/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Complexité
Complexité équivalente à O(n.q)
En utilisant des structures de données spéciques, nous avons
pu amener la complexité à O(n) :
Cardinalité : on stocke le delta au lieu de la valeur absolue
On garde le nombre de sous-séquences pour chaque valeur de
cardinalité
Liste circulaire pour les cardinalités
c
ptr
c[1]
c[2]
c[3]
..
c[q]
..
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
13/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Contraintes
Chaque classe
c
Car-sequencing
Crew-Rostering
est associée avec une demande
Dc .
Pour chaque option j , chaque sous-séquence de taille
contient au plus uj voitures demandant l'option j .
qj
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
14/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Modèles
1
2
3
4
sum
gsc
amsc
amcs + gsc
Heuristiques
h{lex , mid }, {class , opt }, {1, q /u , d , δ, n − σ, ρ}, {≤P , ≤Euc , ≤lex }i, [Siala et al, 2012]
→ 34 heuristiques x 5 exécutions aléatoires.
Benchmarks (CSP Lib)
Groupe
Groupe
Groupe
Groupe
1
2
3
4
:
:
:
:
70 instances satisables
4 instances satisables
5 instances unsatisables
7 instances satisables
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
15/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Car-sequencing
Table:
Résultats expérimentaux : Car-sequencing
× 34 × 5) G2 (4 × 34 × 5) G3 (5 × 34 × 5) G4 (7 × 34 × 5)
Modèle G1 (7011900
680
850
1190
#sol
time #sol
time #sol
time #sol
time
sum 8480 13.93 95 76.60 0 > 1200 64 43.81
gsc 11218
3.60 325 110.99 31 276.06 140 56.61
amsc 10702
4.43 360 72.00 16
8.62 153 33.56
amsc+gsc 11243
3.43 339 106.53 32 285.43 147
66.45
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
16/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Car-sequencing
Table:
Résultats expérimentaux : Car-sequencing
× 34 × 5) G2 (4 × 34 × 5) G3 (5 × 34 × 5) G4 (7 × 34 × 5)
Modèle G1 (7011900
680
850
1190
#sol
time #sol
time #sol
time #sol
time
sum 8480 13.93 95 76.60 0 > 1200 64 43.81
gsc 11218
3.60 325 110.99 31 276.06 140 56.61
amsc 10702
4.43 360 72.00 16
8.62 153 33.56
amsc+gsc 11243
3.43 339 106.53 32 285.43 147
66.45
GSC ltre plus de valeurs incohérentes que amsc.
AMSC est beucoup plus rapide que GSC : un facteur de 12.5
sur le nombre de noeuds explorés par seconde.
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
16/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Description
emp1
--emp2
--..
--emp20
--demande : 6 ;6 ;3
--------6 ;6 ;3
Semaine
--- ----- ----- ----- --6 ;6 ;3 6 ;6 ;3
1
--------6 ;6 ;3
S2 S3 S4
--------2 ;2 ;1
--------2 ;2 ;1
..
..
..
..
..
..
..
..
..
..
..
..
d
17
17
17
17
17*20
Contraintes
Chaque employé doit travailler en moyenne 34 heures par
semaine (17 périodes sur 4 semaines).
Au minimum 16 heures de repos entre deux périodes de travail
allouées.
Pas plus de 5 jours par semaines.
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
17/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Modèles
sum
gsc
amsc
Heuristiques
= ni − 215di ), MIN (σj0 = mj − djs ).
: MIN (σj0 = mj − djs ), MIN (σi = ni − 215di )
worst employee
worst shift
:
MIN (σi
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
18/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Benchmarks
281 instances ont été générées, avec des indisponibilités de
18% à 46% (avec un pas de 0.1)
Groupe 1 : 126 instances satisables.
Groupe 2 : 111 instances principalement satisables.
Groupe 3 : 44 instances principalement unsatisables.
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
19/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Crew-Rostering
Table:
Résultats expérimentaux : Crew-Rostering
2 × 126)
Benchmarks G1 (5 ×1260
#sol
time
sum
1229
12.72
gsc
1210
29.19
amsc 1237
5.82
G2 (5 × 2 × 111)
1110
#sol
time
574
38.45
579
77.78
670
G3 (5 × 2 × 44)
440
#sol
time
272
5.56
276 24.14
31.01 284
6.22
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
20/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Car-sequencing
Crew-Rostering
Crew-Rostering
Table:
Résultats expérimentaux : Crew-Rostering
2 × 126)
Benchmarks G1 (5 ×1260
#sol
time
sum
1229
12.72
gsc
1210
29.19
amsc 1237
5.82
G2 (5 × 2 × 111)
1110
#sol
time
574
38.45
579
77.78
670
G3 (5 × 2 × 44)
440
#sol
time
272
5.56
276 24.14
31.01 284
6.22
La propagation de GSC est moins performante que celle de
amsc parce qu'on l'a utilisé avec des variables booléennes.
Un facteur de 20.4 en nombre de noeuds explorés par seconde
par rapport à la GSC.
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
20/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Travail réalisé
Meilleur complexité existante :
→ AC avec une complexité
O (n
2 log n), [Maher et al, 2008]
O (n )
Car-sequencing
Crew-Rostering
Perspectives
Généralisation de l'algorithme pour une chaine de contraintes
Among avec cardinalité ?
Utiliser l'algorithme AtMostSeqCard avec un SMT-Solver.
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
21/22
de con
Introduction
Domaines d'applications
Algorithme proposé
Résultats expérimentaux
Conclusion & Perspectives
Merci pour votre attention.
Questions ?
Mohamed SIALA Algorithme optimal d'arc-consistance pour une séquence
22/22
de con
Téléchargement