Vous êtes sur la page 1sur 43

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/336130582

Intelligence Artificielle: PROBLÈMES DE SATISFACTION DE CONTRAINTES

Presentation · May 2003


DOI: 10.13140/RG.2.2.27387.26407

CITATIONS READS

0 277

1 author:

Islem Khefacha
Univerity of Monastir Faculty of Economics and Management of Mahdia
48 PUBLICATIONS   59 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Teaching View project

The Effect of Accessibility in the Choice of Firm Location: Empirical Results from Tunisia View project

All content following this page was uploaded by Islem Khefacha on 29 September 2019.

The user has requested enhancement of the downloaded file.


UNIVERSITÉ PARIS DAUPHINE

*****************

DEA 103
Méthodes Scientifiques de Gestion

*****************

Projet de Recherche en Intelligence Artificielle

*****************

Effectué par

Islem KHÉFACHA

Sujet : Intelligence Artificielle et Ordonnancement

Enseignantes :

Suzane Pinson

Année Universitaire : 2002 / 2003


SOMMAIRE

INTRODUCTION ................................................................................................... 1

I- FORMULATION DES PROBLEMES DE SATISFACTION DE CONTRAINTES ... 5

I-1 PRESENTATION DES CONTRAINTES .................................................................................. 5


I-2 SYSTEME DE CONTRAINTES ............................................................................................. 5
I-3 TYPES DE CONTRAINTES .................................................................................................. 7
I-4 EXEMPLE EN ORDONNANCEMENT [LOPEZ, 2001] ........................................................... 7
II- UNE PROCEDURE NAÏVE : LE BACKTRACK .................................................. 8

III- APPROCHES POUR MODIFIER L’ALGORITHME BACTRACKING .............. 9

III-1 L'ALGORITHME ''D'ANTICIPATION PAR VERIFICATION EN AVANT'' : FORWARD


CHECKING........................................................................................................................ 10
III-2 PROPAGATION DES CONTRAINTES .............................................................................. 11
III-3 INTEGRATION D'HEURISTIQUES.................................................................................. 15
IV- LES TYPES DE CSP ........................................................................................ 17

IV-1 CSP NON INCREMENTAL ............................................................................................. 17


IV-2 CSP INCREMENTAL ..................................................................................................... 17
I- LE PROBLEME D’ORDONNANCEMENT D’ATELIER..................................... 19

I-1 LES CONTRAINTES .......................................................................................................... 20


I-2 LES PREFERENCES .......................................................................................................... 21
II- LE SYSTEME ISIS ........................................................................................... 21

II-1 MODELISATION DE L’ATELIER DE PRODUCTION ......................................................... 21


II-2 LA RECHERCHE D’UNE SOLUTION ................................................................................ 22
III- OPIS : UN SYSTEME D’ORDONNANCEMENT INTELLIGENT
OPPORTUNISTE .................................................................................................. 23

III-2 PRINCIPE DE FONCTIONNEMENT ................................................................................ 25


III-2-1 Le module de pilotage ......................................................................................... 25
III-2-2 Les modules d’action (MAC).............................................................................. 27
III-2-3 Les modules d’analyse (MAN) ........................................................................... 27
IV- ETUDES ET RESULTATS RELATIFS AUX PROBLEMES
D’ORDONNANCEMENT D’ATELIER .................................................................. 31

IV-1 L’ETUDE DE OW ET SMITH 1988.................................................................................. 31


IV-2 VALIDATION DE L’ARBRE DE DECISION ...................................................................... 32
CONCLUSION ...................................................................................................... 34
BIBLIOGRAPHIE ……………………… …………………………………………………37
INTRODUCTION
Chapitre1

Dans le contexte de compétition internationale actuel, l’efficacité -c’est-à-dire la


capacité de produire un maximum de résultats pour un minimum d’efforts consacrés- est
devenue une donnée critique de l’évaluation de la santé d’une entreprise, notamment
industrielle. L’organisation de la production (et plus particulièrement l’ordonnancement des
activités) figure incontestablement en bonne place parmi les paramètres qui influencent la
performance réalisée.
Au sens commun du terme, l’ordonnancement est défini comme l’« ensemble des processus
de mise en œuvre d’une commande de la fabrication à l’expédition, et par extension,
l’organisation méthodique d’un processus » [Le petit Robert, 1998]
Les cas d’application de techniques d’intelligence artificielle à des problèmes
d’ordonnancement d’ateliers de production se sont multipliés au cours des dernières années.
Le recours à ces techniques se justifie essentiellement par le fait que la recherche
opérationnelle ne permet pas de résoudre certains problèmes propres à chaque atelier. En
effet, une solution jugée optimale pour un atelier peut avoir des conséquences fâcheuses pour
un autre. Des caractéristiques importantes des problèmes d’ordonnancement tels que
l’existence de machines critiques dont la bonne utilisation conditionne le fonctionnement de
l’ensemble de l’atelier, varient d’un atelier à un autre et, dans un même atelier d’une solution
à une autre. Par conséquent, définir une procédure rigide donnant des résultats satisfaisants
dans certaines circonstances a de faibles chances d’être appliquée de la même façon dans
d’autres circonstances. [Lepape et al, 1990].
L’utilisation des techniques de l’intelligence artificielle permet de créer un système
d’ordonnancement facile à transporter d’un atelier à un autre en utilisant de façon modulaire
des connaissances spécifiques du chef d’atelier ainsi que des connaissances plus générales
obtenues en recherche opérationnelle.
Un des buts de l’intelligence artificielle (IA) est de concevoir des programmes capables de
traiter des problèmes pour lesquels il n’existe pas a priori de méthode de résolution directe et
assurée [Lindsay et al, 80]. Dans cette catégorie de problèmes rentrent les problèmes de
nature combinatoire. Ils se caractérisent par le fait que malgré un espace de recherche fini et
discret, l’énumération exhaustive des situations possibles est gigantesque.
Certains problèmes combinatoires peuvent s’exprimer sous la forme de problèmes de
satisfaction de contraintes (CSP).

Ce présent rapport a pour but de donner un aperçu de l’utilisation des techniques de


l’intelligence artificielle à des problèmes de type « ordonnancement ». Pour cela, un premier

Page 2
Chapitre1

chapitre sera consacré à l’étude des méthodes permettant de résoudre les problèmes de
satisfaction de contraintes (CSP). Dans un deuxième temps, on énonce dans quelle mesure les
problèmes d’ordonnancement peuvent être vus comme des CSP à partir de l’étude du système
OPIS : un système d’ordonnancement d’ateliers utilisant les techniques de l’intelligence
artificielle et de la recherche opérationnelle afin d’obtenir des solutions satisfaisantes à des
problèmes réels rencontrés en pratique.

Page 3
Chapitre I
Problème
Problème de Satisfaction de Contraintes
Chapitre1

Les techniques de satisfaction de contraintes (CSP pour Constraint Satisfaction


Problems) permettent de traiter les situations où l'on souhaite résoudre un problème en
décrivant les caractéristiques des solutions, plutôt qu'en décrivant une procédure de
résolution. Ces techniques, apparues dans les années 70, connaissent depuis quelques années
un succès considérable et permettent aujourd'hui de spécifier et de résoudre de nombreux
problèmes combinatoires difficiles. Beaucoup de problèmes en intelligence artificielle
peuvent s’exprimer sous forme de problèmes de satisfaction de contraintes (CSP).
Dans cette partie, nous allons présenter les problèmes de satisfaction de contraintes
(CSP) ainsi que les différentes approches et algorithmes proposées afin de les résoudre.

I- Formulation des problèmes de satisfaction de contraintes

I-1 Présentation des contraintes

Nous allons, dans premier temps, définir la notion de contrainte. La définition du


dictionnaire indique comme synonymes : une exigence, une difficulté, une gène imposée. Ces
termes sont applicables aux CSP. D’une façon générale, une contrainte est une expression
logique reliant des variables de décision, chacune d’elle prenant ses valeurs dans un domaine.
Exemple (en ordonnancement):
* la tâche A doit être effectuée avant la tâche B ;
* on ne doit pas consacrer plus que 5 minutes pour la réalisation de la tâche A.
Une contrainte provoque donc une restriction sur les valeurs que peuvent prendre
simultanément les variables. Résoudre ou satisfaire une contrainte consiste à trouver, pour
chaque variable, une affectation de valeur qui satisfait la condition définie par celle-ci.

I-2 Système de contraintes

Un système de contraintes consiste en un ensemble de variables et en un ensemble de


contraintes qui limite les combinaisons de valeurs pour ces variables. Plus formellement, il est
défini par un triplé {X, D, C} où :

• X = {X1, X2,..., Xn} est un ensemble fini de variables,


• D = {D1, D2,..., Dn} représente l'ensemble des domaines finis d’appartenance des
valeurs des variables : Di est le domaine des valeurs possibles pour la variable Xi,
• C = {C1, C2,..., Cn} est un ensemble de contraintes entre les variables, c'est à dire un
sous-ensemble de produits cartésiens des domaines des variables sur lesquelles la

Page 5
Chapitre1

