KRAM Zakaria
KRAM Zakaria
KRAM Zakaria
DEPARTEMENT D’INFORMATIQUE
SUJET
Je tiens tout d'abord à remercier Dieu le tout-puissant et Le Miséricordieux, qui m’a donné
la vie et la force ainsi que le courage et l’audace pour dépasser toutes les difficultés, d’avoir
En second lieux je tiens à remercier mon encadreur Mr. MOUHOUB NACER EDDINE
Je remercier aussi Mr. GUERNA Abderrahim et Mr. BOUNIF Mohamed El-Hadi pour
m’avoir assister et m’aides par leurs précieux conseils et de m’avoir offerts toutes les
Et je remercier aussi tous les professeurs qui aide moi des deux années de master au
Enfin je tiens aussi à remercier tous mes amis et collègues d’étude qui mon aider de près
~I~
Dédicace
Toutes les lettres ne sauraient trouver les mots qu’il faut… Tous les mots ne
c’est tout simplement que Je dédie ce travail qui n’aura jamais pu voir le jour sans
les soutiens
Malika) qui ne cessent de me donner avec amour le nécessaire pour que je puisse
Que dieux vous protège et que la réussite soit toujours à ma portée pour que je
~ II ~
Table des matières
Introduction Générale 1
1- Introduction 3
2- Définition 3
1- Introduction 12
2- Définition 12
3- Les domaines concernés 12
4- Les objectifs de l'ordonnancement 13
~ III ~
Chapitre 3 : Problème d’ordonnancement d'atelier
1 - Introduction 19
2 - Définition 19
3 - schémas de classification 20
1 - Introduction 27
2– Définition 27
3- Makespan (𝑪𝒎𝒂𝒙). 27
4 - Les Différents modèles 28
~ IV ~
Chapitre 5 : Conception et réalisation
1 - Introduction 37
2 – Le langage Java 37
6 - La Conception du code 40
7- La réalisation 41
8.1-Codage 42
8.5- Croisement 44
8.6- Mutation 44
11 - Comparaison 46
Conclusion générale 47
~V~
Liste des Figures
Figure 1.1 Classification des méthodes d’optimisation combinatoire
Figure 1.2 La divisions en sous-problèmes.
Figure 1.3 La représentions des modules de codage
Figure 1.4 La représentions de la sélection par roulette
Figure 1.5 La représentions de la sélection par tournois
Figure 1.6 La représentation de croissement a un point
Figure 1.7 La représentation de croissement a un multipoints
Figure 1.8 La représentation de croissement uniforme
Figure 1.9 La représentation de mutation
Figure 2.1 Les Domaines concernés des problèmes d’ordonnancement
Figure 2.2 La caractéristique d’une tache.
Figure 2.3 Le diagramme de Gantt
Figure 2.4 Graphe potentiel-tâches d'un ordonnancement
Figure 3.1 Les types de machine.
Figure 3.2 Les problèmes d’ordonnancement a une machine
Figure 3.3 Les problèmes d’ordonnancement a machines parallèles
Figure 3.4 La représentation d’un problème d’ordonnancement cheminement unique (flow-
shop)
Figure 3.5 La représentation d’un problème d’ordonnancement cheminement multiple (job
shop)
Figure 3.6 La représentation d’un flow show hybride à « k » étages
Figure 3.7 Le représentation d’un Job shop simple & hybride
Figure 5.1 Le schéma de réalisation de problème
Figure 5.2 L’interface graphique de l’application
Figure 5.3 Le tableau des tâches
Figure 5.4 L’insertion des données
Figure 5.5 La population que on a sélectionnée (100 individu)
Figure 5.6 Le diagramme de Gantt de l’AG
Figure 5.7 Le diagramme de Gantt de l’algorithme Glouton
Figure 5.8 Le diagramme de Gantt de AG après l’ajoutons une tâche
Figure 5.9 Le diagramme de Gantt de Algorithme Glouton après
~ VI ~
Liste des Tables
Tab 5.1 Le tableau des tâches
Tab 5.2 : le tableau des tâches après l’ajoutons une tâche4
~ VII ~
~8~
~9~
Introduction Générale
Introduction Générale
Dans un problème d’atelier, une pièce doit être usinée ou assemblée sur différentes
machines. Chaque machine est une ressource disjonctive, c’est-à-dire qu’elle ne peut exécuter
qu’une tâche à la fois, et les tâches sont liées exclusivement par des contraintes l’enchaînement.
Plus précisément, les tâches sont regroupées en « n » entités appelées travaux ou lots. Chaque
lot est constitué de « n » tâches à exécuter sur « m » machines distinctes.
Il existe Une classification très répandue des ateliers, du point de vue ordonnancement,
est basée sur les différentes configurations des machines. Les modèles les plus connus sont ceux
d’une machine unique, de machines parallèles, d’un atelier à cheminement unique (flow shop)
ou d’un atelier à cheminement multiple (job shop). Un critère d’optimalité souvent étudié est la
minimisation du délai total de l’ordonnancement (makespan).
1
Introduction Générale
Ce mémoire est composé de cinq chapitres dont nous présentons une brève description
dans les paragraphes suivants :
2
Chapitre 1 Problème du L'optimisation combinatoire
1- Introduction
2 - Définition
L'optimisation combinatoire est minimiser ou maximiser une fonction souvent appelée
fonction coût, d'une ou plusieurs variables soumises à des contraintes. L'optimisation
combinatoire occupe une place très importante en recherche opérationnelle, en mathématiques
discrètes et en informatique. Son importance se justifie d'une part par la grande difficulté des
problèmes d'optimisation et d'autre part par de nombreuses applications pratiques pouvant être
formulées sous la forme d'un problème d'optimisation combinatoire. [MR 08]
Bien que les problèmes d'optimisation combinatoire soient souvent faciles à définir, ils
sont généralement difficiles à résoudre. En effet, la plupart de ces problèmes appartiennent à la
classe des problèmes NP-difficiles et ne possèdent donc pas à ce jour de solution algorithmique
efficace valable pour toutes les données. [AL 10]
3
Chapitre 1 Problème du L'optimisation combinatoire
Dans la littérature, on distingue essentiellement deux classes des méthodes, (Figure 1.1)
A* Simplex Population
Solution
4
Chapitre 1 Problème du L'optimisation combinatoire
La profondeur d’abord Cette stratégie avantage les sommets les plus éloignés de
la racine en appliquant plus de séparations au problème initial. Cette voie mène
rapidement à une solution optimale en économisant la mémoire.
Le meilleur d’abord Cette stratégie consiste à explorer des sous-problèmes
possédant la meilleure borne. Elle permet aussi d’éviter l’exploration de tous les
sous problèmes qui possèdent une mauvaise évaluation par rapport à la valeur
optimale.
La largeur d’abord Cette stratégie favorise les sommets les plus proches de la
racine en faisant moins de séparations du problème initial. Elle est moins efficace
que les deux autres stratégies présentées. [BB 08]
5
Chapitre 1 Problème du L'optimisation combinatoire
Le concept de base est simple, une solution optimale est la somme de sous-problèmes
résolus de façon optimale. Il faut donc diviser un problème donné en sous-problèmes et les
résoudre un par un. (Figure 1.2)
La méthode comprend deux étapes
Prolonger le problème dans une famille de sous problèmes de même nature.
Relier par une relation de récurrence les solutions optimales de ses sous-ensembles.
La Programmation Dynamique est une méthode exacte de résolution de problèmes
d’optimisation, due essentiellement à R. Bellman (1957).
Bien que très puissante, son cadre d’application est relativement restreint, dans la
mesure où les problèmes qu’elle adresse doivent vérifier un principe dit principe d’optimalité
qui stipule qu’une solution optimale d’un problème de taille n peut s’exprimer en fonction de
la solution optimale de problèmes de taille inférieure à « n ». [HF 16]
Sous-problèmes Trouvé en 4
Problème 1 2 3 1 2 3
Division Résolution
Principal 4 5 6 4 5 6
7 8 9 7 8 9
6
Chapitre 1 Problème du L'optimisation combinatoire
« X » est un vecteur n-dimensionnel représentant la solution qui doit être optimisée. C’est un
vecteur de la même taille représentant la fonction objectif « 𝐶 𝑇 𝑋» De même, la matrice « A »
représente avec le vecteur « b » les contraintes du problème linéaire.
Une solution d’un programme linéaire est une affectation de valeurs aux variables du
problème. Une solution est réalisable si elle satisfait toutes les contraintes du problème.
L’algorithme d’optimisation le plus couramment utilisé en programmation linaire est
l’algorithme du simplex. [HT 07]
Ainsi, étant donné un ensemble d’inégalités linéaires sur « n » variables réelles,
l’algorithme peut trouver la solution optimale pour un problème linéaire d’une manière itérative
en démarrant avec une solution initiale. [AL 10]
7
Chapitre 1 Problème du L'optimisation combinatoire
stratégies de décision pour construire une solution proche de l’optimum, tout en essayant de
l’obtenir en un temps de calcul raisonnable. [AK 12]
FIFO (First In First Out) la première tâche qui vient est la première tâche
ordonnancée.
SPT (Shortest Processing Time) la tâche ayant le temps opératoire le plus court est
traitée en premier lieu.
LPT (Longest Processing Time) la tâche ayant le temps opératoire le plus important
est ordonnancée en premier lieu.
EDD (Earliest Due Date) la tâche ayant la date due la plus petite est la plus
prioritaire.
SRPT (Shortest Remaining Processing Time) cette règle, servant à lancer la tâche
ayant la plus courte durée de travail restant à exécuter, est très utilisée pour minimiser
les encours et dans le cas des problèmes d’ordonnancement préemptifs.
ST (Slack Time) à chaque point de décision, l’opération ayant la plus petite marge
temporelle est prioritaire. Faute de disponibilité des ressources de production, cette
marge peut devenir négative.
8
Chapitre 1 Problème du L'optimisation combinatoire
9
Chapitre 1 Problème du L'optimisation combinatoire
(fitness) relative. Sur la base de ces performances on crée une nouvelle population de
solutions potentielles en utilisant des opérateurs évolutionnaires simples : la sélection, le
croisement et la mutation. On recommence ce cycle jusqu’à ce que l’on trouve une
solution satisfaisante. [TV 01]
5- La complexité
A première vue, comment déterminer un algorithme efficace ? Pour un problème donné,
chercher un algorithme efficace, veut dire trouver un algorithme où le temps nécessaire à son
exécution ne soit pas trop important. Un problème est dit facile si on peut le résoudre facilement,
c'est-à-dire s‘il ne fait pas trop de temps pour arriver à la solution. Donc, s‘il existe un
algorithme efficace pour un problème donné, alors ce dernier est dit facile.
Un problème pour lequel on ne connaît pas d‘algorithme efficace, est ce qu‘il est facile
ou difficile ?
De nombreux chercheurs se sont penchés sur ce genre de problèmes et ils ont développé une
théorie appelée de la complexité. Nous n‘allons pas détailler cette théorie, mais nous allons,
quand même donner une idée globale du sujet en question. [MA 11].
10
Chapitre 1 Problème du L'optimisation combinatoire
consiste à trouver pour chaque ensemble de données D des solutions S associées. Un problème
d’optimisation est un problème de recherche en associant à chaque solution une valeur
qualitative. A chaque problème d’optimisation, on peut associer un problème de décision (par
exemple l’exclusion ou l’inclusion d’une solution dans les futures générations pour les AG),
donc l’étude de la complexité du problème de décision peut donner des indications au problème
d’optimisation associé.
La théorie de la complexité permet de classer les problèmes en deux classes P et NP. La
classe P regroupe les problèmes qui peuvent être résolus par des algorithmes polynomiaux. Un
algorithme est dit polynomial, lorsque son temps d’exécution est borné par O(P(x)) ou p est un
polynôme et x est la longueur d’entrée d’une instance du problème. Les algorithmes dont la
complexité ne peut pas être bornée polynomilement sont qualifiés d’exponentiels et
correspondent à la classe NP. Un problème de décision est dit NP-complet s’il appartient à la
classe NP et il résolu, au mieux, en un temps exponentiel. Un problème d’optimisation est dit
NP-Difficile, si le problème de décision associé est NP-complet [MA 11].
11
Chapitre 02 Les problèmes d’ordonnancement
1- Introduction
2- Définition
Projet Production
Ordonnancement
Administration Informatique
Gestion des ressources Exécution des programmes
humaines emplois du temps optimisation de code
Figure 2.1 : Les domaine concernés des problèmes d’ordonnancement
12
Chapitre 02 Les problèmes d’ordonnancement
Les tâches
Une tâche (task en l’anglais) fait référence à la réalisation d’une opération, cette dernière
étant caractérisée par des informations pertinentes nécessaires à la résolution du problème
étudié. Ces informations peuvent être différentes selon des critères (l’objectif de l’étude et le
point de vue). A titre d’exemple, le planeur s’intéressera au temps requis pour réaliser
13
Chapitre 02 Les problèmes d’ordonnancement
l’opération sur une machine donnée, au type de ressources que cette opération consomme et à
la quantité, tandis que l’opérateur va lui s’intéresser au procédé de réalisation de l’opération.
Dans le cadre des problèmes d’ordonnancement, parmi les informations utiles, on trouve
le temps nécessaire pour la réalisation d’une tâche, la(les) ressource(s) qu’elle requiert (une
ressource étant renouvelable ou non), une date de début au plus tôt, une date de fin souhaitée et
une date de fin impérative. Des contraintes de précédence conditionnent l’exécution d’une tâche
par rapport à la fin d’exécution d’autres tâches. Une tâche est alors considérée comme
l’exécution d’une opération sur une certaine machine. Plusieurs tâches peuvent être regroupées
pour constituer un « job » pour lequel on donne la gamme de production. Il est également
nécessaire de connaitre la nature de la tâche, par exemple savoir si une tâche est interruptible
ou non, c'est-à-dire de savoir si le traitement d’une tâche sur une ressource donnée peut
s’interrompre pendant une certaine durée et de le poursuivre ensuite, cela se traduit par
l’autorisation de la préemption des tâches ou non. Les notations suivantes sont introduites pour
décrire une opération. Chaque variable, représentera une information particulière se rapportant
à la réalisation de l’opération :
ri : Pour représenter la date de disponibilité de la tâche « i » (release date).
t i : Pour représenter la date de début de la tâche « i » (start date).
ci : Pour représenter la date de fin d’exécution de la tâche « i » (completion time).
di : Pour représenter la date d’échéance de la tâche « i » (due date).
pi : Pour représenter la durée opératoire de la tâche « i » (processing time date).
F = ci – ri : Pour représenter la durée de séjour de l’opération « i » sur la machine
avant qu’elle redevienne disponible (flow time).
Li = ci − di : Exprime le retard algébrique (lateness) entre la fin d’exécution de la
tâche « i » par rapport à sa date d’échéance .
Ti =max(Li , 0) : Qui exprime le retard absolu de la tâche « i » (tardiness) .
Ei =max(− Li , 0) : Qui exprime l’avancement (earliness) de la tâche « i » .
Ces variables sont notamment retenues dans la littérature pour représenter une opération.
La « Figure 2.2 » montre les relations entre les différentes variables représentant une tâche.
14
Chapitre 02 Les problèmes d’ordonnancement
Les ressources
Deux familles de ressources existent
La première famille de ressources est dite renouvelable c'est-à-dire que ces ressources
sont réutilisables après la fin d’exécution des opérations. Cette famille est assemblée de
machines d’hommes et des outils de productions. Généralement des ressources additionnelles
sont considérées comme par exemple l’utilisation des moyens de transport, ou des robots, ou
des ressources d’un autre genre comme les buffers d’entrée/sortie. Pendant ces ressources on
distingue aussi, des ressources disjonctives qui ne peuvent exécuter qu’une seule opération à la
fois et des ressources cumulatives qui savent exécuter plusieurs opérations à la fois par exemple
des machines parallèles, notons qu’une machine fait partie de l’ensemble des ressources
renouvelable : une machine de capacité 1 est une ressource disponible en un unique exemplaire.
La deuxième famille est dite consommable et regroupe toutes les ressources qui
deviennent indisponibles après une utilisation, par exemple des matières premières de l’argent,
de l’énergie etc.
Les contraintes
Les contraintes expriment les restrictions que peuvent prendre conjointement les variables
de décision. Donc les contraintes nous renseignent sur les limites imposées par
l’environnement. On distingue plusieurs types de contraintes, qui sont, Les contraintes de
positionnement temporelles, Pour la réussite d’un projet ou d’un plan de production, on doit se
soumettre aux impératifs de production (réalisation) traduits par le respect d’un planning fixé
avant. Au niveau global on parlera d’une date de lancement d’une tâche et d’une date de
livraison. A un autre niveau de détail plus fin, pour une tâche ou une opération. Ce dernier
15
Chapitre 02 Les problèmes d’ordonnancement
niveau se traduit par la définition des dates suivante : date de disponibilité « ri », date
d’échéance « di ».
Les contraintes de précédence, une contrainte qui lie le début d’une activité à la fin d’un
autre est appelée contrainte de succession ou de précédence. Les gammes opératoires sont un
exemple de ces contraintes, d’autres contraintes sont imposées dans certain cas telles que les
contraintes de synchronisation, de simultanéité, ou de recouvrements etc.
Les contraintes de ressources représentent le fait que les activités requièrent tout au long
de leur exécution une certaine quantité de ressources, elle concernent les deux points suivants :
L’utilisation de ces ressources (leur nature, la quantité nécessaire, et les
caractéristiques d’utilisation).
La disponibilité et la quantité de ces ressources.
Ces contraintes nous donnent une information précise sur la nature de l’atelier, et influencent
le choix des méthodes d’optimisation, Il est important de noter qu’en fonction des objectifs de
l’étude, ces contraintes peuvent être strictes ou non. Lorsqu’elles sont strictes, elles constituent
des obligations à respecter. Lorsqu’elles ne sont pas strictes, on peut ne pas les satisfaire et on
les appelle alors des contraintes de préférence. [LA 01]
16
Chapitre 02 Les problèmes d’ordonnancement
Le diagramme de Gantt ressource, est composé d'une ligne horizontale pour chaque ressource
(machine). Sur cette ligne, sont visualisées les périodes d'exécution des différentes opérations
en séquence et les périodes de l'oisiveté de la ressource.
Le diagramme de Gantt tâches permet de visualiser les séquences des opérations des
tâches, en représentant chaque tâche par une ligne sur laquelle sont visibles, les périodes
d'exécution des opérations et les périodes ou la tâche est en attente des ressources.
17
Chapitre 02 Les problèmes d’ordonnancement
6
a f
0 3
3 d 2
0
S b S’
4
3
0 e
c S 6
Dans l’exemple représenté dans « Figure 4.2 » la tâche « f » ne peut s'exécuter que si a et d ont
été réalisées. Donc, pour exécuter « a » il faut 6 mois et pour exécuter « d » il faut 2+3 mois.
La tâche « f » ne pourra commencer au plus tôt que 6 mois après le début du projet : c'est donc
le plus long chemin entre « a » et « f ».
- la durée du projet, qui correspond au plus long chemin entre S (tâche de début du projet) et
S’ (tâche de fin du projet).
18
Chapitre 3 Les problèmes d’ordonnancement d'atelier
1- Introduction
2 –Définition :
Dans un problème d’atelier, une pièce doit être usinée ou assemblée sur différentes
machines. Chaque machine est une ressource disjonctive, c’est-à-dire qu’elle ne peut exécuter
qu’une tâche à la fois, et les tâches sont liées exclusivement par des contraintes d’enchaînement.
Plus précisément, les tâches sont regroupées en « n » entités appelées travaux ou lots.
Chaque lot est constitué de « m » tâches à exécuter sur « m » machines distinctes, et dans le cas
des problèmes d’atelier, une tâche est une opération, une ressource est une machine et chaque
opération nécessite pour sa réalisation une machine.
Un atelier se définit par le nombre de machines qu’il contient et par son type. Une
classification peut exister selon le nombre des machines et l'ordre d'utilisation des machines,
pour réaliser un travail (par exemple fabrication d’un produit qui dépend de la nature de
l'atelier).
19
Chapitre 3 Les problèmes d’ordonnancement d'atelier
Solon les caractéristiques des machines on peut distinguer plusieurs types des problèmes (voir
la figure 3.1).
Machines
En séries Parallèles
Nous suivons les schémas de classification proposée par Graham 1979, Classification à trois
champs α, β, γ :
α: environnement machine.
𝛼1 : Prend des différents caractères selon le type de problème.
𝛼 2 : Désigne le nombre de machine. Si α2 est entier positive, le nombre de machine
supposé constant .si α2 est absent alors ce nombre est supposé arbitraire.
β: les caractéristiques des tâches.
𝛽1 = 𝑃𝑚𝑡𝑛 si la préemption des tâches est autorisée, sinon β1 est absent.
S’il y a des contraintes de précédence entre les tâches β2 {prec, chain, tree }, sinon
𝛽 2 est vide.
𝛽 3 = 𝑟𝑖 si les dates de début au plus tôt 𝑟𝑖 (ou dates de disponibilité) des tâches ne
sont pas forcément identiques, sinon ( j, 𝑟𝑖 = 0) β3 est absent.3
𝛽 4 = j si la tâche ou le job possède une date de fin obligatoire.
20
Chapitre 3 Les problèmes d’ordonnancement d'atelier
Toute tâche 𝐽𝑗 ,j∊ {1,….,n} de durée 𝑃𝑗 (processing time) s’exécute sur une machine qui
ne peut traiter plus qu’une tache à la fois [IB 14] .Le champ α1 est absent et α2 = 1 (Figure 3.2).
21
Chapitre 3 Les problèmes d’ordonnancement d'atelier
Si toutes les machines ont la même vitesse d’exécution des tâches, les machines sont
appelées « identiques » et le problème noté (P).
Si les machines sont différentes par leur vitesse d’exécution et la vitesse de chaque
machine est constante et ne dépend pas de l’ensemble des tâches, elles sont dites «
uniformes ». (Q).
Si les vitesses d’exécution des machines dépendent des tâches et sont différentes alors
elles sont dites « quelconques » ou différentes (R).
La gamme de fabrication, qui correspond à l'ordre d'exécution des opérations au sein des
travaux, est linéaire, fixée à l'avance et identique pour tous les travaux, ce qui permet de
numéroter les machines dans l'ordre d'exécution des opérations à traiter [IB 14]. Selon les types
de produits élaborés, on distingue la production continue et la production discrète. La
production continue est caractérisée par 12 la fluidité de son processus et l’élimination du
stockage. C'est le cas notamment dans les raffineries, les cimenteries, les papeteries... La
production discrète de masse s’applique principalement aux produits de grande consommation
fabriqués à la chaîne (automobile, la majorité du domaine du textile, machines-outils…) (Figure
3.4).
22
Chapitre 3 Les problèmes d’ordonnancement d'atelier
Le nombre d’opération n’est pas forcément le même pour tous les jobs.
Chaque job a son propre ordre de passage sur les machines.
Parmi les autres caractéristiques d’un problème d’ordonnancement dans un atelier à
cheminements multiples.
Le nombre de solutions possibles est de l’ordre de (n!)m, où n est le nombre de tâches
à effectuer et m le nombre de machines. Notons qu’une tâche veut dire la même chose
qu’un travail.
Le problème est considéré parmi les problèmes les plus difficiles à traiter.
23
Chapitre 3 Les problèmes d’ordonnancement d'atelier
24
Chapitre 3 Les problèmes d’ordonnancement d'atelier
J1 1 1 1
J2 2 2 2
Stock Stock Stock
Jn M1 Mk
M2
2 Machine
5 Machine 3 Machine
4 Machine
25
Chapitre 3 Les problèmes d’ordonnancement d'atelier
un sous ensemble d’opérations. Plus précisément, une opération est associée à un ensemble
contenant toutes les machines pouvant effectuer cette opération. [MK 08] (voir la figure 3.7).
6 - La complexité
26
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
1- Introduction
Dans ce chapitre, nous allons définir c’est quoi les problèmes d’ordonnancement à
machines parallèles, et nous savoir les des méthodes de représentation de ces types de problème.
2 – Définition
Le principe des problèmes d’ordonnancement à machines parallèles est Chaque job est
constitué d’une seule opération et chaque opération peut être réalisée par n’importe laquelle des
machines, disposées en parallèles, mais n’en nécessite qu’une seule. On considère dans toute
cette section le critère de minimisation de la durée totale. Dans le cadre de l'informatique on
peut ainsi modéliser les « m » processeurs d'une machine parallèle. Ces problèmes sont presque
toujours NP-difficiles.
3- Makespan (𝑪𝒎𝒂𝒙)
Le makespan représente le temps de fin d’exécution du dernier job dans une séquence. Il
est l’un des critères les plus utilisés pour évaluer le coût d’un ordonnancement. En minimisant
ce critère, on peut améliorer le rendement et réduire le temps moyen d’inactivité des machines.
La minimisation du makespan s’accompagne généralement de contraintes qui peuvent être
temporelles ou liées aux ressources. Les contraintes temporelles se divisent en deux catégories
: des contraintes de temps alloué (impératif de gestion : délai de livraison, disponibilité,
achèvement) et des contraintes d’antériorité (cohérence technologique : gammes de fabrication,
inégalité de potentiels : précédence). Les contraintes liées aux ressources peuvent être des
contraintes disjonctives (une tâche i doit s’exécuter avant ou après une tâche}) ou des
contraintes cumulatives (respect des capacités des ressources).
On peut aussi considérer d’autres critères de performance, tels que le temps moyen
d’achèvement des jobs, le temps total de traitement, le temps de retard total, le temps d’attente
des jobs, le taux d’occupation de machines, le nombre de jobs en retard, le temps de séjour d’un
job dans le système avant sa réalisation, etc. [BS 08]
27
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
28
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
La fonction (1) exprime directement les objectifs de notre problème, i.e., la minimisation
du makespan et la minimisation de la somme des retards.
Les contraintes (2) et (3) sont des contraintes de singularité des tâches sur la machine k
et à la position r. Elles garantissent qu’il y a seulement une tâche sur la machine k et à la position
r, et que chaque tâche est déplacée seulement une fois sur ces machines.
La contrainte (4) calcule la durée d’opération de la tâche qui est en position r sur la
machine k. La contrainte (5) définit le temps de préparation de la tâche qui est en position r sur
la machine k.
Les contraintes (6) - (9) concernent respectivement la date de début au plus tôt, la date de
fin au plus tard, la date de fin d’exécution et le retard réel de la tâche qui est en position r sur la
machine k.
Les contraintes (10) et (11) représentent le calcul du makespan et de la somme des retards.
La variable binaire 𝑋𝑗𝑘𝑟 est égale à 1, si la tâche j est ordonnée en position r sur la machine k et
0 sinon. La variable binaire 𝑌 𝑖𝑗 contrôle la position relative de deux tâches i et j. Si la tâche i
précède immédiatement la tâche j, alors 𝑌 𝑖𝑗 est égale à 1, sinon elle est égale à 0. Par contre, si
j’est la premier tâche (j=1), alors 𝑌𝑖𝑗 est égale à 1, car aucune tâche ne précède j [BE 15].
29
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
laquelle sont visibles, les périodes d’exécution des opération et les périodes ou la tâche est en
attente des ressources.
7- Insertion d’une tâche venant aléatoirement
Une approche basée sur le contexte aléatoire, c’est la méthode d’insertion des tâches dans
un ordonnancement prévisionnel. Cette méthode consiste à sélectionner et choisir le bon endroit
(emplacement) où ces nouvelles tâches doivent être inclues. Dans la littérature on trouve que
l’utilisation de la méthode d’insertion de tâches n’été pas limitée au problème
d’ordonnancement d’une seule ressource, mais aussi pour plusieurs ressources (comme les
ressources humaines dans les problèmes de d’ordonnancement de la maintenance).
30
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
• Ils n’utilisent que les valeurs de la fonction à optimiser, pas sa dérivée, ou une autre
connaissance auxiliaire.
• Evaluation (Fitness)
Une fonction d’évaluation est utilisée pour mesurer les performances de chaque individu,
qui correspond à une solution donnée du problème à résoudre. Cette fonction permet d’évaluer
la capacité d’un individu à survivre en lui affectant un poids appelé fitness. La force de chaque
chromosome de la population est calculée an que les plus forts soient retenus dans la phase de
sélection, puis modifiées dans la phase de croisement et mutation.
La fonction d’évaluation dépend d’un problème à un autre. Par exemple, dans le cas des
problèmes d’ordonnancement, cette fonction peut prendre différents critères (makespan, retard,
etc.)
31
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
Les codages réels sont désormais largement utilisés, notamment dans les domaines
applicatifs pour l’optimisation de problèmes à variables réelles. (Figure 4.1)
• L’opérateur de sélection
La sélection consiste à choisir des individus qui permettront de générer de nouveaux
individus. Plusieurs méthodes existent pour sélectionner des individus destinés à la
reproduction. On citera les deux méthodes classiques les plus utilisées.
La sélection des individus par le système de la roulette s’inspire des roues de loterie.
À chacun des individus de la population est associé un secteur d’une roue. L’angle du
secteur étant proportionnel à la qualité de l’individu qu’il représente. Vous tournez la roue et
vous obtenez un individu. Les tirages des individus sont ainsi pondérés par leur qualité. Et
presque logiquement, les meilleurs individus ont plus de chance d’être croisés et de participer
à l’amélioration de notre population. (Figure 4.2) Illustre une population de 5 individus dont les
performances sont représentées en roulette.
Le principe de la sélection par tournoi augmente les chances pour les individus de piètre
qualité de participer à l’amélioration de la population. Le principe est très rapide à implémenter.
32
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
Un tournoi consiste en une rencontre entre plusieurs individus pris au hasard dans la population.
Le vainqueur du tournoi est l’individu de meilleure qualité. Cette méthode est en général
satisfaisante. (Voir la Figure 4.3).
L’opérateur de croisement
33
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
On peut étendre ce principe en découpant le chromosome non pas en 2 sous chaînes, mais
en 3, 4, etc.
Croisement multipoints
Croisement uniforme
Il opère à l’aide d’un masque qui représente les tirages aléatoires, pour décider de la
transmission de la valeur de l’allèle à l’un ou l’autre des descendants. Si, à la même position
que l’allèle, la valeur du masque est égale à 1, l’allèle du parent 1 passe à celui de l’enfant 1 et
l’allèle du parent 2 passe à l’enfant 2. Sinon, c’est l’inverse qui se produit. D’autres types de
croisement, plus spécifiques au problème traité, peuvent bien entendu être utilisés dans le cadre
d’un algorithme génétique. L’efficacité du croisement dépend souvent de son adaptation au
problème (voir la figure 4.6).
34
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
• L’opérateur de Mutation
La mutation est définie comme étant la modification aléatoire de la valeur d’un allèle dans
un chromosome. Elle joue le rôle de bruit, empêche l’évolution de se figer et garantit que
l’optimum global peut être atteint.
Cet opérateur évite donc une convergence prématurée vers les optimums locaux. Il est
appliqué avec une probabilité fixée « pm ». Le taux de mutation rend la recherche trop aléatoire
s’il est trop élevé. Par ailleurs, s’il est trop faible, la recherche risque de stagner (Figure 4.7).
35
Chapitre 4 Les problèmes d’ordonnancement à machines parallèles
algorithme glouton est donc un algorithme qui ne se remet jamais en question et qui se dirige
le plus rapidement possible vers une solution. Aveuglé par son appétit démesuré, le glouton
n’est pas sûr d’arriver à une solution optimale, mais il fournit un résultat rapidement. Même si
la solution n’est pas optimale, il n’est pas rare que l’on s’en contente (par exemple pour un
problème NP-difficile). On rentre alors dans le monde des algorithmes d’approximation.
Pour que la méthode gloutonne ait une chance de fonctionner, il faut que le choix local aboutisse
à un problème similaire plus petit. La méthode gloutonne ressemble ainsi à la programmation
dynamique. Mais la différence essentielle est que l’on fait d’abord un choix local et on résout
ensuite un problème plus petit (progression descendante). En programmation dynamique, au
contraire, on commence par résoudre des sous-problèmes, dont on combine ensuite les résultats
(progression ascendante)
36
Chapitre 5 Conception et réalisation
1-Introduction
Java est un langage de programmation orienté objet créé par James Gosling et Patrick
Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun
Microsystems en 1982), présenté officiellement le 23 mai 1995au SunWorld.
La société Sun a été ensuite rachetée en 2009 par la société Oracle qui détient et maintient
désormais Java.
La particularité et l'objectif central de Java est que les logiciels écrits dans ce langage doivent
être très facilement portables sur plusieurs systèmes d’exploitation tels
que Unix, Windows, Mac OS ou GNU/Linux, avec peu ou pas de modifications, mais qui ont
l'inconvénient d'être plus lourd à l'exécution (en mémoire et en temps processeur) à cause de sa
machine virtuelle. Pour cela, divers plateformes et Framework associés visent à guider, sinon
garantir, cette portabilité des applications développées en Java
Java FX
Avec l'apparition de Java 8 en mars 2014, JavaFX devient l'outil de création d'interface
graphique officiel de Java, pour toutes les sortes d'application (applications mobiles,
applications sur poste de travail, applications Web…), le développement de son prédécesseur
Swing étant abandonné (sauf pour les corrections de bogues). Java FX est une pure API Java
(le langage de script spécifique qui lui a été un temps associé est maintenant abandonné). Java
FX contient des outils très divers, notamment pour les médias audio et vidéo, le graphisme 2D
et 3D, la programmation Web, la programmation parallèle, etc
37
Chapitre 5 Conception et réalisation
cette section le critère de minimisation de la durée totale, Ces problèmes sont presque toujours
NP-difficiles.
J’ai utilisé deux algorithme pour résoudre ce problème, AG et l’algorithme glouton car
Nous avons choisi la méthode algorithme génétique pour résoudre notre problème de
machine parallèle presque cette méthode il possédé plusieurs avantages comme
• Robustes
• Faciles à implémenter
• Faciles à hybrider
• Faciles à paralléliser
Suivant le système de pièces, l'algorithme glouton est optimal ou pas. Dans le système de
pièces européen (en centimes : 1, 2, 5, 10, 20, 50, 100, 200), où l'algorithme glouton donne la
somme suivante pour 37 : 20+10+5+2, on peut montrer que l'algorithme glouton donne toujours
une solution optimale. Dans le système de pièces (1, 3, 4), l'algorithme glouton n'est pas
optimal, comme le montre l'exemple simple suivant. Il donne pour 6 : 4+1+1, alors que 3+3 est
optimal. Tirée de [2]
38
Chapitre 5 Conception et réalisation
Une tâches(n)
Une machine(m)
-durée d’exécution
-1 seul job pour chaque machine
-la position dans la machine
-Cmax
La population
-Les individu (« m » machine et « n »
jobs , fonction fitness , probabilité de
croissement , probabilité de mutation ) .
- Max itération
La sélection
- Génération
-sélectionné la périmer
solution
Le croissement
-Croisé un individu par l’individu suivant.
-La somme de Pc(i)+Pc(i+1) < Pc.
-Vérifié que les deux nouveaux individus contiennent
les mêmes taches.
La mutation
Non
-Choisie aléatoirement d’individu
.
La sélection
-La sélection de individu en peut croisé dans le
génération suivant, elle basé sur la fonction
L’insertion d’une nouvelle tache
fitness de chaque individu.
-Choisie la machine qui contient le minimum
Oui Cmax .
Critère d’arrêt
6- La conception du code
La figure 5.2 représenté tous les procédures que je créé pour réaliser mon problème dans la
figure 5.3 j’ai expliqué comment les procédures travaillant.
Tache Machine
ArrivTache Position
System
Itération
Génération
Main
40
Chapitre 5 Conception et réalisation
« Machine » c’est la fonction que je créé les nombres des machines, et je utilisé la fonction des
« Tache ».
«ArrivTache » c’est le partie que je créé un nouvelle tâche, et je donné « Tache » comme un
donnée.
« Position » c’est la fonction qui je créé pour savoir la position de la tache dans la machine.
« Itération » dans cette fonction j’ai inséré la nouvelle tâche, et calcule les Cmax de chaque
machine.
« System » j’ai codé les étapes de les deux algorithme, en plus l’interface graphique (buttons,
scrollpane, text field …).
« Génération » c’est la fonction pour créer la critère d’arrête de AG, utilisant la fonction de
« Itération ».
7-La réalisation
41
Chapitre 5 Conception et réalisation
De la figure 5.4, j’ai expliqué comment créé mon interface graphique. La premier
sélection représente le tableau des taches et sont durée des exécutions , la deuxième sélection
représentent les buttons que je utilisée dans mon problème , il y a le bouton « ajouté » , qui peut
inséré un tache dans le table dès les taches , il y a aussi un bouton qui « supprimé » un taches
de le tableau , le bouton « sauvegarder » sont travail est de enregistre notre tableau des taches
dans le ordinateur de forma fichier texte avec un extension (.txt) , si le fichier est déjà sur
l'ordinateur , on peut utiliser les bouton ouvrir et on peut sélection le ficher . Pour la troisième
partie de l’interface, c’est la partie que je entre les donnée de l’algorithme que je utilise pour
affiche la bonne solution de mon problème avec les tableau des taches que je contiens, la
quatrième partie c’est une diagramme qui affiché la change de Cmax dans les Générations .
Après ajouté les nombres des taches ou bien sélectionné le fichier texte À partir de l’ordinateur
8.1-Codage
Après la sélection des taches en peut utiliser, on peut sélectionner les nombres des
machines on peut utiliser, dans notre problème on peut utiliser plus de 2 machine (m>2), et
l’algorithme peut générer aléatoirement les tache dans les machines. Pour crée une population
des individué, et chaque individué contient a un ordonnancement pour les taches (figure 5.5)
Exemple 1
42
Chapitre 5 Conception et réalisation
Nous ajoutons 15 taches dans le tableau des taches avec leur durée d’exécution.
Tache 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Durée 28 24 45 45 55 21 34 22 41 49 17 17 10 48 19
Après on peut enter les données on peut utiliser pour générer la population.
De la (figure 5.5) en peut entrer le nombre de machines pour données et le nombre des
itérations qui généré les nombres des chromosomes ou bien individué, et chaque individué
contient un ordonnancement pour le problème.
8.4- Sélection
8.5- Croisement
8.6- Mutation
8.7-Critère d’arrêt
Un algorithme glouton est un algorithme qui suit le principe de faire, étape par étape, un
choix optimum local, dans l'espoir d'obtenir un résultat optimum global (figure 5.7)
44
Chapitre 5 Conception et réalisation
L'insertion d'une tâche fait partie du modèle dynamique, car les taches arrivent de façon
aléatoire et leurs dates de disponibilité ne sont pas connus à l’avance, donc on gére ce problème
d’insertion où le minimum Cmax de l’ordonnancement est dans la machine.
45
Chapitre 5 Conception et réalisation
Tache 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Durée 16 11 46 21 37 49 47 47 21 16 17 41 42 28 49 5
11 - Comparaison
Considérons le cas du problème avec deux algorithmes, l'algorithme local qui donne une
solution local est l’algorithme glouton (voir la figure 5.4), est l’algorithme global qui donne une
solution globale est l‘algorithme génétique (voir la figure 5.3). On a vu que l'ordonnancement
de l’algorithme génétique meilleur que l’algorithme glouton car, il donne Cmax minimum part
à port l’algorithme glouton. Après l’ajout d’un nouveaux tâche on peut choisir la machine qui
contient le minimum Cmax (min Cmax) est on peut ajouter cette tâche à la fin de
46
Chapitre 5 Conception et réalisation
l’ordonnancement de cette machine, (voir la figure 5.6 et la figure 5.7), on peut voir que le
Cmax ne change pas dans les deux algorithmes.
47
Conclusion générale
Conclusion Générale
Dans ce mémoire, nous nous sommes, tout d’abord, intéressés à l’étude des problèmes de
l'optimisation combinatoire avec leurs méthodes de résolution pour trouver de bonnes solutions
aux problèmes correspondants, à savoir des méthodes exactes (programmation linéaire,
séparation et évaluation) et des méthodes approchées (recuit simulé, recherche tabou,
algorithmes génétiques). Nous sommes penchés sur les problèmes d’ordonnancement dans sa
globalité, avec ses différentes composantes (tâches, ressources, contraintes, critères), et aussi
avec les différents types d’ateliers étudiés.
Deux méthodes de résolution ont été suggérées basées sur les algorithmes génétiques et
l'algorithme glouton, et qui ont été proposée pour la résolution de problème d'insertion d'une
opération dans un problème d'ordonnancement a machines parallèles.
48
Bibliographie
[AL 10] Abdesslam Layeb. « Utilisation des Approches d’Optimisation Combinatoire pour la
Vérification des Applications Temps Réel,Thèse de Doctorat, Université Mentouri de
Constantine ».(2010)
[AK 12] Asma Karray. « Contribution à l’ordonnancement d’ateliers agroalimentaires utilisant
des méthodes d’optimisation hybrides,thése de doctorat ,Ecole centrale de Lille Universite de
Tunis El Mmanar Ecole Nationale D’ingenierus de TUNIS ». (2012)
[BB 08] Boris Bontoux. « Techniques hybrides de recherche exacte et approchée : application
à des problèmes de transport,thése de doctorat , l’Université d’Avignon et des Pays de Vaucluse
». (2008)
[BB 12] Bouabdallah Benamara. « Application des algorithmes génétiques Au dispatching
économique et environnemental, thése de master,Université de biskra ». (2012)
[BE 15] Bounif M. E., Optimisation à base de simulation pour le développement des syst-mes
décisionnels, Thèse Doctorat 3éme cycle en informatique, université de M’sila, 2014/2015
[BS 08] El Bahloul S., Flow-shop à deux machines avec des temps de -latence : approche exacte
et heuristique, mémoire présenté comme exigence partielle, Université du Québec partielle de
la maitrise en informatique,2008.
49
[MA 11] Meziane M. E. A., Optimisation par phases pour les problèmes d’ordonnancement des
ateliers de type job-shop totalement flexibles, Mémoire de magister en des sciences, Université
d’Oran, Algérie 2011.
[MK 08] Mebarek Kebabla, « Utilisation des stratégies méta-heuristiques pour
l’ordonnancement des ateliers de type job shop » Mémoire en vue de l’obtention du Diplôme
de Magister, présenté au laboratoire d’Automatique et Productique LAP. le 02 juillet 2008.
[MR 08] Mostepha, R : Résolution de problèmes d’optimisation combinatoire par systèmes
artificiles auto-organisés. Thèse de magister, Université Mentouri de Constantine ,2008.
[PM 05] Palpant M. « Recherche exacte et approchée en optimisation combinatoire : schémas
d’intégration et applications. Thèse de Doctorat, Université d’Avignon ». (2005)
[SD 14] S. Le Digabel. « Introduction aux métaheuristiques , Ecole Polytechnique de Montréal
». (2014)
[SO 11] Samia Ourari, « L’ordonnancement déterministe à l'ordonnancement distribué sous
incertitude », le 28 janvier 2011, Thèse en vue de l’obtention du garde de docteur de l’Université
de TOULOUSE.
[TV 01] Thomas Vallée et Murat Yıldızoglu« Présentation des algorithmes génétiques et de
leurs applications en Economie » Université Montesquieu Bordeaux IV Avenue Léon Duguit
2001.
[WL 05] Wafaa LABBI et Mourad BOUDHAR « Méta heuristiques pour un problème
d’ordonnancement sous contraintes de préparation » Laboratoire RECITS, Faculté de
Mathématiques, USTHB BP 32 El-Alia, BEZ, Alger, Algérie 2015,
50
الملخص
المشكلة التي تتناولها هذه المذكرة اضافة عملية بعد جدولة العمليات على مجموعة أجهزة متوازية بنفس الصفات من أجل
قمنا بدراسة طريقة تستند إلى الخوارزميات. يمكن إجراء العمليات بالتوازي على عدة أجهزة,تقليل من وقت االتمام االكبر
.و الخوارزمية الجشعة وبرمجناها لحل المشكلة، الجينية
الخوارزمية الجينية خوارزمية الجشعة, وقت االتمام االكبر, االت متوازية متطابقة, الجدولة:الكلمات الرئيسية
Résumé
Le problème traité dans ce mémoire concerne l’insertion d’un novelle opération dans
l’ordonnancement à machines parallèles en vue de minimiser le makespan. Les opérations
peuvent être exécutées en parallèle sur plusieurs machines. Une méthode a été suggérée basée
sur les algorithmes génétiques, et l’algorithme glouton ont été, ensuite, proposée pour la
résolution de problèmes.
Mots clés : Ordonnancement, machines parallèles identiques, le makespan, algorithm
génétique, algorithm glouton.
Abstract
The problem addressed in this thesis concerns is to add a new job to the scheduling of
operations on identical parallel machines in order to minimize the Makespan. The operations
can be performed in parallel on multiple machines. A method was suggested based on genetic
algorithms and glouton algorithm, then it was used for solving the problem.
Key words: Scheduling, identical parallel machines, the makespan, genetic algorithme ,
Greedy algorithme
51