Complexité des problèmes d’optimisation
Complexité des problèmes d’ordonnancement :
Classes de Complexité
des Problème
d’optimisation
Facile
NP-difficile au sens faible
NP-difficile au sens fort
1
 Résolution exacte (méthode exacte)
 Résolution approchée (algorithmes d’approximation
ou heuristiques, méta-heuristiques, …)
Remarque : Toutes les méthodes de résolution des
problèmes d’optimisation sont utilisables + des
techniques spécifiques à l’ordonnancement (exemple :
algorithmes de listes ...)
III. Techniques de résolution des problèmes
d’ordonnancement
2
Méthodes de résolution
Résolution exacte :
 Algorithmes de liste ( à base de règles de priorités)
 Algorithmes de construction basés sur des règles de
dominance
 Algorithmes de séparation et évaluation successives
B&B,
 Algorithmes de programmation dynamique,
 ...
3
Méthodes de résolution
4
Résolution approchée :
 Algorithmes d’approximation (ou heuristiques) construits sur
des règles spécifiques : règles de priorité, règles de
dominance, ...
 Méthode exacte conduite de manière incomplète (Branch &
Bound incomplet ,… algorithmes d’approximation du type
PTAS
 Méta-heuristiques : recuit simulé, recherche tabou, algorithmes
génétiques, colonies de fourmis, variable neighbourhood
search, ...
 Algorithmes hybrides : une combinaison d’une méta-
heuristique et d’une parmi les deux premières méthodes
III.1. Algorithmes de listes
Principe :
Définir l’ordre de passage des travaux :
 Classer les travaux selon une règle de priorité dans
une liste
 Affecter les travaux selon leur ordre croissant dans la
liste à la machine disponible le plus tôt
Remarque: certaines règles de priorité sont optimales
pour certains problèmes.
.
5
Caractéristiques des règles de priorité
 Statique ou dynamique:
- Statique: dépend des données des travaux ou de la
machine et reste invariable dans le temps. Exemple:
SPT (shortest processing time first)
- Dynamique: varie en fonction du temps. Exemple:
MS (minimum slack first) Mini(max (di-pij-t,0))
 Locale ou globale:
- Locale: utilise les données de la machine où le travail
attend
- Globale: utilise les données des autres machines ou
des autres travaux
6
Quelques règles de priorité simples
 SPT: Shortest processing time first
- Ordre croissant des pij pour une Mj donnée
 LPT: Longest processing time first
- Ordre décroissant des pij pour une Mj donnée
 WSPT: Weighted shortest processing time first
- Ordre croissant des pij/wi pour une Mj donnée
 SIRO: Service in random order
- Ordre aléatoire des tâches
 LNS: Largest number of successors first
- Le plus grand nombre des opérations successeurs
7
Quelques règles de priorité simples
 ERD: Earliest release date first
- Ordre croissant des ri
 EDD: Earliest due date first
- Ordre croissant des di
 MS: Minimum slack first
- Si Mj est disponible au temps t, la marge de la tâche i
est max(di-pij-t,0)
- La tâche ayant la marge minimale est prioritaire
(selon marges croissantes)
8
Règles de priorité composées
 ATC (Apparent tardiness cost) est une règle qui
utilise WSPT et MS : La tâche i ayant la plus grande
valeur Ii(t) est ordonnancée en premier :
i
I (t)

wi
ij
. exp( i
p K.
p
max(d  pij  t, 0)
)
- K est un paramètre d’échelle lié aux di déterminé
empiriquement
- p temps opératoire moyen des tâches non-
traitées
9
Algorithmes de listes (suite)
Algorithmes exacts à base de règles de priorité :
Exemples : 1||ΣwjCj ; 1|rj, pmtn|ΣCj ; 1||Lmax ; 1|rj,
pmtn|Lmax ; F2||Cmax
 Algorithmes approchés à base de règles de priorité :
Exemple : P||Cmax
10
 1 || Σwj Cj :
- Cj la date de fin du travail j (une inconnue)
- Min Σwj Cj revient à minimiser les coûts des stocks
d’encours totaux pondérés (ou le temps de séjour
(pondéré) dans l’atelier)
- Un ordonnancement S est déterminé par la séquence
des travaux sur la machine
 Règle de Smith : Ordonnancer les travaux selon l’ordre
croissant des pj/wj (WSPT) est optimal pour 1 || Σwj
Cj
 Ordonnancer les travaux selon la règle SPT est optimal
Algorithmes exacts à base de règles de
priorité
11
j 1 2 3 4 5
pj 5 6 1 3 4
wj 2 1 2 1 2
pj/wj 2.5 6 0.5 3 2
•La séquence S*
w est optimale pour le problème 1||
ΣwjCj : S*
w= (3, 5, 1, 4, 2)
•La séquence S* est optimale pour le problème 1||
ΣCj : S*= (3, 4, 5, 1, 2)
• 1|rj|ΣwjCj est NP-difficile
• 1|rj, pmtn|ΣwjCj est NP-difficile au sens fort
• 1|rj|ΣCj est NP-difficile au sens fort
Règle de Smith
12
S*w
1 5 10 13 19
3 5 1 2
4
Definition : Total weighted completion time The sum of the weighted completion times of the n jobs
gives an indication of the total holding (de séjour) or inventory costs incurred by the schedule. The
sum of the completion times is in the literature often referred to as the flow time. The total weighted
completion time is then referred to as the weighted flow time.
Règle de Smith
13
 1|rj, pmtn|ΣCj :
- Une tâche j ne peut être traitée avant sa date de
disponibilité rj
- La préemption des tâches est autorisée
 Un ordonnancement optimal pour 1|rj, pmtn|ΣCj
peut être obtenu : A chaque fois qu’un travail est
achevé ou à la prochaine date de disponibilité, le
travail à traiter est celui qui a la plus petite durée
résiduelle parmi les travaux disponibles. (Règle
SRPT)
Algorithmes exacts à base de règles de
priorité
14
 1||Lmax et 1|rj, pmtn|Lmax
 Règle de Jackson: consiste à donner la priorité la
plus élevée à la tâche disponible de plus petite date
échue.
 Si pour toute tâche j, rj=0, l’ordre de Jackson se
réduit à la règle EDD : Earliest due date
 La règle EDD est optimale pour 1||Lmax
 L’ordonnancement de Jackson est optimal pour
1|rj, pmtn|Lmax
 1|rj|Lmax est NP-difficile au sens fort.
Algorithmes exacts à base de règles de
priorité
15
Règle de Jackson
j 1 2 3 4 5 6 7
rj 5 0 11 13 9 20 30
pj 6 4 7 4 5 3 6
dj 38 30 24 25 27 40 47
16
Règle de Jackson
j 1 2 3 4 5 6 7
rj 5 0 11 13 9 20 30
pj 6 4 7 4 5 3 6
dj 38 30 24 25 27 40 47
Ordonnancement de Jackson préemptif
-26 -6 -3 -2 -11 -10 -11
4 9 11 18 22 25 27 30 36
2 1 5 3 4 5 1 6 7
17
 F2||Cmax :
- n travaux à exécuter selon deux tâches successives
sur M1 puis sur M2
- La durée du travail i sur M1 est pi1 et sur M2 est pi2
- Déterminer l’ordre de passage des tâches sur
chacune des machines tel qu’on minimise Cmax
- Cet ordre est-t- il le même sur les deux
machines ?
Algorithmes exacts à base de règles de
priorité
18
Définition:
Un ordonnancement de permutation est un
ordonnancement tel que les travaux ont le même ordre
sur toutes les machines
 Les ordonnancements de permutation sont
dominants pour F2||Cmax
 Il existe un ordonnancement optimal qui conserve
l’ordre des travaux sur M1 et sur M2 pour F2||Cmax
Algorithmes exacts à base de règles de
priorité
19
Algorithmes exacts à base de règles de
priorité
 Idée:
- Réaliser les tâches ayant les plus petites durées d’abord
sur M1 pour minimiser le temps d’attente sur M2.
- Réaliser les tâches ayant les plus longues durées d’abord
sur M2 pour minimiser le temps mort sur M1.
 Règle de Johnson:
- Fractionner l’ensemble des travaux en deux sous-ens.:
A  {i / pi1  pi2 } B  {i / pi1  pi2 }
- Ordonnancer les tâches de A selon pi1 croissants: πA
- Ordonnancer les tâches de B selon pi2 décroissants: πB
- Concaténer les deux séquences tel que S*={πA, πB}
20
Règle de Johnson
 Déterminer un ordonnancement optimal S* pour
cette instance.
 Représenter le diagramme de Gantt de S*
i 1 2 3 4 5
pi1 1 3 2 3 11
pi2 5 4 6 2 5
21
 La règle de Johnson est optimale pour F2||Cmax
Exemple :

Règle de Johnson
 A= {1, 3, 2} ; B={5,4}
 S*= (1, 3, 2, 5, 4)
 Etant donné une permutation i=1; 2; . . . ; n de travaux, le
Makespan de l’ordonnancement associé est donné par :
C*
max= p11+p21+p31+p51+p52+p42
 La complexité de l’algorithme est de O(n log (n))
C *
m a x = 2 4
1
1
3
3
2
2
5
5
4
4
M 1
M 2
C m a x u
 m a x ( i 1

i  1 i  u
u n
p   p i
2 )
22
Algorithme approché à base de règles de
priorité
j 1 2 3 4 5 6
pj 4 5 5 3 2 5
• Soit P3| |Cmax
•Construire un ordonnancement de l’instance ci-dessus en
se basant sur la règle LPT
• Représenter son diagramme de Gantt
23
Algorithme approché à base de règles de
priorité
max
C *
• P||Cmax est NP-difficile pour m ≥ 2
• LPT permet pour P||Cmax, d’obtenir un ordonnancement
tel que Cm a x (LPT ) 
4 
1
3 3m
24
Annexe : Remarques sur la complexité des
problèmes d’optimisation
 La complexité d’un problème de décision
(d’optimisation) est définie grâce à la complexité
dans le pire des cas du meilleur algorithme le
résolvant.
 Deux mesures pour évaluer la complexité d’un
algorithme : le temps et l’espace mémoire (dans
notre cours on considère la complexité en terme de
temps d’exécution)
 Un problème d’optimisation est prouvé NP-difficile
si son problème de décision est NP-complet
25
Annexe : Remarques sur la complexité des
problèmes d’optimisation
 Un problème de décision D est NP-complet si et seulement
toute instance d’un problème D’, NP-complet, peut être
transformée polynomialement (c.a.d. par réduction
polynomiale) en une instance de D.
Exemple :
 1||ΣwjUj avec des di identiques (équivalent au
problème du sac à dos : Knapsak problem )
 Le problème de décision NP-complet PARTITION se
réduit polynomialement au problème de décision
associé au sac à dos.
 D’où 1||ΣwjUj est NP-difficile au sens ordinaire
(faible)
26
Annexe : Remarques sur la complexité des
problèmes d’optimisation
 Un problème de décision NP-complet pour lequel il
existe un algorithme pseudo-polynomial connu est
appelé NP-complet au sens faible; un problème est NP-
complet au sens fort s’il est prouvé qu’il ne peut pas
être résolu par un algorithme pseudo-polynomial à
moins que P=NP.
 Le programme dynamique vu dans III, pour résoudre
1||ΣwjUj est de complexité pseudo-polynomiale.
 Notation O(f(n)) (c.f. notations asymptotiques)
27
Outline
 Ce cours peut évoluer vers optimisation des pbs de
transport
 Allocation d’espaces ; optimisation de flux
 Etc.
 Optimisation avancée …
28
Exemples de complexité de problèmes (extrait
de Pinedo 2012)
29
Exemples de complexité de problèmes (extrait
de Pinedo 2012)
30
Exemples de complexité de problèmes (extrait
de Pinedo 2012)
31
Hiérarchie de la complexité (extrait de Pinedo
2012)
32
Exemples de complexité de problèmes (extrait
de Pinedo 2012)
33

ordonnancement2023p2-240610101529-82c96eaa.pptx

  • 1.
    Complexité des problèmesd’optimisation Complexité des problèmes d’ordonnancement : Classes de Complexité des Problème d’optimisation Facile NP-difficile au sens faible NP-difficile au sens fort 1
  • 2.
     Résolution exacte(méthode exacte)  Résolution approchée (algorithmes d’approximation ou heuristiques, méta-heuristiques, …) Remarque : Toutes les méthodes de résolution des problèmes d’optimisation sont utilisables + des techniques spécifiques à l’ordonnancement (exemple : algorithmes de listes ...) III. Techniques de résolution des problèmes d’ordonnancement 2
  • 3.
    Méthodes de résolution Résolutionexacte :  Algorithmes de liste ( à base de règles de priorités)  Algorithmes de construction basés sur des règles de dominance  Algorithmes de séparation et évaluation successives B&B,  Algorithmes de programmation dynamique,  ... 3
  • 4.
    Méthodes de résolution 4 Résolutionapprochée :  Algorithmes d’approximation (ou heuristiques) construits sur des règles spécifiques : règles de priorité, règles de dominance, ...  Méthode exacte conduite de manière incomplète (Branch & Bound incomplet ,… algorithmes d’approximation du type PTAS  Méta-heuristiques : recuit simulé, recherche tabou, algorithmes génétiques, colonies de fourmis, variable neighbourhood search, ...  Algorithmes hybrides : une combinaison d’une méta- heuristique et d’une parmi les deux premières méthodes
  • 5.
    III.1. Algorithmes delistes Principe : Définir l’ordre de passage des travaux :  Classer les travaux selon une règle de priorité dans une liste  Affecter les travaux selon leur ordre croissant dans la liste à la machine disponible le plus tôt Remarque: certaines règles de priorité sont optimales pour certains problèmes. . 5
  • 6.
    Caractéristiques des règlesde priorité  Statique ou dynamique: - Statique: dépend des données des travaux ou de la machine et reste invariable dans le temps. Exemple: SPT (shortest processing time first) - Dynamique: varie en fonction du temps. Exemple: MS (minimum slack first) Mini(max (di-pij-t,0))  Locale ou globale: - Locale: utilise les données de la machine où le travail attend - Globale: utilise les données des autres machines ou des autres travaux 6
  • 7.
    Quelques règles depriorité simples  SPT: Shortest processing time first - Ordre croissant des pij pour une Mj donnée  LPT: Longest processing time first - Ordre décroissant des pij pour une Mj donnée  WSPT: Weighted shortest processing time first - Ordre croissant des pij/wi pour une Mj donnée  SIRO: Service in random order - Ordre aléatoire des tâches  LNS: Largest number of successors first - Le plus grand nombre des opérations successeurs 7
  • 8.
    Quelques règles depriorité simples  ERD: Earliest release date first - Ordre croissant des ri  EDD: Earliest due date first - Ordre croissant des di  MS: Minimum slack first - Si Mj est disponible au temps t, la marge de la tâche i est max(di-pij-t,0) - La tâche ayant la marge minimale est prioritaire (selon marges croissantes) 8
  • 9.
    Règles de prioritécomposées  ATC (Apparent tardiness cost) est une règle qui utilise WSPT et MS : La tâche i ayant la plus grande valeur Ii(t) est ordonnancée en premier : i I (t)  wi ij . exp( i p K. p max(d  pij  t, 0) ) - K est un paramètre d’échelle lié aux di déterminé empiriquement - p temps opératoire moyen des tâches non- traitées 9
  • 10.
    Algorithmes de listes(suite) Algorithmes exacts à base de règles de priorité : Exemples : 1||ΣwjCj ; 1|rj, pmtn|ΣCj ; 1||Lmax ; 1|rj, pmtn|Lmax ; F2||Cmax  Algorithmes approchés à base de règles de priorité : Exemple : P||Cmax 10
  • 11.
     1 ||Σwj Cj : - Cj la date de fin du travail j (une inconnue) - Min Σwj Cj revient à minimiser les coûts des stocks d’encours totaux pondérés (ou le temps de séjour (pondéré) dans l’atelier) - Un ordonnancement S est déterminé par la séquence des travaux sur la machine  Règle de Smith : Ordonnancer les travaux selon l’ordre croissant des pj/wj (WSPT) est optimal pour 1 || Σwj Cj  Ordonnancer les travaux selon la règle SPT est optimal Algorithmes exacts à base de règles de priorité 11
  • 12.
    j 1 23 4 5 pj 5 6 1 3 4 wj 2 1 2 1 2 pj/wj 2.5 6 0.5 3 2 •La séquence S* w est optimale pour le problème 1|| ΣwjCj : S* w= (3, 5, 1, 4, 2) •La séquence S* est optimale pour le problème 1|| ΣCj : S*= (3, 4, 5, 1, 2) • 1|rj|ΣwjCj est NP-difficile • 1|rj, pmtn|ΣwjCj est NP-difficile au sens fort • 1|rj|ΣCj est NP-difficile au sens fort Règle de Smith 12
  • 13.
    S*w 1 5 1013 19 3 5 1 2 4 Definition : Total weighted completion time The sum of the weighted completion times of the n jobs gives an indication of the total holding (de séjour) or inventory costs incurred by the schedule. The sum of the completion times is in the literature often referred to as the flow time. The total weighted completion time is then referred to as the weighted flow time. Règle de Smith 13
  • 14.
     1|rj, pmtn|ΣCj: - Une tâche j ne peut être traitée avant sa date de disponibilité rj - La préemption des tâches est autorisée  Un ordonnancement optimal pour 1|rj, pmtn|ΣCj peut être obtenu : A chaque fois qu’un travail est achevé ou à la prochaine date de disponibilité, le travail à traiter est celui qui a la plus petite durée résiduelle parmi les travaux disponibles. (Règle SRPT) Algorithmes exacts à base de règles de priorité 14
  • 15.
     1||Lmax et1|rj, pmtn|Lmax  Règle de Jackson: consiste à donner la priorité la plus élevée à la tâche disponible de plus petite date échue.  Si pour toute tâche j, rj=0, l’ordre de Jackson se réduit à la règle EDD : Earliest due date  La règle EDD est optimale pour 1||Lmax  L’ordonnancement de Jackson est optimal pour 1|rj, pmtn|Lmax  1|rj|Lmax est NP-difficile au sens fort. Algorithmes exacts à base de règles de priorité 15
  • 16.
    Règle de Jackson j1 2 3 4 5 6 7 rj 5 0 11 13 9 20 30 pj 6 4 7 4 5 3 6 dj 38 30 24 25 27 40 47 16
  • 17.
    Règle de Jackson j1 2 3 4 5 6 7 rj 5 0 11 13 9 20 30 pj 6 4 7 4 5 3 6 dj 38 30 24 25 27 40 47 Ordonnancement de Jackson préemptif -26 -6 -3 -2 -11 -10 -11 4 9 11 18 22 25 27 30 36 2 1 5 3 4 5 1 6 7 17
  • 18.
     F2||Cmax : -n travaux à exécuter selon deux tâches successives sur M1 puis sur M2 - La durée du travail i sur M1 est pi1 et sur M2 est pi2 - Déterminer l’ordre de passage des tâches sur chacune des machines tel qu’on minimise Cmax - Cet ordre est-t- il le même sur les deux machines ? Algorithmes exacts à base de règles de priorité 18
  • 19.
    Définition: Un ordonnancement depermutation est un ordonnancement tel que les travaux ont le même ordre sur toutes les machines  Les ordonnancements de permutation sont dominants pour F2||Cmax  Il existe un ordonnancement optimal qui conserve l’ordre des travaux sur M1 et sur M2 pour F2||Cmax Algorithmes exacts à base de règles de priorité 19
  • 20.
    Algorithmes exacts àbase de règles de priorité  Idée: - Réaliser les tâches ayant les plus petites durées d’abord sur M1 pour minimiser le temps d’attente sur M2. - Réaliser les tâches ayant les plus longues durées d’abord sur M2 pour minimiser le temps mort sur M1.  Règle de Johnson: - Fractionner l’ensemble des travaux en deux sous-ens.: A  {i / pi1  pi2 } B  {i / pi1  pi2 } - Ordonnancer les tâches de A selon pi1 croissants: πA - Ordonnancer les tâches de B selon pi2 décroissants: πB - Concaténer les deux séquences tel que S*={πA, πB} 20
  • 21.
    Règle de Johnson Déterminer un ordonnancement optimal S* pour cette instance.  Représenter le diagramme de Gantt de S* i 1 2 3 4 5 pi1 1 3 2 3 11 pi2 5 4 6 2 5 21  La règle de Johnson est optimale pour F2||Cmax Exemple : 
  • 22.
    Règle de Johnson A= {1, 3, 2} ; B={5,4}  S*= (1, 3, 2, 5, 4)  Etant donné une permutation i=1; 2; . . . ; n de travaux, le Makespan de l’ordonnancement associé est donné par : C* max= p11+p21+p31+p51+p52+p42  La complexité de l’algorithme est de O(n log (n)) C * m a x = 2 4 1 1 3 3 2 2 5 5 4 4 M 1 M 2 C m a x u  m a x ( i 1  i  1 i  u u n p   p i 2 ) 22
  • 23.
    Algorithme approché àbase de règles de priorité j 1 2 3 4 5 6 pj 4 5 5 3 2 5 • Soit P3| |Cmax •Construire un ordonnancement de l’instance ci-dessus en se basant sur la règle LPT • Représenter son diagramme de Gantt 23
  • 24.
    Algorithme approché àbase de règles de priorité max C * • P||Cmax est NP-difficile pour m ≥ 2 • LPT permet pour P||Cmax, d’obtenir un ordonnancement tel que Cm a x (LPT )  4  1 3 3m 24
  • 25.
    Annexe : Remarquessur la complexité des problèmes d’optimisation  La complexité d’un problème de décision (d’optimisation) est définie grâce à la complexité dans le pire des cas du meilleur algorithme le résolvant.  Deux mesures pour évaluer la complexité d’un algorithme : le temps et l’espace mémoire (dans notre cours on considère la complexité en terme de temps d’exécution)  Un problème d’optimisation est prouvé NP-difficile si son problème de décision est NP-complet 25
  • 26.
    Annexe : Remarquessur la complexité des problèmes d’optimisation  Un problème de décision D est NP-complet si et seulement toute instance d’un problème D’, NP-complet, peut être transformée polynomialement (c.a.d. par réduction polynomiale) en une instance de D. Exemple :  1||ΣwjUj avec des di identiques (équivalent au problème du sac à dos : Knapsak problem )  Le problème de décision NP-complet PARTITION se réduit polynomialement au problème de décision associé au sac à dos.  D’où 1||ΣwjUj est NP-difficile au sens ordinaire (faible) 26
  • 27.
    Annexe : Remarquessur la complexité des problèmes d’optimisation  Un problème de décision NP-complet pour lequel il existe un algorithme pseudo-polynomial connu est appelé NP-complet au sens faible; un problème est NP- complet au sens fort s’il est prouvé qu’il ne peut pas être résolu par un algorithme pseudo-polynomial à moins que P=NP.  Le programme dynamique vu dans III, pour résoudre 1||ΣwjUj est de complexité pseudo-polynomiale.  Notation O(f(n)) (c.f. notations asymptotiques) 27
  • 28.
    Outline  Ce courspeut évoluer vers optimisation des pbs de transport  Allocation d’espaces ; optimisation de flux  Etc.  Optimisation avancée … 28
  • 29.
    Exemples de complexitéde problèmes (extrait de Pinedo 2012) 29
  • 30.
    Exemples de complexitéde problèmes (extrait de Pinedo 2012) 30
  • 31.
    Exemples de complexitéde problèmes (extrait de Pinedo 2012) 31
  • 32.
    Hiérarchie de lacomplexité (extrait de Pinedo 2012) 32
  • 33.
    Exemples de complexitéde problèmes (extrait de Pinedo 2012) 33