contrainte porte (D1x.………xDn). Chaque contrainte peut être définie en intention


par une équation ou en extension par l'ensemble des n-uples qui la satisfont.

Etant donné un CSP (X,D,C), sa résolution consiste à affecter des valeurs aux variables. On
introduit pour cela les notations et définitions suivantes :

• On appelle affectation le fait d'instancier certaines variables par des valeurs


(évidemment prises dans les domaines des variables). On notera A = { (X1,V1),
(X2,V2), ..., (Xr,Vr) } l'affectation qui instancie la variable X1 par la valeur V1, la
variable X2 par la valeur V2, ..., et la variable Xr par la valeur Vr.
• Une affectation est dite totale si elle instancie toutes les variables du problème ; elle
est dite partielle si elle n'en instancie qu'une partie.
• Une affectation A viole une contrainte Ck si toutes les variables de Ck sont instanciées
dans A, et si la relation définie par Ck n'est pas vérifiée pour les valeurs des variables
de Ck définies dans A.
• Une affectation (totale ou partielle) est consistante si elle ne viole aucune contrainte,
et inconsistante si elle viole une ou plusieurs contraintes.
• Une solution est une affectation totale consistante, c'est-à-dire une valuation de toutes
les variables du problème qui ne viole aucune contrainte.

Par ailleurs, un système de contraintes est communément représenté par un graphe non
orienté. La représentation du problème sous forme d’un graphe présente plusieurs avantages :
* La représentation oblige à définir le problème de façon précise ;
* Des propriétés peuvent être trouvées sur la nature du problème.
Le graphe de la figure 1[Carcone, 1997] correspond au système {C1:C=A+B, C2:E=C+D et
C3:F=B}. Les cercles représentent les variables et les carrés noirs les contraintes. Les arêtes
symbolisent les liens variables-contraintes c'est-à-dire, l'appartenance d'une variable à une
contrainte. Un tel graphe est appelé graphe de contraintes du système.

Page 6
Chapitre1

Fig 1. Graphe de contraintes

I-3 Types de contraintes


En général, on distingue les différents types de contraintes suivantes :

• Unaire si elle ne porte que sur une variable, par exemple "x*x = 4" ou encore "est-un-
triangle (y)" ;
• Binaire si elle met en relation 2 variables, par exemple "x ≠ y" ou encore "A U B =
A" ;
• Ternaire si elle met en relation 3 variables, par exemple "x+y < 3*z-4" ou encore
"(non x) ou y ou z = vrai" ;
• ... etc
• Globale si elle met en relation un ensemble de variables. Par exemple, une contrainte
globale courante, et très pratique, est la contrainte " toutes différentes (E)", où E est un
ensemble de variables, qui contraint toutes les variables appartenant à E à prendre des
valeurs différentes.

I-4 Exemple en ordonnancement [Lopez, 2001]


* variables de décision (X)
– dates de début.
– relations de succession entre les tâches.
* domaines (D)
– définis par les dates limites (dates de disponibilité, dates échues).
* contraintes (C)
– gammes.
travail j : j1 → j2, (j1,j2)Oj et j2 successeur de j1
– distances min/max entre tâches.
– ressources à capacité limitée (disjonctives/cumulatives).

Page 7
Chapitre1

machine i: a ↔ b, (a,b)Oi
* critères (objectifs)
– minimisation de la durée totale de l'ordonnancement
– minimisation du nombre pondéré de travaux en retard
– minimisation du retard maximum…
Cependant, prouver la consistance d’un CSP (satisfiabilité) et exhiber une solution
(admissible ou optimale) est, dans le cas général, un problème NP-Complet [Garey &
Johnson , 1979]. En d’autres termes, il n’existe pas d’algorithme déterministe capable de
résoudre ce type de problème en un temps polynomial. Les seuls algorithmes connus à l’heure
actuelle s’exécutent en un temps exponentiel fonction de la taille des entrées.
La recherche arborescente en profondeur d’abord est l’une des solutions proposée afin de
résoudre les problèmes de type NP- Complets. On distingue deux approches :
- Generate And Test : il s’agit d’une vérification du viol d'une contrainte après instanciation
de toutes les variables du problème (instanciation complète).
Si le domaine de certaines variables contient une infinité de valeurs, alors cet espace de
recherche est infini et on ne pourra pas énumérer ses éléments en un temps fini. Néanmoins,
même en se limitant à des domaines comportant un nombre fini de valeurs, l'espace de
recherche est souvent de taille tellement importante que l'algorithme "génère et teste" ne
pourra se terminer en un temps "raisonnable". Considérons plus précisément un CSP ayant n
variables, chaque variable pouvant prendre 2 valeurs (k=2 ). Dans ce cas, le nombre
d'affectations totales possibles pour ce CSP est 2n.
- Test And Generate (l’algorithme classique Backtrack) : dans ce cas, une vérification du
viol d'une contrainte après instanciation de toutes les variables inhérentes à la contrainte est
effectuée. Nous allons l’étudier en détail dans la section suivante.

II- Une procédure naïve : le BACKTRACK


La procédure Backtrack [Dechter & Pearl, 1988] trouve systématiquement une
solution s'il en existe une. Pour cela, il affecte au fur et à mesure une valeur de D à chaque
variable correspondante dans X. Il vérifie évidemment que la valeur est correcte par rapport
aux contraintes. Mais, il arrive qu'après l'affectation d'une variable Xn-1, l'algorithme ne puisse
trouver de valeur pour Xn car D(Xn) est vide, une situation de blocage apparaît et l’algorithme
revient sur ses pas (il «bactracke ») à la dernière variable affectée Xn-1. Il modifie la valeur de
Xn-1 en espérant que le domaine de la variable Xn suivante ne sera plus nul. Si après avoir
essayé toutes les valeurs du domaine D (Xn-1), il n'a pas toujours de solutions pour Xn, il

Page 8
Chapitre1

recule et modifie la variable précédente Xn-2. Si il n'existe pas de solution, il reculera jusqu'à
X0. Voici l'algorithme détaillé du Backtrack : [Christine Solnon, 1997]

Fonction simple_Backtrack ( X,D,C ) retourne une affectation

Pour i de 1 à n faire

/* l'affectation partielle A = { X1← V1,........, Xi-1← Vi-1} est valide */

Choix (*) d'une valeur vi D(Xi) ,

si A U { Xi← Vi} est valide alors A ← A U { Xi← Vi}

sinon retour arrière au dernier point de choix (*)

fin si

fin pour

retourne A

Source : [Solnon, 1997]

Toutefois, cet algorithme ne prend pas en compte les informations triviales sur
l’inconsistance d’instanciations partielles. En effet, l’affectation d’une valeur à une variable
peut être contredite par une contrainte même si au moment où elle a été faite cette affectation
était consistante. Mackworth a montré [Mackworth,1977] que l’algorithme classique de
backtrack est entaché d’incohérences. Certaines instances de variables sont envisagées comme
solution bien qu’on puisse détecter qu’elles sont non admissibles. Plusieurs solutions ont été
apportées dans la littérature afin d’améliorer l’algorithme classique Backtrack.

III- Approches pour modifier l’Algorithme BACTRACKING


Améliorer l’efficacité de la recherche par retour arrière consiste à se poser les
questions suivantes [Paquet, 2003] :
* Quelle variable devrait être assignée et dans quel ordre ses valeurs devraient être
essayées?
* Quelles sont les implications des affectations de la variable courante sur les autres
variables non affectées?

Page 9
Chapitre1

* Lorsqu’un chemin échoue, est-ce que la recherche pourrait éviter cet échec dans les
chemins suivants?

III-1 L'algorithme ''d'anticipation par vérification en avant'' : FORWARD


CHECKING
Cet algorithme [Bintner & Reingold, 1975] est assez proche du BACKTRACK, il
affecte des valeurs aux variables au fur et à mesure. La différence avec la procédure, vue
précédemment, se trouve dans la gestion des impasses, quand l'algorithme ne trouve plus de
solutions.
Le FORWARD CHECKING, avant de choisir une valeur pour une variable xn, vérifie que
cette affectation correspond aux contraintes et vérifie que les autres variables xi (i>n) pourront
être affectées. Si l'affectation de xi ne peut être faite, l'algorithme choisi une autre valeur pour
xn. Si jamais aucune solution, pour xn, ne permet l'affectation des autres variables, la
procédure fera un retour en arrière sur xn-1 pour changer sa valeur. Ce point reste identique au
BACKTRACK. Si le CSP n'a pas de solution, il fait un retour en arrière jusqu'à la variable x0.
De façon générale, à chaque fois qu’on affecte une valeur à une nouvelle variable, on
supprime du domaine des variables non affectées les valeurs qui ne sont pas compatibles avec
l’affectation partielle. Voici l’algorithme du FORWARD CHECKING :

fonction anticipation (X = {X1,...,Xn, D, C}) retourne une affectation

Pour i de 1 a n faire

/* l'affectation partielle A = { X1← V1,........, Xi-1← Vi-1} est valide */

/* et∀  j i...n, ∀ v D(Xj), A U { Xj← v} est valide */

Choix (*) d'une valeur vi  D(Xi) ,

