• Aucun résultat trouvé

Nous avons pr´esent´e dans ce chapitre des environnements de production ainsi que diff´e- rentes approches de planification, d’ordonnancement et de combinaison de planification et ordonnancement. En r´esum´e, la planification permet de d´eterminer quelles tˆaches effectuer, puis l’ordonnancement d´etermine quand ex´ecuter les op´erations de ces tˆaches. Enfin, nous avons vu qu’il est possible de combiner ces deux ´etapes de plusieurs fa¸cons. Le probl`eme devient plus complexe `a r´esoudre, mais permet d’obtenir des solutions de meilleure qualit´e puisqu’il n’y a pas d’agr´egation d’information au niveau de la planification. Bien que cette agr´egation puisse ˆetre correcte, elle est une approximation qui peut ˆetre pr´ecis´ee au niveau op´erationnel.

L’objectif de cette th`ese est d’obtenir plus rapidement de meilleures solutions aux pro- bl`emes de planification et d’ordonnancement grˆace `a une nouvelle m´ethode de parall´elisa- tion (chapitres 5et6) de la recherche ainsi qu’en utilisant judicieusement les informations des planifications pr´ec´edentes (chapitre7). Pour ce faire, nous nous basons sur des concepts de programmation par contraintes qui sont pr´esent´es au prochain chapitre.

Chapitre 2

M´ethodes de r´esolution existantes

en programmation par contraintes

Plusieurs m´ethodes existent afin de r´esoudre des probl`emes combinatoires. Dans le cadre de cette th`ese, nous nous concentrons sur les m´ethodes de programmation par contraintes et de programmation math´ematique.

La programmation par contraintes a ´et´e utilis´ee pour r´esoudre de nombreux probl`emes industriels, dont certains de planification et d’ordonnancement [39] et dans le domaine des produits du bois [1,40]. Ce paradigme consiste `a d´efinir un probl`eme `a l’aide de contraintes, de variables et de leurs domaines. S’il s’agit d’un probl`eme d’optimisation, une fonction objectif est aussi n´ecessaire. Il en r´esulte un mod`ele qui est par la suite r´esolu `a l’aide d’un solveur. Un solveur est un logiciel qui explore l’espace de recherche pour tenter de trouver une solution satisfaisant les contraintes du mod`ele et optimisant la fonction objectif. La section 2.1d´efinit les notions de base n´ecessaires pour mod´eliser un probl`eme pouvant ˆetre trait´e par un solveur de programmation par contraintes pour obtenir une solution. `A la section 2.2, nous ´etendons cette d´efinition aux probl`emes d’optimisation o`u la meilleure solution possible est recherch´ee. `A partir d’un mod`ele, il est n´ecessaire de repr´esenter l’es- pace de recherche. Nous d´efinissons une telle repr´esentation `a la section2.3. Les probl`emes que l’on souhaite r´esoudre ayant un espace de recherche exponentiellement grand, il est important d’identifier les parties les plus prometteuses de l’espace de recherche afin de les explorer plus tˆot durant la r´esolution. La section2.4pr´esente les algorithmes utilis´es pour

identifier ces parties prometteuses. Nous pr´esentons `a la section 2.5 les principaux algo- rithmes d´efinissant l’ordre dans lequel l’espace de recherche est explor´e. Enfin, nous incluons une br`eve introduction aux concepts de programmation math´ematique `a la section2.6.

2.1

Mod`eles de probl`eme de satisfaction de contraintes

La programmation par contraintes permet `a un utilisateur de se concentrer sur la formula- tion d’un probl`eme et de laisser `a un solveur le soin de r´esoudre le probl`eme. Telle que le dit E. Freuder [41], cette approche touche l’un des grands buts de l’informatique : « Constraint Programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming : the user states the problem, the computer solves it. » Par contre, cette approche n’atteint pas encore ce but, car la performance de la r´esolution est fortement d´ependante de la formulation du probl`eme [42].

Nous pr´esentons dans cette section les concepts de base permettant de d´efinir un probl`eme de satisfaction de contraintes `a l’aide du paradigme de programmation par contraintes. Un probl`eme de satisfaction de contraintes consiste `a obtenir une solution satisfaisant toutes les contraintes.

2.1.1 Variables et domaines

Dans un mod`ele de programmation par contraintes, les inconnues d’un probl`eme sont re- pr´esent´ees par des variables.

L’utilisateur doit d´efinir pour chaque variable un domaine, c’est-`a-dire un ensemble de valeurs que peut prendre la variable associ´ee. Formellement, la fonction dom(X) repr´esente l’ensemble des valeurs dans le domaine de la variable X. Le domaine d´etermine le type de la variable. Les types les plus courants sont des domaines binaires, entiers ou continus. Ces types repr´esentent, respectivement, des sous-ensembles de B ={0,1}, N et R.

