Une heuristique pour le flow shop hybride à deux

Transcription

Une heuristique pour le flow shop hybride à deux
Une heuristique pour le flow shop hybride à deux étages avec
machines dédiées
Mohamed Karim Hajji, Hatem Hadda, Najoua Dridi
Université de Tunis El Manar, École nationale d’ingénieurs de Tunis, Unité de recherche OASIS,
BP 37, Le belvedere, 1002 Tunis, Tunisie.
{mohamedkarim.hajji,najoua.dridi}@enit.rnu.tn, {hatem.hadda}@esti.rnu.tn
Résumé : Ce papier s’intéresse à la minimisation du temps total d’achèvement (i.e makespan) pour le flow shop hybride à deux étages avec machines dédiées. Nous présentons des
bornes inférieures et nous développons une heuristique qui se base sur l’algorithme de Johnson
avec une règle de gestion des priorités. Un programme mathématique en nombres entiers est
également testé.
Mots-clés : Ordonnancement, flow shop, machines dédiées, heuristique
1
Introduction
Dans ce papier nous considérons la minimisation du makespan pour le flow shop hybride à
deux étages avec machines dédiées. En se basant sur la classification de Graham et al. [4] ce
problème peut être noté comme suit : F 2(DP , DM ) || Cmax où (DP , DM ) indique l’existence
de P machines dédiées sur le premier étage et M machines dédiées sur le second étage. Chaque
job j ∈ J est constitué de deux opérations et appartient à un type donné. Selon le type, le job
doit d’abord être exécuté sur une machine dédiée au premier étage puis sur une autre machine
dédiée au second étage. Nous considérons que les ressources nécessaires à l’exécution des jobs
sont disponibles sur tout l’horizon de l’ordonnancement et qu’une ressources ne peut exécuter
qu’un seul job à la fois et ceci sans préemption. On note que le problème est NP-Difficile au
sens fort étant donnée que le F 2(DP , 1)||Cmax l’est aussi [17].
On peut trouver la configuration du flow shop hybride dans de nombreuses organisations industrielles tels que les industries du bâtiments [3] , la fabrication des systèmes électroniques [15],
la fabrication des films photographiques [20], l’industrie du papier [18] et beaucoup d’autres
comme les ateliers de peinture et d’imprimerie, les laboratoires de chimie et les industries pharmaceutiques.
Le problème de flow shop hybride avec machines dédiées est également connu sous le nom du
flow shop de différentiation [19]. Dans [13], les auteurs prouvent la NP-difficulté du F 2(1, P D2 )||Cmax
et proposent une procédure par séparation et évaluation (PSE). Ils ont aussi proposé une heuristique basée sur la règle de Johnson [16] avec une règle de croisement pour les jobs de types
différents.
Pour le F 2(1, P DM )||Cmax , une borne inférieure, des règles d’élimination et une PSE ont été
présentées dans [19]. Le même problème a été abordé dans [2] où une nouvelle heuristique,
plusieurs règles d’éliminations et plusieurs cas polynomiaux ont été proposés. Une règle d’élimination est aussi introduite par ce même auteur dans [8]. Dans [6], les auteurs rectifient le
travail présenté dans [21] où un méthode heuristique est développée. Dans[10], les auteurs introduisent une PSE et une analyse empirique pour la distribution du makespan pour les instances
de petites tailles. Récemment, une analyse au pire des cas et de nouveaux cas polynomiaux
ont été présentés dans [11] pour le F 2(P DM , 1)||Cmax . Pour le F 2(1, Dm )|ri , qi |Cmax , plusieurs
heuristiques et une procédure combinée de recherche tabou ont été présentées dans [12].
Le problème avec machines parallèles F 2(P M P , P M M )||Cmax a été abordé dans [5] où une
modélisation mathématiques en nombre entier, des bornes inférieures et une heuristique ont été
proposés. Dans [1], les auteurs proposent un modèle mathématique inspiré de [5], des bornes
inférieures basiques et une heuristique. Des algorithmes approximatifs et une analyse au pire
des cas sont aussi proposée dans[7, 9] pour le F 2(1, P DM )||Cmax sous des contraintes de disponibilités.
On note que la majorité des travaux dans la littérature s’intéressent essentiellement aux problèmes ne contenant qu’un seul étage avec des machines dédiées, tandis que dans les situations
réelles, nous avons tendance à trouver des machines dédiées sur plusieurs étages.
Le reste du papier est organisé comme suit. Dans la section 2 nous présentons la notation retenue et quelques propriétés de base. Dans la section 3, nous introduisons des bornes inférieures.
Dans la section 4, nous développons une procédure heuristique. Dans la section 5, nous présentons un modèle mathématiques linéaire. Dans la section 6, nous synthétisons les résultats
expérimentaux et la section 7 conclut le papier.
2
Notations et propriétés de base
Dans cette section, nous présentons la notation retenue pour le F 2(DP , DM ) || Cmax . Nous
identifions aussi un ensemble de solutions dominantes.
2.1
Notations
— J = {1 . . . n} : Ensemble de jobs.
— P : Nombre de machines au premier étage (p ∈ {1 . . . P }).
— M : Nombre de machines au second étage (m ∈ {1 . . . M }).
— aj > 0 : Durée opératoire du job j sur le premier étage.
— bj > 0 : Durée opératoire du j sur le deuxième étage.
— Cjp : Temps d’achèvement du job j sur la machine p du premier étage.
— Cjm : Temps d’achèvement du job j sur la machine m du second étage.
— Tp1 : Ensemble de jobs à exécuter sur la machine p.
2
: Ensemble de jobs à exécuter sur la machine m.
— Tm
— np = |Tp1 | : Nombre de jobs à passer sur la machine p.
2
— nm = |Tm
| : Nombre de jobs à passer sur la machine m.
— πup : Le job à la position u (1 ≤ u ≤ np ) sur la machine p.
— σvm : Le job à la position v (1 ≤ v ≤ nm ) sur la machine m.
— Rp,m : Ensemble (route) de jobs passant sur la machine p au premier étage puis sur la
machine m au deuxième étage.
— np,m : Nombre de jobs suivant la route Rp,m .
2.2
Ensemble de solutions dominantes
La description d’un ordonnancement pour notre problème suppose que l’on fixe un ordre de
passage pour les jobs sur le second étage. Un choix couramment fait dans ce cadre consiste à
conserver le même ordre de sorti des jobs du premier étage, les jobs sont donc exécutés selon
la règle du premier arrivé, premier servi (PAPS). Le résultat suivant établit la domination de
ces solutions.
Propriété 1 Pour le F 2(DP , DM ) || Cmax , il existe une solution optimale qui suit la règle
PAPS au second étage.
Preuve : Soit π une solution optimale, et soient v et u deux jobs consécutifs sur la même
machine du second étage (v précède u) tel que le job u achève son exécution avant le job v
au premier étage. On peut constater que l’inversion de l’ordre des jobs u et v sur le deuxième
étage donne une solution avec un makespan qui n’est pas de pire que Cmax (π). En appliquant
le même principe pour tous les couples de jobs, nous obtenons une solution optimale qui suit
la règle PAPS au second étage.
Ce résultat réduit la recherche d’une solution à la spécification d’un ordonnancement sur le
premier étage uniquement étant donnée que la règle PAPS est dominante pour le second étage.
3
Bornes inférieures
Nous présentons dans cette section cinq bornes inférieures qui nous serviront de référence
pour évaluer la qualité des solutions heuristiques.
Pour la première borne, il est clair que l’on ne peut pas s’échapper au maximum des sommes
des durées opératoires de chaque type (Tp1 ) sur le premier étage plus la valeur minimale de la
durée opératoire bi (i ∈ Tp1 ) sur le deuxième étage.
LB1 =
max
Tp1 ,p∈{1...P }
∑
(
ai + min bi ).
Tp1
Symétriquement, nous considérons la borne suivante :
LB2 =
max
2 ,m∈{1...M }
Tm
∑
(
bi + min ai ).
2
Tm
Nous établissons également deux bornes inférieures en se basant sur la règle de Johnson. Nous
avons d’abord isolé chaque sous-ensemble de jobs ayant la même route. L’application de la
Joh
règle de Johnson donne pour chaque sous-ensemble πp,m une valeur de makespan notée Cmax
=
(πp,m ). Nous conservons la valeur maximale parmi toutes les routes.
LB3 =
max
1≤p≤P, 1≤m≤M
joh
(Cmax
(πp,m )).
Pour la borne LB4 , nous considérons la dernière route de jobs qui apparaîtront pour la première
fois sur une machine du premier étage. Ces jobs seront précédés par au moins un job de chaque
route sur leur machine dédiée. La borne suivante peut être écrite comme suit :
LB4 =
min
1≤p≤P,1≤m≤M
∑
joh
(Cmax
(πp,m ) +
min ai ).
1≤k≤M,k̸=m
Rpk
Nous considérons également la borne symétrique suivante :
LB5 =
min
1≤p≤P,1≤m≤M
joh
(Cmax
(πp,m ) +
Finalement, nous retenons LB = maxi∈{1..5} (LBi ).
∑
1≤k≤P,k̸=p
min bi ).
Rkm
4
Heuristique
Dans cette section nous présentons une heuristique qui se base sur l’algorithme de Johnson
avec une règle de priorité pour les jobs de routes différentes. Nous rappelons que la règle de
Johnson [16] donne une solution optimale pour le problème de flow shop à deux machines
F 2||Cmax , le principe étant le suivant : Ji précède Jj si min(ai , bj ) ≤ min(aj , bi ). Nous présentons dans ce qui suit le principe de l’heuristique.
L’idée consiste à ordonnancer au début les jobs de même route séparément selon la règle
de Johnson, nous calculons ensuite un indice pour définir l’ordre d’apparition des jobs sur
le premier étage. En d’autres termes, cet indice permet de définir la priorité sur le premier
étage, entre les jobs de routes différentes (ceux de mêmes routes étant déjà ordonnancés selon
Johnson). Des idées similaires ont été proposées pour des problèmes de flow shop hybrides dans
[13, 14].
Nous considérons deux possibilités pour le calcul de l’indice.
Soit u un job appartenant à la
∑np,m
sous-séquence πp,m , le premier indice est donné par Du = i=w bπp,m (i) , où πp,m (i) est le ième
job dans πp,m et w représente la position du job u dans πp,m . Cet indice ne tient compte que
de la charge restante sur le deuxième étage.
On note que dans le cas où les machines du deuxième étage sont plus chargées, la règle de
Johnson tend à trier les jobs dans l’ordre croissant de leurs durées opératoires sur le premier
étage. Pour une meilleure adaptation de la règle du Johnson dans de tels cas, nous incluons
les durées opératoires
des deux étages dans le calcul de l’indice. Nous introduisons le second
∑np,m aπp,m (i)
′
indice Du = i=w bπ (i) .
p,m
On note que cet indice ne modifie pas l’ordre donné par la règle de Johnson, en effet, il ne
vise qu’à définir l’ordre de priorité entre les jobs qui n’appartiennent pas à la même route. Les
jobs sont ensuite ordonnancés selon l’ordre décroissant de leurs indices Du ou Du′ . Les deux
variantes de l’heuristique sont décrites par l’Algorithme 1.
Algorithm 1 Heuristiques H et H ′
Étape 1. Appliquer Johnson pour toutes les sous-séquences πp,m , 1 ≤ p ≤ P , 1 ≤ m ≤ M .
Étape 2. Calculer les indices D pour H et D′ pour H ′ .
Étape 3. Ordonnancer les jobs dans l’ordre décroissant de leurs indices D et D′ et considérer
les solutions associées .
4.1
Exemple illustratif
Soit l’instance suivante avec deux machines sur chaque étage (P = 2 et M = 2).
Jobs
J1
J2
J3
J4
J5
J6
J7
J8
ai
4
6
5
6
2
9
3
1
bi
7
9
2
8
4
5
6
5
p
1
2
1
2
1
2
1
2
m
1
1
2
2
1
2
2
1
TAB. 1 – Exemple illustratif, Heuristique H avec P = 2 et M = 2
L’application de la règle de Johnson donne pour les quatre routes : R1,1 =≺ J5 , J1 ≻,
R1,2 =≺ J7 , J3 ≻, R2,1 =≺ J8 , J2 ≻ et R2,2 =≺ J4 , J6 ≻.
En commençant par les deux ordres partiels sur la première machine du premier étage ≺
J5 , J1 ≻ et ≺ J7 , J3 ≻, l’idée consiste à ordonnancer ces jobs tout en gardant les ordres fixés
par la règle de Johnson(J5 précède J1 et J7 précède J3 ). Le calcul des indices D donne pour
R1,1 : D(J5 ) = bJ5 + bJ1 = 11, D(J1 ) = bJ1 = 7 et pour R1,2 : D(J7 ) = bJ7 + bJ3 = 8,
D(J3 ) = bJ3 = 2.
L’ordre décroissant des indices donne la sous-permutation suivante :≺ J5 , J7 , J1 , J3 ≻. En suivant les mêmes étapes pour la deuxième machine on obtient ≺ J8 , J4 , J2 , J6 ≻.
L’heuristique H donne la solution suivante π =≺≺ J5 , J7 , J1 , J3 ≻, ≺ J8 , J4 , J2 , J6 ≻≻ avec
Cmax (π) = 27. On note que la borne inférieure LB1 = max(14 + 2, 22 + 5) = 27.
5
Modélisation mathématique
Dans cette section nous présentons un programme mathématique en nombres entiers, nous
rappelons que cette formulation a été proposée par Guinet et al. [5] et reprise par Besbes et
al. [1].
Variables :
variables binaire
{
xp0j
=
{
xm
0j =
{
xpij
=
{
xm
ij
=
1
0
si j ∈ J est le premier à passer sur p ∈ {1 . . . P }
sinon
1
0
si j ∈ J est le premier à passer sur m ∈ {1 . . . M }
sinon
1
0
si le job i est ordonnancé avant j sur p, ∀i ̸= j, {i, j} ⊂ Tp1
sinon
1
0
2
si le job i est ordonnancé avant j sur m, ∀i ̸= j, {i, j} ⊂ Tm
sinon
variables continues
Cjp : Temps d’achèvement du job j sur la machine p (j ∈ Tp1 , p ∈ {1 . . . P }).
2
Cjm : Temps d’achèvement du job j sur la machine m (j ∈ Tm
, m ∈ {1 . . . M }).
p
m
C0 = C0 = 0.
Modèle mathématique
min Cmax
Sc
Cip + aj + (xpij − 1).BigM ≤ Cjp ,
i ∈ Tp1 ∪ {0}, j ∈ Tp1 , i ̸= j, p ∈ {1 . . . P }
np
∑
xp0j +
xpij = 1,
j ∈ Tp1 , p ∈ {1 . . . P }
(1)
(2)
i=1,i̸=j
∑
(np )
xpij ≤ 1,
i ∈ Tp1 , p ∈ {1 . . . P }
(3)
j=1,i̸=j
np
∑
j=1
xp0j = 1,
j ∈ Tp1 , p ∈ {1 . . . P }
(4)
Cjm ≥ Cjp + bj ,
2
j ∈ Tp1 ∩ Tm
, p ∈ {1 . . . P }, m ∈ {1 . . . M }.
m
Cim + bj + (xm
ij − 1).BigM ≤ Cj ,
2
2
i ∈ Tm
∪ {0}, j ∈ Tm
, i ̸= j, m ∈ {1 . . . M }.
xm
0j +
nm
∑
xm
ij = 1,
2
j ∈ Tm
, m ∈ {1 . . . M }.
(5)
(6)
(7)
i=1,i̸=j
nm
∑
xm
ij ≤ 1,
2
i ∈ Tm
, m ∈ {1 . . . M }.
(8)
j=1,i̸=j
nm
∑
2
j ∈ Tm
, m ∈ {1 . . . M }.
xm
0j = 1,
(9)
j=1
Cmax ≥ Cjm ,
2
j ∈ Tm
, m ∈ {1 . . . M }.
Cjp ≥ 0,
Cjm ≥ 0,
xpij = {0, 1},
xm
ij = {0, 1},
(10)
j ∈ Tp1 , p ∈ {1 . . . P }.
(11)
2
j ∈ Tm
, m ∈ {1 . . . M }.
(12)
i ∈ Tp1 , j ∈ Tp1 , i ̸= j, p ∈ {1 . . . P }.
(13)
2
2
i ∈ Tm
, j ∈ Tm
, i ̸= j, m ∈ {1 . . . M }.
(14)
xp0j = {0, 1},
xm
0j = {0, 1},
j ∈ Tp1 , p ∈ {1 . . . P }.
(15)
2
j ∈ Tm
, m ∈ {1 . . . M }.
(16)
La fonction objectif est la minimisation du makespan. La contrainte (1) (resp. (6)) indique que
le temps d’achèvement du job j sur le premier étage (resp. deuxième étage) est supérieur à la
somme de sa durée opératoire, plus le temps d’achèvement du job qui le précéde.
La contrainte (2) (resp. (7)) indique que tout job doit avoir un prédécesseur, sauf s’il est le
premier à passer sur sa machine dédiée.
La contrainte (3) (resp. (8)) indique que tout job i doit avoir un seul prédécesseur direct j. La
contrainte (4) (resp. (9)) indique que toutes les sous-séquences doivent commencer par un seul
job.
La contrainte (5) indique que le temps de l’achèvement d’un job sur le deuxième étage est
supérieur ou égal à sa durée opératoire sur sa machine dédiée m plus son temps d’achèvement
sur le premier étage.
La contrainte (10) définit le makespan globale Cmax et les contraintes (11) - (16) définissent
les variables de décision du modèle.
6
6.1
Résultats expérimentaux
Génération des instances
Nous considérons plusieurs classes d’instances. Chaque classe contient six tailles n ∈ {20, 50, 100, 150, 200, 500
Pour chaque taille, 20 instances sont générées et les jobs sont équitablement répartis entre les
différents types (sauf pour les classes 4 et 5). Pour les heuristiques et les bornes inférieures,
nous avons fait le choix de tester un atelier contenant deux machines sur chaque étage. Toutes
les heuristiques et les bornes inférieures ont été codées en C ++ et toutes les simulations ont
été réalisées avec un processeur de 2,40 GHz. On note que les durées opératoires des différents
jobs suivent une distribution uniforme.
Pour les classes Cl1 et Cl2 , les durées opératoires ai et bi sont générées dans les mêmes intervalles : [1, 20] pour Cl1 et [1, 100] pour Cl2 .
Pour la classe Cl3 , les durées opératoires sont générées dans [1, 100] sur le premier étage, et
dans [1, M × 100] sur le second étage.
Pour Cl4 les durées opératoires sont générées dans l’intervalle [1, 20], mais les jobs ne sont pas
équitablement répartis sur les machines des deux étages. En effet, et dans le but de créer une
route goulot, nous avons cherché à charger une machine sur chaque étage et cela en faisant
passer presque les deux tiers jobs sur deux machines choisies aléatoirement, et de répartir les
jobs restants sur les autres machines. Cette classe vise à mesurer la performance des bornes
inférieures, notamment celles qui se basent sur l’algorithme de Johnson.
La classe Cl5 est semblable à la classe Cl4 en chargeant une route non pas avec un nombre
important de jobs mais avec des durées opératoires plus importantes. Ces durées opératoires
sont générées dans [1, 100] pour deux tiers des jobs, et dans respectivement [1, p × 100] et
[1, m × 100] pour les jobs restants. L’ensemble des familles générées est résumé dans le Tableau
2.
Classe
Cl1
Cl2
Cl3
Cl4
Cl5
ai
[1,20]
[1,100]
[1,100]
[1,20]
[1,100], [1,200]
bi
[1,20]
[1,100]
[1, 200]
[1,20]
[1,100], [1,200]
TAB. 2 – Classes des instances
6.2
Résultats de l’approche de résolution exacte
Nous avons implémenté le modèle linéaire sur deux solveurs différents, GLPK qui est un
solveur libre et CPLEX qui est couramment utilisé pour la programmation linéaire.
Nous avons essayé de faire varier la configuration de l’atelier avec trois machines sur le
premier étage et quatre machines sur le deuxième. Les Tableaux 3 et 4 synthétisent le temps
de calcul et sa variation (Min/Max), ainsi que le pourcentage d’instances résolues sur les 20
instances générées pour chaque configuration et pour chaque taille du problème.
Afin de mettre l’accent sur l’effet du changement de la configuration de l’atelier et notamment
l’augmentation du nombre de ressources, nous avons délibérément évité de varier les classes
d’instances et nous nous contentons de ne montrer que les résultats de la classe Cl1 .
n
9
10
9
10
12
13
14
P = 2; M = 2
Temps de calcul(s) Min/Max(s)
50
1 / 170
> 200 s
-/P = 3, M = 4
0.1
0.1 / 0.2
0.3
0.1 / 1.1
24.5
0.8 / 82
40
3.4 / 69
> 200 s
-/-
% Résolution
95 %
Aucune solution
100 %
100 %
85 %
40 %
Aucune solution
TAB. 3 – Temps de Calcul et pourcentage de résolution pour GLPK
n
10
11
13
15
16
15
19
21
P = 2; M = 2
Temps de calcul (s) Min/Max(s)
1.5
1/3
4
1 / 12
30
3 / 150
68
8 / 180
88
35 / 137
P = 3, M = 4
1.4
1/2
15
3 / 61
52
4 / 171
% Résolution
100 %
100 %
75 %
55 %
15 %
100 %
95 %
65 %
TAB. 4 – Temps de Calcul et pourcentage de résolution pour Cplex
Nous pouvons voir que pour la première configuration testée où P = M = 2, on a pu
résoudre jusqu’à 95% des instances testées avec n = 9 jobs en utilisant GLPK et jusqu’à 15%
des instances avec n = 16 jobs en utilisant Cplex.
Pour la seconde configuration où P = 3 et M = 4, on a pu résoudre jusqu’à 40% des instances
avec n = 13 jobs en utilisant GLPK et jusqu’à 65% des instances avec n = 21 jobs en utilisant
Cplex. Nous pouvons constater que plus nous avons de machines, plus on est en mesure de
résoudre des problèmes de plus grande taille.
6.3
Résultats des heuristiques et des bornes inférieures
Pour chaque heuristique/borne inférieure, et pour chaque instance, on calcule l’écart mesuré
par rapport à la meilleure valeur de la borne inférieure (LB) comme suit : gap = Cmax (H)−LB
×
LB
100. Nous calculons ensuite pour chaque taille de problème l’écart moyen sur 20 instances. Le
Tableau 5 montre les écarts moyens obtenus pour les bornes inférieures et le Tableau 6 montre
le pourcentage où une borne inférieure LBi donne la meilleure valeur (LBi = LB). Le Tableau
7 montre les écarts obtenus pour les heuristiques par rapport à la meilleure borne inférieure.
Le Tableau 8 montre le nombre d’instances pour lesquelles la valeur heuristique est égale à la
borne inférieure (une solution optimale est obtenue).
n
20
50
LB1
LB2
LB3
LB4
LB5
6.05
8.90
45.05
70.35
72.40
4.65
3.95
38.25
76.35
76.80
LB1
LB2
LB3
LB4
LB5
3.70
7.95
42.90
70.60
72.15
4.15
4.55
40.20
77.15
78.10
LB1
LB2
LB3
LB4
LB5
49.25
0.00
57.55
70.55
66.80
50.80
0.00
63.90
80.35
79.75
LB1
LB2
LB3
LB4
LB5
7.50
3.80
19.60
96.55
96.20
4.10
4.95
18.30
99.60
99.45
LB1
LB2
LB3
LB4
LB5
7.40
10.15
42.10
72.85
74.10
5.65
9.50
42.65
80.00
80.25
100
150
Cl1
1.95
2.30
35.15
75.60
75.60
Cl2
2.75
2.85
3.75
3.95
37.45
36.25
78.55
76.90
78.60
76.85
Cl3
48.90
49.10
0.00
0.00
62.60
63.60
80.55
81.30
80.40
81.30
Cl4
3.45
2.90
3.50
3.20
18.25
17.80
100.00 100.00
100.00 100.00
Cl5
3.05
5.20
6.95
4.75
36.45
38.70
80.40
80.45
80.65
80.50
4.05
2.20
38.25
80.05
79.95
200
500
1.95
2.90
33.10
77.35
77.35
1.85
2.10
34.55
71.55
71.55
2.15
3.25
34.35
77.70
77.75
1.85
1.65
34.50
72.10
72.10
50.20
0.00
64.20
84.10
84.15
50.45
0.00
65.45
82.95
82.95
3.10
3.30
18.75
100.00
100.00
1.90
1.60
17.75
100.00
100.00
3.80
3.25
35.05
81.90
81.90
3.35
2.15
36.65
79.55
79.55
TAB. 5 – Écart des bornes inférieures
n
20
50
100
150
200
500
45%
55%
0%
60%
40%
0%
50%
50%
0%
50%
50%
0%
65%
35%
0%
50%
50%
0%
0%
0%
100% 100%
0%
0%
Cl4
60%
50%
40%
50%
35%
25%
Cl5
65%
45%
35%
55%
0%
0%
0%
100%
0%
0%
100%
0%
45%
55%
10%
50%
50%
20%
45%
55%
0%
45%
55%
0%
Cl1
LB1
LB2
LB3
65%
35%
0%
45%
55%
0%
35%
65%
0%
LB1
LB2
LB3
60%
40%
0%
40%
60%
0%
60%
40%
0%
Cl2
Cl3
LB1
LB2
LB3
0%
100%
0%
0%
100%
0%
LB1
LB2
LB3
40%
70%
15%
55%
45%
30%
LB1
LB2
LB3
60%
40%
0%
60%
40%
0%
TAB. 6 – Pourcentage LBi = LB
n
20
50
100
H
H′
0.50
1.80
0.05
0.20
0.00
0.00
H
H′
0.40
2.45
0.00
0.30
H
H′
0.15
0.00
0.00
0.00
H
H′
0.00
0.45
0.00
0.00
H
H′
0.35
1.35
0.00
0.35
150
Cl1
0.00
0.05
Cl2
0.00 0.00
0.00 0.00
Cl3
0.00 0.00
0.00 0.00
Cl4
0.00 0.00
0.00 0.00
Cl5
0.00 0.00
0.00 0.00
200
500
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
TAB. 7 – Écart des heuristiques
n
20
50
100
H
H′
17
8
17
16
20
20
H
H′
14
5
15
14
18
13
H
H′
12
14
14
15
15
16
H
H′
19
16
19
19
20
19
H
H′
16
9
18
11
20
14
150
Cl1
20
18
Cl2
20
17
Cl3
17
17
Cl4
20
19
Cl5
17
15
200
500
19
16
20
20
19
16
18
14
18
17
14
15
20
20
20
20
18
16
19
14
TAB. 8 – Nombres de solutions optimales données par les heuristiques
Nous constatons que l’heuristique est efficace et a résolu avec succès toutes les instances pour
certaines classes. Même dans le cas où nous ne disposons pas d’une solution optimale, le pire
écart mesuré par rapport à la meilleure borne inférieure est 0, 50% pour la première variante
de l’heuristique (H), et 2, 45% pour la deuxième variante ( H ′ ). En outre, l’écart est inférieur
à 0, 01% pour la majorité des instances testées pour les deux variantes. Nous remarquons aussi
que H ′ domine relativement la variante H pour la classe Cl3 lorsque n = 20. Cela confirme le
fait que pour des classes similaires, nous devons intégrer les temps opératoires sur le second
étage dans le calcul de l’indice de priorité.
D’autre part, on note que les deux variantes ont tendance à être plus efficace lorsque la taille du
problème grandit. Cela confirme les conclusions présentées dans [2, 10] pour une configuration
plus basique du flow shop.
Les résultats montrent également que les bornes inférieures basiques sont plus efficaces que
celles basées sur la règle de Johnson. Nous pensons que la règle de Johnson n’est pas très
performante dans un atelier avec des machines dédiées au premier et au second étage, sauf si
elle est appliquée uniquement pour les jobs de même route, ce qui reste très loin de la valeur
∗
de la solution optimale. Pour la classe Cl3 , la valeur de LB2 coïncide avec Cmax
pour toutes
les instances, ce qui peut être expliqué par la nature de cette borne inférieure, conçue pour les
classes où le deuxième étage est plus chargé que le premier. Nous ajoutons que compte tenu de
la symétrie du problème,LB1 aura exactement le même résultat si nous inversons l’ordre des
étages. Nous notons également la complémentarité entre LB1 et LB2 , en effet, le Tableau 6
indique qu’au moins l’une des deux donne la meilleur borne, et elles ne donnent que rarement
la même valeur.
7
Conclusion
Dans cet article nous considérons le problème de flow shop hybride à deux étages avec machines dédiées. Nous présentons certaines propriétés de base, des bornes inférieures et une
procédure heuristique. Nous testons également une formulation mathématique pour résoudre
le problème. Bien que la méthode heuristique est efficace, le modèle mathématique n’était pas
très puissant en termes de taille et de temps de calcul. Par conséquent, nous pensons que nous
devrions tester d’autres approches telles que la programmation par contraintes et les procédures par séparation et évaluation. Il est également intéressant d’identifier de nouveaux cas
polynômiaux ainsi que de nouvelles règles d’élimination qui peuvent améliorer les procédures
de résolution.
Références
[1] W. Besbes, T. Loukil, and J. Teghem. A two-stage flow shop with parallel dedicated
machines. 8t h International Conference of Modeling and Simulation - MOSIM, Tunisia,
2010.
[2] Najoua Dridi, Hatem Hadda, and Sonia Hajri-Gabouj. Méthode heuristique pour le problème de flow shop hybride avec machines dédiées. RAIRO - Operations Research, 2009.
[3] Jozef Grabowski and Jaroslaw Pempera. Sequencing of jobs in some production system.
European Journal of Operational Research, 2000.
[4] R.L Graham, E.L Lawler, J.K Lenstra, and A.H.G Rinnooy Kan. Optimization and
approximation in deterministic sequencing and scheduling : a survey. Annals of discrete
mathematics, 1979.
[5] A. Guinet, M.M Solomon, P.K Kedia, and A. Dussauchoy. A computational study of
heuristics for two-stage flexible flowshops. International Journal of Production Research,
1996.
[6] Hatem Hadda. A note on a heuristic method for two-stage hybrid flow shop with dedicated
machines. Computers & Operations Research, 2013.
[7] Hatem Hadda, Najoua Dridi, and Sonia Hajri-Gabouj. Etude du flow shop hybride à
deux étages avec machines dédiées sous contrainte d’indisponibilité. 5th International
Conference : Integrated Design and Production, CPI, Rabat-Morocco, 2007.
[8] Hatem Hadda, Najoua Dridi, and Sonia Hajri-Gabouj. A note on the two-stage hybrid
flow shop problem with dedicated machines. Optimization Letters, 2012.
[9] Hatem Hadda, Najoua Dridi, and Sonia Hajri-Gabouj. The two-stage assembly flow shop
scheduling with an availability constraint : Worst case analysis. Journal of Mathematical
Modelling and Algorithms in Operations Research, 2013.
[10] Hatem Hadda, Najoua Dridi, and Sonia Hajri-Gabouj. Exact resolution of the two-stage
hybrid flow shop with dedicated machines. Optimization Letters, 2014.
[11] Hatem Hadda, Mohamed Karim Hajji, and Najoua Dridi. On the two-stage hybrid flow
shop with dedicated machines. RAIRO - Operations Research, 2015.
[12] Mohamed Karim Hajji, Hatem Hadda, and Najoua Dridi. The two-stage hybrid flow shop
problem with dedicated machines under release dates and delivery times. International
Journal of Advanced Operations Management, (in press).
[13] J.W Herrmann and C.Y Lee. Three-machine Look-ahead Scheduling Problems. Research
Report. no 92-23, Department of Industrial and Systems Engineering, University of Florida, 1992.
[14] Ting-Chih Huang and B.M.T Lin. Batch scheduling in differentiation flow shops for
makespan minimisation. International Journal of Production Research, 2013.
[15] Z.H Jin, K. Ohno, T. Ito, and S.E Elmaghraby. Scheduling hybrid flowshops in printed
circuit board assembly lines. Production and Operations Management, 2002.
[16] Selmer Martin Johnson. Optimal two- and three-stage production schedules with setup
times included. Naval Research Logistics Quarterly, 1954.
[17] B.M.T Lin. The strong np-hardness of two-stage flowshop scheduling with a common
second-stage machine. Computers & Operations Research, 1999.
[18] Hung-Tso Lin and Ching-Jong Liao. A case study in a two-stage hybrid flow shop with
setup time and dedicated machines. International Journal of Production Economics, 2003.
[19] Yen-Cheng Liu, Kuei-Tang Fang, and B.M.T Lin. A branch-and-bound algorithm for
makespan minimization in differentiation flow shops. Engineering Optimization, 2013.
[20] H. Tsubone, M. Ohba, H. Takamuki, and Y. Miyake. A production scheduling system for
a hybrid flow shop a case study. Omega, 1993.
[21] Shijin Wang and Ming Liu. A heuristic method for two-stage hybrid flow shop with
dedicated machines. Computers & Operations Research, 2013.

Documents pareils