A ← A U { Xi← Vi}

Pour j de i+1 à n faire


D(Xj) ← {vj D(Xj) / A U {Xj ← vj} est valide

si D(Xj) est non vide

alors retour arrière au dernier point de


choix (*)

Page 10
Chapitre1

fin si
fin pour
fin pour
retourne A
source :[Solnon,1997]

Cependant, le FORWARD CHECKING ne permet pas de détecter tous les problèmes


qui se posent lors de la résolution des CSP.

III-2 Propagation des contraintes

La propagation des contraintes est un ensemble de techniques permettant :

– la vérification de la validité d'une solution ;


– un renforcement de consistance par suppression (filtrage) des valeurs des variables
n'appartenant à aucune solution ;
– la détection d'une inconsistance globale.

Nous allons dans ce qui suit étudier la notion de consistance (cohérence) d’arcs. Notons que la
cohérence des arcs est une technique qui détecte les erreurs plus vite que le «Forward
Checking ».

Consistance d’ arc :

Définition:
Un CSP (X,D,C) est consistant d'arc si pour tout couple de variables (Xi,Xj)de X, et
pour toute valeur vi appartenant à D(Xi), il existe une valeur vj appartenant à D(Xj) telle que
l'affectation partielle {(Xi,vi),(Xj,vj)} satisfasse toutes les contraintes binaires de C.

L'algorithme qui enlève les valeurs des domaines des variables d'un CSP jusqu'à ce
qu'il soit consistant d'arc (on dit que l'algorithme filtre les domaines des variables) s'appelle
AC (pour Arc Consistency). Il existe différentes versions de cet algorithme: AC1, AC2, AC3,
..., chaque version étant plus efficace (plus rapide) que la précédente.

Exemple : Coloriage d’une carte géographique

Variables : X = { X1 , X2 , X3} où Xi représente le pays i ;


Domaines : D = {D1, D2, D3} tels que :

Page 11
Chapitre1

D1 :{vert, rouge, bleu}


D2 :{rouge, bleu}
D3 :{rouge}
Contraintes: Les pays adjacents doivent avoir des couleurs différentes.
X3

Rouge
X1 X2

Vert, Rouge, Bleu Bleu, Rouge

Figure 1 : Coloriage d’une carte géographique


D’après ce graphe, nous pouvons remarquer que l’arc (X3, X2) est consistant
(cohérent). En effet, X3 ne peut prendre que la couleur rouge et comme X2 peut être colorée
soit en bleu, soit en rouge, la seule possibilité pour satisfaire la contrainte d’adjacence et que
le pays 2 soit coloré en bleu : ce qui présente une solution satisfaisante au problème.
Néanmoins, l’arc (X2, X3) n’est pas consistant car si X2 prend la couleur rouge, X3 ne
peut pas être de couleur rouge et par conséquent le problème n’admet pas de solution
satisfaisante.
En fait, le concept d’arc consistant dépend de la direction et de l’orientation de l’arc :
si l’arc (Xi, Xj) est cohérent, l’arc (Xj, Xi) n’est pas forcément cohérent.
D’une manière générale, la consistance d’arc consiste à la suppression de valeurs qui
rendent impossible la satisfaction de toute contrainte pourtant sur un couple de variables.
Le présent algorithme de Mackworth [Mackworth 1977a] permet bien d’expliquer les
étapes de recherche des solutions au CSP.

Procédure AC-1 Revise(vi,vj) : Booléen


Modif faux
Pour x Di
Si il n’existe pas vj Dj tq (x, vj) est consistant
Alors
Di Di – {x}
Modif vrai
Fin Si
Fin pour
Retourner Modif
source:P.LOPEZ 2001

Page 12
Chapitre1

A l’issue de cet algorithme, nous remarquons que la procédure Revise permet bien de
réduire l’espace de la recherche mais il faut aussi que l’arc (vj,vi) soit une autre fois réviser
étant donné que le domaine de la variable Xj contient des valeurs qui ne respecte plus les
contraintes de départ.
Dans l’exemple relatif au problème du coloriage d’une carte géographique (figure 1),
l’arc (X2, X3) est devenu consistant suite à la suppression de la couleur rouge du domaine de
X2. Mais, l’arc (X1, X2) qui était initialement cohérent, ne l’est plus car si X1 prend la
couleur bleue, X2 ne peut pas être de couleur bleue.
Mackworth [Mackworth 1977a] a proposé un autre algorithme qui vérifie la
cohérence des arcs pour tout le graphe.

Procédure AC-2
Revise(vi,vj) : Booléen
A vi, vj) arcs (G) ; i ≠ j} ;
Répéter
Modif faux
Pour toutvi, vj) A Faire
Modif ( Revise (vi, vj) ou Modif) ;
Fin pour ;
Jusqu’à non (modif) ;
Fin AC-2
source: V. Kumar 1992

Toutefois, l’application de cet algorithme montre que tous les arcs vont être révisés à
chaque itération même si le domaine de deux variables reliées par une contrainte n’a pas
changé lors de l’itération précédente. Ainsi, Mackworth [Mackworth 1977a] a amélioré cet
algorithme en apportant quelques modifications.

Page 13
Chapitre1

Procédure AC-3
A vi, vj) arcs (G) ; i ≠ j} ;
Tant que Q est non vide ( A 
Retirer une paire (vk, vm) de A ;
Si ( Revise (vk, vm) alors
A vi, vk) tels que vi, vk) arcs (G) ; i ≠ k, i ≠ m}
Fin si ;
Fin tant que ;
Fin AC-3. source: V. Kumar 1992

Cet algorithme est plus performant que AC-2 puisque la "re-révision" ne va concerner
que les variables dont le domaine a été modifié lors de l’itération précédente.
De son côté, Davis [Davis,1987] a montré qu’il existe différentes catégories de propagation
de contraintes. Ces catégories différent selon le type d’information mise à jour : inférence de
contrainte, inférence de domaine, inférence de valeur, d’expression. Parmi ces catégories,
l’inférence de domaine est le cas le plus rencontré dans les CSP. Il s’agit de réduire le
domaine des valeurs possibles d’une variable à partir d’une contrainte et des domaines de
toutes les autres variables concernées par la contrainte.
Un autre algorithme très connu et utilisé en CSP est celui de Waltz [Waltz 75]. Cet algorithme
prend en charge l’étape de mise à jour de l’algorithme de propagation de contrainte. En effet,
l’ algorithme de Waltz opère d’une façon continu un raffinement des domaines de chaque
variable jusqu’à ne plus obtenir de changement. Si l’algorithme s’arrête en affectant
l’ensemble vide à certains paramètres alors l’état de départ était inconsistant (soit les
domaines de validité des paramètres étaient trop restreinte et/ou que les contraintes étaient
trop restrictives). Mais, la réduction des valeurs de variable qui ne figurent dans aucune
solution ne garantit pas que toutes les valeurs retenues, après inférence des domaines,
constituent des solutions au problème. L’inférence des domaine ne fait donc que réduire
l’espace de recherche, ceci tient au fait que les contraintes n’expriment souvent que des
domaines nécessaires de consistance.

Notons à la fin, que les techniques de propagation de contraintes ainsi que le Forward
Checking permettent la réduction de l'espace de recherche avant même la recherche d'une

Page 14
Chapitre1

solution. Pour mettre ce principe en oeuvre, il s’agit de filtrer à chaque étape de la recherche,
les domaines des variables non affectées en enlevant les valeurs "localement inconsistantes",
c'est-à-dire celles dont on peut inférer qu'elles n'appartiendront à aucune solution. Pour cela,
différents types de filtrages existent, correspondant à différents niveaux de consistances
locales, qui vont réduire plus ou moins les domaines des variables, mais qui prendront aussi
plus ou moins de temps à s'exécuter. Considérons un CSP (X, D, C), et une affectation
partielle consistante A :

* le filtrage le plus simple consiste à anticiper d'une étape l'énumération : pour chaque
variable Xi non affectée dans A, on enlève de D(Xi) toute valeur v telle que l'affectation A U
{(Xi,v)} soit inconsistante.
Un tel filtrage permet d'établir ce qu'on appelle la consistance de nœud , aussi appelée 1-
consistance.

* un filtrage plus fort, mais aussi plus long à effectuer, consiste à anticiper de deux
étapes l'énumération : pour chaque variable Xi non affectée dans A, on enlève de D(Xi) toute
valeur v telle qu'il existe une variable Xj non affectée pour laquelle, pour toute valeur w de
D(Xj), l'affectation A U {(Xi,v),(Xj,w)} soit inconsistante.
Notons que ce filtrage doit être répété jusqu'à ce que plus aucun domaine ne puisse être réduit.
Ce filtrage permet d'établir ce qu'on appelle la consistance d'arc, aussi appelée 2-
consistance.

* un filtrage encore plus fort, mais aussi encore plus long à effectuer, consiste à
anticiper de trois étapes l'énumération. Ce filtrage permet d'établir ce qu'on appelle la
consistance de chemin, aussi appelée 3-consistance.

