net/publication/336130582
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:
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.
*****************
DEA 103
Méthodes Scientifiques de Gestion
*****************
*****************
Effectué par
Islem KHÉFACHA
Enseignantes :
Suzane Pinson
INTRODUCTION ................................................................................................... 1
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
Page 5
Chapitre1
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 :
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
• 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.
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.
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]
Pour i de 1 à n faire
fin si
fin pour
retourne A
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.
Page 9
Chapitre1
* Lorsqu’un chemin échoue, est-ce que la recherche pourrait éviter cet échec dans les
chemins suivants?
Pour i de 1 a n faire
A ← A U { Xi← Vi}
Page 10
Chapitre1
fin si
fin pour
fin pour
retourne A
source :[Solnon,1997]
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.
Page 11
Chapitre1
Rouge
X1 X2
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 toutvi, 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.
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 :
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.
Les CSP se présentent, en général, sous deux formes différentes [Koning, 1990]
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.
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.
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).
Page 19
Chapitre 2
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.
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.
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.
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].
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].
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.
Page 25
Chapitre 2
Page 26
Chapitre 2
* 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.
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
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
Fragmentation
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
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.
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
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)
Résultats
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):
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
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