A domain consistency algorithm for the stretch constraint - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

A domain consistency algorithm for the stretch constraint

Description:

Contraintes d'ordonnancement : nombres de shift, r p tition de t ches ...etc. ... Ne se chevauchent pas. Respecte les domaines des variables. Sont ... – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 17
Provided by: coursP
Category:

less

Transcript and Presenter's Notes

Title: A domain consistency algorithm for the stretch constraint


1
A domain consistency algorithm for the stretch
constraint
INF 6101 Programmation par contraintes
  • Thomas Tixier

2
Plan
  • Problématique
  • Contrainte Stretch
  • Idée
  • Fonctionnement
  • Résultats
  • Conclusion

3
problématique
  • Industrie/services publics
  • Contraintes dordonnancement nombres de shift,
    répétition de tâches ...etc.
  • Séries de variables
  • Contrainte stretch
  • Contrainte sur ces séries de variables
  • Développée par Gilles Pesant
  • Techniques pour maintenir la cohérence de domaine
  • Approche de filtrage de Gilles Pesant
  • Approche de Van Beek et Hellsten (plus
    performanteetc.)

4
Contrainte  stretch  1/ 3
  • Sapplique sur des séquences de variables et un
    ensemble de types
  • Représente une bande minimale et/ou maximale de
    variables consécutives ayant le même type T (on
    parle de strecht de type T)
  • Besoin de définir
  • Lensemble de  n  variables
  • Lensemble de  m  types
  • Le domaine des variables
  • La longueur minimale et maximale pour chaque type

5
Contrainte  stretch  2/ 3
  • 8 variables S0, , S7
  • 3 types A,B,C
  • Stretchs valides AA, AAA, AAAA, BBB, CCCC,
    CCCCC

6
Contrainte  stretch  3/ 3
  • Séquence de stretchs
  • Couvre un ensemble de variables contiguës
  • Ne se chevauchent pas
  • Respecte les domaines des variables
  • Sont compatibles
  • Compatibilité définie par un ensemble de paires
  • Séquences valides AAABBBAA, AABBBAAA, CCCCAAA
    etc.

7
Idée 1/ 2
  • Maintenir la cohérence de domaine
  • Enlever les valeurs du domaine qui violent la
    contrainte
  • Prendre en compte la longueur (min, max)
  • Prendre en compte la compatibilité

8
Idée 2/ 2
  • Une stretch S de type T qui appartient à une
    solution est
  • indépendante de ses voisines
  • Sauf pour la compatibilité des types
  • Donc une stretch est dans une solution
  • Sil existe une stretch de type T1 compatible
    avec T se terminant avant S et couvrant les
    variables précédentes
  • Sil existe une stretch de type T2 compatible
    avec T commençant après S et couvrant les
    variables suivantes

9
Fonctionnement 1/ 4
  • Première étape, calculer laccessibilité de
    chaque variable
  • Pour chaque variable Si et type T on vérifie
  • Sil existe une séquence de stretchs qui couvre
    S0 à Si-1
  • Sil existe une séquence de stretchs qui couvre
    Si1 à Sn
  • Si ces séquences sont compatibles avec T

10
Fonctionnement 2/ 4
  • Ces résultats sont stockés dans deux tables,
    forward et backward.
  • Le contenu de ces tables est incrémenté chaque
    fois que les conditions précédentes sont
    remplies.
  • La différence entre deux éléments du tableau est
    donc gt0 sil existe une séquence de stretch
    finissant entre les indices de ces éléments.

11
Fonctionnement 3/ 4
  • Deuxième étape élagage des domaines
  • On considère successivement toutes les stretchs
    possibles pour chaque type
  • AA, AAA, BBB, CCCC, etc.
  • Pour chaque stretch considérée on vérifie sil y
    a des séquence de stretch qui encadrent cette
    stretch (sil elle fait partie dune solution)
  • Si cette condition est vérifiée on marque, pour
    chaque variable de la stretch, le type courant
  • A la fin il ne reste qua supprimer les types non
    marqués

12
Fonctionnement 4/ 4
  • Exemple de lalgorithme délagage
  • On fixe S2 à A (enlève B et C du domaine de S2)
  • CC nest pas une stretch réalisable (la valeur C
    nest pas marquée pour S0 S1)
  • AAA nest pas une stretch réalisable pour S5, S6,
    S7 (a cause de la contrainte sur min BBB3)
  • On enlève donc CC de S0, S1 et A de S5.

13
Résultats 1/ 2
  • Implémentation librairie C dILOG Solver
  • Comparaison avec lalgorithme de Gilles Pesant
  • Problèmes réalistes
  • Algorithme de Consistance de domaine plus
    performant mais plus lent.
  • Algorithme de Pesant moins fiable (a cause du
    filtrage local il peut y a avoir des incohérences
    de domaines qui ne sont pas remarquées)
  • Problèmes aléatoires
  • Plus le nombre de variables est élevé plus
    lalgorithme de Pesant échoue en un temps imparti.

14
Résultats 2/ 2
15
Conclusion
  • Algorithme performant
  • Extension sur la contrainte stretch
  • Problèmes dans larticle

16
Questions?
Write a Comment
User Comments (0)
About PowerShow.com