* ... et ainsi de suite... notons que s'il reste k variables à affecter, et si l'on anticipe de
k étapes l'énumération pour établir la k-consistance, l'opération de filtrage revient à résoudre
le CSP, c'est-à-dire que toutes les valeurs restant dans les domaines des variables après un tel
filtrage appartiennent à une solution.

III-3 Intégration d'heuristiques

Les algorithmes que nous venons d'étudier choisissent, à chaque étape, la prochaine
variable à instancier parmi l'ensemble des variables qui ne sont pas encore instanciées ;
ensuite, une fois la variable choisie, ils essayent de l'instancier avec les différentes valeurs de

Page 15
Chapitre1

son domaine. Ces algorithmes ne disent rien sur l'ordre dans lequel on doit instancier les
variables, ni sur l'ordre dans lequel on doit affecter les valeurs aux variables. Ces deux ordres
peuvent changer considérablement l'efficacité de ces algorithmes : imaginons qu'à chaque
étape on dispose des conseils d'un "oracle-qui-sait-tout" qui nous dise quelle valeur choisir
sans jamais se tromper ; dans ce cas, la solution serait trouvée sans jamais retourner en
arrière... Malheureusement, le problème général de la satisfaction d'un CSP sur les domaines
finis étant NP-complet, il est plus qu'improbable que cet oracle fiable à 100% puisse jamais
être "programmé".
En revanche, on peut intégrer des heuristiques pour déterminer l'ordre dans lequel les
variables et les valeurs doivent être considérées : une heuristique est une règle non
systématique (dans le sens où elle n'est pas fiable à 100%) qui nous donne des indications sur
la direction à prendre dans l'arbre de recherche.
Les heuristiques concernant l'ordre d'instanciation des valeurs sont généralement dépendantes
de l'application considérée et difficilement généralisables.
A titre d’exemple, on peut citer les heuristiques des valeurs les moins contraignantes (least
constraining-value) qui permettent de choisir la valeur qui va enlever le moins de choix pour
les variables voisines. Toutefois, il existe de nombreuses heuristiques d'ordre d'instanciation
des variables qui permettent bien souvent d'accélérer considérablement la recherche.
L'idée générale consiste à instancier en premier les variables les plus "critiques", c'est-à-dire
celles qui interviennent dans beaucoup de contraintes et/ou qui ne peuvent prendre que très
peu de valeurs. L'ordre d'instanciation des variables peut être :

• statique, quand il est fixé avant de commencer la recherche ;

Par exemple, on peut ordonner les variables en fonction du nombre de


contraintes portant sur elles : l'idée est d'instancier en premier les variables les
plus contraintes, c'est-à-dire celles qui participent au plus grand nombre de
contraintes.

• ou dynamique, quand la prochaine variable à instancier est choisie dynamiquement à


chaque étape de la recherche.

Par exemple, l'heuristique "échec d'abord" ("first-fail" en anglais) consiste à choisir, à chaque
étape, la variable dont le domaine a le plus petit nombre de valeurs localement consistantes
avec l'affectation partielle en cours. Cette heuristique est généralement couplée avec

Page 16
Chapitre1

l'algorithme "anticipation", qui filtre les domaines des variables à chaque étape de la
recherche pour ne garder que les valeurs qui satisfont un certain niveau de consistance locale.

IV- Les types de CSP

Les CSP se présentent, en général, sous deux formes différentes [Koning, 1990]

IV-1 CSP non incrémental

Dans un CSP non incrémental, toutes les contraintes sont fixées dès le début du traitement. La
résolution se fait via l’algorithme général de propagation des contraintes. Ce type de CSP est
dirigé par les variables : il s’agit de choisir la variable à instancier et l’ensemble des valeurs à
lui associer. En cas de Backtrack, l’affectation de la variable la plus récemment mise à jour
est modifiée. Afin de limiter le nombre de backtracks lors de la résolution du problème, des
heuristiques de choix de valeurs à affecter aussi bien que des heuristiques de choix de
variables à instancier sont utilisées.

IV-2 CSP incrémental


Dans un CSP incrémental, les contraintes peuvent être ajoutées (parfois supprimées)
au réseau au fur et à mesure. Contrairement au CSP non incrémental, la résolution est dirigée
par les problèmes : toute nouvelle contrainte introduite dans le réseau déclenche un
ajustement des domaines de toutes les variables de telle sorte que la consistance de la solution
partielle soit conservée. En cas de Backtrack, c’est la contrainte la plus récente dans le réseau
qui est remise en cause.
Enfin, pour réduire le nombre de backtracks, les heuristiques utilisées portent essentiellement
sur la sélection de la prochaine contrainte à introduire dans le réseau.
En conclusion, nous avons présenté dans cette première partie brièvement la programmation
par contraintes, ses caractéristiques, ses avantages. De nombreux travaux ont été menés pour
améliorer les performances des algorithmes, lesquels représentent le point crucial de tout
système de contraintes.
Nous allons présenter dans le prochain chapitre dans quelle mesure les problèmes
d’ordonnancement peuvent être vus comme des CSP et ainsi bénéficier des résultats qui leur
sont attachés à travers l’étude du système OPIS (OPportunistic Intelligent Scheduler) : un
système informatique à base de connaissances opérant dans le domaine de l’ordonnancement
d’atelier.

Page 17
Chapitre II
Les Systèmes d’Ordonnancement d’Atelier
Chapitre 2

Cette partie est consacrée à l’étude d’un système utilisant les techniques de
l’Intelligence Artificielle afin d’obtenir des solutions satisfaisantes à des problèmes réels liés
à l’ordonnancement d’atelier. Il s’agit du système OPIS (Opportunistic Intelligent
Scheduler), un système informatique à base de connaissance opérant dans le domaine de
l’ordonnancement d’atelier. Ce système présente une architecture de type "tableau noir" qui
oriente la recherche heuristique vers les régions les plus contraintes dans l’espace des
solutions. En fait, le système OPIS a été développé afin de palier aux défauts du système ISIS
[Fox et Smith, 1984].Ce système introduit une approche plus dynamique dite
« opportuniste », suite à la décomposition du problème d’ordonnancement original en sous-
problèmes de moindre complexité.
Dans un premier temps, nous allons présenter le problème d’ordonnancement d’atelier. Le
système ISIS fera l’objet de la seconde section. Enfin, la dernière partie de ce chapitre sera
consacré à l’étude du système OPIS suivi de quelques études expérimentales.

I- Le problème d’ordonnancement d’atelier

Les problèmes d’ordonnancement apparaissent dans des domaines aussi variés que
l’organisation opérationnelle du travail dans les usines, la planification de grands projets,
l’organisation d’activités de service, mais aussi l’allocation dynamique des ressources dans
les systèmes d’exploitation d’ordinateurs. La maîtrise de l’ordonnancement est d’un intérêt
capital pour les entreprises, sans cesse confrontées à des impératifs de productivité, de
flexibilité et de réactivité [Esquirol et al, 1999]. Le problème d’ordonnancement consiste à
organiser dans le temps un ensemble de tâches en cherchant à satisfaire un ou plusieurs
objectifs (minimiser les retards, quantité à produire…), compte tenu de contraintes
temporelles (délais, contraintes d’enchaînement,…) et de contraintes portant sur l’utilisation
des ressources requises. D’une manière générale, tout système d’ordonnancement d’atelier a
pour objectifs majeurs [Potvin, 1992] :
- la capacité de générer des horaires de production reflétant les caractéristiques de
l’atelier ainsi que les objectifs de production attendus ;
- la capacité de réagir à des évènements imprévisibles de façon à réviser
adéquatement l’horaire de production (CSP incrémental).

L’étude des problèmes d’ordonnancement est également d’un intérêt théorique


toujours renouvelé pour les chercheurs, car il n’existe pas encore de méthodes de résolution à

Page 19
Chapitre 2

la fois générales et de faible complexité algorithmique, en raison de la nature fortement


combinatoire de ces problèmes. Ces problèmes se caractérisent par le fait que, malgré un
espace de recherche fini, l’énumération exhaustive des situations possibles est gigantesque.
De plus, les solutions réelles sont encore plus complexes et demandent de prendre en
compte un ensemble d’objectifs, de contraintes et de préférences émanant de divers sources
au sein de l’atelier : ces problèmes demeurent donc des problèmes NP-Complets [Garey &
Johnson, 1979]. Pour définir rigoureusement la NP-difficulté d’un problème, il serait
nécessaire d’introduire les notions de machine abstraite de Turing et de réduction de
problème. On pourra ne retenir ici que pour un problème d’optimisation NP-difficile, il
n’existe pas d’algorithme le résolvant en un nombre d’étapes de calcul polynomial en la taille
des données.
Nous avons vu en première partie que, pour éviter l’explosion combinatoire de la
recherche par énumération, on fait souvent appel à des méthodes dites heuristiques. Par
ailleurs, la prise de décision dans les problèmes d’ordonnancement est fortement influencée
par deux facteurs importants : les contraintes et les préférences.

I-1 Les contraintes

Les contraintes expriment des restrictions sur les valeurs que peuvent prendre
conjointement une ou plusieurs variables de décision.
Elles peuvent être de différents types :
- contraintes d’ordonnancement : une opération doit être effectuée avant ou après
une autre dans le processus de fabrication d’un produit donné ;
- contraintes de ressources : il s’agit soit des contraintes d’utilisation de ressources
(nature et quantité des moyens utilisés par les tâches), soit des contraintes de
disponibilité des ressources qui précisent la nature et la quantité des moyens
disponibles au cours du temps ;
- contraintes de temps alloué, issues généralement d’impératifs de gestion et
relatives aux dates limites des tâches (délais de livraisons, disponibilité des
approvisionnements) ou à la durée totale d’un projet.

Mais, la considération exclusive de contrainte "dures" ne permet pas de limiter


suffisamment le domaine des solutions réalisables. Ainsi, pour assurer la convergence vers
une solution satisfaisante, de nombreux problèmes utilisent les techniques de propagation des
contrainte, comme nous l’avons présenté dans la première partie [Stefik, 1981] ; [Sussam et

Page 20
Chapitre 2

Steele, 1980]. Néanmoins, dans les problèmes d’ordonnancement, ces techniques ne suffisent
pas. Il faut considérer également certaines préférences correspondant essentiellement à des
contraintes "souples" qui peuvent être relaxées.

I-2 Les préférences


Les préférences permettent une discrimination entre différents choix possibles. On
distingue généralement :
* les préférences liées aux objectifs de production permettant l’évaluation de la qualité
de l’horaire généré : respect des délais de production et de livraison, réduction de l’encours,
maximisation de l’utilisation des ressources et maintient de la stabilité de l’horaire en cas
d’évènements imprévisibles) ;
* les préférences opérationnelles qui s’appliquent à des décisions locales au niveau
d’une opération. C’est par exemple la préférence d’une machine particulière parmi un groupe
de machines identiques pour des raisons de fiabilité.
Afin de représenter toutes les connaissances utiles liées aux différentes contraintes et
préférences, une représentation à base de schémas ou frames a été développée.

