Chapitre 1 Ordonnancement no-idle - INSA de Lyon

33
5 Chapitre 1 Ordonnancement no-idle Nous nous intéressons, dans ce chapitre, à la présentation des problèmes d’ordonnancement d’une manière générale et à une synthèse bibliographique portant de façon particulière sur l’ordonnancement avec la contrainte no-idle. 1. De l’ordonnancement en général 1.1. Terminologie L'ordonnancement est un champ d'investigation qui a connu un essor important ces quarante dernières années, tant par les nombreux problèmes identifiés que par l'utilisation et le développement de nombreuses techniques de résolution. Les problèmes d'ordonnancement se rencontrent souvent dans le milieu industriel. Il s'agit de répartir un ensemble de travaux sur des machines ou ateliers de production en respectant au mieux un ensemble de contraintes (technologiques, temporelles,…) et en cherchant à optimiser un ou plusieurs objectifs (cadence de production, délais, coûts,…). En informatique, on est également confronté aux problèmes d'ordonnancement pour allouer des processeurs à l'exécution des programmes. Nous citons brièvement d'autres domaines d'application des problèmes d'ordonnancement : génie civil (suivi de projets), administration (gestion du personnel, emploi du temps) ou encore toute structure automatisée. Dans un problème d'ordonnancement, quatre notions fondamentales interviennent. Ce sont les travaux (ou jobs), les ressources, les contraintes et les objectifs. Un travail (on dit aussi tâche) est défini par un ensemble d'opérations qui doivent être exécutées. Une ressource est un

Transcript of Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Page 1: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

5

Chapitre 1

Ordonnancement no-idle

Nous nous intéressons, dans ce chapitre, à la présentation des problèmes d’ordonnancement d’une manière générale et à une synthèse bibliographique portant de façon particulière sur l’ordonnancement avec la contrainte no-idle.

1. De l’ordonnancement en général

1.1. Terminologie

L'ordonnancement est un champ d'investigation qui a connu un essor important ces quarante

dernières années, tant par les nombreux problèmes identifiés que par l'utilisation et le

développement de nombreuses techniques de résolution. Les problèmes d'ordonnancement se

rencontrent souvent dans le milieu industriel. Il s'agit de répartir un ensemble de travaux sur

des machines ou ateliers de production en respectant au mieux un ensemble de contraintes

(technologiques, temporelles,…) et en cherchant à optimiser un ou plusieurs objectifs

(cadence de production, délais, coûts,…). En informatique, on est également confronté aux

problèmes d'ordonnancement pour allouer des processeurs à l'exécution des programmes.

Nous citons brièvement d'autres domaines d'application des problèmes d'ordonnancement :

génie civil (suivi de projets), administration (gestion du personnel, emploi du temps) ou

encore toute structure automatisée.

Dans un problème d'ordonnancement, quatre notions fondamentales interviennent. Ce sont les

travaux (ou jobs), les ressources, les contraintes et les objectifs. Un travail (on dit aussi tâche)

est défini par un ensemble d'opérations qui doivent être exécutées. Une ressource est un

Page 2: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

6

moyen matériel (machine) ou humain intervenant dans la réalisation d'un travail. Les

contraintes représentent les limites imposées par l'environnement ou les ressources, tandis que

les objectifs sont les critères à optimiser. La résolution d'un problème d'ordonnancement

consiste à déterminer [Gotha, 93] :

- le placement des travaux dans l’espace, c’est-à-dire sur les ressources,

- le placement des travaux dans le temps, c'est-à-dire les instants de début d'exécution de

chaque travail sur chacune des ressources qui participent à sa réalisation. Ce placement

découle de l’ordre de prise en charge des travaux par les ressources.

Pour alléger l’exposé, nous utiliserons désormais le terme "machine" pour désigner une

ressource quel qu’en soit le type.

Dans de nombreux problèmes d'ordonnancement, deux hypothèses de base sont généralement

respectées :

- A chaque instant, une machine ne peut exécuter qu'un seul travail.

- A chaque instant, un travail peut être exécuté par une machine au plus.

Cependant, il y a des problèmes d'ordonnancement plus spécifiques :

- L'ordonnancement par lots (batch), où une machine peut exécuter plusieurs travaux

simultanément.

- L'ordonnancement avec chevauchements, où les opérations d’un même travail peuvent

être en cours d'exécution sur plusieurs machines à un même instant.

Aussi, deux modes d’exécution sont possibles :

- avec préemption : l'exécution d'une opération peut être interrompue puis reprise sur une

des machines,

- sans préemption : si une opération a commencé, elle doit être menée jusqu’au bout sur la

même machine, sans interruption.

Dans ce travail, nous nous intéressons aux problèmes respectant les deux hypothèses

présentées ci-dessus, avec mode d’exécution sans préemption.

On représente souvent un ordonnancement par un diagramme de Gantt. Un tel diagramme met

en évidence l'occupation des machines par les différents travaux ainsi que les temps morts. La

figure 1.1 présente un ordonnancement pour un problème à trois machines et trois travaux.

Page 3: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

7

Figure 1.1. Exemple de diagramme de Gantt

Un ordonnancement est dit sans délai si et seulement si la séquence des opérations composant

tout travail est exécutée sur les différentes machines sans aucune mise en attente.

Un ordonnancement est dit sans temps mort (ou sans arrêt) si et seulement si aucune machine

n’est mise en attente tant que tous les travaux qui lui sont affectés ne sont pas encore traités.

Les problèmes d'ordonnancement se divisent en deux grandes catégories selon le nombre

d'opérations nécessaires à la réalisation de chaque travail. La première catégorie regroupe les

problèmes pour lesquels chaque travail nécessite une seule opération, la deuxième regroupe

ceux pour lesquels chaque travail requiert plusieurs opérations.

La première catégorie se subdivise à son tour en plusieurs types de problèmes, en fonction de

la configuration de machines considérée :

- Machine unique : tous les travaux sont appelés à être exécutés sur une même machine

[Lenstra et al., 1977], [Koulamas, 1996], [Blazewicz et al., 1997]

- Machines dédiées : plusieurs machines, chacune étant spécialisée pour l’exécution de

certains travaux.

- Machines parallèles : plusieurs machines, qui remplissent toutes les mêmes fonctions.

Dans le dernier cas, on distingue trois modèles différents de machines en fonction des

vitesses de celles-ci:

- Machines identiques : toutes les machines présentent la même vitesse d’exécution quelle

que soit le travail [Karp, 1972], [Graham, 1966].

- Machines uniformes : la vitesse d'une machine diffère d’une autre par un coefficient de

proportionnalité [Graham et al., 1979], [Labetoulle et al., 1984].

- Machines indépendantes (on dit aussi non liées) : chaque machine présente une vitesse

particulière pour chaque travail ; la durée opératoire d'un travail dépend donc du travail et

de la machine qui l'exécute [Bruno et al., 1974], [Ibarra et Kim, 1977], [Lawler et

Labetoulle, 1978].

Temps mort

J3

J2

J1

J1

J3

J2

J1

J2 J3

Ji

Affectation

Temps

Machines

Page 4: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

8

Les problèmes de la deuxième catégorie sont dits problèmes d’atelier du fait de la nécessité

du passage de chaque travail sur deux ou plusieurs machines dédiées. Ils sont généralement

spécifiés par la donnée de m machines et de n travaux composés chacun de m opérations ;

chaque opération devant être exécutée par une machine différente. Trois sous-classes de

problèmes sont alors différenciées selon le mode de passage des opérations sur les différentes

machines, à savoir :

- Open-shop : l'ordre de passage des opérations sur les machines est libre [Gonzalez et

Sahni, 1976], [Kubiak et al., 1991], [Wagneur et Sriskweather, 1993].

- Flow-shop : l'ordre de passage des opérations sur les machines est le même pour tous les

travaux [Ignall et Schrage, 1965], [Garey et al., 1976], [Dannenbring, 1977], [Gonzalez et

Johnson, 1979], [Reeves, 1995].

- Job-shop : chaque travail a un ordre propre de passage des opérations sur les machines.

[Mellor, 1966], [Blackstone et al., 1982], [Pinedo, 1995].

Un problème flow-shop est dit de permutation s'il existe une contrainte selon laquelle toutes

les machines doivent exécuter les n travaux dans le même ordre [Johnson, 1954], [Lageweg et

Lenstra, 1978], [Monma et Rinnoy Kan, 1983], [Potts et al., 1991].

A partir de ces modèles de base, d’autres modèles d'ordonnancement peuvent être définis afin

de répondre à des problèmes industriels spécifiques. Dans le cas particulier du flow-shop,

lorsque une même opération peut être exécutée par une machine disponible en plusieurs

exemplaires, on parle de flow-shop hybride.

Dans cette thèse, nous nous intéressons principalement à des problèmes flow-shop (de

permutation ou non et hybride ou non).

1.2. Classification

Pour présenter un problème d'ordonnancement, nous adoptons un formalisme issu des travaux

de Conway [Conway et al., 1967] et Rinnoy Kan [Rinnoy Kan, 1976] permettant de distinguer

les problèmes d'ordonnancement entre eux et de les classer. Tel que repris par Blazewicz dans

[Blazewicz et al., 1996], ce formalisme contient trois champs séparés par des ″slashs″ (α/β/δ).

Page 5: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

9

Le premier champ α représente l'organisation des ressources et est spécifié par la

concaténation de deux éléments : α =α1α2

o Le paramètre α1 représente la configuration de machines utilisées: (α1∈ {∅, P, Q,

R, F, O, J})