Durant la recherche, le solveur assigne `a chaque variable une valeur de son domaine. Une fois cette op´eration effectu´ee, la variable vis´ee est dite instanci´ee : son domaine ne contient plus qu’une seule valeur.

Le terme assignation est utilis´e pour d´ecrire l’´etat global des variables d’un mod`ele. Lors- qu’aucune variable n’est instanci´ee, il s’agit d’une assignation vide. Si un sous-ensemble

strict des variables du mod`ele est instanci´e, il s’agit d’une assignation partielle. Enfin, si toutes les variables du mod`ele sont instanci´ees, il s’agit d’une assignation compl`ete, aussi appel´ee solution ou solution r´ealisable.

2.1.2 Contraintes

Une contrainte ´etablit des relations entre les variables. Ces relations composent le probl`eme `

a r´esoudre, car elles listent les propri´et´es que doit respecter une solution au probl`eme. La port´ee d’une contrainte est l’ensemble des variables qu’elle restreint.

Le nombre de variables en lien avec une contrainte d´efinit l’arit´e de cette derni`ere. Une contrainte binaire lie deux variables. Soit x et y des variables. Alors la contrainte x > y est une contrainte binaire. Une contrainte ternaire lie trois variables. La contrainte x + y = z est une contrainte ternaire puisque sa port´ee {x,y,z} est form´ee de trois variables.

Certaines contraintes acceptent un nombre arbitraire de variables. Ce type de contrainte est appel´e contrainte globale. Par exemple, la contrainte AllDifferent([X1, . . . , Xn]) est une contrainte globale qui assure que toutes les variables sont assign´ees `a une valeur diff´erente. Une contrainte est dite satisfaite lorsque les variables de sa port´ee sont instanci´ees et que leurs valeurs valident la relation d´ecrite.

2.1.3 Mod´elisation

La combinaison de variables, de domaines et de contraintes forme un mod`ele permettant de repr´esenter un probl`eme de satisfaction. Nous pr´esentons ici un exemple de mod´elisation. Nous souhaitons mod´eliser le probl`eme des n-reines. Le but est de placer n reines sur un ´echiquier de taille n par n sans qu’aucune paire de reines ne se menace mutuellement. Aucune reine ne doit ˆetre sur la mˆeme rang´ee, colonne ou diagonale qu’une autre reine. Nous consid´erons ici le probl`eme des quatre reines (n = 4). Une mod´elisation tr`es simple pourrait d´efinir les paires de positions horizontale et verticale comme ´etant les variables de d´ecision. Or, nous savons que chaque colonne doit contenir exactement une reine. La mod´elisation retenue d´efinit un ensemble de variables xirepr´esentant la ligne o`u se retrouve

4

0ZQZ

3

L0Z0

2

0Z0L

1

ZQZ0

x1 x2 x3 x4 4

0L0Z

3

Z0ZQ

2

QZ0Z

1

Z0L0

x1 x2 x3 x4

Figure 2.1 – Solutions du probl`eme des 4-reines.

la reine de la colonne i. Le domaine des variables est d´efini par l’ensemble d’´equations (2.1).

dom(x1) ={1,2,3,4}

dom(x2) ={1,2,3,4} (2.1) dom(x3) ={1,2,3,4}

dom(x4) ={1,2,3,4}

Le produit cart´esien de ces domaines forme l’espace de solution. Nous ajoutons `a ces va- riables les contraintes suivantes :

AllDifferent(x1, x2, . . . , xn) (2.2) xj− xi 6= j − i ∀i < j (2.3) xj− xi 6= i − j ∀i < j (2.4)

L’´equation (2.2) d´ecrit le fait que deux reines ne peuvent pas ˆetre sur la mˆeme ligne de l’´echiquier. L’´equation (2.3) repr´esente l’absence de menaces entre deux reines sur les diagonales positives et l’´equation (2.4) sur les diagonales n´egatives.

Ce mod`ele permet au solveur d’obtenir les solutions de la figure2.1 et de garantir qu’elles sont valides. Nous r´eutiliserons ce mod`ele par la suite pour illustrer les diff´erentes techniques de r´esolution.

Documents relatifs