II- Le système ISIS


Le système ISIS [Fox et Smith, 1984] a été développé dans le but d’explorer plus
avant le rôle des contraintes lors de la génération d’horaires de production. Il s’agit de
représenter le savoir lié à l’événement de production et aux préférences et de l’intégrer dans le
processus de génération des horaires de production afin de limiter le phénomène d’explosion
combinatoire et orienter le système vers les solutions les plus intéressantes. ISIS est en fait un
système qui établit des ordonnancements lot par lot, un lot étant un ensemble de pièces devant
être traités de façon identiques.

II-1 Modélisation de l’atelier de production


Le système ISIS [Potvin, 1992] utilise des réseaux sémantiques dont le but est de
représenter le modèle de l’atelier1.
Ces réseaux sont construits à l’aide des schémas2 du langage de programmation orienté objet
SRL (Schema Representation Language) [Wright et Fox, 1983].

1
Le modèle de l’atelier représente en quelque sorte la structure de base qui intègre le savoir lié aux contraintes et
aux préférences.

Page 21
Chapitre 2

Par ailleurs, cette représentation sous forme de schémas permet de conserver des informations
de nature diverse concernant par exemple une préférence particulière.
Ces informations sont très utiles par la suite pour la prise de décision.
On y trouve essentiellement :
- une fonction d’utilité permettant d’évaluer la qualité de la solution en regard des
relaxations autorisées afin de trouver des compromis entre des préférences souvent
conflictuelles (les préférences relatives aux délais de production s’opposent
souvent aux contraintes de capacité de l’atelier) . Cette fonction, linéaire par
morceaux dans notre cas, décroît de plus en plus rapidement lorsque le retard
augmente ;
- l’importance de la préférence qui dépend de la nature intrinsèque d’une préférence
particulière. C’est une importance d’ordre statique et sa valeur est contenue dans le
schéma. Cependant, la considération de nature dynamique est prise en compte lors
de l’évaluation de la qualité des solutions partielles ;
- le contexte d’application de la préférence permet quant à lui de déterminer si le
degré de satisfaction d’une préférence particulière doit être considéré lors de la
prise de décision.

II-2 La recherche d’une solution


Une fois le modèle de l’atelier a été mis en place et que les préférences ont été
représenté, le système ISIS va par la suite évaluer diverses alternatives au sein de l’espace des
solutions tout en identifiant un horaire offrant un compromis acceptable entre les préférences
exprimées. En effet, ISIS commence tout d’abord par réduire la complexité du problème
original en traitant chaque commande individuellement. Ces commandes vont être classées en
fonction, d’une part de leur type (commande provenant d’un client important) et d’autre part
en fonction de la proximité de leur date de fin au plus tard. Ensuite, l’horaire de production
est construit itérativement en sélectionnant à chaque cycle la commande jugée la plus
importante et en générant un horaire particulier pour celle-ci : perspective commande par
commande.
L’horaire ainsi construit se fonde en fait sur un algorithme d’exploration en faisceau
(beam search) qui est une variante des méthodes de programmation dynamique mettant en

2
C’est une structure de données représentant une situation prototypique. Il est défini par son nom et la liste de
ses attributs (slot en anglais), chaque attribut est décrit par un ensemble de facettes et leurs valeur.
[Pinson, 2003]

Page 22
Chapitre 2

œuvre des heuristiques afin d’explorer et évaluer diverses alternatives dans l’espace des
solutions. Ces alternatives vont être considérées à tour de rôle dans le but de générer les états
successeurs (horaires partiels) dans l’espace de recherche.
Par la suite, le système considère l’ensemble de n meilleures solutions partielles au plus, qu’il
étend à l’aide d’un opérateur choisi en fonction du type de choix à effectuer : choix d’une
opération parmi un ensemble de variantes, choix d’une machine pour une opération, choix
d’un créneau horaire pour un couple (opération machine). Les extensions ainsi générées sont
évaluées et seules les n meilleures sont conservés (dans la version actuelle n = 9) [Koning,
1990]. Enfin, ISIS recourt à une fonction d’évaluation qui se base essentiellement sur les
fonctions d’utilité associées à chacune des préférences. Les valeurs retournées par ces
fonctions sont pondérées en fonction de l’importance relative des préférences (un poids
important est ainsi attaché à la préférence de type délais de production lorsqu’une commande
provenant d’un client important est traitée). A la fin de la recherche, la meilleure solution
parmi les n solutions courantes est retenue. Si la meilleure solution obtenue n’est pas
acceptable, elle est améliorée par une recherche en faisceau plus large. Notons que la
procédure est complétée par une allocation d’intervalles de temps définitifs à chacune des
opérations de processus de fabrication afin de minimiser l’encours de la commande.
Pour résumer, la résolution du problème passe par quatre niveaux hiérarchiques :
- le choix d’un lot qui va être ordonné en priorité ;
- le calcul des dates de début et de fin des opérations intervenant dans le lot choisi ;
- le choix des machines et des séquencements3 entre opérations ;
- la réservation effective des ressources nécessaires aux opérations.
Les décisions qui sont prises à chaque niveau sont transformées en contraintes pour le niveau
suivant. L’expérience accumulée avec le système ISIS a permis de mettre à jour certaines
faiblesses liées à la décomposition du problème d’ordonnancement selon une perspective
statique de « type commande par commande ». Nous allons présenter dans ce qui suit un autre
système : il s’agit du système OPIS qui pour a principe d’étendre cette perspective en
décomposant également le problème original en fonction des diverses ressources disponibles
[Smith & Ow, 1985].

III- OPIS : un système d’ordonnancement intelligent opportuniste

3
Le terme séquencement est employé au cas où seul l’ordre relatif des tâches (séquence) est fixé,
indépendamment des dates d’exécution. [Esquirol, 1999]

Page 23
Chapitre 2

Le système OPIS [Le Pape, 1986] ; [Le Pape, 1988] a été développé dans le but de
palier aux défaut du système ISIS. Il détermine les contraintes les plus difficiles à satisfaire et
les traite prioritairement afin d’établir le meilleur compromis entre des contraintes
antagonistes. Le développement du système OPIS a mené à la réalisation d’une architecture
de type tableau noir qui oriente dynamiquement la décomposition du problème global non
seulement selon une perspective "commande" (comme nous l’avons vu précédemment avec le
système ISIS) mais aussi selon une perspective "ressource". Cette architecture de type
blackboard s’est inspirée du système Hearsay II [Erman et al, 1980].

III-1 Les deux perspectives du système OPIS