α1 = ∅ : une seule machine est utilisée.

α1 = P : plusieurs machines identiques sont disponibles. (i.e. les ressources sont

composées de machines travaillant suivant la même cadence, disposées en

parallèle et pouvant exécuter tous les travaux).

α1 = Q : plusieurs machines parallèles uniformes sont disponibles. (i.e. les

cadences des machines sont différentes (selon un facteur de proportionnalité), mais

restent indépendantes des travaux.

α1 = R : plusieurs machines indépendantes non liées sont disponibles. (i.e. les

cadences des machines sont différentes et dépendent des travaux exécutés).

α1 = F : plusieurs machines dédiées fonctionnant en flow-shop. (i.e. les travaux

sont décomposés en plusieurs opérations qui doivent être exécutées sur l'ensemble

des machines, celles-ci étant disposées en série pour un même routage).

α1 = O : plusieurs machines dédiées fonctionnant en open-shop. (i.e. les travaux

sont décomposés en plusieurs opérations qui doivent être exécutées sur l'ensemble

des machines sans restriction sur le routage des travaux).

α1 = J : plusieurs machines dédiées fonctionnant en job-shop. (i.e. les travaux sont

décomposés en plusieurs opérations qui doivent être exécutées sur l'ensemble des

machines, mais peuvent avoir des routages différents).

o Le paramètre α2 permet de préciser le nombre de machines composant l’atelier ; il

peut être égal à vide ou à un entier m. Dans le premier cas, cela signifie que le

nombre de machines est quelconque. Dans le deuxième cas, cela signifie que

l’atelier est composé de m machines (m > 0).

Le deuxième champ β représente les contraintes et les caractéristiques de l’atelier. Il est

formé de huit sous-champs, β = β1β2β3β4β5β6β7β8.

o β1 ∈ {∅, preem} permet de préciser le mode d’exécution. β1 = ∅ indique le mode

sans préemption et β1 = preem indique le mode avec préemption.

o β2 ∈ {∅, res} caractérise les ressources supplémentaires nécessaires à l'exécution

d'un travail (outils, ressources de transport). β2 = ∅ indique qu'il n'y a pas de

Page 6: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

10

ressources complémentaires. β2 = res λδρ indique la nécessité des ressources

complémentaires ; cette nécessité est détaillée par les valeurs de λ, δ et ρ.

o β3 ∈ {∅, prec, tree, chain} précise un type de précédence entre travaux, c’est-à-

dire le fait qu'un travail doit être exécuté avant un autre. La valeur ∅ indique que

les travaux sont indépendants. Les valeurs prec, tree, chain indiquent l’existence,

respectivement, d’une relation de précédence générale, d’une relation de

précédence sous forme d’arbre et d’une relation de précédence sous forme de

chaîne.

o β4 ∈ {∅, rj} décrit les dates de disponibilité (i.e. dates au plus tôt) des différents

travaux dans le système. Ces dates peuvent être identiques et égales à zéro pour

tous les travaux (β4 = ∅ ) ou différentes suivant les travaux (β4 = rj ).

o β5 ∈ {∅, pj = p, p ≤ p≤ p } détaille les durées opératoires des différents travaux.

Ces durées peuvent être fonction de la machine. Différentes restrictions peuvent

également être considérées pour simplifier certains problèmes.

β5 = ∅ : les travaux ont des durées opératoires arbitraires.

β5 = pj = p : tous les travaux ont une durée opératoire égale à p.

β5 = p ≤ p≤ p : les durées opératoires des travaux sont comprises entre p et p .

o β6 ∈ {∅, dj, d~

j} indique les éventuelles dates d'échéance (ou dates au plus tard)

des travaux.

β6 = ∅ : les travaux n'ont pas de date d'échéance.

β6 = dj : chaque travail a une date d'échéance de fin d’exécution sous peine de

pénalisation.

β6 = d~ j : chaque travail a une date d'échéance impérative (date limite) qu'il faut

absolument respecter.

o β7 ∈ {∅, s, si, sij, nwt} permet de spécifier des contraintes temporelles sur les

enchaînements de travaux. Ces contraintes sont très souvent introduites afin de

mieux représenter les problèmes réels. Il est parfois nécessaire de considérer un

temps improductif entre l'exécution de deux travaux différents sur une même

machine pour représenter les changements et les réglages d'outils. Ces temps de

Page 7: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

11

changement peuvent être constants (s), fonction du nouveau travail (si) ou bien

fonction de l'enchaînement des deux travaux (sij). Egalement, pour le cas des

industries où l'on manipule de la matière en fusion, on doit pouvoir imposer que

toutes les opérations d'un travail soient exécutées sans temps d'attente (β7 = nwt

(no-wait)). Si on a besoin de spécifier que les machines, une fois qu’elles

commencent à travailler, ne doivent pas s’arrêter qu’après avoir terminé tous les

travaux, alors β7 prend la valeur no-idle.

o Enfin, le paramètre β8 ∈ {∅, Mj} indique, dans le cas de machines parallèles, des

restrictions sur la polyvalence des machines. L'ensemble Mj représente l'ensemble

des machines capables de réaliser le travail Jj. Lorsque β8 est vide, toutes les

machines sont capables d'exécuter tous les travaux.

Le troisième champ, γ, spécifie le critère à optimiser. Les critères les plus utilisés sont :

γ = Cmax : makespan. Date de sortie du système (le dernier travail). ( Cmax = maxj Cj où

Cj est la date de fin d'exécution du travail Jj).

γ = Σ Cj (ou _

C ) : somme des dates de fin d'exécution. La date Cj peut être pondérée et un

deuxième critère pourra être défini γ = Σ wj Cj, où wj est le poids associé au travail Jj.

γ = Lmax : décalage temporel maximal. Ce critère mesure la plus grande violation des

dates d'échéance (Lmax = maxj {Lj = Cj - dj} où dj est la date de fin au plus tard).

γ = Σ Uj : somme du nombre de travaux terminés avec retard (Uj = 1 si le travail Jj est

terminé après son échéance au plus tard). Un Uj peut être pondéré et un deuxième critère

pourra être γ = Σ wj Uj, où wj est le poids associé au travail Jj.

D’une façon générale, un critère Z est dit critère régulier si, et seulement si, Z est une fonction

croissante des dates de fin des travaux. Autrement dit, si et seulement si, quelles que soient les

solutions d’ordonnancement x et y de n travaux telles que Ci(x) ≤ Ci(y), on a Z(C1(x),…,

Cn(x)) ≤ Z(C1(y),…, Cn(y)) [Carlier et Chretienne, 1988].

Un sous-ensemble d’ordonnancements est dit dominant par rapport à un critère si ce sous-

ensemble contient au moins un ordonnancement optimal relativement à ce critère.

Page 8: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

12

1.3. Complexité

Nous nous intéressons dans cette sous-section au cadre mathématique dans lequel les

problèmes peuvent être classés en problèmes faciles ou difficiles. L'objectif est, d’une part, de

clarifier certaines affirmations et, d'autre part, de justifier la démarche adoptée dans ce travail

pour spécifier la complexité de certains problèmes étudiés. Plusieurs ouvrages [Blazewicz et

al., 1996] et [Xuong, 1992] développent la théorie de la complexité.

Un problème de décision est un énoncé auquel la réponse peut être uniquement oui ou non.

Les problèmes de décision sont de deux types : les problèmes décidables et les problèmes

indécidables.

Un problème est dit indécidable s'il est impossible d'écrire un algorithme qui permet de

décider de la réponse pour tous les cas de figures.

Un problème de décision P1 est dit réductible à un autre problème de décision P2 (on note

P1αP2) s'il existe une fonction polynomiale f qui transforme chaque énoncé de P1 en un autre

énoncé de P2 de telle manière que la réponse pour P1 est oui si, et seulement, si la réponse

pour P2 est oui.

Un algorithme est dit polynomial si sa complexité temporelle est bornée par un O(p(x)) où p

est un polynôme et x est la longueur d’une instance du problème. Il est dit pseudo-polynomial

si sa complexité est bornée par un polynôme en fonction de la taille de la plus grande instance

du problème.

Un problème de décision décidable est dit NP s'il existe un algorithme polynomial qui permet

de reconnaître une instance positive de ce problème (qui a la réponse oui). Parmi les

problèmes NP, on distingue, d'une part, les problèmes Polynomiaux et, d'autre part, les

problèmes dits NP-complets :

- Un problème de décision est dit polynomial (on dit aussi appartenant à la classe P) s'il

existe un algorithme polynomial en fonction de la taille des données qui permet de le

résoudre. Un tel problème est dit facile.

- Un problème NP-complet est un problème NP tel que tout problème NP est réductible

polynomialement en ce problème.

Pour démontrer qu'un problème Q est NP-complet, il faudra montrer qu’il est de la classe NP

et qu'il existe un problème R connu pour être NP-complet tel que RαQ.

Page 9: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

13

On note aussi qu'un problème NP-complet peut être NP-complet au sens fort ou au sens

faible :

- Un problème P est dit NP-complet au sens faible s'il est NP-complet et qu'il existe un

algorithme pseudo-polynomial pour le résoudre.

- Un problème P est dit NP-complet au sens fort s'il appartient à la classe NP et qu'il existe

un problème Q connu pour être NP-complet au sens fort tel que QαP.

Ainsi, il est nécessaire de connaître les problèmes classiques connus pour être NP-complets.

Le premier problème qui a été prouvé, en 1971, comme étant un problème NP-complet au

sens fort [Cook, 1971] est le problème de satisfiabilité (SAT) qui peut être défini comme suit :

Etant donnés un ensemble de n variables booléennes x1, x2,…, xn et un ensemble de m clauses

c1, c2,…, cm (une clause est un sous-ensemble des 2n littéraux nn xxxxxx ,...,,,,...,, 2121 où ix

désigne la variable complémentaire de xi), la question posée est : « Existe-t-il une affectation

de la valeur vrai ou faux à chacune des variables xi de sorte que pour chacune des m clauses,

au moins l’un des littéraux la constituant ait la valeur vrai ? ». Dans ce qui suit, nous

présentons d'autres problèmes NP-complets dont la NP-Complétude n'a pu être démontrée que

grâce à l'existence d'un premier problème NP-complet. Ce sont les six problèmes de base

exposés par Garey et Johnson dans [Garey et Johnson, 1979] :

- 3-satisfiabilité : Etant donné un ensemble de clauses de dimension 3, construites à partir

d'un ensemble fini de variables, existe-t-il une affectation de ces variables qui satisfait

toutes les clauses ?

- Couplage de dimension 3 : Etant donné un ensemble M de triplets (M ⊆ X × Y × Z, où X,

Y et Z sont des ensembles disjoints et de même cardinalité q), existe-t-il un ensemble M’

tel que M' ⊆ M, |M'| = q et les triplets de M' sont deux à deux disjoints ?

- Recouvrement : Etant donnés un graphe G = (V, E) et un entier k, existe-t-il X ⊆ V tel que

|X| ≤ k et toute arête de G a au moins une de ses extrémités dans X ?

- Clique : Etant donnés un graphe G = (V, E) et un entier k, existe-t-il X ⊆ V tel que |X| ≥ k

et tous les sommets de X sont deux à deux adjacents ?

- Cycle Hamiltonien : Etant donné un graphe G = (V, E), existe-t-il un cycle passant une

fois et une seule par chacun des sommets de V ?

- Partition : Etant donnés n entiers positifs s1, s2,…, sn, existe-t-il un sous-ensemble J ⊆ I =

{1, 2, …, n} tel que Σi∈J si = Σi∈I\J si

Page 10: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

14

Un problème d’optimisation est un problème pour lequel la réponse à une instance est une

solution ayant une valeur optimale pour une fonction objectif définie. Il est toujours possible

de faire correspondre un problème d’optimisation à un problème de décision. Dans le cas, par

exemple, de la minimisation d’une fonction objectif, le problème de décision peut être posé de

la façon suivante : le problème admet-il une solution dont la fonction objectif, est inférieure

ou égale à un seuil défini y. De même, dans le cas de la maximisation d’une fonction objectif,

le problème de décision peut être posé de la façon suivante : le problème admet-il une

solution dont la fonction objectif est supérieure ou égale à un seuil défini y.

Il est évident que la complexité d’un problème d’optimisation est supérieure ou égale à celle

du problème de décision correspondant. Ainsi, un problème d’optimisation est dit NP-difficile

si le problème de décision qui lui correspond est NP-complet.

1.4. Méthodes classiques de résolution

Les problèmes d’ordonnancement de la classe P disposent donc d’algorithmes polynomiaux

spécifiques qui permettent de les résoudre. Pour appréhender les problèmes NP-difficiles,

différentes méthodes de résolution (exactes ou heuristiques) sont proposées dans la littérature.

Nous allons passer en revue les méthodes les plus connues en les classant en méthodes

dédiées et méthodes génériques.

1.4.1. Méthodes dédiées

Nous classons dans les méthodes dédiées les méthodes qui ont été conçues pour résoudre un

problème d’ordonnancement particulier (_

// C , max//2 CF …).

1.4.1.1. Règles de tri

Parmi les règles de tri dédiées à un problème d’ordonnancement, nous citons les deux règles :

SPT (shortest processing time) et LPT (longest processing time) qui sont très utilisées dans la

résolution d’un problème flow-shop. La première consiste à ordonner les travaux dans l’ordre

croissant de leurs durées opératoires et la seconde dans l’ordre décroissant. La règle SPT est

optimale lors de la résolution du problème _

// C [Blazewicz et al., 1996].

La règle EDD (earliest due date), qui consiste à ordonner les travaux selon l’ordre croissant de

leurs dates de début au plus tôt, est optimale pour la résolution du problème max// L

[Jackson, 1955].

Page 11: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

15

L’algorithme de Johnson est optimal pour le problème max//2 CF [Johnson, 1954]. Il

consiste à appliquer, pas à pas, la règle suivante : « si Ji et Jj sont deux travaux de durées

respectives ),( 2,1, ii pp et ),( 2,1, jj pp sur les machines 1 et 2 et si ),min(),min( 1,2,2,1, jiji pppp ≤ alors

Ji est placé avant Jj ». Cet algorithme revient à partitionner les travaux en deux ensembles : le

premier contient tous les travaux vérifiant 2,1, jj pp < et le second tous les travaux avec

2,1, jj pp > . Les restants (ayant 2,1, jj pp = ) peuvent être mis dans l’un ou l’autre. Les travaux du

premier ensemble seront ordonnés selon l’ordre croissant de 1,jp (SPT) et ceux du second

ensemble selon l’ordre décroissant de 2,jp (LPT). L’ordre total sera alors celui du premier

ensemble concaténé à celui du second.

1.4.1.2. Algorithmes de liste

Nous retrouvons l’application de la règle LPT avec FAM (first avoid machine). Celle-ci

consiste à ordonner les travaux selon LPT et à affecter chaque travail à la première machine

libre. Cette heuristique est utilisée pour résoudre le problème max// CP en O(n*log(n))

[Blazewicz et al., 1996].

La concaténation de l’algorithme de Johnson avec la règle FAM est utilisée pour résoudre le

problème flow-shop hybride à deux étages.

Les travaux de Johnson ont été étendus d’une manière différente aux problèmes

d’ordonnancement de type flow-shop de permutation à m machines. Campbell, Dudek et

Smith, dans [Campbell et al., 1970], fournissent une solution approchée (algorithme CDS) au

problème max// CF , en étendant le comportement de l’algorithme de Johnson. En effet, ils

créent m-1 sous-problèmes effectifs à deux machines Mk,Mk+1 (la durée opératoire d’un travail

sur la machine Mk sera la somme de ses durées opératoires sur les machines M1.. Mk, et sur

Mk+1 la somme de ses durées opératoires sur les machines allant de Mk+1 à Mm) qu’ils

résolvent à l’aide de l’algorithme de Johnson et retiennent ensuite le meilleur ordonnancement

parmi les m-1 comme solution du problème originel. Cette heuristique s’est révélée

extrêmement fiable.

1.4.1.3. Autres méthodes

Les problèmes d’ordonnancement sur machines parallèles recouvrent un ensemble de

problèmes de gestion de production très vaste. L’une des méthodes de résolution élaborées

Page 12: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

16

pour appréhender de tels problèmes est celle de Bruno [Bruno et al., 1974] qui résout

optimalement le problème _

// CQ . En définissant une matrice de coûts machine-ordre/travaux,

l’auteur modélise le problème d’ordonnancement sur machines parallèles uniformes sous la

forme du problème d’affectation suivant :

- Les variables de décision sont x(i, j, k) (x(i, j, k) qui vaut 1 si le travail Ji est affecté à la

machine Mj, k places avant la fin).

- L’objectif est de minimiser ∑ ∑ ∑=i j k

jipkkjixz ,**),,( où pi, j est la durée opératoire du

travail Ji sur la machine Mj, sous les contraintes :

∑=

≤n

ikjix

11),,( ∀j, k

∑ ∑= =

=m

j

n

kkjix

1 11),,( ∀i

L’auteur propose ensuite de résoudre ce problème par la méthode hongroise [Kuhn, 1955]

(connue pour les problèmes d’affectation) qui offre une solution à temps polynomial ; la

solution est en fait recherchée pour le problème dual.

Nous pouvons aussi citer les travaux de [Taillard, 1990] et [Widmem et Hertz, 1989].

1.4.2. Méthodes génériques

Contrairement aux méthodes dédiées qui ont été concues pour des problèmes spécifiques, les

méthodes génériques proposent des approches de résolution qui sont applicables de façon

générale et beaucoup plus ouverte. Ces méthodes sont classées en méthodes exactes,

méthodes heuristiques constructives et méthodes heuristiques amélioratrices.

1.4.2.1. Méthodes exactes

Les trois familles de méthodes exactes sont : la programmation dynamique, la méthode de

séparation et évaluation (Branch and Bound) et la résolution à partir d'une modélisation

analytique. Ces méthodes se caractérisent par un temps de calcul exponentiel, ce qui explique

qu'elles ne sont utilisables que sur des problèmes de petite taille.

1.4.2.1.1. Programmation dynamique

Dans cette famille, un problème de dimension n est décomposé en n problèmes de dimension

1. Le système est constitué de n étapes que l'on résout séquentiellement, le passage d'une

Page 13: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

17

étape à une autre se fait à partir des lois d'évolution du système et d'une décision [Chevalier,

1977].

Cette méthode a été introduite par Bellmann [Bellmann, 1957]. Son principe d'optimalité est

basé sur l'existence d'une équation récursive permettant de décrire la valeur optimale du

critère à une étape donnée en fonction de sa valeur à l'étape précédente. Ainsi, pour appliquer

la programmation dynamique à un problème combinatoire, le calcul du critère pour un sous-

ensemble de taille k nécessite la connaissance de ce critère pour chaque sous-ensemble de

taille k-1, ce qui porte le nombre de sous-ensembles considérés à 2n (où n est le nombre

d'éléments considérés dans le problème), d’où sa complexité exponentielle. Pourtant, pour les

problèmes NP-difficiles au sens faible, il est souvent possible de construire un algorithme de

programmation dynamique pseudo-polynomial, pouvant être utilisé pour des problèmes de

dimension raisonnable.

1.4.2.1.2. Méthode de séparation et évaluation

Cette méthode est basée sur une énumération implicite et intelligente de l'ensemble des

solutions réalisables. La séparation consiste à décomposer l’ensemble des solutions en

plusieurs sous-ensembles qui sont décomposés à leur tour selon une démarche itérative. Ce

processus peut se visualiser sous la forme d'un arbre d'énumération ; les nœuds de l’arbre

correspondent aux sous-ensembles et les feuilles correspondent à des solutions réalisables.

Pour accélérer la recherche de la solution optimale en évitant l’exploration inutile de certains

nœuds, on utilise une procédure d’évaluation qui calcule, à chaque niveau de l’arbre, la valeur

de chaque nœud et permet ainsi de décider du nœud (sous-ensemble) à développer

(décomposer). Par exemple, dans le cas d’un problème de minimisation, cela revient à

calculer la borne inférieure pour tous les nœuds fils du niveau considéré et la descente dans

l’arbre est poursuivie avec le nœud donnant la borne inférieure. Par ailleurs, une borne

supérieure de la solution optimale est calculée et est utilisée pour éviter l'exploration de

nœuds dont la valeur de la borne inférieure est supérieure à la valeur de la borne supérieure

(certaines branches vont être élaguées). Cette borne supérieure est réactualisée lorsqu'une

solution réalisable de valeur inférieure est atteinte.

Enfin, des remontées et descentes par d’autres nœuds de l’arbre sont effectuées tant que la

borne calculée est inférieure ou égale à la valeur actualisée de la borne supérieure.

Ainsi, l'exploration de certaines branches de l'arbre est évitée, ce qui permet de ne pas

énumérer toutes les solutions réalisables. Il faut donc souligner que l'efficacité de la méthode

Page 14: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

18

(en termes du nombre de nœuds explorés) est déterminée par la qualité de la borne initiale par

la procédure d’évaluation considérée.

1.4.2.1.3. Modélisation analytique et résolution

La modélisation analytique d'un problème permet, non seulement de mettre en évidence

l'objectif et les différentes contraintes du problème, mais également de le résoudre. L'idéal est

de modéliser le problème sous la forme d’un programme linéaire dont les variables sont

réelles. Dans ce cas, il existe un bon nombre de solveurs permettant de le résoudre. Dès que

le problème comporte des coûts fixes ou des décisions nécessitant l'utilisation de variables

entières, les modèles deviennent beaucoup plus difficiles à résoudre. Il en est de même

lorsque le modèle n'est pas linéaire, mais quadratique par exemple.

Actuellement, plusieurs langages de modélisation existent tels que AMPL, GAMS, LINGO,

MPL. Ils permettent d'écrire les programmes linéaires de façon formelle, proche de l'écriture

mathématique ; lesquels programmes peuvent être exécutés par des solveurs tels que CPLEX,

OSL, XPRESS (selon le langage utilisé). Malheureusement, tous les problèmes ne peuvent

être résolus par cette approche car la résolution de programmes linéaires avec des variables

entières, par exemple, demande souvent beaucoup trop de temps de calcul.

1.4.2.2. Méthodes heuristiques constructives

Pour des problèmes NP-difficiles de grande taille, les méthodes exactes sont peu

envisageables à cause de leur temps de calcul. Il est alors possible d'utiliser des méthodes

approximatives qui donnent des solutions certes sous-optimales, mais en un temps de calcul

raisonnable. La performance de telles méthodes est généralement calculée par le rapport entre

la valeur de la solution fournie et la valeur de la solution optimale, ceci pour le pire des cas ou

dans le cadre d’une moyenne de plusieurs instances. Si la solution optimale est non

calculable, il est également possible d'étudier expérimentalement le comportement de

l'heuristique en comparant ses performances soit à celles d'autres heuristiques, soit à des

bornes inférieures de la solution optimale.

Ces méthodes par construction progressive sont, en définitive, des méthodes itératives où, à

chaque itération, une solution partielle est complétée. La plupart de ces méthodes sont des

algorithmes gloutons car elles considèrent les éléments (travaux ou processeurs) dans un

Page 15: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

19

certain ordre sans jamais remettre en question un choix une fois qu'il a été effectué. De

principe très simple, ces méthodes permettent de trouver une solution très rapidement.

Un premier type de telles méthodes consiste, dans une première phase, à calculer une liste qui

donnera l'ordre de prise en compte des éléments. Cette liste construite à priori, à partir d'un

critère bien défini, n'est plus remise en cause au cours de l'ordonnancement. La deuxième

phase de l'algorithme se réduit à considérer les éléments (travaux ou processeurs) dans l'ordre

de la liste pour construire l'ordonnancement.

Un deuxième type de méthode consiste à choisir, au cours de la construction, l'affectation d'un

travail à une machine en utilisant des règles de priorité. Ces méthodes peuvent également être

vues comme des méthodes sérielles dynamiques où les listes sont reconstruites à chaque

étape, selon un critère qui peut évoluer dans le temps (le nombre de travaux disponibles, par

exemple). Notons que si le choix du travail à ajouter est guidé par l'application d'un théorème

de dominance, cela permet de prouver l’optimalité d’une solution si certaines hypothèses sont

vérifiées [Pinedo, 1995]. Une revue détaillée des règles classiques couramment utilisées en

ordonnancement est proposée par Panwalker et Iskander dans [Panwalker et Iskander, 1977].

Pour chaque problème, de nombreuses règles ont été développées et les articles présentant ces

règles sont passés en revue.

1.4.2.3. Méthodes amélioratrices

Ces méthodes sont initialisées par une solution réalisable, calculée soit aléatoirement soit à

l'aide de l'une des heuristiques constructives exposées précédemment. Elles recherchent, à

chaque itération, une amélioration de la solution courante par des modifications locales. Cet

examen se poursuit jusqu'à ce qu'un critère d'arrêt soit satisfait. L'utilisation de ces

heuristiques itératives suppose que l'on puisse définir, pour toute solution S, un voisinage de

solution, N(S), contenant les solutions voisines (proches dans un certain sens). En général, le

voisinage d'une solution est généré en appliquant, plusieurs fois et de façon différente, une

petite transformation (échange de travaux par exemple). Ce voisinage est ensuite évalué et

comparé à la solution courante,…. Nous présentons ci-dessous les méthodes amélioratrices les

plus connues.

1.4.2.3.1. Méthode de descente

Cette méthode se caractérise par le fait qu’elle ne considère, à chaque itération, que des

solutions évoluant dans le sens de l’amélioration.

Page 16: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

20

Cette méthode ne conduit pas, en général, au minium absolu mais seulement à un minimum

local qui constitue la meilleure des solutions accessibles compte tenu de la solution initiale.

Pour améliorer l’efficacité, on peut évidemment l’appliquer plusieurs fois, avec des conditions

initiales différentes et retenir comme solution finale le meilleur des minimums locaux

obtenus ; cependant, cette procédure augmente sensiblement le temps de calcul de

l’algorithme et ne garantit pas de trouver la configuration optimale. Une autre idée pour

surmonter l’obstacle des minimums locaux consiste à autoriser, de temps en temps, des

mouvements de remontée lors du changement de la configuration courante tel que adopté par

la méthode du recuit simulé ou tabou.

La méthode d'échange de type r-optimal en est l’exemple type. Cette méthode d'optimisation

a été initialement proposée par Lin [Lin, 1965] pour résoudre le problème du voyageur de

commerce, mais elle s'applique également à tout problème combinatoire dont la solution

consiste en une permutation de r éléments parmi n.

Le terme r-optimal indique qu'une solution ne peut plus être améliorée en échangeant au plus

r éléments. La méthode consiste donc à sélectionner r éléments et à voir si, en les

interchangeant, on obtient une meilleure solution. Nous remarquons qu'une solution n-

optimale est une solution optimale (pour un problème de taille n). Ainsi, plus r augmente, plus

on se rapproche de la solution optimale, mais plus les calculs sont difficiles. En pratique, on

se limite à r = 2 ou 3.

1.4.2.3.2. Recuit simulé

Cette méthode est due aux physiciens Kirkpatrick, Gelatt et Vecchi [Kirkpatrick et al., 1983].

Elle s'inspire des méthodes de simulation de Métropolis en mécanique statistique définies

durant les années 50.

L'analogie historique s'inspire du recuit des métaux en métallurgie : un métal refroidi trop vite

présente de nombreux défauts microscopiques, c'est l'équivalent d'un optimum local pour un

problème d'optimisation combinatoire. Si on le refroidit lentement, les atomes se réarrangent,

les défauts disparaissent et le métal a alors une structure très ordonnée, équivalent à un

optimum global. Pour modifier l’état d’un matériau, le physicien dispose d’un paramètre de

commande : la température. Le recuit est précisément une stratégie de contrôle de la

température afin d’avoir un système physique dans un état de basse énergie.

Page 17: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

21

L’algorithme s’appuie sur ces deux résultats de la physique statistique :

- D’une part, lorsque l’équilibre thermodynamique est atteint à une température donnée, T,

la probabilité, pour un système physique, de posséder une énergie donnée E, est

exp(-E/Kb T) où Kb est la constante de Boltzmann.

- D’autre part, pour simuler l’évolution d’un système physique vers son équilibre

thermodynamique à une température donnée T, on peut utiliser l’algorithme de

Metropolis : partant d’une configuration donnée, on fait subir au système une modification

élémentaire ; si cette transformation a pour effet de diminuer la fonction objectif (ou

énergie) du système, elle est acceptée ; si elle provoque au contraire une augmentation de

l’énergie ∆E de la fonction objectif, elle est acceptée tout de même avec la probabilité

exp(-∆E/T) (en pratique, cette condition est réalisée en tirant au hasard un nombre compris

entre 0 et 1, et on accepte la configuration dégradant la fonction objectif de la qualité ∆E

si le nombre tiré est inférieur à exp(-∆E/T)). On répète ce processus jusqu’à ce que le

système soit figé : la température a atteint la valeur nulle, ou bien plus aucun mouvement

de remontée du coût n’a été accepté.

Les inconvénients du recuit simulé résident, d’une part, dans les ″réglages″, comme la gestion

de la décroissance par paliers de la température ; de bons réglages relèvent souvent du savoir-

faire de l’ingénieur. D’autre part, les temps de calcul peuvent devenir selon les cas très

importants. Par contre, les méthodes de recuit simulé ont l’avantage d’être souples et

rapidement implémentables lorsque l’on veut résoudre des problèmes d’optimisation

combinatoire, le plus souvent de grande taille. Cette méthode a l’intérêt d’admettre une

preuve de la convergence. Ainsi, lorsque certaines conditions sont vérifiées, on a la garantie

d'obtenir la solution optimale.

1.4.2.3.3. Recherche tabou

Cette méthode, dont l'origine remonte à 1977 [Glover, 1977], a été formalisée en 1986 par

Glover [Glover, 1986]. La principale particularité de la méthode tient dans la mise en œuvre

de mécanismes inspirés de la mémoire humaine dont le but est de tirer les leçons du passé.

Le principe de base de la méthode tabou est simple. A partir d’une solution initiale

quelconque, la méthode tabou engendre une succession de solutions ou configurations qui doit

Page 18: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

22

aboutir à une solution optimale. A chaque itération, le mécanisme de passage d’une

configuration (s) à la suivante (t) est le suivant :

- On construit l’ensemble de voisins de s, c’est-à-dire l’ensemble des configurations

accessibles en un seul mouvement élémentaire à partir de s ; soit V(s) l’ensemble de ces

voisins.

- On évalue la fonction objectif f du problème pour chacune des configurations appartenant

à V(s). La configuration t, qui succède s dans la chaîne construite par tabou, est la

configuration de V(s) pour laquelle f prend la valeur minimale.

Cependant, telle quelle, la procédure ne fonctionne généralement pas, car il y a un risque

important de retourner à une configuration déjà retenue lors d’une itération précédente, ce qui

provoque un cyclage. Pour éviter ce phénomène, qui concerne plutôt des configurations peu

éloignées (au sens du nombre de mouvements), on tient à jour, à chaque itération, une ″liste

tabou″ de mouvements interdits ; cette liste circulaire contient m mouvements inverses (t s).

La recherche du successeur de la configuration courante se restreint alors aux voisins de s qui

peuvent être atteints sans utiliser de mouvement de la liste tabou. La procédure est stoppée

dès qu’on a effectué un nombre donné d’itérations sans améliorer la meilleure solution

courante.

Des versions plus élaborées, permettant des recherches plus efficaces, ont été proposées par la

suite [Glover, 1989], [Glover, 1990]. Cette méthode donne de très bons résultats pratiques,

malgré l'inexistence de résultats théoriques garantissant la convergence de l'algorithme vers la

solution optimale.

1.4.2.3.4. Algorithmes génétiques

Les algorithmes génétiques sont des techniques de recherche inspirées de l’évolution

biologique des espèces et basées sur une imitation des phénomènes d’adaptation des êtres

vivants. L'application de ces algorithmes aux problèmes d'optimisation a été formalisée par

Goldberg [Goldberg, 1989].

On part d'une population (ensemble de solutions) initiale sur laquelle des opérations de

reproduction (de croisement ou de mutation) vont être réalisées dans l'objectif d'exploiter au

mieux les caractéristiques et les propriétés de cette population. Un algorithme génétique

consiste à faire évoluer progressivement, par générations successives, la composition de cette

population, en maintenant sa taille constante : d’une génération à la suivante, la compétence

de la population doit globalement s’améliorer. Les opérations de reproduction doivent mener

à une amélioration de l'ensemble de la population puisque les bonnes solutions sont

Page 19: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

23

encouragées à échanger par croisement leurs caractéristiques et à engendrer des solutions

encore meilleures. Toutefois, des solutions de très mauvaise qualité peuvent aussi apparaître

et permettent d'éviter de tomber trop rapidement dans un optimum local. En effet, dans la

phase de reproduction, les individus les plus compétents ont une probabilité de sélection plus

élevée. Cependant, les descendants n’éliminent pas leurs parents, qui demeurent dans la

population courante.

Les difficultés pour appliquer les algorithmes génétiques résident dans le besoin de coder les

solutions et de fixer les valeurs des différents paramètres (taille de la population, coefficients

de reproduction, probabilité de mutation,…). De plus, ces algorithmes demandent un effort de

calcul très important.

2. Etat de l'art sur les problèmes d'ordonnancement no-idle Selon la classification retenue ([Blazewicz et al., 1996], [Rinnoy et Kan, 1976]), max//CF

est un problème d'ordonnancement avec :

- un ensemble de machines, linéairement ordonné (une ligne de production),

- un ensemble de travaux à ordonner sur ces machines (où, pour chaque travail,

exactement une opération est à exécuter sur chaque machine),

- le critère à optimiser est la date d'achèvement du dernier travail sur la dernière

machine.

En matière d’ordonnancement de production, ce problème est le plus étudié dans la littérature.

Johnson, dans [Johnson, 1954], a établi une règle qui prouve l'aspect polynomial pour un

problème flow-shop de permutation à deux machines. Plusieurs recherches se sont intéressées

depuis à l’étude des flow-shops de permutation et flow-shops simples, tels que les travaux de

[Campbell et al., 1970], [Dannenbring, 1977], [Taillard, 1990], et [Widmem et Hertz, 1989].

Ultérieurement, des contraintes additionnelles ont été introduites. La contrainte sans délai

(no-wait) exprime qu'aucune attente entre deux opérations d'un même travail n’est permise.

La contrainte de blocage exprime qu'un travail ne doit libérer une machine que pour passer

directement sur la machine suivante. Finalement, la contrainte sans arrêt (no-idle) exprime le

fait qu'aucun temps mort n’est permis sur une machine entre le début de son activation et la

fin de la réalisation des opérations qui lui sont affectées.

Page 20: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

24

Le modèle de contrainte no-idle a été proposé pour deux situations industrielles différentes :

quand le système de production lui même le nécessite (travail continu, système de

chauffage,…) ou pour des considérations économiques (gestion de la main d’œuvre).

Les critères d’optimisation considérés sont de trois types :

- Délai : c’est la date d’échéance. Il s’agit généralement d’un critère à respecter

absolument ou à minimiser en dépit de ses implications sur les autres critères.

- Qualité : dans sa nouvelle définition, ″la qualité″ couvre diverses dimensions :

technique, humaine, service aux clients, économique et de management ; cette

dernière dimension consiste à définir des stratégies optimisant et harmonisant les

actions à conduire dans les autres dimensions pré-citées.

- Coût : l’optimisation de ce critère s’accommode d’un compromis sur des

optimisations d’autres critères et ce dans le but de minimiser une sommation

globale.

Ainsi, le coût d’un ordonnancement peut être mesuré aussi bien en durée d’exécution totale ou

en sommation de coûts directs de production (main d’œuvre, transport, changement

d’outils,…). La minimisation du coût peut être affectée de la contrainte no-idle pouvant être

introduite, par exemple, dans le cas de l’étude d’une fonderie où les machines ne doivent pas

s’arrêter afin que la coulée de fonte ne se solidifie pas. Un autre cas de figure sera la

minimisation du coût associé à la main d’œuvre. Ce coût est fixé par les durées opératoires et

par les temps morts pendant lesquels un opérateur ne fait rien, se déplace d’une ressource à

une autre, ou est en charge de plusieurs machines. Il sera alors intéressant d’éliminer ces

temps morts afin de réduire le coût total.

Dans cette thèse, nous nous intéressons au cas particulier de l’ordonnancement avec la

contrainte no-idle. Ce problème est peu étudié dans la littérature. Dans les sous-sections qui

suivent, nous définissons ce problème et nous présentons un résumé des principaux travaux.

2.1. Présentation du problème flow-shop avec contrainte no-idle

La solution d'un problème flow-shop avec contrainte no-idle consiste à ordonner n travaux

(J1, J2, .., Jn) sur m machines (M1, M2, .., Mm) de sorte à minimiser un critère donné tout en

s’interdisant des temps d’arrêt sur les machines. Un travail Ji (pour i = 1 .. n) possède au plus

m opérations (Oi,1, Oi,2, ..Oi,m). Chaque opération Oi,r doit être exécutée sur la machine Mr sans

interruption durant pi,r unités de temps. Ces temps sont fixes et positifs ou nuls (une valeur

nulle de pi,r signifie que le travail Ji n’a pas d’opération à exécuter sur la machine Mr). Deux

Page 21: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

25

opérations d'un même travail ne peuvent pas être exécutées simultanément, chaque machine

exécute au plus un travail à un instant donné, et chaque travail doit être exécuté au plus une

fois sur les machines qu’il requiert en suivant l'ordre 1, 2, …, m. Dans le cas particulier d’un

flow-shop de permutation, la séquence des travaux doit être la même sur toutes les machines.

Dans la suite de la thèse, nous nous situons dans ce cadre avec contrainte no-idle que nous

désignons par max// CidlenoF − .

Figure 1.2. Flow-shop sans contrainte no-idle

Figure 1.3. Flow-shop avec contrainte no-idle

Les figures 1.2 et 1.3 présentent respectivement un ordonnancement dans le cas d'un flow-

shop simple et dans le cas d'un flow-shop où aucun temps mort n’est permis.

2.2. Travaux antérieurs

Nous présentons ici en revue les principaux travaux ayant traité le problème de

l’ordonnancement avec contrainte no-idle. Il s’avère que le problème particulier du flow-shop

de permutation avec contrainte no-idle est peu étudié dans la littérature. Baptiste et Hguny

sont les seuls à avoir traité le problème max// CidlenoF − [Baptiste et Hguny, 1997].

2.2.1. Travaux de Narasimhan et Panwalkar

Partant de l’étude d’un système de production de câbles, Narasimhan et Panwalker

[Narasimhan et Panwalker, 1984] proposent l'heuristique CMD (Cumulative Minimum

Deviation) pour un flow-shop hybride à deux étages, ayant pour objectif de minimiser la

J1 J2 J3

J1 J2 J3

J1 J2 J3

Affectation Ji

Temps mort

5 10 15 20 25 30

M2

M1

M3

M1 J1 J2 J3

J1 J2 J3

J1 J2 J3

Affectation Ji

Temps mort

5 10 15 20 25 30

M2

M3

Page 22: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

26

somme des temps morts et des temps d’attente des travaux au deuxième étage, avec une

répartition des travaux au deuxième étage (problème noté FH2,(1,Q2)| split(2) | somme des

temps morts + temps d’attente des travaux au deuxième étage). Au premier étage, il y a une

seule machine qui fonctionne suffisamment rapidement pour qu'il n'y ait pas d'attente au

deuxième étage. De plus )2(

2,

)2(

1,

)1( *6.0*4.0 iii ppp += (où )(kip désigne la durée d’exécution du

travail i à l’étage k et )2(, jip désigne la durée d’exécution du travail i sur la machine j du

deuxième étage). Les auteurs ont appliqué et comparé SPT, LPT, MD (Medium Deviation) et

CMD. Pour cela, ils ont défini les quantités )1()2(

1, iii pp −=∆ et )1()2(

2, iii pp −=λ . Les règles SPT

et LPT sont appliquées sur les durées opératoires au premier étage. S'il y a indétermination

alors les travaux sont classés par ii λ+∆ croissant. La règle MD consiste à classer les

travaux par ii λ+∆ croissant. S'il y a indétermination pour la ième position alors on choisit

le travail Jh tel que 0]1[ ≥+∆ −ih λ . Enfin, la règle CMD place à la ième position le travail

qui minimise la quantité ajoutée à Z, où Z = temps d'inactivité + temps d’attente des travaux

au deuxième étage. S'il y a indétermination, on applique la même règle que dans MD ; CMD

s’est révélée la meilleure. En 1987, les auteurs généralisent la règle CMD, notée GCMD, pour

un problème de flow-shop hybride avec un nombre de machines différent de 1 au premier

étage et supérieur ou égal à 1 au deuxième étage [Narasimhan et Mangiameli, 1987].

Kadipasaoylu, Xiang et Khunawola [Kadipasaoylu et al., 1997] ont repris ces travaux, d'une

part, en rajoutant l'étude de deux règles économiques de séquencement (valeur ajoutée au

travail) dans le cas statique et, d'autre part, en effectuant une étude supplémentaire dans le cas

dynamique lorsque les travaux disposent de dates de fin souhaitées. Ils ont montré en outre

l'équivalence des règles SPT et MD dans les travaux originels en raison des conditions

d'expérimentation. Les ordonnancements sont évalués d'après de nombreux critères de

performances classiques. Dans le cas statique, les auteurs confirment le bon comportement de

GCMD, ils mettent en évidence qu'une minimisation des temps morts des machines et des

temps d'attente des travaux ne conduit pas nécessairement à une réduction de la durée totale et

ils montrent que les règles économiques de séquencement ont aussi un bon comportement.

Dans le cas dynamique, d'autres règles sont ajoutées pour tenir compte des dates échues des

travaux. L'étude montre un bon comportement global induit par les règles ajoutées alors que

GCMD se révèle beaucoup plus fragile que dans le premier cas. Les règles économiques ainsi

que SPT ne produisent pas de bons résultats vis-à-vis des retards. Dans tous les cas, LPT est

peu performante.

Page 23: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

27

2.2.2. Travaux de King et Spachis

Une première partie des travaux publiés dans [King et Spachis, 1980] s’intéresse au problème

général du flow-shop de permutation. Les auteurs proposent cinq heuristiques basées sur des

considérations de réduction des temps morts entre les travaux, dont LWBJD (Least Weighted

Between-Jobs Delay) qui révèle des techniques de couplage assorti. La seconde partie

concerne les problèmes max// CwaitnoF − .

Bien que s’agissant des problèmes max// CF , il nous a paru utile de nous attarder ici sur

l’algorithme LWBJD dans la mesure où, pour minimiser le makespan, les auteurs introduisent

la minimisation des temps morts entre les travaux. Les auteurs montrent que plus ces temps

apparaissent tardivement dans la séquence et plus ils sont indésirables. L’idée est de les

pondérer afin de pénaliser les plus tardifs. Les tests effectués ont porté sur des jeux générés

pour des problèmes de taille 10*4, 20*5, 35*5 (nombre de travaux * nombre de machines),

selon des distributions de ERLANG.

Nous proposons ici une version simplifiée de LWBJD [Grununberger et Souedet, 1989].

LWBJD repose sur le calcul de la somme totale des temps d'attente entre deux travaux sur les

différentes machines. Considérons l’exemple du problème de taille 3*3 représenté par la

figure 1.4.

M1

M2

M3

Figure 1.4. Diagramme de Gantt d’un ordonnancement flow-shop

pi,j désigne la durée opératoire du travail Ji sur la machine Mj et Ek désigne le temps d’attente,

entre le travail Ji et le travail Jj, sur la machine Mk+1.

Le temps total d'attente entre le travail J1 et le travail J2 est calculé par l’expression pondérée :

212,1 *2 EED += avec 211,21 ,ppE −= , et 3,12,212 ppEE −+=

En généralisant à m machines, le temps total d’attente entre le travail Ji et le travail Jj se

calcule par l’expression pondérée :

∑−

=

=1

1, *

m

kkji EkD , avec 00 =E et 1,,1,0max( +− −+= kikjkk ppEE ),

pour k = 1.. m-1, et Di, i = HV (une grande valeur).

p1,1 p2,1 p3,1

p1,2 p2,2 p3,2

p1,3 p3,3 p2,3

E1

E2

Page 24: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

28

Nous présentons dans ce qui suit l’algorithme LWBJD ainsi qu’un exemple illustratif.

Algorithme LWBJD :

0. lire les données

1. calcul de la matrice des Di,j pour i, j = 1 .. n.

2. soit (P*, Q*) = (P, Q) / DP,Q = mini,j Di,j

*)*,( QPO = et HVD Pi =*, , pour i = 1 .. n.

3. soit (Q*, R*) = (Q*,R) / DQ*,R = minj DQ*,j

O = O || R* et HVD Qi =*, , pour i = 1 .. n.

4. Q* = R* et on recommence à l'étape 3 jusqu'à ce que le nombre k de travaux constituant la

séquence O soit égal au nombre total de travaux à ordonnancer.

5. Edition des résultats.

Exemple 1.1. Soient les durées opératoires du problème flow-shop de la table 1.1 définies sur

trois machines et quatre travaux.

M1 M2 M3

J1 10 5 3

J2 8 2 9

J3 1 1 10

J4 3 12 4

Table 1.1. Problème flow-shop

Appliquons l’algorithme LWBJD au problème flow-shop décrit par la table 1.1 :

- Le pas 1 conduit à la construction de la matrice Di,j donnée par table 1.2.

1 2 3 4

1 HV 7 0 18

2 16 HV 0 8

3 17 7 HV 10

4 2 0 0 HV

Table 1.2. Première évaluation

Page 25: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

29

- Au pas 2 :

• En commençant par J1, si J2 suit on a (7), si J3 suit on a (0), si J4 suit on a

(18).

• En commençant par J2, si J1 suit on a (16), si J3 suit on a (0), si J4 suit on a

(8).

• En commençant par J3, si J1 suit on a (17), si J2 suit on a (7), si J4 suit on a

(10).

• En commençant par J4, si J1 suit on a (2), si J2 suit on a (0), si J3 suit on a

(0).

On peut retenir le minimum (P*, Q*) = (1, 3). On a alors O = (1, 3) et Di,1= HV pour i = 1...

n ; d’où l’on construit la nouvelle matrice Di,j donnée par table 1.3.

1 2 3 4

1 HV 7 0 18

2 HV HV 0 8

3 HV 7 HV 10

4 HV 0 0 HV

Table 1.3. Deuxième évaluation

- Au pas 3, on retient le minimum : (3, R*) = (3, 2). On a alors O = (1, 3, 2) et Di,3= HV

pour i = 1… n ; d’où l’on construit la matrice Di,j donnée par table 1.4.

1 2 3 4

1 HV 7 HV 18

2 HV HV HV 8

3 HV 7 HV 10

4 HV 0 HV HV

Table 1.4. Troisième évaluation

- Au pas 4, on retient le minimum : (2, R*) = (2, 4). On a alors O = (1, 3, 2, 4) et Di,2=

HV pour i = 1… n.

Page 26: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

30

Le nombre de travaux constituant la séquence O ayant atteint le nombre total des travaux à

ordonnancer, il ne reste plus qu’à éditer le résultat. Pour l’ordonnancement obtenu, O = (1, 3,

2, 4), le maxC est égal à 41.

Une amélioration de cet algorithme est donnée par Pigassou et Partant [Pigassou et Partant,

1992] en proposant, pour le calcul du temps mort entre le travail Jk et le travail Jl sur la

machine Mr, la formule :

⎭⎬⎫

⎩⎨⎧ −++= ∑∑

=

−−

=

r

jjkrrl

r

jjkr pEppE

1,11,

1

1, )(,0max

{ }rkrrl pEp ,11,,0max −+= −− avec 01 =E et ∑=

=m

rrErlkD

1*),( .

En fait, l'algorithme originel LWBJD de King et Spachis [King et Spachis, 1980] est

pratiquement identique à l’algorithme amélioré sauf qu'on y recalcule le profil de fin de

chacun des sous-ordonnancements partiels de Oi, sur chacune des machines Ml, chaque fois

que le travail J0 est ajouté en k+1ème position ( { } ljljljj pCCC ,01,0,101,0 ,max += −− )

2.2.3. Travaux de Adiri et Pohoryles

Adiri et Pohoryles sont les premiers à s’être intéressés à des problèmes flow-shop avec la

contrainte no-idle [Adiri et Pohoryles, 1982]. Ils ont étudié les problèmes

∑− iCidlenoF // et ∑− iCwaitnoF // pour des cas particuliers dont nous présentons ici

les résultats.

Définition 1.1. Un flow-shop est dit en no-idle si pour toute machine Mj, nous avons:

∑=

=−n

ijiji

iji

ipSC

1,,, )(min)(max

où Ci,j détermine la date d’achèvement du travail Ji sur la machine Mj et Si,j sa date de début.

Définition 1.2. Un travail bloquant sur une machine Mk dans une séquence en no-idle est

défini comme étant le premier travail sur Mk qui interdit le décalage de l’ordonnancement de

cette machine vers la gauche.

Définition 1.3. Une série de machines est dite série croissante de machines dominantes si, et

seulement si, la plus petite durée opératoire sur une machine est plus grande que la plus

grande durée opératoire sur la machine précédente.

Page 27: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

31

Définition 1.4. Une série de machines est dite série décroissante de machines dominantes si,

et seulement si, la plus grande durée opératoire sur une machine est plus petite que la plus

petite durée opératoire sur la machine précédente.

Ces définitions sont données dans [Adiri et Pohoryles, 1982]. Sur la base de ces définitions,

les auteurs démontrent les théorèmes suivants :

Théorème 1.1. Si dans un ordonnancement optimal pour ∑− CiidlenoF //2 , le travail

bloquant est le dernier, alors cet ordonnancement respecte la règle SPT sur M2, à l'exception

du travail bloquant qui est celui qui a la durée opératoire minimum sur M2.

Théorème 1.2. Les travaux qui précèdent et ceux qui succèdent le travail bloquant dans un

ordonnancement optimal du ∑− CiidlenoF //2 sont nécessairement dans un ordre SPT en

M2 qui respecte la contrainte no-idle.

Théorème 1.3. L'ordonnancement optimal pour un problème ∑− CiidlenoF // de

permutation sur une série croissante de machines dominantes s’obtient de la façon suivante :

on considère un ordonnancement des travaux selon la règle SPT sur la dernière machine, puis

on avance en première position le travail de rang i qui vérifie :

[ ]∑ ∑−

=

=

−−+=1

1

1

1,,,][ *)1(*

m

k

i

kmkmikii

ippipnvMin

La démonstration s’appuie sur le fait que, dans le cas d’une série croissante de machines

dominantes, tout ordonnancement respecte la contrainte no-idle. Il s’agit donc, pour

minimiser ∑Ci , de considérer un ordre SPT sauf pour le premier travail que l’on choisit de

façon à minimiser la date de début.

Théorème 1.4. L'ordonnancement optimal pour un problème ∑− CiidlenoF // de

permutation sur une série décroissante de machines dominantes s’obtient de la façon

suivante : on considère un ordonnancement des travaux selon la règle SPT sur la dernière

machine, puis on décale en dernière position le travail de rang i qui vérifie :

[ ]∑ ∑= +=

−−+=m

k

n

ikmkmikii

ippinpnvMin

2 1,,,][ *)(*

La preuve ici s’appuie sur le fait que tout ordonnancement envisagé provoquera

nécessairement n – 1 temps morts sur chacune des machines de M2 à Mm. L’élimination de ces

Page 28: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

32

temps morts oblige à procéder à un tassement vers la droite. Sur la dernière machine,

l’optimisation de ∑Ci consiste à considérer un ordonnancement des travaux selon la règle

SPT en mettant vers la fin le travail qui minimise la date de fin.

2.2.4. Travaux de Baptiste et Hguny

Dans [Baptiste et Hguny, 1997], Baptiste et Hguny ont tout d’abord étudié le problème

max// CidlenoF − dans le cas des séries de machines dominantes puis ont proposé une

solution exacte du problème général max// CidlenoF − . Nous ne reprenons ici que la

première partie. Celle concernant le problème général sera présentée de façon détaillée dans le

chapitre 2.

Les séries dominantes de machines présentent deux cas particuliers de configuration d'un

problème flow-shop (section 2.2.3 de ce chapitre) ; les séries dominantes de machines

croissantes et les séries dominantes de machines décroissantes. Dans le premier cas, nous

avons la particularité de n'avoir aucun temps mort quel que soit l'ordre des travaux (voir

exemple 1.2). Dans le second cas, il y a toujours des temps morts entre deux travaux et sur

toutes les machines quel que soit l'ordre des travaux (voir exemple 1.3).

Exemple 1.2. Problème d’ordonnancement de 5 travaux (J1 ,…, J5) sur une série croissante de

4 machines dominantes (M1,…, M4). Les données du problème sont présentées dans la table

1.5. Toute solution d’ordonnancement aurait l’allure de celle présentée en figure 1.5 illustrant

le cas du choix de la séquence J1, J2, J3, J4, J5.

J1 J2 J3 J4 J5

M1 1 2 2 1 2

M2 6 5 4 3 6

M3 9 6 8 7 8

M4 9 10 12 11 9

Table 1.5. Problème d’une série croissante de machines dominantes.

Figure 1.5. Ordonnancement des travaux de la table 1.5 60

M2 M3

45

J1 J2 J3 J4 J5

M4

M1

M2 M3

5 10 15 20 25 30 35 40 50 55 10 20

Page 29: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

33

Exemple 1.3. Considérons un problème d’ordonnancement de 4 travaux (J1,…, J4) sur une

série décroissante de 4 machines dominantes (M1,…, M4). Les données du problème sont

présentées dans la table 1.6. Toute solution d’ordonnancement aurait l’allure de celle

présentée en figure 1.6 illustrant le cas de choix de la séquence J1, J2, J3, J4.

J1 J2 J3 J4

M1 9 10 12 11

M2 9 6 8 7

M3 6 5 4 3

M4 1 2 2 1

Table 1.6. Problème d’une série décroissante de machines dominantes

Figure 1.6. Ordonnancement des travaux de la table 1.6

Baptiste et Hguny ont étudié, dans [Baptiste et Hguny, 1997], ces deux cas de séries de

machines dans le cadre d'un flow-shop avec contrainte no-idle et ont démontré que

l'ordonnancement optimal peut être obtenu simplement en utilisant les deux théorèmes

suivants :

Théorème 1.5. Tout ordonnancement commençant par un travail qui minimise ∑−

=

1

1,

m

jjip est un

ordonnancement de permutation optimal pour max// CidlenoF − pour une série croissante

de machines dominantes.

L’idée de la preuve se base sur le fait que dans une série croissante de machines dominantes,

tout ordonnancement est un ordonnancement no-idle. En effet :

)(min)(max 1,, +≤ jii

jii

pp ∀ i, j ∑∑−

=

+

=

+≤1

11,,

1,

i

kjkji

i

kjk ppp et 1,1,, +−+< jijiji CpC

alors, pour chaque ordonnancement S, on a ∑ ∑−

= =

+=1

1 1,,1max

m

j

n

imij ppC

M1

M2

M3

M4

60 5 20 25 30 35 40 45 50 55 65

J1 J2 J3 J4 J5

15 10

Page 30: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

34

et le second terme est une constante.

Théorème 1.6. Tout ordonnancement commençant par un travail qui minimise ∑=

m

jjip

2, est un

ordonnancement de permutation optimal pour max// CidlenoF − pour une série

décroissante de machines dominantes.

L’idée de la démonstration se base sur le fait que dans une série décroissante de machines

dominantes, tout ordonnancement est un ordonnancement contenant des trous entre chaque

paire de travaux et sur chaque machine. En effet :

)(max)(min 1,, +≥ jii

jii

pp ∀ i, j ∑∑−

=

+

=

+≥1

11,,

1,

i

kjkji

i

kjk ppp

alors, pour chaque ordonnancement S, on a ∑ ∑= =

+=m

j

n

iijn ppC

2 11,,max

et le second terme est une constante.

2.2.5. Travaux de Giaro

Dans son article [Giaro, 2001], l’auteur étudie des ordonnancements open-shop et flow-shop

compacts, c’est-à-dire des ordonnancements dans lesquels les contraintes no-idle et no-wait

sont toutes les deux imposées. L’auteur considère, en particulier, un type de système dans

lequel certains travaux peuvent ne pas avoir d'opérations sur certaines machines (i.e. chacun

des travaux peut présenter des durées opératoires nulles sur des machines données).

Pour ce faire, Giaro propose une modélisation par un graphe biparti dans lequel les nœuds

d'une partition correspondent aux machines et les nœuds de l'autre partition correspondent aux

travaux. Il y a un arc qui lie un nœud machine Mk à un nœud travail Ji si le travail Ji a une

durée opératoire non nulle sur la machine Mk ; l’arc est renseigné par un poids α (entier

naturel) égal à la durée opératoire. Dans le cas où certains travaux présentent des durées

opératoires nulles sur certaines machines, le graphe biparti est forcément non complet. Giaro

étudie les ordonnancements compacts sur ce graphe biparti en transposant des résultats de

coloriage de graphes ; un ordonnancement compact est alors défini par un graphe

d’ordonnancement. Un coloriage qui correspond à un ordonnancement no-wait&idle doit

vérifier les propriétés suivantes :

- Les arcs issus d’un même nœud travail doivent être de couleurs différentes. Ceci

traduit la condition qu’un travail ne peut être exécuté que par une machine à la fois.

- Les arcs incidents à un même nœud machine doivent être de couleurs différentes. Ceci

traduit la condition qu’une machine ne peut exécuter qu’un travail à la fois.

Page 31: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

35

- A chaque arc est affecté un intervalle temporel de longueur égale à son poids (durée

opératoire) et placé dans l’ordonnancement de l’activité de la machine correspondante

de telle sorte que :

• d’une part, les intervalles associés à une même machine soient contigus et

sans chevauchement. Ceci traduit la contrainte no-idle, et

• d’autre part, la juxtaposition des intervalles correspondants aux arcs issus

d’un même nœud travail soit également contiguë et sans chevauchement.

Ceci traduit la contrainte no-wait.

Pour des sous-classes particulières de systèmes dont le graphe d’ordonnancement (M) obtenu

est un cycle ou un chemin, Giaro montre que les problèmes open-shop du type

max/,&/ CpathMidlewaitnoO =− et max/,&/ CcycleMidlewaitnoO =− sont NP-

difficiles. De même, pour les systèmes flow-shop dont le graphe d’ordonnancement (M) est

un cycle, la question de l’existence d’un ordonnancement compact

/,&/ cycleMidlewaitnoF =− est NP-complet, tandis que la recherche d’une optimisation

max/,&/ CpathMidlewaitnoF =− est NP-difficile. Il conclut que le problème de

l’existence d’un ordonnancement compact même à deux machines, aussi bien pour les

systèmes open-shop que pour les systèmes flow-shop, est NP-difficile. Giaro démontre

néanmoins l’existence d’un algorithme linéaire fournissant une solution 4-approximé pour le

problème max/,&/ CpathMidlewaitnoF =− . Pour des systèmes dont le graphe

d’ordonnancement est un arbre ou un unicycle, Giaro démontre aussi l’existence d’un

algorithme linéaire 2-approximé pour les problèmes max/,&/ CtreeMidlewaitnoO =− et

max/,&/ CunicycleMidlewaitnoO =− .

2.3. Analyse de la complexité

Le problème max// CidlenoF − qui nous intéresse dans cette thèse a été mentionné en

[Tanarv et al., 1994] comme étant NP-difficile ; les auteurs font référence pour cela aux

résultats des travaux publiés dans [Strusevitch, 1981]. D’autres travaux ont traité des cas

particuliers des systèmes à deux machines et des systèmes à trois machines.

2.3.1. Complexité dans le cas de deux machines

Un flow-shop no-idle à deux machines peut être résolu optimalement en O(n*log(n)) par

l'algorithme de Johnson [Johnson, 1954]. A partir de la solution obtenue d'un flow-shop sans

Page 32: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

36

contrainte à deux machines, il suffit d’opérer un décalage à droite des opérations sur la

deuxième machine pour éliminer les temps morts et obtenir ainsi un ordonnancement no-idle

sans toucher à la date d’achèvement du dernier travail. Cet algorithme nécessite un temps de

calcul polynomial.

2.3.2. Complexité dans le cas de trois machines

Garey, Johnson et Sethi, dans [Garey et al., 1976], ont prouvé que le problème max//3 CF

est NP-complet. Se basant sur les démonstrations qui y sont fournies, Baptiste et Hguny, dans

[Baptiste et Hguny, 1997], ont apporté la preuve que le problème max//3 CidlenoF − est

NP-complet au sens fort. La complexité du problème max//3 CwaitnoF − est également

mentionné en faisant référence à l’équivalence entre ce problème et celui du voyageur de

commerce (recherche du plus court chemin pour visiter n villes).

Concernant le problème max//3 CidlenoF − , Baptiste et Hguny ont défini un problème

d’ordonnancement de 4n + 1 travaux sur trois machines, lequel problème est équivalent au

problème à 3-partitions qui a été démontré NP-complet dans [Garey et al., 1976]. Les données

du problème posé sont récapitulées dans la table 1.7 et l’ordonnancement des n + 1 premiers

travaux est illustré par la figure 1.7.

Travail J0 p0,1 = 0 p0,2 = B p0,3 = 2B

Travail Ji, ni <≤1 pi,1 = 2B pi,2 =B pi,3 = 2B

Travail Jn pn,1 = 2B pn,2 = B pn,3 = 0

Travail Ji, nin 4≤< pi,1 = 0 pi,2 = ai pi,3 =0

Table 1.7. Durées opératoires des travaux du problème posé

Où B et les ai, pour n < i ≤ 4n, sont des entiers vérifiant les deux contraintes :

nBan

nii∑ =

+=

4

1 et B / 4< ai ≤ B / 2

Figure 1.7. Ordonnancement des travaux du problème équivalent

n

0

Page 33: Chapitre 1 Ordonnancement no-idle - INSA de Lyon

Chapitre 1 : Ordonnancement no-idle

37

Sur la figure 1.7, on voit que l’ordonnancement des n + 1 travaux donne un temps de fin égal

à (2n + 1)*B sur la troisième machine mais avec n trous de taille B sur la deuxième machine.

Si l’on peut répartir les 3n travaux restants en n ensembles de trois travaux tel que chaque

ensemble totalise une durée égale à B, on obtient un ordonnancement no-idle de l’ensemble

des 4n + 1 travaux qui maintient l’échéance de (2n + 1)*B sur la machine 3. Un tel ordre ne

peut être obtenu que si, et seulement si, le problème à 3-partitions a une solution.

3. Conclusion Nous avons tenté, dans ce chapitre, une synthèse de la problématique générale de

l’ordonnancement qui nous a permis de situer le cas particulier de l’ordonnancement avec

contrainte no-idle. Le rappel que nous avons fait du formalisme de Conway, au delà de la

simplification d’écriture qui nous sera utile dans la suite, a mis en évidence la diversité de la

problématique de l’ordonnancement et a dégagé en même temps une classification. La

complexité du problème flow-shop avec la contrainte no-idle s’avère polynomiale pour le cas

particulier de deux machines, du fait que la solution no-idle se déduit directement de la

solution d’ordonnancement d’un flow-shop de permutation. Cependant, le problème devient

NP-complet à partir de trois machines. Dès lors, le recours aux heuristiques de complexité

plus faible pour la recherche de solutions approchées se justifie aisément. Ceci nous a mené à

faire un survol sur les méthodes classiques de résolution. Enfin, l’étude de l’état de l’art

montre que le problème d’ordonnancement avec la contrainte no-idle reste encore très peu

étudié.

Plus précisément, parmi les cinq travaux que nous venons de rappeler, deux seulement ont

abordé directement le problème de l’ordonnancement no-idle. En effet, les travaux de

[Narasimhan et Panwalker, 1984] et [Narasimhan et Mangiameli, 1987], d’une part, et ceux

de [King et Spachis, 1980], d’autre part, se sont intéressés à des optimisations qui admettent

l’existence de temps d’arrêt entre les machines. Les travaux de [Giaro, 2001] ont surtout

étudié des aspects de complexité sans donner des solutions pour la construction des

ordonnancements sans temps d’arrêt. Dans [Adiri et Pohoryles, 1982], les auteurs ont

effectivement proposé des solutions de l’ordonnancement flow-shop no-idle qui minimisent le

critère ∑ iC dans le cas particulier des séries de machines dominantes croissantes et

décroissantes. Et en définitive, Baptiste et Hguny sont les seuls, à l’heure actuelle, à avoir

étudié l’ordonnancement flow-shop no-idle selon une approche exacte de type séparation et

évaluation (branch and bound). Nous avons, à dessein, différé la présentation détaillée de

cette approche au chapitre qui suit.