La décomposition du problème générale selon une perspective ressource [Smith et
Ow, 1985] entraîne le regroupement de toutes les contraintes et/ou préférences centrées sur les
ressources individuelles : une ressource particulière est sélectionnée et un horaire individuel
est généré pour celle-ci. L’avantage d’une telle approche se trouve essentiellement dans la
maximisation de l’utilisation des ressources hautement sollicitées : goulots d’étranglement.
D’un autre côté, la décomposition du problème générale selon une perspective commande
permet d’identifier des compromis satisfaisants entre les contraintes et/ou préférences
centrées sur les commandes individuelles. Il s’agit de sélectionner une commande et de
générer ensuite un horaire pour cette dernière en tenant compte des décisions de ressources
pour les commandes déjà traitées (les commandes dont des ressources ont déjà été allouées
sont plus importantes que celles qui restent à traiter).
« D’une manière générale, lors de la génération d’un horaire de production, une
décomposition fondée sur les ressources sera utilisée pour les ressources de type "goulot
d’étranglement" alors qu’une décomposition fondée sur les commandes sera réservée aux
commandes jugées prioritaires.
Par ailleurs, lors de la révision d’un horaire en réponse à des événements inattendus, le
type de l’événement identifie la perspective appropriée » [Potvin, 1992]. D’autre part, ce qui
différencie le système OPIS du système ISIS est que le premier introduit une approche plus
dynamique, dite "opportuniste", lors de la décomposition du problème d’ordonnancement en
sous-problèmes de moindre complexité. En effet, cette approche s’oriente dynamiquement
vers les régions les plus prometteuses dans l’espace des états afin d’explorer les zones où le
nombre de solutions alternatives est réduit.
Néanmoins, la décomposition du problème original en des sous-problèmes de moindre
complexité ne garantit aucunement que la solution proposée à un sous-problème est

Page 24
Chapitre 2

compatible avec la solution apportée à un autre sous-problème. C’est pour cette raison que le
système OPIS est composé d’un module de contrôle assurant la supervision générale du
travail à effectuer.

III-2 Principe de fonctionnement

Pour la génération et la révision d’horaires de production, le système OPIS se base sur


une vue unifiée guidée par les conflits et est réalisée à l’aide d’une architecture de type
tableau noir [Erman et al, 1980] contenant un ensemble de modules de résolution (MR) qui
sont employés de façon sélective dans le but de générer, réviser et analyser la solution
courante. Dans le cas où des perturbations liées à l’environnement de production (un bris de
machine) ou bien résultant de l’activité des modules de résolution entraînent une
modification de l’horaire, un système de maintient de l’horaire est activé. Ce système déduit
les conséquences de chaque modification à l’aide d’un mécanisme de propagation des
contraintes et détecte tout nouveau conflit introduit dans l’horaire [Lepape et Smith, 1987].
Deux types de conflits sont détectés par le mécanisme de propagation des contraintes :
- les conflits dits d’ordonnancement surgissent lorsque le temps d’exécution de deux
opérations ne respectent plus la contrainte d’ordonnancement établie entre elles
(e.g. une contrainte d’antériorité qui stipule l’exécution d’une tâche avant l’autre) ;
- les conflits de capacité surgissent quant à eux dans le cas d’une violation de la
capacité d’une ressource (machines ou groupe de machines) du à un nombre très
élevé d’opérations devant être exécutées concurremment sur cette dernière.
Afin de mieux comprendre le principe de fonctionnement du système OPIS, nous allons
décrire dans les sections suivantes les différents modules de ce système. Ces modules
constituent l’architecture du système OPIS.

III-2-1 Le module de pilotage


Ce module est le responsable de l’appel des modules de résolutions (MRS) dans le cas
où le système détecte des conflits (réels ou potentiels) dans l’horaire. En fait, c’est ce module
qui assure la supervision générale de l’effort de résolution. A chaque fois qu’une modification
dans l’horaire de production a des implications pour la prise de décision future, un
"événement de contrôle" est généré pour lui.
Les modules de résolution se devisent en fait en deux classes : les modules d’action
(MAC) et les modules d’analyse (MAN). Chacune de ces deux modules fera l’objet d’une
section à part pour bien montrer leur rôle dans le cycle de contrôle.

Page 25
Chapitre 2

Il existe en fait deux types d’évènements de contrôle :


- un événement de type horaire-incomplet lorsqu’ il existe des opérations dont
l’horaire n’a pas encore été déterminé ;
- un événement de type conflit lorsque certaines contraintes ne sont pas respectées.
Il peut s’agir de conflit d’ordonnancement ou de conflit de capacité.

Le cycle de contrôle réalisé par le module de pilotage se déroule en quatre phases


distinctes :

1. la sélection d’un événement de contrôle : il s’agit de regrouper et de traiter les conflits


pour lesquels une ressource commune ou une commande commune est impliquée
(procédure d’agrégation). Une priorité est ensuite associée à chacun des évènements
de façon à identifier celui qui apparaît le plus important (un événement de type conflit
est plus important qu’un événement de type horaire incomplet) ;
2. ensuite l’analyse de l’événement de contrôle, à l’aide d’un module d’analyse, permet
d’étudier la flexibilité des contraintes au voisinage de l’événement retenu. Si
l’événement est de type horaire-incomplet, le module d’analyse dans ce cas est
l’Analyseur de Capacité. Par contre, si l’événement est de type conflit, le module
d’analyse est l’Analyseur de Conflit. Un rapport d’analyse est par la suite élaboré
décrivant l’état courant des contraintes.
3. une fois l’analyse de l’événement de contrôle a déterminé le module d’analyse
correspondant à l’événement en question, un ensemble de méta-règles de contrôle
permet au module de pilotage de sélectionner un module d’action afin d’orienter le
système vers une action appropriée.
4. enfin le module d’action retenu est appliqué à l’horaire de production afin de
répondre à l’événement de contrôle courant.
Il est à noter qu’au cours du cycle de contrôle, un seul événement est retenu et par
conséquent tous les autres sont éliminés. Ainsi, si aucun événement n’est généré à la suite de
l’activation du dernier module d’action, nous pouvons conclure que le cycle est achevé et que
l’horaire est complet et consistant.
Nous allons maintenant décrire les composantes de base de l’architecture de contrôle
du système OPIS.

Page 26
Chapitre 2

III-2-2 Les modules d’action (MAC)


Ces modules prennent les décisions concernant l’allocation des ressources relatives
aux différentes opérations de fabrication. Ils représentent donc les diverses alternatives de
résolution du système OPIS face aux sous-problèmes à résoudre. Notons que les MAC ne
disposent que d’une vue locale ce qui susceptible d’introduire de nouveaux conflits. On
distingue quatre modules d’action :

* le Planificateur des Commandes (PC) qui peut être soit en «Visibilité Complète»
(PC-VC) où les commandes dont l’horaire a déjà été déterminé ne peuvent pas être déplacées
(ce qui reproduit le fonctionnement du système ISIS original) ou bien en mode «Visibilité
Partielle» (PC-VP) où des commandes de moindre priorité peuvent être déplacées afin
d’obtenir plus rapidement les ressources nécessaires à la commande courante;
* le Planificateur des Ressources (PR) permet de générer ou réviser l’horaire d’une
ressource particulière (très efficace pour planifier l’horaire des goulots d’étranglement);
* le Décaleur (DD) : les temps d’exécution de certaines opérations impliqués dans le
conflit sont simplement décalées en aval afin de résoudre le problème original ;
* l’Échangeur (EE) : ce module consiste à échanger entre deux clients des produits
identiques en cours de fabrication afin de mieux satisfaire les délais de livraison.

III-2-3 Les modules d’analyse (MAN)


Ces modules ne modifient pas l’horaire courant dans le sens où ils examinent la
flexibilité des contraintes dans le voisinage des conflits tout en élaborant un rapport d’analyse
mentionnant les caractéristiques importantes de ces contraintes en rapport avec les décisions
futures à prendre.
Les modules d’analyse disponibles dans le système OPIS sont :
 l’Analyseur de Capacité (ACA) : activé à chaque fois que le système répond à un
événement de type horaire-incomplet (opérations en attente de traitement). En effet, un
ratio "demande/capacité" est calculé pour chaque ressource. Si ce ratio est supérieur à
un certain seuil, les ressources correspondantes sont reconnues comme des goulots
d’étranglement potentiels vers lesquels devra être portée l’attention du système en
sélectionnant l’action appropriée. Cette action correspond au Planificateur des
Ressources (PR) appliqué aux goulots d’étranglement (les plus sévères) effectivement
présents dans l’horaire. Dans le cas contraire, le Planificateur des Commandes (PC)
est appelé pour traiter les diverses commandes de la première à la dernière opération et

Page 27
Chapitre 2

s’intéresse aux portions comprises entre les horaires déjà construits pour les divers
goulots d’étranglement ;
 l’Analyseur de Conflit (ACO) qui est activé dans le cas d’un événement de type
conflit et permet d’évaluer les diverses caractéristiques des contraintes situées au
voisinage du conflit (en particulier leur flexibilité) où une ressource locale est
identifiée.
Dans le cas d’un conflit de capacité, cette ressource est celle qui enregistre une
demande excédentaire. Par contre, si le conflit est de type ordonnancement cette
ressource locale correspond à la ressource exécutant l’opération située en aval.
D’une manière générale, le rapport d’analyse produit par l’Analyseur de Conflit contient les
informations suivantes :
* la durée du conflit fournissant une indication sur la validité de
l’ordonnancement des opérations sur la ressource locale et si l’utilisation du décaleur
suffit à lui seul pour résoudre le problème ;
* lorsque la taille du conflit est élevée, il est nécessaire de songer une nouvelle
optimisation de l’horaire de la ressource locale ;
* la fragmentation de la ressource locale : il s’agit d’un profil d’utilisation de la
ressource au voisinage du conflit. Si la fragmentation est faible (ressource locale
hautement sollicitée), un nouvel ordonnancement sera nécessaire.
* les délais locaux en aval évaluant la flexibilité des dates de fin au plus tard
des opérations exécutées sur la ressource locale au voisinage du conflit ;
* les délais locaux en amont évaluant la flexibilité des dates de fin au plus tôt
des opérations exécutées sur la ressource locale au voisinage du conflit ;
* le retard prévu par rapport aux commandes contenant des opérations
conflictuelles. Il s’agit dans le cas de la présence d’un goulot d’étranglement de la
différence entre la date d’arrivée au plus tôt de la commande sur le premier goulot en
aval et son arrivée actuelle (qui ne tient pas compte du conflit courant). Si non, c’est la
différence entre la date de fin au plus tôt et la date limite de la livraison ;
* la présence des candidats d’un échange : si il existe des commandes où un
échange est possible, il sera très intéressant d’effectuer cet échange à condition que les
candidats retenus permettent bien de réduire l’ampleur et la sévérité du conflit (cf.
module d’action est l’Echangeur).

Page 28
Chapitre 2

III-2-4 Les méta-règles de contrôle

Un ensemble de règles de contrôle, intégrés au module de pilotage, ont été identifié dans le
but de porter une réponse adéquate aux différents conflits présents dans l’atelier. La figure 1
qui correspond à un arbre de décision illustre un ensemble de méta-règles de contrôle
différent selon la nature de chaque problème. Ainsi, le module d’action DD est activé dès que
la taille et la durée du conflit ne sont pas importantes ce qui maintient l’ordonnancement au
niveau de la ressource locale. Cependant, si la taille et la durée du conflit sont importants,
l’ordonnancement devient non valide et il faut dans ce cas voir si le conflit localisé au niveau
d’une ressource est peu fragmenté ou non afin de déterminer la nature d’optimisation à
adopter (perspective ressource ou perspective commande).

D’une façon générale, l’arbre de décision de la figure 1 explique bien la nature de la règle à
choisir face à chaque type de conflit.

Page 29
Chapitre 2

Durée du conflit, Taille du conflit

autrement petit, petit


Ordonnancement Ordonnancement
Non valide valide

Fragmentation

Perspective élevé peu élevé Perspective


Commande ressource

Retard prévu Retard prévu


Candidats à l’échange
Commande non Commande
en avance oui en retard oui, oui autrement
Opp Pas d’opp
pour EE pour EE

Taille Taille
du conflit du conflit
Candidats
à l’échange
Grand Grand
oui non Nouvel
Ordonn Petit Nouvel Petit délai en
Ordonn amont
Opp Pas d’opp délai en
Pour EE pour EE amont
grand grand

petit petit

Flexibil Peu de Flexibil Peu de


Nouvel Flexbil Nouvel Flexibil
Ordonn Nouvel Ordonn Nouvel
Ordonn Ordonn

PC-VC EE PC-VP EE EE EE PR PR PC-VP DD


PC-VP PR PR PC-VP

Caractéristique de l’horaire Implication

Figure 1 : Arbre de décision pour répondre à un conflit

Page 30
Chapitre 2

Afin de montrer l’utilité et l’intérêt de planifier l’ordre des opérations et déterminer par la
suite un horaire de production (essentiellement au niveau des goulots d’étranglement), nous
allons conclure ce travail de recherche par une présentation de quelques résultats
expérimentaux issus de quelques expériences menées lors de la résolution de problèmes réels
d’ordonnancement d’atelier.

IV- Etudes et résultats relatifs aux problèmes d’ordonnancement d’atelier

IV-1 L’étude de Ow et Smith 1988

L’étude comprenait une analyse comparative d’une version précédente du système


OPIS, ne comprenant que le Planificateur des Commandes et le Planificateur des Ressources,
avec d’une part le système ISIS et d’autre part un système classique de répartition utilisant la
règle COVERT4 [Vepsalainen, 84]. L’étude a porté sur une usine de fabrication de
composants de turbines électriques. Trente machines ont été réparties en différentes unités de
production où une unité comprend 7 machines (un goulot d’étranglement). De plus, six types
de pièces ont été considérés : chaque pièce requiert de quatre à six opérations de fabrication.
Les horaires générés étaient évalués en tenant compte des retards de livraison, de l’encours et
du nombre total de reconfigurations de machines (selon le type de pièce traité). L’étude
comparative a été menée sur un ensemble de 22 problèmes tests : 20 problèmes comportant
120 commandes et 2 problèmes comportant 85 commandes.
Ces problèmes ont été générés selon les 4 paramètres de base suivants :
1. Réception des lots de commandes (journalières, hebdomadaire…) ;
2. Nombre de commande de chaque lot ;
3. Les différents types de pièces contenus dans une commande ;
4. Les délais de production.
En fonction de la valeur de ces différents paramètres, les problèmes ont pu être
regroupés en 18 catégories distinctes (la plupart ne contenant qu’un seul problème).
Résultats
Les résultats obtenus avec le système OPIS ont montré que ce système est nettement
supérieur aux deux autres systèmes.
En premier lieu, malgré que le système ISIS a produit de bons résultats par rapport à
l’encours (étant donné sa perspective "commande"), il a enregistré de mauvais résultats quant

4
COVERTest une règle heuristique de répartition qui cherche à minimiser les coûts associés aux retards de
livraison.

Page 31
Chapitre 2

aux retards de livraison et au nombre de reconfiguration (incapacité de traiter adéquatement


les goulots d’étranglement). Alors qu’avec OPIS, il y a deux fois moins de reconfiguration de
machines, ainsi que le nombre de commandes en retard était plus faible.
Comparé avec COVERT, OPIS a permis de réduire les coûts associés aux retards dans une
proportion de plus de 25 % pour 70 % des problèmes tests et de 10% pour l’ensemble des
problèmes tests, ainsi qu’une réduction de la moyenne de l’encours de 50 % pour l’ensemble
des problèmes tests.

IV-2 Validation de l’arbre de décision


Afin de montrer la performance de l’arbre de décision de la figure 1, d’autres
expériences ont été réalisé pour la révision d’horaires de production [Potvin, 1992] . Pour cela,
une étude a été menée dans une usine de fabrication de composantes d’ordinateurs IBM situé
à Poughkeepsie, NY. Dans cette usine, il existe 11 unités de production où chaque pièce5 à
traiter demande de 12 à 30 opérations de fabrication
L’expérience menée consiste à comparer les différents modules d’action présentés dans
l’arbre de décision de la figure1 à un ensemble de stratégies de révision simples, où un
module d’action particulier est appliqué de façon inconditionnelle, quelque soit le conflit à
résoudre. Vingt six problèmes tests ont été retenus : chaque problème peut correspondre soit
à un bris de machine et/ou à la nécessité de retravailler une pièce au cours de l’exécution de
l’horaire de production. Les résultats de l’expérience sont analysés en fonction de six critères
de performance correspondant à la qualité de l’horaire et à l’importance des modifications à
l’horaire original :
* Qualité de l’horaire :
 Augmentation du retard total en minute (Retard/min) ;
 Augmentation du nombre de commandes en retard (Com Tard) ;
 Augmentation de l’encours (En Cours/ min).
* Importance des modifications à l’horaire original
 Nombre de ressources dont l’horaire a été révisé (ResChg) ;
 Nombre de commandes dont l’horaire a été révisé (ComChg) ;
 Déplacement moyen en minutes des opérations dont l’horaire a été révisé
(OpChg/min).

5
une pièce peut être traitée plus qu’une fois dans une même unité à différentes phases de son processus de
fabrication.

Page 32
Chapitre 2

Pour faire la comparaison, les valeurs des mesures de performance ont été normalisées
comme suit :

V ( i , j ,k ) − µ ( j )
Vn ( i , j , k ) =
σ (j)

µj) représente la valeur moyenne de mesure de performance sur


l’ensemble des problèmes tests et des stratégies de révision
Tels que : σj) est l’écart-type moyen de la mesure de performance j sur
l’ensemble des problèmes et des stratégies de révision ;
V(i, j, k) est la valeur de la mesure de performance j obtenue par
la stratégie de révision i appliquée au problème test k.

Ensuite, un score a été associé à chaque stratégie :


S(i, k) = ∑ w(j) vn(i, j, k)
J ∈ Mesure de perf

w(j) : poids associé à la mesure de performance j.


Les poids qui ont été utilisé dans les expériences sont les suivants :
Retard/min = 0,6
Com Tard = 0,05
En Cours/ min = 0,1
ResChg = 0,1
ComChg = 0,05
OpChg/min = 0,1

Résultats

Arbre PR PC-VP PC-VC DD Aléatoire


Moyenne -0,327 -0,205 -0,123 -0,021 0,170 0,178
Ecart-type 0,447 0,397 0,753 0,799 0,799 1,089

Tableau 1 : Performance des stratégies de révision

Le tableau 1 nous donne respectivement la moyenne et l’écart-type des valeurs S (i, k) pour
chaque stratégie i sur l’ensemble des problèmes tests k. En effet, l’action prescrite par l’arbre
de décision a produit la meilleure valeur S(i,k) pour 60 % des problèmes tests et un deuxième

Page 33
Chapitre 2

meilleur score pour 88 % des problèmes tests. Nous pouvons remarqué aussi que la stratégie
de révision basée sur l’arbre de décision est nettement supérieure à toutes les autres stratégies.
D’un autre côté, la stratégie relative à l’utilisation du décaleur affiche presque le
mauvais résultat. Nous pouvons expliquer ce résultat par le fait que le décaleur est une
stratégie de révision très simpliste et qui est souvent utilisée en pratique. Ce résultat montre
bien l’intérêt d’utiliser des stratégies de révision plus sophistiqués.
Même pour des modifications de poids associés à la mesure de performance j entre 5% et
10%, les résultats obtenus ne révèlent PAS DE MODIFICATIONS SENSIBLES. Cependant,
la performance de l’arbre de décision se dégrade pour des variations plus grandes, ce qui
suggère que cet arbre devrait pouvoir se modifier dynamiquement en fonction de l’importance
relative des différentes mesures de performance pour un contexte de production particulier.
Notons enfin que les temps d’exécution pour la majeure partie des révisions varient de 5 à 10
minutes. Ces temps sont évidemment trop lents pour permettre l’utilisation du système OPIS.
Mais cela ne remet aucunement en cause la pertinence du système puisque l’intérêt du travail
porte bien davantage sur le développement d’une nouvelle approche (ou philosophie) de
résolution qu’à la mise au point d’un système véritablement opérationnel.

Page 34
CONCLUSION
Conclusion

La programmation par contraintes a été motivée à l'origine par des problèmes concrets
difficiles avec une forte composante combinatoire. Historiquement, elle hérite de plusieurs
domaines, en particulier de l'intelligence artificielle et de la recherche opérationnelle. Son
objectif est de permettre une modélisation plus facile des problèmes en utilisant un langage
proche de l'utilisateur et en séparant clairement les phases de spécification et de réalisation.
L'idée est de réduire l'effort de programmation et de laisser l'ordinateur envisager tous les cas
induits par la modélisation pour ne retenir que ceux qui conviennent, c'est-à-dire qui satisfont
aux contraintes spécifiées.
La programmation par contraintes n'a pu se développer qu'à partir du moment où les
problèmes pouvaient être traités dans un temps raisonnable, ce qui est du en grande partie à la
puissance des machines actuelles. A partir de là, de nombreux domaines d'application se sont
intéressés à la notion de contraintes (de temps, d'espace, ... ou plus généralement de
ressources):

• les problèmes de planification et ordonnancement: planifier une production, gérer un


trafic ferroviaire, ...
• les problèmes d'affectation de ressources: établir un emploi du temps, allouer de
l'espace mémoire, affecter du personnel à des tâches, des entrepôts à des
marchandises, ...
• les problèmes d'optimisation: optimiser des placements financiers, des découpes de
bois, des routages de réseaux de télécommunication, ...

Ces différents problèmes sont désignés par le terme générique CSP (Constraint Satisfaction
Problems), et ont la particularité commune d'être fortement combinatoires: il faut envisager
un grand nombre de combinaisons avant de trouver une solution.
Par ailleurs, la théorie de la complexité fournit des outils puissants permettant de classer les
problèmes selon leur difficulté et les algorithmes selon leur efficacité. En revanche, les
méthodes de l'intelligence artificielle (IA) conduisent à la découverte d'heuristiques
fournissant des solutions approchées. Ces méthodes ont constitué la première partie de ce
rapport. Ensuite, nous avons présenté dans la seconde partie un système d’ordonnancement
d’atelier utilisant les techniques de l’intelligence artificielle et de la recherche opérationnelle
afin d’obtenir des solutions satisfaisantes à des problèmes réels rencontrés en pratique : il
s’agit du système OPIS. Ce système se situe dans le prolongement du système ISIS en
introduisant une approche plus dynamique dite « opportuniste ». Nous avons enfin terminé

Page 35
Conclusion

cette partie par la présentation de quelques résultats expérimentaux afin de montrer la


performance de la stratégie de révision basée sur l’arbre de décision comparé à d’autres
stratégies de révision simples.
Notons enfin que la plus part de recherches en Intelligence Artificielle ont traité de
l’aspect déduction (propagation de contrainte) mais bien peu se sont intéressés à la façon dont
les règles de décision pouvaient coopérer pour résoudre un problème. Ce travail de recherche
aurait pu être enrichi par l’étude d’un certains nombre de systèmes à base de connaissance,
outre que le système OPIS déjà traité, afin de montrer l’intérêt de définir une méthodologie
générale pour l’utilisation des règles de décision.

Page 36
Conclusion

BIBLIOGRAPHIE :

Bintner, J., Reingold, E.M. 1975. "Backtrack Programming Techniques", 18: 651-655.
Chen, Y. 1991. "Improving Han and Lee’s Path-Consistency Algorithm". In Proceedings of
the International Conference on Tools for AI, 346-350. Washington, D.C.: IEEE Computer
Society.
Davis E, "Constraint Propagation With Interval Label", Artficial Intelligence, Vol. 32, N°3,
pp: 281-331.
Dechter, R., Pearl, J. 1988. "Network-Based Heuristic for Constraint-Satisfaction Problrms".
Artificial Intelligence 34: 1-38.
Erman et al, 1980, "The Hearsay-II Speech-Undrstanding System: Integrating Knowledege to
Resolve Uncertainty", ACM Computing Surveys, 12(2), pp: 213-253.
Esquirol P, Lopez P, 1999, L’ordonnancement, ECONOMICA.
Fox M.S et Smith S.F, 1984, "ISIS : A Knowledge-Based System for Factory Scheduling",
Expert Systems I(1), pp : 25-49.
Freuder E, 1982. "A Sufficient Condition for Backtrack-Free Search". Journal of the ACM
29(1): 24-32.
Garey M.S et Johnson D.S , 1979, "Computers and Intrictability : A Guide to the Theory of
NP-Completeness", W.H . Freeman Company, San Fransisco.
Han.C; Lee C. H. 1988. "Comments on Mohr and Henderson’s Path-Consistency Algorithm",
Artificial Intelligence, 36: 125-130.
Koning J-L, 1990, "Un mécanisme de gestion de règles de décision antagonistes pour les
systèmes à base de connaissances", Thèse de l’Université Paul Sabatier de Toulouse.
Kumar.V, 1992, "Algorithms for Constraint-Satisfaction Problems: A Survey", Artificial
Intelligence, pp 32-44
Le Pape .C, 1986, OPIS 1 : "Un système d’Ordonnancement Opportuniste, Rapport final de
bourse INRIA", Carnegie Mellon University, 1986.
Le Pape. C, 1988, "Des Systèmes d’Ordonnancement Flexibles et Opportunistes", Thèse de
l’Université ParisXI, Orsay, Avril 1988.
Le Pape C. et Smith S.F, 1987, "Management of Temporal Constraint for Factory Scheduling,
Proceedings of AFCET", Conference on Temporal Aspects in Information Systems, C.
Rolland, M.Leonard et E Bodart (Eds), North-Holland, pp: 165-176.
Lindsay.R, Buchmnan.B, Feigenbaum.E, Lederberg.J, 1980, "The Dendral Project", McGraw
Hill.

Page 37
Conclusion

Lopez .P, 2001, "Le concept de contraintes : Propagation, Satisfaction, Programmation", GRP
– Toulouse.
Mackworth, A. K. 1977a. "Consistency in Networks of Relations". Artificial Intelligence
8(1): 99-118.
Mohr, R., Henderson, T.C. 1986. "Arc and Path Consistency Revisited". Artificial
Intelligence 28: 225-233.
Ow. P.S, SmithS.F, 1988, "Viewing Scheduling as an Opportunistic in OPIS",
Working Paper, Carnegie-Mellon University.
Paquet. S, 2003, " Problèmes de satisfaction de contraintes ", IFT-17587: Intelligence
Artificielle II
Pinson .S, 2003, "Cours d’Intelligence Artificielle", Université Paris Dauphine.
Potvin J-Y, 1992, " Une Approche de Résolution Guidée par les Contraintes et les Conflits
pour le Problème d’Ordonnancement d’Atelier ", Infor, vol 30, N°1, pp : 11-29.
Smith S.F, et Ow P.S, 1985, "The Use of Multiple Problem Decomposition in Time-
Constrained Planing Tasks", Proceedings of the Ninth International Joint Conference on
Artificial Intelligence, Los Angeles, California, pp: 1013-1015. Solnon .C, "Cours en
Intelligence Artificelle" : les CSP,1997.
Waltz, D. 1975. "Understanding Line Draxings of Scenes with Shadows". In the Psychology
of Computer Vision, ed. P.H. Winston, 19-91. Cambridge, Mass: McGraw Hill.
Wright M. et Fox M.S, 1983, SRL 1.5 User Manual, Technical Report, The Robotics
Institute, Carnegie-Mellon University.

Page 38

View publication stats

Vous aimerez peut-être aussi