Vous êtes sur la page 1sur 94

UNIVERSITE D’ANTANANARIVO

£
ECOLE SUPERIEURE POLYTECHNIQUE
D’ANTANANARIVO

Mention : Génie Mécanique et industriel

Parcours : Génie Industriel


Mémoire de fin d’études en vue de l’obtention d’un diplôme

d’ingénieur, Grade Master II

Présenté par :
ANDRIAMIADANARIVO Alphène Fabruce Mathieu

Sous la direction de M. RAMAHAROBANDRO Germain, enseignant – chercheur

Soutenu le : 14 Septembre 2019

Promotion 2017
UNIVERSITE D’ANTANANARIVO

ECOLE SUPERIEURE POLYTECHNIQUE


D’ANTANANARIVO

Mention : Génie Mécanique et Industriel

Parcours : Génie Industriel


Mémoire de fin d’études en vue de l’obtention d’un diplôme

d’ingénieur, Grade Master II

Ordonnancement conjoint Production /


Maintenance : Programmation d’un
planificateur optimisé sur la base
d’algorithme génétique

Présenté par :
ANDRIAMIADANARIVO Alphène Fabruce Mathieu

Président de Jury : Mr RAKOTOVAO José Denis, Professeur Titulaire

Membre de Jury: Mr RATSARAZAKA Michel, Enseignant – Chercheur

Mr RAKOTONINDRINA Tahiry, Enseignant – Chercheur

Mr RAKOTONDRAINIBE Faniry, Enseignat -Chercheur

Directeur de mémoire : Mr RAMAHAROBANDRO Germain, Enseignant -Chercheur

Date : 14 Septembre 2019

Lieu : Bloc Technique Ankatso


REMERCIEMENTS
Avant tout, je loue le seigneur d’avoir pu effectuer et finir mes études durant ces années
malgré les diverses difficultés en cours de route.

Je voudrais aussi exprimer mes vifs remerciements à :

• Mr RAKOTOSAONA Rijalalaina, Directeur d’École Supérieur Polytechnique


d’Antananarivo,
• Mr RAKOTONINDRINA Tahiry, Chef de la mention Génie mécanique et Industriel et
aussi membre des jurys de ce mémoire, qui m’a permis de suivre ce parcours.
• Mr RAKOTOVAO José Denis, professeur titulaire au sein d’École Supérieure
Polytechnique d’Antananarivo, qui a bien voulu présider cette soutenance de mémoire.
• Aux membres des jurys : Mr RATSARAZAKA Michel et Mr RAKOTONDRAINIBE
Faniry, tous les deux enseignants-chercheurs au sein de l’ESPA, qui a pu examiner ce
mémoire malgré leurs occupations respectives.
• Mr RAMAROBANDRO Germain, Enseignant-chercheur à l’ESPA et aussi directeur
de ce mémoire, qui malgré ses diverses obligations m’a dirigé et m’a octroyé conseil
pendant la réalisation de ce travail.
• Mr RANDRIAMORA Edmond, chef principal du bloc technique Ankatso, qui a bien
voulu prêter un local pour que je puisse présenter mon travail de fin d’études.
• A tous les professeurs et enseignants au sein de la mention Génie Mécanique et
Industriel qui n’ont cessé de partager savoir et connaissance permettant de m’accorder
le diplôme d’Ingénieur.

Je tiens aussi à exprimer mes sincères remerciements à mes parents, mes frères et ma
sœur, qui ont été toujours là pour m’épauler du point de vue financière et morale.

Mes remerciements s’adressent également à tous ceux qui, de près ou de loin, ont
contribué à la réussite de ce mémoire.

a
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Les mots ne suffiront pas à exprimer mes gratitudes à l’achèvement de ce Mémoire,
alors sur ce je vous dis : « Mankasitraka tompoko, ho tahin’Andriamanitra ianareo »

b
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
SOMMAIRE
1 Table des matières
REMERCIEMENTS .................................................................................................................. a

SOMMAIRE .............................................................................................................................. c

LISTES DES FIGURES............................................................................................................. g

LISTE DES ABREVIATIONS ................................................................................................... j

INTRODUCTION GÉNÉRALE................................................................................................ 1

PARTIE 1 : GENERALITES SUR L’ORDONNANCEMENT DES SYSTEMES DE


PRODUCTION ET LA MAINTENANCE INDUSTRIELLE .................................................. 2

Chapitre I : Les systèmes de production .................................................................................... 3

1 La fonction « Production » ............................................................................................... 3

1.1 Le processus de production.............................................................................................. 3

1.2 Système de production ..................................................................................................... 3

1.3 Classification des systèmes de production....................................................................... 3

1.4 Modèle conceptuel d’un système de production.............................................................. 5

1.5 Les différents types de décisions ..................................................................................... 7

2 Organisation de la production .......................................................................................... 8

2.1 Le principe des 5 zéros .................................................................................................... 8

2.2 Critères d’évaluation d’un système de production .......................................................... 9

3 L’ordonnancement dans les systèmes de production ..................................................... 10

3.1 Ordonnancement ............................................................................................................ 10

3.2 Ordonnancement d’atelier.............................................................................................. 10

3.3 Diagramme de Gantt ...................................................................................................... 11

3.4 Ordonnancement de la production ................................................................................. 12

4 Présentation des problèmes d’ordonnancement ............................................................. 12

4.1 Les taches et opérations ................................................................................................. 13

4.2 Les ressources ................................................................................................................ 14

c
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
4.3 Les contraintes ............................................................................................................... 14

5 Les critères d’évaluation ................................................................................................ 14

5.1 Une machine ∅ :............................................................................................................. 15

5.2 Machine parallèle :......................................................................................................... 15

5.3 Machine dédiée : ............................................................................................................ 16

6 Ordonnancement d’atelier flow shop ............................................................................. 17

7 Complexité des problèmes d’ordonnancement .............................................................. 18

7.1 Méthode de résolution ................................................................................................... 19

Chapitre II : La fonction maintenance ...................................................................................... 22

1 Définition ....................................................................................................................... 22

2 Evolution de la maintenance .......................................................................................... 23

3 Classification des méthodes de maintenance ................................................................. 24

3.1 La maintenance préventive ............................................................................................ 24

3.2 La maintenance corrective ............................................................................................. 25

3.3 Les processus de maintenance ....................................................................................... 26

4 Notion sur la sûreté de fonctionnement ......................................................................... 27

4.1 États successifs d’un système réparable ........................................................................ 28

4.2 Les indicateurs de fiabilité (λ) et MTBF ....................................................................... 29

5 Objectif de la maintenance ............................................................................................ 30

6 La Gestion de Maintenance Assistée par Ordinateur (G.M.A.O) .................................. 30

7 Ordonnancement de la maintenance .............................................................................. 31

8 Objectifs de l’ordonnancement de la maintenance ........................................................ 32

Conclusion partielle.................................................................................................................. 33

PARTIE 2 : ORDONNANCEMENT CONJOINT PRODUCTION/MAINTENANCE :


OPTIMISATION PAR ALGORITHME GENETIQUE.......................................................... 34

Chapitre III : Ordonnancement conjoint Production/Maintenance .......................................... 35

1 Problématique ................................................................................................................ 35

d
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
2 La différente méthode d’ordonnancement ..................................................................... 36

2.1 Ordonnancement séparé ................................................................................................. 36

2.2 Ordonnancement séquentiel ........................................................................................... 37

2.3 Ordonnancement intégré ................................................................................................ 37

3 Les problèmes dus à l’ordonnancement séparé ............................................................. 37

Chapitre 4 : L’optimisation des ordonnancements d’atelier par l’algorithme génétique ......... 39

1 Problème d’atelier de type flow shop ............................................................................ 39

2 Notations et hypothèses ................................................................................................. 39

3 La fonction objective ..................................................................................................... 40

4 Les algorithmes génétiques ............................................................................................ 41

5 Principe général des algorithmes génétiques ................................................................. 41

5.1 Génération de la population initiale ............................................................................... 42

5.2 Le module génétique ...................................................................................................... 42

Conclusion partielle.................................................................................................................. 46

PARTIE 3 : PROGRAMMATION ET SIMULATION .......................................................... 47

Chapitre 5 : Conception et programmation du planificateur optimisé .................................... 48

1 Le langage de programmation Python ........................................................................... 48

1.1 Choix du langage ........................................................................................................... 48

1.2 Les différentes bibliothèques requises ........................................................................... 49

2 Implémentation des différents composants de l’algorithme génétique ......................... 51

2.1 Modèle conceptuel des étapes de fonctionnement du programme ................................ 51

2.2 La fonction objective Makespan (Cmax)....................................................................... 51

3 Fonctionnement du programme de planification optimisé ............................................ 53

4 Les différentes étapes de l’algorithme ........................................................................... 55

5 Création de l’interface graphique .................................................................................. 56

5.1 Le design de l’interface utilisateur................................................................................. 56

5.2 Les données à l’entrée.................................................................................................... 56

e
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
5.3 Les cases de sortie.......................................................................................................... 58

Chapitre 6 : Simulation et évaluation ....................................................................................... 60

1 Les critères d’évaluation du programme ....................................................................... 60

1.1 Les problèmes de petite taille ........................................................................................ 60

1.2 Les problèmes de grandes tailles ................................................................................... 62

Conclusion partielle.................................................................................................................. 63

CONCLUSION GÉNÉRALE .................................................................................................. 64

ANNEXE ................................................................................................................................. 65

BIBLIOGRAPHIE ...................................................................................................................... i

f
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
LISTES DES FIGURES
Figure 1: Modèle conceptuel d’un système de production (source : Benbouzid F, 2005) ........ 6
Figure 2: Organisation hiérarchique d’un système de gestion de production (source : Belkadi
F, 2014) ...................................................................................................................................... 8
Figure 3: diagramme de Gantt (atelier flowshop à deux machines) ....................................... 12
Figure 4: Ordonnancement dans de taches un système de production.................................... 13
Figure 5: Représentation d’un atelier Flow Shop ................................................................... 16
Figure 6: Représentation d’un atelier Job Shop ...................................................................... 16
Figure 7: Représentation d’un ordonnancement d’atelier flow shop ...................................... 18
Figure 8: La fonction maintenance dans son ensemble (Source : Retour & Al, 1990) ........... 23
Figure 9: Evolution de la maintenance (Source : Boulenger 1998) ........................................ 24
Figure 10: Structure de la maintenance conditionnelle (Source : Deloux, 2005) ................... 25
Figure 11: Organisation de la maintenance (Source : Deloux 2005) ..................................... 26
Figure 12: Organisation de l’ordonnancement de la maintenance ......................................... 27
Figure 13: Etat successif d’un système réparable (source : Management des moyens de
production, Claude Sourisse et François Klaye) ..................................................................... 28
Figure 14: Chronologie de la maintenance préventive............................................................ 31
Figure 15: Structure hiérarchique de l’objectif de l’ordonnancement de la maintenance
(Source : Coudert, 2000) .......................................................................................................... 33
Figure 16: Ordonnancement de la production......................................................................... 35
Figure 17: Ordonnancement de la maintenance ...................................................................... 35
Figure 18: Conflit entre Maintenance et Production dans un ordonnancement séparé ......... 36
Figure 19: Ordonnancement séquentiel ................................................................................... 37
Figure 20: Ordonnancement intégré........................................................................................ 37
Figure 21: Principe de sélection par roue de roulette ............................................................. 43
Figure 22: Modèle conceptuel du programme ......................................................................... 51
Figure 23: Organigramme du fonctionnement du planificateur .............................................. 55
Figure 24: Section de saisie du conditionnement du programme ............................................ 58
Figure 25: Entrer des temps opératoires ................................................................................. 58
Figure 26: Les cases de sortie.................................................................................................. 59
Figure 27: Ordonnancement test 6 .......................................................................................... 66
Figure 28: Diagramme de Gantt test 6 .................................................................................... 67
Figure 29: Tableau des temps opératoires test 6 ..................................................................... 68

g
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Figure 30: Ordonnancement test 2 .......................................................................................... 69
Figure 31: Ordonnancement test 2 .......................................................................................... 69
Figure 32: Ordonnancement test 3 .......................................................................................... 70
Figure 33: Diagramme de Gantt Test 3 ................................................................................... 70
Figure 34: Ordonnancement test 4 .......................................................................................... 71
Figure 35: Diagramme de Gantt test 4 .................................................................................... 71
Figure 36: Ordonnancement test 5 .......................................................................................... 72
Figure 37: Diagramme de Gantt test 5 .................................................................................... 72

h
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
LISTE DES TABLEAUX
Tableau 1: Temps opératoire pour l’exemple d’un flow shop ................................................. 18
Tableau 2: Notations de problème d’ordonnancement ............................................................ 40
Tableau 3: Parwaise swap mutation ........................................................................................ 45
Tableau 4: Mutation inverse .................................................................................................... 46
Tableau 5: Matrice de travaux ................................................................................................. 52
Tableau 6: Calcul du Makespan (Cmax) ................................................................................. 52
Tableau 7: Test 1 ...................................................................................................................... 61
Tableau 8: Test 2 ...................................................................................................................... 61
Tableau 9: Test 3 ...................................................................................................................... 61
Tableau 10: Test 4 .................................................................................................................... 61
Tableau 11: Test 5 .................................................................................................................... 62
Tableau 12: Résultats des tests de petite taille ........................................................................ 62
Tableau 13: Test 6 .................................................................................................................... 63

i
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
LISTE DES ABREVIATIONS
Sdf : sûreté de fonctionnement

LPT: Longest processing time first

SPT: Shortest processing time first

AV : Analyse de la valeur

AO : Analyse de l’organisation

AQ : Analyse de la qualité

G.M.A.O : Gestion de Maintenance Assisté par Ordinateur

AGs: Algorithme génétique

PMX: Partially Mapped Crossover

J(i): Taches

M(i) : Machines

j
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

INTRODUCTION GÉNÉRALE
L’objectif majeur des industriels est de maîtriser le prix de revient en exploitant
efficacement les systèmes de production et en utilisant toutes les ressources disponibles d’une
façon optimale dans des délais minimums. L’élaboration d’une stratégie de maintenance et de
production permet de garantir le niveau de fiabilité requis, d’améliorer l’exploitation, d’assurer
la disponibilité des machines ainsi que d’exploiter leur disponibilité en respectant les niveaux
de qualité et les délais exigés.

L’ordonnancement de la production consiste à déterminer la séquence de passage d’un


certain nombre d’opérations à exécuter sur différentes machines en prévoyant le travail à
réaliser, de manière à coordonner l’utilisation des ressources renouvelables et non
renouvelables afin de satisfaire les différentes contraintes et d’optimiser un ou plusieurs critères
de performances.

Une stratégie de maintenance a comme but d’assurer la pérennité des systèmes de


production, de diminuer les pannes imprévues et de minimiser les coûts de réparation, de
révision et de vérification des équipements matériels. Il est primordial de coordonner les
services de la production et ceux de la maintenance afin de satisfaire les différentes demandes
des clients, minimiser les coûts de maintenance et maximiser la productivité de l’entreprise.

C’est dans ce sens que nous avons opté pour le mémoire intitulé : « Ordonnancement
conjoint production maintenance : Programmation d’un planificateur optimisé sur la base
d’algorithme génétique » qui propose un programme de planification considérant la fonction de
maintenance et celui de production afin d’augmenter la disponibilité du système de production
et de maximiser la productivité en exploitant efficacement les ressources disponibles
(renouvelables et consommables). Le critère d’évaluation du programme afin d’avoir un
ordonnancement optimal se base le calcul du Makespan aussi noté Cmax dans nombreux
ouvrages.

Ce travail se divise en trois parties bien distinctes. En premier lieu, on va avoir un aperçu
sur l’ordonnancement des systèmes de production et la maintenance industrielle. En second
lieu, on développera l’ordonnancement conjoint de la production et la maintenance qui est le
principal sujet de ce mémoire. Et enfin dans la troisième partie, la programmation et la
simulation du programme de planification optimisé qui servira avoir un ordonnancement plus
juste la production et de la maintenance.

1
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
PARTIE 1 : GENERALITES SUR
L’ORDONNANCEMENT DES
SYSTEMES DE PRODUCTION ET
LA MAINTENANCE
INDUSTRIELLE
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Chapitre I : Les systèmes de production


1 La fonction « Production »
La fonction production constitue l’ensemble des opérations de transformation de
matières premières ou de composants en produits fini ou semi-fini qui ont une valeur sur le
marché. Cela doit être conforme au processus de fabrication préétabli par la fonction
« méthode ».

Il est assez difficile de généraliser la fonction production, car elle peut prendre
différentes formes selon l’entreprise. Elle peut :

• Être continue ou discontinue ;


• Être unitaire, par lot ou par masse ;
• Concerner des fabrications à la commande, pour stockage ou mixte.

Selon le stade fabrication, il est aussi possible de différencier les fabrications par leur
finalité (usinage, assemblage, usinage-assemblage).

D’après l’ingénieur Giard, la production est la transformation des ressources


appartenant à un système productif et conduisant à la création de bien et de services. Ces
ressources étant les quatre types suivants : les équipements, les hommes, les matières, les
informations techniques ou procédurales.

1.1 Le processus de production

Il s’agit d’une suite d’opération ou de transformation organisée en réseau. Ces


opérations assurent des transformations de forme (modification des produits eux-mêmes), des
transformations dans le temps (fonction de stockage) ou dans l’espace (fonction de transport).

1.2 Système de production


C’est l’association d’un ensemble de ressources en interaction pour réaliser une activité
de production. En effet, la production s’effectue par une succession d’opération dite de
transformation, de transfert, d’assemblage et désassemblage en exploitant les ressources
disponibles afin de transformer les matières premières en produits finis sortant de ce système.

1.3 Classification des systèmes de production


1.3.1 Selon le processus de production

Comme on l’a précisé auparavant, il est assez complexe de généraliser la fonction


production. Néanmoins, on peut le classifier selon trois cas suivant les processus de production.
3
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

1er cas : il y la classification selon les processus de production :

Le processus continu qui englobe la production du genre de l’électricité, les produits


chimiques, ou bien la papeterie.

2ème cas : Les processus discrets qui concernent les usinages et toutes les activités
d’assemblage.

3ème cas : les processus discontinus qui se situent entre le processus continu et discret.
Les deux types de processus sont couplés : la production est continue, mais il y a un
conditionnement discret des produits.

1.3.2 Selon le déclenchement de la production

Il s’agit ici des systèmes de production à la commande, les systèmes de production basés
sur les stocks, et ceux qui sont programmés.

1.3.2.1 Les systèmes de production à la commande


La production est déclenchement des commandes fermes des clients soit par des
demandes aléatoires. Ce qui veut dire que la fonction production est pilotée par l’aval. Satisfaire
les délais de livraison qui a été négociée avec le client est l’objectif principal de ce système.

1.3.2.2 Les systèmes de production basés sur la production pour stock


Dans ce scénario, la fonction production est pilotée par l’amont. Autrement dit, la
production répond à un cahier des charges prédéfini ce qui peut se traduire par la constitution
des stocks de produits finis. Contrairement à la production sur commande, les délais de livraison
sont nuls, mais il y a des stocks à gérer.

1.3.2.3 Production par programme


La production par programme se base sur des commandes assurées et des prévisions de
vente pour déterminer un programme de production.

1.3.3 Selon l’organisation des ressources

Ce type de classification se base sur la manière dont les ressources sont organisées afin
de traiter les intrants (matières premières). Elle est divisée en quatre types de systèmes de
production :

1.3.3.1 Les systèmes à production unitaire


Ce type de système concerne les grands projets (uniques ou réalisés à de petites séries)
nécessitant des périodes de temps assez longs et des moyens relativement importants. La
4
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

réalisation du produit se fait sur mesure en fonction de la demande du client (bâtiment,


construction navale, etc.). Pour ce type d’organisation, l’objectif est de réaliser le projet dans
un délai optimal. Pour cela, la tâche principale de l’entreprise est de planifier les différentes
opérations composant le projet en respectant des contraintes temporelles et de succession entre
les opérations. Les méthodes de modélisation les plus répandues sont le diagramme de Gantt,
les méthodes des potentiels et la méthode PERT.

1.3.3.2 Les systèmes de production en petite ou moyenne série ou atelier


Ce type de production est rencontré dans l’industrie manufacturière où il faut fabriquer
une grande variété de produits en faible quantité en utilisant les mêmes moyens de production.
Les ateliers sont classés selon l’ordre de passage sur les machines des différents produits à
fabriquer (gamme de fabrication). On distingue les ateliers à cheminement unique (flowshop)
où toutes les gammes de fabrication sont identiques, les ateliers à cheminements multiples où
chaque produit ou famille de produits est réalisé selon une gamme spécifique (jobshop) et les
ateliers à cheminements multiples et libres (openshop) où le produit ne possède pas une gamme
spécifique.

1.3.3.3 Les systèmes de production de masse


Ce type de production est adopté quand il s’agit de fabriquer des produits standards à
grande consommation (moteurs, composants industriels, etc.). Ces systèmes sont organisés en
ligne de fabrication où les produits passent par une même séquence de postes de travail.

1.3.3.4 Les systèmes de production continus


Dans ce système de production, peu de produits sont fabriqués, mais en grande quantité.
La production est déclenchée par l’amont tel que l’industrie des boissons ou de l’acier. Dans ce
type d’organisation, le niveau de stock d’en-cours est quasiment nul.

1.4 Modèle conceptuel d’un système de production

Après la révolution industrielle, les systèmes de production, de plus en plus complexes,


sont devenus le centre d’étude de nombreux ouvrage. Du fait qu’il n’est pas facile, le gérer vu
toutes les composantes fonctionnelles qui le constituent (fabrication, achat, distribution,
maintenance, méthode…). Plusieurs approches ont été envisagées dans le but de mieux
comprendre leur fonctionnement et de mieux les appréhender.

Pour faciliter l’approche d’une étude de système de production, ils ont été décomposés
en trois sous-systèmes : Le système physique de production, le système d’information et le

5
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

système de décision, qui sont décrits dans la figure suivante. Dans cette approche, le système
de gestion de production concerne la partie du système de décision et du système d’information
traitant des fonctions rattachées directement à la production (c’est-à-dire les achats, les
approvisionnements, la planification, la gestion des ressources, la maintenance …)

Concernant le système physique, c’est la partie qui transforme les matières premières
en produit fini. Et c’est dans cette perceptive que le système de gestion entre en jeux, c’est la
partie qui transforme les informations commerciales en ordre de fabrication et ordres
d’approvisionnements. Ce système est bouclé, car en retour il reçoit les informations de suivi
du système physique pour pouvoir effectivement piloter ce dernier.

Informations
Objectifs
externes

Système de

Système décision
d’information Ordres
Ordres

S
Actions
Flux
Fournisseurs physique
Clients
Système
Sous-traitant
Donneurs
Physique

Figure 1: Modèle conceptuel d’un système de production (source : Benbouzid F, 2005)

En termes de flux, un ensemble de flux régulés parcourent le système de production.


Tout d’abord, le flux physique ou de matière qui transforme la matière première et les
composants en produits finis, puis le flux d’information ou de suivi qui permet la circulation
des informations nécessaires au contrôle et à la prise de décision. Enfin, le flux de décision ou
ordre qui contrôle et pilote le système physique. Le système de gestion est composé de
différentes activités telles que :

➢ L’élaboration du PID (Plan Directeur de Production) ;


➢ Le calcul des besoins bruts, net et d’approvisionnement ;

6
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

➢ La gestion des stocks ;


➢ Les achats ;
➢ L’élaboration du plan de charge ;
➢ L’ordonnancement ;
➢ Le lancement.

1.5 Les différents types de décisions

En plus de la gestion de production, des décisions doivent être prises. Dans ce contexte,
on distingue trois types de décisions (source Belkaid F 2014) :

1.5.1 Les décisions tactiques

Ces décisions représentées par les orientations à moyen terme s’inscrivent dans le cadre
logique dessiné par les décisions stratégiques, elles regroupent tout ce qui est ressource
physique et informationnels nécessaires à la production. Les décisions tactiques s’intéressent à
l’aspect planification de la production, l’affectation des clients aux centres de distribution, le
choix de la politique de gestion des stocks, etc.

1.5.2 Les décisions opérationnelles

Ce sont généralement des décisions journalières, car elles ont une portée plus limitée
dans le temps. Ce niveau représente les orientations à court terme. Cette catégorie vise à obtenir
le maximum de rentabilité et à analyser son aspect technique. L’impact opérationnel est limité
sur le plan spatial au niveau de l’entreprise, il concerne bien souvent une fonction interne de
l’entreprise. Les décisions opérationnelles assurent la flexibilité quotidienne pour faire face aux
fluctuations prévues de la demande et la disponibilité des ressources et réagir aux aléas. Elles
sont prises, dans le cas par exemple, de la gestion de stocks, de l’ordonnancement de la
production, etc.

1.5.3 Les décisions stratégiques

Ce niveau représente les orientations à long terme, il concerne la partie conception de


l’entreprise. Ces décisions partent de la nature et la répartition judicieuse des ressources en vue
de commercialiser des produits et de conquérir des marchés selon la combinaison qui donnera
le meilleur résultat au regard des critères ou objectifs retenus. Elles ont un impact global dans
la mesure où elles remettent en question l’existant au niveau de toutes les fonctions de
l’entreprise. Les enjeux et les dimensions sont tellement importants qu’ils constituent en soi un
véritable phénomène d’inertie. Elles sont prises dans le cadre par exemple d’ouverture ou de

7
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

fermeture de certains sites de production ou leur délocalisation, d’affectation d’une nouvelle


zone de marché à un centre de distribution, le développement d’un nouveau produit, la
configuration d’usine, de mode de fonctionnement, etc.

La figure suivante décrit la hiérarchie et montre l’interaction qui existe entre les activités
du système de gestion.

Figure 2: Organisation hiérarchique d’un système de gestion de production (source :


Belkadi F, 2014)

2 Organisation de la production
2.1 Le principe des 5 zéros

L’organisation de la production est passée par plusieurs étapes en fonction des tendances
de marché qui caractérisaient l’environnement économique. Les nouvelles formes
d’organisation du travail inspirées du Toyotisme (développé par les responsables de production
de la firme japonaise Toyota en 1950) s’inscrivent dans une logique de qualité totale qui
consiste à développer un processus continu d’amélioration du processus de production à partir
de la mobilisation de l’ensemble des personnels impliqués que ce soit au niveau des méthodes
de gestion de la qualité que de l’assurance-qualité [GM, 2005]. Cette recherche de qualité totale
est symbolisée par le principe des « 5 zéros ». (Source : Berrichi A, 2009)

8
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Zéro défaut : le processus de fabrication doit limiter au maximum les défauts de


fabrication de manière à éviter le gaspillage des ressources utilisées pour produire. Le contrôle
de la qualité du processus productif ne se limite donc plus à un contrôle à la fin du processus
productif, mais est intégré dans l’ensemble de la chaîne de production.

Zéro panne : la recherche d’une efficacité optimale du processus productif (afin de


garantir des gains de productivité) se traduit par la mise en place d’un système de maintenance
préventif qui vise à éviter les pannes plutôt qu’à intervenir une fois celles-ci constatées (ce qui
entraîne alors un arrêt temporaire de la production).

Zéro délai : les gains de productivité vont par ailleurs être obtenus par la mise en place
d’un système de production en continu ce qui dans le cadre d’un mode de production flexible
se traduit par l’élaboration de processus de production facilement reprogrammables et
adaptables.

Zéro stock : des gains de productivité peuvent aussi être obtenus par la suppression des
stocks de produits finis ou de produits intermédiaires qui coûtent chers à l’entreprise. La
production va donc être organisée selon le principe de la production au « juste-à-temps ».

Zéro papier : la flexibilité de l’outil de production ne pourra être obtenue que par une
organisation plus souple et donc moins dépendante de procédures administratives complexes
qui ralentissent le processus de décision. Le système d’information devient donc moins formel
et moins vertical.

2.2 Critères d’évaluation d’un système de production

La conception et l’exploitation des systèmes de production nécessitent des techniques


d’évaluation basées sur deux principaux critères : la performance et la sûreté de
fonctionnement :

2.2.1 La performance

La performance d’un système peut être définie comme étant l’efficacité à fournir un
service attendu à un instant donné et dans des conditions prédéterminées. Elle intègre les
notions de coût, délais, qualité, flexibilité (capacité de changement rapide aux modifications de
l’outil de production) et valeur (la satisfaction du client). Une façon de la mesurer consiste à
mesurer la distance entre ce que l’entreprise obtient avec les moyens dont elle dispose et ce
qu’elle souhaite atteindre comme objectif.

9
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

2.2.2 La sûreté de fonctionnement

La sûreté de fonctionnement (SdF) des systèmes de production automatisés est une


nécessité économique. Elle consiste à assurer le respect du cahier des charges concernant la
productivité, en tenant compte des perturbations (défaillances, aléas, etc.) infectant un atelier
en assurant une qualité et une disponibilité maximale. Optimiser la commande devient illusoire
si l’outil de production tombe souvent en panne.

Elle intègre les notions de disponibilité, fiabilité, maintenabilité et sécurité. Elle consiste
à connaître, détecter, évaluer, prévoir, mesurer et maîtriser les défaillances des machines.
L’intégration d’un service de maintenance est indispensable pour l’amélioration de la SdF et
l’augmentation des performances des systèmes de production.

3 L’ordonnancement dans les systèmes de production


3.1 Ordonnancement
Un problème d’ordonnancement consiste à organiser dans le temps la réalisation de
tâches, compte tenu de contraintes temporelles (délais, contraintes d’enchaînement) et de
contraintes portant sur la disponibilité des ressources requises.

En production (manufacturière, de biens, de service), on peut le présenter comme un


problème où il faut réaliser le déclenchement et le contrôle de l’avancement d’un ensemble de
commandes à travers les différents centres composant le système.

Un ordonnancement constitue une solution au problème d’ordonnancement. Il est défini


par le planning d’exécution des tâches (« ordre » et « calendrier ») et d’allocation des ressources
et vise à satisfaire un ou plusieurs objectifs. Il est très souvent représenté par un diagramme de
Gantt.

3.2 Ordonnancement d’atelier

L’ordonnancement d’atelier consiste à exploiter au mieux des moyens limités, les


machines, pour réaliser un ensemble varié de produits, les lots. La complexité ne réside pas
dans le processus de fabrication prédéterminé, mais plutôt dans la combinatoire qui naît de la
prise en compte des limitations de ressources.

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
10
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

est constitué de m tâches à exécuter sur m machines distinctes. Il existe trois types de problèmes
d’atelier, selon la nature des contraintes liant les tâches d’un même lot. Lorsque l’ordre de
passage de chaque lot est fixé et commun à tous les lots, on parle d’atelier à cheminement
unique (flow-shop). Si cet ordre est fixé, mais propre à chaque lot, il s’agit d’un atelier à
cheminements multiples (job-shop). Enfin, si le séquencement des tâches des travaux n’est pas
imposé, on parle d’atelier à cheminements libres (open-shop). Un critère d’optimisation souvent
étudié est la minimisation du délai total de l’ordonnancement (Makespan).

3.3 Diagramme de Gantt

Etabli par Henry Gantt en 1885, c’est une représentation très pratique et très utilisée.
Les tâches ou activités sont ordonnées sur une échelle de temps en fonction des antériorités
entre les tâches, de la disponibilité des moyens matériels...

Ce diagramme (ou planning) présente un certain nombre d’avantages :

La lecture est simple et accessible à tous ;


Le suivi peut s’effectuer facilement lors du déroulement du projet en
comparant les dates prévues et les dates réelles.
les dates de début et de fin de chaque tâche sont lues directement sur l’échelle
de temps ;
Il permet en affectant les ressources aux tâches d’établir le plan de charge.

Par contre il possède des inconvénients plus importants :

La mise en évidence des relations d’antériorité n’existe pas entre les tâches ;
Durant le déroulement du projet, si une tâche prend du retard, on ne peut
déterminer l’influence sur la fin du projet ;
Lors de la mise à jour du planning, on décale les tâches en retard vers la droite
et il nous est difficile de déterminer l’ordre et la nature de ces dernières ;

La figure suivante montre l’ordonnancement d’un atelier flowshop à deux machines, les dates
de début et date de fin des taches ainsi que la durée des taches est mise en valeur.

11
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Figure 3: diagramme de Gantt (atelier flowshop à deux machines)

Dans cette étude, ce diagramme va être utilisé afin de mettre en évidence la


superposition des taches qui entraîne souvent un conflit entre la fonction production et la
fonction maintenance d’une entreprise. Il servira aussi à prouver que les résultats donnés par le
planificateur optimisés et cohérant et s’ordonnance de manière optimale sur les ressources
allouées, de manière plus précise sur les machines.

3.4 Ordonnancement de la production

L’ordonnancement de la production consiste à utiliser au mieux les ressources


disponibles tout en respectant les contraintes. Vu que la production constitue un système bien
complexe qui est un ensemble de ressources en interaction qui vise à effectuer une activité. De
ce fait, les successions des opérations doivent être bien organisées et optimisées en respectant
les contraintes. Et de la même manière qu’il y a plusieurs opérations à effectuer, la réalisation
des différentes opérations ou taches devient assez difficile sans méthode bien déterminée.

4 Présentation des problèmes d’ordonnancement


Les problèmes d’ordonnancement consistent à programmer dans le temps les exécutions
d’une série de tâches, aussi bien appelle activités, sur un ensemble de ressources physiques,
cela en cherchant à optimiser certains critères ou objectifs, tout en respectant les contraintes de
fabrication et l’organisation.

D’un autre point de vue, cela signifie « déterminer ce qui va être fait, quand, ou, et avec
quel moyen. Étant donné un ensemble de tâches à accomplir, le problème d’ordonnancement
consiste à déterminer quelles tâches doivent être exécutées et a assigné des dates et des
ressources à ces taches de façon à ce qu’ils soient, dans la mesure de possible, accomplies en
temps utiles, au moindre coût et dans les meilleures conditions.

12
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

La figure 4 en diagramme de Gantt ci-après montre l’ordonnancement des plusieurs


taches sur plusieurs machines dans le temps.

Machines

Temps

Figure 4: Ordonnancement dans de taches un système de production

4.1 Les taches et opérations

L’ordonnancement d’atelier peut être décomposé en taches. Ce dernier peut être aussi
subdivisé en opérations qui est caractérisé par sa date de début et sa date de fin. L’exécution de
cette opération nécessite l’immobilisation d’une ou plusieurs ressources en prenant ainsi un
temps opératoire. Dans certains cas, les opérations peuvent être exécutées par morceaux, ce qui
est désigné par le terme opération morcelable ou bien problèmes de préemptifs. Ce dernier
signifie que l’exécution d’une opération peut être interrompue et remise plus tard en
commençant par là ou on l’avait laissé.

Dans un problème d’ordonnancement, une tache Jj est localisée dans le temps par :

pij : la durée des opératoires de la tache Jj sur la machine Mi ;

rij : la date de début au plus tôt ou date de disponibilité de la tache Jj sur la


machine Mi ;

dij : la date de fin au plus tard de la tache Jj sur la machine Mi ;

tij : La date de début d’exécution de la tâche Jj sur la machine Mi ;

cij : La date d’exécution de la tâche Jj sur la machine Mi ;

13
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Tij : Le retard vrai de la tache Jj sur la machine Mi, ici Tij= max {0, cij-dij} ;

Uij : l’indice de retard, ou Uij=1 si la tache Jj est en retard, 0 sinon ;

Wij : Le poids de la tache.

4.2 Les ressources

Par définition, une ressource est un moyen, technique ou humain, dont la disponibilité
est limitée. On peut distinguer deux types de ressources : les ressources renouvelables et
ressources consommables.

4.3 Les contraintes

Généralement, les contraintes dans les problèmes d’ordonnancement se divisent en deux


catégories bien distinctes, les contraintes temporelles et les contraintes de ressources.

4.3.1 Les contraintes temporelles

Les contraintes temporelles comprennent les contraintes de temps alloué, qui


correspondent généralement aux impératifs liés aux tâches (délais de livraison, disponibilité des
approvisionnements) ou encore à la durée totale d’un ordonnancement appelé Makespan. Elles
comprennent les contraintes d’antériorité ou de précédence qui correspondent à des contraintes
de cohérence technologique qui positionnent les tâches les unes par rapport aux autres. Elles
comprennent aussi les contraintes de calendrier qui correspondent, par exemple, aux plages
horaires de travail, etc.

4.3.2 Les contraintes de ressources

Les contraintes de ressources, quant à elles, traduisent la disponibilité des ressources et


le fait qu’elle soit en quantité limitée. Deux types de contraintes de ressources, liées à la nature
cumulative ou disjonctive des ressources, peuvent alors être distingués. Les ressources
disjonctives ne peuvent être utilisées que par une tâche à la fois. Les ressources cumulatives,
quant à elles, peuvent être utilisées par plusieurs tâches simultanément, comme dans le cas d’un
ensemble de ressources, par exemple.

5 Les critères d’évaluation


Afin d’évaluer la qualité d’un ordonnancement, quelques critères généralement liés au
temps, aux ressources ou aux coûts. Il s’agit, le plus souvent de considérer le maximum ou la

14
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

somme (qui peut être la somme totale ou pondérée) sur toutes les taches d’une certaine mesure
ou d’une combinaison de plusieurs mesures. Les critères les plus souvent utilisés sont :

Cmax = max Cj : Le Makespan (durée totale d’ordonnancement), avec Cj la date de fin


d’exécution de la tâche j qui est aussi la date d’achèvement de la tâche la plus tardive.
On obtient une utilisation efficace des ressources en minimisant ce critère ;
∑1 ≤ j ≤ nCj: la somme des dates de fin taches ;
Lmax=max Lj : le plus grand retard algébrique, avec Lj=Cj-dj ;
Cj étant le retard algébrique et dj la date de fin souhaitée ou encore date d’échéance.
Tmax = max 1 ≤ j ≤ nTj : le plus grand retard vrai, avec Tj= max (0, Cj-dj) est le retard
vrai du tache J ;
∑1 ≤ j ≤ nTj : la somme de retard ;
∑1 ≤ j ≤ nUj : la somme de taches en retard, Uj étant l’indicateur de retard qui est égale
a 1 si Tj˃0 et 0 sinon ;
∑1 ≤ j ≤ nEj : la somme des avances, avec Ej=max (0, dj-Cj) qui l’avance de la tache j
∑1 ≤ j ≤nFj :la somme des encours, qui se définie par la date de séjour des taches dans
l’atelier. Fj = Cj - rj, avec rj la date de disponibilité de la tache j.

Fréquemment, les entreprises cherchent à optimiser plusieurs fonctions objectives en


même temps. Dans ces conditions, le problème d’ordonnancement n’est plus un problème
simple, mais devient un problème multicritère

6 Classification des problèmes d’ordonnancement.


On classifie, généralement les types de problèmes d’ordonnancement d’atelier selon le
nombre et l’ordre d’utilisation des machines pour fabriquer un produit. On retrouve :

6.1 Une machine ∅ :

Chaque tâche est constituée d’une seule opération, et chacune d’elles doivent d’être
réalisée par une seule machine.

6.2 Machine parallèle :

Ce sont des machines qui remplissent les mêmes fonctions. Selon leur vitesse
d’exécution, on distingue :

Machines identiques
Machines uniformes

15
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Machines indépendantes

6.3 Machine dédiée :

Dans cette catégorie, chaque tâche est constituée de plusieurs opérations. On


retrouve trois types d’ateliers qui se distinguent les uns des autres par le mode de passages
des opérations sur les différentes machines, et qui sont :

6.3.1 Flow shop de permutation (à cheminement unique)


C’est un cas particulier du problème d’ordonnancement d’atelier pour lequel le
cheminement est unique, les n tachent utilisent les m machines dans l’ordre 1, 2, …, m. Voici
une figure illustrant un atelier de type flow shop de permutation.

Figure 5: Représentation d’un atelier Flow Shop

6.3.2 Job shop (à cheminement multiple)

Les n tâches doivent être exécutés sur les m machines, de même que le flow shop, la
seule différence est les séquences des opérations qui peuvent être distinct et sont propres à
chaque tache. Voici une figure illustrant un atelier Job Shop

Figure 6: Représentation d’un atelier Job Shop

6.3.3 Open Shop (à cheminement libre)

Dans ce type d’atelier, l’ordre des opérations n’est pas fixé. C’est un type d’atelier pas
très courant dans les entreprises et qui n’est pas très étudié dans la littérature vue que le
problème d’ordonnancement consiste à déterminer le cheminement de chaque tache et d’autre

16
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

part à ordonnancer les taches en tenant compte des gammes. Cependant, ces deux problèmes
peuvent être résolus simultanément.

Afin de distinguer un problème d’ordonnancement de manière synthétique et précise,


Rinnooy en 1976 a proposé une notation qui est maintenant le plus utiliser. Elle est composée
de trois triplets. α/β/γ, dont α=α1 α2 décrits les caractéristiques des machines.

α1 ∈{Ø,P,R,O,F,J} ;

α2 :le nombre de machines ;

β : l’ensemble des contraintes ;

γ : le critère à optimiser ;

Ø : ordonnancement sur une seule machine ;

P : ordonnancement sur plusieurs machines parallèles et identiques ;

Q : ordonnancement sur plusieurs machines parallèles et uniformes ;

R : ordonnancement sur plusieurs machines parallèles et indépendantes ;

O : Problème atelier de type Open Shop ;

F : Problème d’atelier de type Flow Shop ;

J : Problème d’atelier de type Job Shop ;

Exemples :

Q2/pmtn,prec/Lmax : Ce problème a pour objectif la minimisation du retard maximal


sur deux machines parallèles uniformes. Existence de contrainte de précédences et possibilité
d’interruption des taches.

F3 / Vi / ∑Ti : Représente les problèmes de minimisation de la somme des retards en


Flow Shop a 3 machines avec contrainte de dates de disponibilité.

7 Ordonnancement d’atelier flow shop


En ordonnancement, il est toujours utile de représenter un problème dans un diagramme.
Le plus utiliser est le diagramme de Gantt. Pour illustrer on va prendre l’exemple de
l’ordonnancement de trois taches (J1, J2, J3) dans un atelier flow shop a deux machines. Les
durées opératoires sont donnes dans tableau suivant.
17
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

M1 M2

J1 4 2

J2 2 6

J3 4 4

Tableau 1: Temps opératoire pour l’exemple d’un flow shop

Figure 7: Représentation d’un ordonnancement d’atelier flow shop

8 Complexité des problèmes d’ordonnancement


Les problèmes d’ordonnancement d’ateliers, sont des problèmes combinatoires,
extrêmement difficiles et il n’existe pas de méthode universelle permettant de résoudre
efficacement tous les cas, beaucoup d’entre eux peuvent prendre un temps considérable pour
être résolus. La théorie de la complexité des algorithmes a donné un sens précis aux termes
d’algorithme efficace et de problème difficile.

Les classes P et NP :

Pour pouvoir exposer la notion de classe de problèmes, il est tout d’abord nécessaire de
distinguer les problèmes de décision des problèmes d’optimisation. Un problème de décision
est un problème pour lequel la réponse est "oui" ou "non". Il est possible d’associer à chaque
problème d’optimisation, un problème de décision en introduisant un seuil k correspondant à la
fonction objectif f. Le problème de décision devient : "existe-t-il un ordonnancement réalisable
(S) tel que f (S) ≤ k ?".

18
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Il est alors possible de définir la classe de complexité P qui regroupe l’ensemble des
problèmes de décision qui peuvent être résolus par des algorithmes déterministes en un temps
polynomial, c’est-à-dire la complexité dans le pire des cas est polynomiale. Les problèmes
appartenant à cette classe sont relativement simples à résoudre.

La classe NP regroupe les problèmes qui peuvent être résolus en temps polynomial par
un algorithme non déterministe (Algorithme qui comporte des instructions de choix) [Giard V,
2003]. Pour ces algorithmes, si à chaque instruction le bon choix est effectué, le temps de calcul
est polynomial. Si au contraire tous les choix sont énumérés, l’algorithme devient déterministe
et son temps de calcul devient exponentiel. Les algorithmes "ordinaires" sont évidemment des
cas particuliers des algorithmes non déterministes [Flipo C, 1998]. Aussi tout problème de
décision qui peut être résolu par un algorithme polynomial, et qui donc appartient à la classe P,
appartient également à la classe NP. D’où P⊆NP.

8.1 Méthode de résolution

Les problèmes d’ordonnancement d’atelier sont des problèmes d’optimisation


combinatoire qui nécessitent d’effectuer un nombre important de calculs pour obtenir un
ordonnancement admissible (ou réalisable) qui optimise le (ou les) critère(s) retenu(s) en tenant
compte des contraintes. Le développement de la théorie de complexité a permis de classifier
ces problèmes selon leurs difficultés. Dans la plupart des cas, ils ont été démontrés NP-
difficiles. La principale difficulté à laquelle est confronté un décideur en présence d’un
problème d’optimisation est celle du choix d’une méthode efficace capable de produire une
solution optimale en un temps de calcul raisonnable. Les différentes méthodes de résolution
développées peuvent être classées en deux catégories : les méthodes exactes et les méthodes
approchées. La programmation dynamique, les méthodes par séparation et évaluation ("Branch-
and-Bound") et la programmation linéaire en nombres entiers sont les principales méthodes de
résolution exacte. Elles nous permettent de trouver une solution optimale grâce à une
exploration efficace de l’espace des solutions. De manière générale, ce type d’approches permet
de résoudre les problèmes d’ordonnancement de petite taille, mais il reste difficile de fournir
une résolution exacte en un temps raisonnable lorsque les problèmes sont de taille importante.
D’où la nécessité d’adopter des méthodes de résolution approchée proposant des solutions
acceptables en un temps de calcul réduit.

19
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

8.1.1 Méthode exacte

Les techniques de résolution exacte sont définies pour les problèmes combinatoires en
général. L’énumération exhaustive est la méthode la plus simple. Les méthodes par séparation
et évaluation et la programmation dynamique font une énumération intelligente des solutions
possibles. Pour des problèmes difficiles de grande taille, la durée d’exécution est démesurée et
il faut envisager une résolution approchée. Ils sont exposés dans la suite.

8.1.2 La procédure par séparation et par évaluation

Elles sont aussi appelées méthodes arborescentes. Ce sont des méthodes exactes qui
pratiquent une énumération complète et améliorée des solutions. Elles partagent l’espace des
solutions en sous-ensembles de plus en plus petits, la plupart étant éliminés par des calculs de
bornes. Appliquées à des problèmes NP-difficiles, ces méthodes restent bien sur exponentielles,
mais leur complexité est bien plus faible que pour une énumération exhaustive. Elles peuvent
pallier le manque d’algorithmes polynomiaux pour des problèmes de taille moyenne.

Pour un POC (Problème d’ordonnancement combinatoire), on peut inventer plusieurs


méthodes par séparation et évaluation. Cependant elles auront trois composantes communes :

- Une règle de séparation, permettant de partitionner un ensemble des solutions en sous-


ensembles ;
- Une fonction d’évaluation, permettant le calcul d’une borne pour un ensemble de
solutions ;
- Une stratégie d’exploration de l’arborescence de recherche

8.1.3 La programmation dynamique

La programmation dynamique est une méthode fondée sur le principe de Bellman qui
assure que la sous-stratégie d’une politique optimale est elle-même optimale. Cette procédure
est basée sur la division récursive d’un problème en sous-problèmes plus simples. Ainsi, le
système est constitué de plusieurs étapes à résoudre de façon séquentielle. Chaque étape
correspond à un sous-problème que nous résolvons de façon optimale en tenant compte des
informations obtenues au cours des étapes précédentes. Cela nécessite une formulation du
critère sous la forme d’une relation de récurrence reliant deux niveaux consécutifs. Cependant,
le passage d’une étape à une autre peut être basé sur les lois d’évolution du système et d’une
décision. La procédure évite une énumération totale de l’espace de recherche par des séquences
de décision partielle d’élagage qui ne peuvent pas conduire à la solution optimale.

20
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

8.1.4 Les méthodes approximatives

Les méthodes approchées représentent une alternative intéressante pour résoudre des
problèmes d’optimisation combinatoires NP-difficiles. Contrairement aux méthodes exactes
qui cherchent les solutions optimales, les méthodes approximatives fournissent des solutions
acceptables en un temps raisonnable. Les méthodes les plus connues pour leurs aptitudes à
résoudre ce type de problèmes sont essentiellement les heuristiques de construction, les
heuristiques de décomposition et les métaheuristiques.

8.1.4.1 Les heuristiques de construction


Ces heuristiques ont pour objectif de construire itérativement une solution à un
problème d’ordonnancement. Elles consistent à définir des priorités entre les tâches qui sont en
attente de traitement sur une machine. Les méthodes les plus couramment utilisées sont des
algorithmes dont le principe est de trier les opérations selon une stratégie de décision telle que
LPT (Longest Processing Time first), SPT (Shortest Processing Time first), etc.

8.1.4.2 Les heuristiques de décomposition


Cette classe permet de fournir des solutions approximatives à des problèmes complexes
en décomposant le problème en plusieurs sous-problèmes. Selon Azem [Azem S, 2010] nous
pouvons définir trois familles qui sont :

La décomposition hiérarchique proposée par Erscher consiste à décomposer le problème


en plusieurs niveaux, dont les décisions deviennent des contraintes pour les niveaux
inférieurs ;
La décomposition temporelle proposée par Portmann consiste à ordonnancer les sous-
ensembles d’opérations disponibles avant une date et inclure les autres dans la séquence
partielle. Cette technique est utilisée pour les problèmes d’ordonnancement dynamique ;
La décomposition spatiale proposée par Portmann qui a pour objectif de décomposer
l’atelier en plusieurs sous-ateliers avec un minimum de mouvements entre eux,
ordonnancer les opérations dans chaque atelier et enfin coordonner l’ensemble ;
Les méta-heuristiques

L’inconvénient des méthodes de voisinage est qu’elles restent parfois bloquées dans un
minimum local, les méta-heuristiques dépassent cet inconvénient. L’idée consiste à autoriser
une détérioration temporaire de l’objectif, permettant ainsi de quitter un minimum local.

21
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Les méta-heuristiques sont largement utilisées pour résoudre des problèmes


d’optimisation combinatoire. Leur succès est dû au fait qu’elles permettent d’intégrer les
différentes contraintes pratiques des problèmes. Elles sont faciles à mettre en œuvre et offrent
des solutions acceptables.

Chapitre II : La fonction maintenance


L’exécution de la maintenance dans une entreprise moyenne ou industrielle est d’une
importance capitale pour maintenir les équipements en état de bon fonctionnement, ce qui en
d’autres termes va assurer la continuité de la production et ne va pas engendrer des coûts
supplémentaires pour ce dernier.

1 Définition
La maintenance, dans sa plus large définition, est l’ensemble des actions et gestions
permettant de maintenir ou rétablir un bien dans un état spécifié ou en mesure d’assurer un
service déterminé, AFNOR(NF X60-0101). Et quand on parle d’ordonnancement, il est
nécessaire de rappeler que : bien maintenir, c’est assurer ces opérations au coût optimal.

Dans son ensemble, la fonction maintenance est constituée de plusieurs composants qui
se catégorisent en deux activités bien distinctes : activités techniques et activités de gestion.

22
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Figure 8: La fonction maintenance dans son ensemble (Source : Retour & Al, 1990)

2 Evolution de la maintenance
Due aux avancés technologiques des équipements de production, à partir de la
révolution industrielle, la maintenance a connu trois phases d’évolution qui sont :

L’entretien où la priorité est accordée à la réalisation (dimension technique de l’activité).


La fonction maintenance était purement technique. Elle était réduite aux dépannages et
aux réparations, elle correspondait donc à ce qu’on appelle actuellement la maintenance
corrective ;
La maintenance proprement dite ou dimension économique est aussi considérée comme
très importante. La gestion du travail de maintenance et la gestion des coûts de
maintenance sont le résultat de l’articulation des dimensions technique et économique,
par l’analyse de la valeur (AV) ;
Dans la troisième dite térotechnique (de térotechnologie), où on s’intéresse à la dimension
sociale impliquant les utilisateurs des équipements de production, qui a conduit à un mode
d’organisation intégré (MOI) des fonctions maintenance et production.

« La térotechnologie est une combinaison de principes de gestion, de finance, d’ingénierie


de construction, etc., appliqués à des actifs physiques dans la recherche de coûts de cycles
de vie les plus économiques »

23
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Figure 9: Evolution de la maintenance (Source : Boulenger 1998)

AV : Analyse de la Valeur ;

AO : Analyse de l’Organisation ;

AQ : Analyse de la Qualité ;

MOI : Mode d’Organisation Intégrée.

3 Classification des méthodes de maintenance


La maintenance se divise en types : la maintenance préventive et la maintenance
corrective. La différence réside dans le moment d’intervention vis-à-vis de la panne.

3.1 La maintenance préventive

C’est une « maintenance exécutée à des intervalles prédétermine ou selon des critères
prescrits et destinés à réduire la probabilité de défaillance ou dégradation du fonctionnement du
bien ». En d’autres termes, c’est une maintenance prévue, préparée et programmée en
fonctionnement de diffèrent paramètres en vue d’éviter l’apparition probable d’une défaillance
identifie. Il existe trois formes de la maintenance préventives :

3.1.1 La maintenance préventive systématique

« Maintenance préventive exécutée à des intervalles de temps préétablis ou selon un


nombre défini d’unités d’usage, mais sans contrôle préalable de l’état du bien » (norme NF EN
13306 X 60-319). Cette maintenance comprend des inspections périodiques et des interventions
planifiées.

La maintenance préventive systématique sera l’objet d’ordonnancement qu’on va


introduire dans notre programme (du fait qu’elle soit planifiée), afin d’avoir un ordonnancement
conjoint de la production et de maintenance plus optimale. Elle se présentera sur un échéancier
préétabli par la fonction maintenance dépendant de l’état du bien. Elle sera en fonction du
MTBF et de λ de chaque machine.

3.1.2 La maintenance préventive conditionnelle

« Maintenance préventive basée sur une surveillance du fonctionnement du bien et/ou


des paramètres significatifs de son fonctionnement intégrant les actions qui en découlent »

24
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

(norme NF EN 13306 X 60319). Dans ce cas il n’y a pas d’échéancier, mais c’est le
franchissement d’un seuil qui provoque l’intervention.

Figure 10: Structure de la maintenance conditionnelle (Source : Deloux, 2005)

3.1.3 La maintenance préventive prévisionnelle

Basée sur le temps de bon fonctionnement de l’appareil, la maintenance préventive


prévisionnelle nous permet d’anticiper toute panne. Un arrêt sera planifié pour réviser tous les
composants empêchant ces derniers d’enclencher une panne de durée plus remarquable.

3.2 La maintenance corrective

La maintenance corrective est le type de maintenance s’apparentant le plus à l’entretien


traditionnel dans la mesure où on intervient sur le matériel après l’apparition d’une défaillance
en vue de le remettre en état. Il existe deux types :

La maintenance palliative ;
La maintenance curative .

25
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

La figure ci-dessous montre l’organisation de la maintenance et les différents types qui


la composent.

Figure 11: Organisation de la maintenance (Source : Deloux 2005)

3.3 Les processus de maintenance

Le processus Maintenance, aussi appelé fonction Maintenance, est composé de


différentes fonctions qui peuvent être :

Préparation ;
Réalisation travaux de maintenance ;
Ordonnancement ;
Méthodes ;
Achats ;
Gestion de stock- Magasin ;

Concernant l’ordonnancement, cette fonction permet d’organiser le travail à réaliser


comme :

Prévoir la chronologie du déroulement des différentes tâches de maintenance ;


Optimiser les moyens nécessaires en fonction des délais ;
Ajuster la charge ;

26
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Contrôler l’avancement et la fin des travaux ;


Analyser les écarts entre les prévisions et les réalisations ;
Avoir une vision à long terme (plan de charge annuel), à moyen terme et à court terme.

Maintenance Maintenance curative


préventive
Plan de maintenance

Planification
Approvisionnement
• Outillage
• Pièces de rechange
• (Entreprises extérieures)

Exécution des travaux


Suivi
Figure 12: Organisation de l’ordonnancement de la maintenance

4 Notion sur la sûreté de fonctionnement


Après la Deuxième Guerre mondiale, la recherche de fiabilité et de disponibilité des
machines industrielle est devenue une science à part entière dans le domaine de la recherche
opérationnelle. Elle a pour fondements mathématiques la statistique et le calcul des probabilités
qui sont nécessaires à la compréhension et à l’analyse des données de fiabilité.

27
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

4.1 États successifs d’un système réparable

Les différentes étapes de cycle de vie d’un bien peuvent être repérées dans le temps. Le
schéma ci-dessous montre les états successifs que peut prendre un système réparable.

Figure 13: Etat successif d’un système réparable (Source : Management des moyens de production,
Claude Sourisse et François Klaye)

MTTF= Mean Time To(first) Failure <=> Fonctionnement Moyen Avant Première
défaillance

MDT = Mean Down Time <=> Temps Moyen d’Indisponibilité

MTTR= Mean Time To Repare <=> Temps Moyen de Remise en état

MUT = Mean Up Time <=> Temps Moyen de Disponibilité

MTBF= Mean Time Between Failure <=> Temps Moyen entre défaillance

MTBF-MTTR <=> Fonction Moyen Entre Défaillances

Remarques : Dans les équipements non réparables on a MTBF=MTTF

Dans les équipements réparables, MTBF caractérise la fiabilité et MTBF-


MTTR la disponibilité.

Ces différentes étapes dans le cycle de vie de système se déterminent par calcul de probabilité,
d’où le terme de fiabilité, disponibilité et maintenabilité.

La fiabilité

R(t)=P (Tp > t)

Ou encore R(t) = P [ E non défaillante sur (0,t)]

28
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Le nombre F(t) représente la probabilité qu’un dispositif choisi au hasard ait une défaillance
avant l’instant t.

F(t)= P (T ≤ t)

Tp : temps d’apparition de la panne ;

E : entité ;

F : la première lettre du mot anglais Fault.

Le nombre R(t) représente la probabilité qu’un dispositif choisi au hasard dans la population
n’ait pas de défaillance avant l’instant t.

R(t)=P (Tp > t)

R : la première lettre du mot anglais Reliability.

Cette formule de probabilité peut s’écrire aussi sous la forme :


∞ 𝑡
𝑅(𝑡) = ∫ 𝑓(𝑡)𝑑𝑡 = 𝑒 − ∫0 𝜆(𝑡)𝑑𝑡
𝑡

Le taux défaillance instantanée

1 𝑅(𝑡)−𝑅(𝑡+∆𝑡)
λ(t)= lim ( . )
∆𝑡→0 ∆𝑡 𝑅(𝑡)

4.2 Les indicateurs de fiabilité (λ) et MTBF


4.2.1 Le taux défaillance

Le taux défaillance est définit par des expressions mathématiques à travers des calculs
de probabilité, comme peut le voir dans l’annexe. Cependant, on peut aussi l’exprimer par une
expression physique

Nombre total de défaillances pendant le service


λ=
durée total de bon fonctionnement

4.2.2 Temps Moyen de Bon fonctionnement

Le MTBF (Mean Time Between Failure) est souvent traduit comme étant la moyenne
des temps de bon fonctionnement, mais représente la moyenne des temps entre deux
défaillances. En d’autres termes, Il correspond à l’espérance de la durée de vie t.

Physiquement le MTBF peut être exprimé par le rapport des temps :

29
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Somme des temps de fonctionnement entre les (n)𝑑é𝑓𝑎𝑖𝑙𝑙𝑎𝑛𝑐𝑒


𝑀𝑇𝐵𝐹 =
nombre d′ intervention de maintenance avec immobilisation
𝟏
Si λ est constant alors : 𝑀𝑇𝐵𝐹 = 𝛌

Dans cet ouvrage, le calcul des différents paramètres est laissé à l’utilisateur afin qu’il
introduise ces données dans l’application qui va se charger de trouver l’ordonnancement
optimal des séquences de tache de production et de maintenance.

5 Objectif de la maintenance
La maintenance a pour objectif de déterminer :

La disponibilité et la durée de vie du bien ;


La sécurité des hommes et des biens ;
La qualité des produits ;
La protection de l’environnement ;
L’optimisation des coûts de maintenance.

Les missions principales de la fonction maintenance sont de :

Accroitre la fiabilité ;
Assurer la disponibilité ;
Accroitre la maintenabilité.

6 La Gestion de Maintenance Assistée par Ordinateur (G.M.A.O)


La G.M.A.O est un nouveau concept développe et adopte par les entreprises en vue de
progresser pour plus de rentabilité et de productivité. D’une part, une GMAO prend en charge
l’ensemble des données et des méthodes liées à une organisation de maintenance, puis d’en tirer
les indicateurs stratégiques nécessaires à la prise des bonnes décisions. D’autre part, elle répond
aux besoins quotidiens des hommes de la maintenance, c’est-à-dire permettre de réaliser des
interventions sur des équipements avec le maximum d’efficacité.

Une GMAO est constituée d’une base de donne(historique) qui est alimentée par le
personnel de maintenance via un formulaire. Des pannes sont mises en mémoire pour certains
équipements (date, temps passe, intervenant, matériel remplace, etc.)

30
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

7 Ordonnancement de la maintenance
L’ordonnancement de la maintenance a pour rôle de planifier la réalisation des tâches
de maintenance sur les machines et équipements de la production, c’est-à-dire de fixer leurs
dates de début et leurs dates de fin et de réunir tous les moyens prévus pour leur réalisation
(machines, personnel, outils, pièces de rechange, etc.). Il intervient chronologiquement entre la
fonction « Méthodes » chargée d’initier les tâches en affectant une durée à un travail (temps
alloué) et la fonction « Réalisation » (ou Lancement) chargée de mettre en œuvre l’intervention
au moment choisi par l’ordonnancement. Les activités principales en ordonnancement de la
maintenance sont la Programmation, le Lancement et l’Approvisionnement.

La programmation est l’action d’intégrer une tâche en attente sur un planning en lui
choisissant des dates de début et de fin. L’activité de lancement a pour mission de rassembler
tous les moyens nécessaires, à la réalisation d’une tâche de maintenance, pour assurer leur
disponibilité au moment choisi. L’ordonnancement de la maintenance est également
responsable de la disponibilité des « consommables » et des pièces de rechange, donc d’assurer
les approvisionnements nécessaires.

La notion d’ordre de travail de maintenance peut être rapprochée de celle d’opération


de production et la notion de ressource de maintenance peut être rapprochée de celle de
ressource de production. Le problème d’ordonnancement de la maintenance revient donc à un
problème d’affectation de ressources de maintenance à la réalisation d’ordres de travail de
maintenance sur des machines du système de production, les ressources de maintenances étant
constituées des opérateurs de maintenance.

Chronologiquement, la maintenance préventive systématique qu’on prend en compte


dans notre programme se présente comme suit :

𝜃1 𝜃2 𝜃3

Temps

Contrôle Réglage Remplacement

Figure 14: Chronologie de la maintenance préventive

Le temps total de maintenance préventive d’une machine étant θ, d’où son expression :

31
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

𝜽 = 𝜽𝟏 + 𝜽𝟐 + 𝜽𝟑

Les phases de contrôle et de réglage sont des taches qui ne représentent pas un temps
d’arrêt pour la production. Ils sont appelés : intervention masquée. De ce fait, seul θ3 est pris
en compte, car elle représente un arrêt pour la production. Alors, θ3 est le temps opératoire de
maintenance préventive introduit dans le calcul l’application.

8 Objectifs de l’ordonnancement de la maintenance


Les objectifs de l’ordonnancement de la maintenance peuvent être décomposés de
manière hiérarchique en distinguant les objectifs internes à la maintenance et les objectifs
externes. Les objectifs internes traitent le fonctionnement propre du service de maintenance et
les objectifs externes concernent les contraintes imposées par d’autres services (principalement
la production). De ce fait, ils peuvent se retrouver en confit de par leur nature. Cela impose
donc aux ressources de maintenance d’intervenir sur les machines à des dates bien précises qui
ne correspondent pas nécessairement à une optimisation de leur utilisation.

32
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Figure 15: Structure hiérarchique de l’objectif de l’ordonnancement de la


maintenance (Source : Coudert, 2000)

Les objectifs internes sont relatifs :

Aux de maintenance ;
A l’optimisation de l’utilisation des ressources de maintenance ;
Aux règles de sécurités.

Les objectifs externes sont relatifs :

Aux performances des machines ;


A la fiabilité d’une machine.

Conclusion partielle
Dans la première partie de ce mémoire, on s’est focalisé sur la généralité des systèmes
de production et la maintenance industrielle qui nous a permis d’entourer le sujet qu’on doit
traiter dans cet ouvrage. Dans la deuxième partie, on va se concentrer sur l’ordonnancement
conjoint Production/Maintenance, le problématique qu’on fait face et surtout le contexte
d’optimisation par algorithme génétique.

33
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
PARTIE 2 : ORDONNANCEMENT
CONJOINT
PRODUCTION/MAINTENANCE :
OPTIMISATION PAR
ALGORITHME GENETIQUE
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Chapitre III : Ordonnancement conjoint


Production/Maintenance
1 Problématique
Pendant des années, on a toujours considéré la maintenance comme un mal nécessaire
à la production. Elle n’était pas grandement considérée dans les prises de décisions concernant
la production. Cependant, les pannes et les immobilisations de machine en cours de production
commençaient à être de plus en plus coûteux pour les industries et entreprises de production, et
le retard subi de plus en plus long. Les effets étaient plus remarquables quand on a voulu
implanter d’autre méthode de production comme le Just a temps ou Just in time. Ayant leur
ordonnancement distinct, le problème lié à l’ordonnancement séparé de la maintenance et
production est plus visible quand on superpose leur diagramme de Gantt.

Figure 16: Ordonnancement de la production

Figure 17: Ordonnancement de la maintenance

35
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Figure 18: Conflit entre Maintenance et Production dans un ordonnancement séparé

2 La différente méthode d’ordonnancement


L’ordonnancement de la maintenance et de la production a pour but de planifier
l’exécution des maintenances, en altérant le moins possible la de production, et tout en
respectant aux mieux la périodicité de maintenance des équipements. Il existe trois politiques
de planification : l’ordonnancement séparé, séquentiel et l’intégré.

2.1 Ordonnancement séparé

Il s’agit, ici, de l’ordonnancement par deux responsables respectifs des deux services.
Souvent, l’application de ces ordonnancements entraîne des conflits ou des retards parce qu’elle
se déroule au même moment. Elle exige donc une communication accrue entre les deux
services.

36
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

2.2 Ordonnancement séquentiel

Elle consiste à planifier l’une des deux activités, production ou maintenance, et à utiliser
cet ordonnancement comme une contrainte supplémentaire d’indisponibilité des ressources
dans la résolution du problème d’ordonnancement de l’ensemble des deux types de taches.

Figure 19: Ordonnancement séquentiel

2.3 Ordonnancement intégré

Cette politique consiste à créer un ordonnancement conjoint et simultané des taches de


production et de maintenance. Une telle politique de planification limite les risques
d’interférence entre la production et la maintenance et permet ainsi d’optimiser la qualité de
l’ordonnancement.

Figure 20: Ordonnancement intégré

3 Les problèmes dus à l’ordonnancement séparé


L’ordonnancement séparé de la production et de la maintenance entraîne toujours des
conflits entre ces deux fonctions dans l’entreprise.

37
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

En premier lieu, la production, en vue d’atteindre l’objectif fixé, voudrait utiliser les
ressources les plus longtemps possibles. Cependant la maintenance, afin de bien maintenir et
assurer le fonctionnement et la disponibilité des matériels interromps la production pour
effectuer sa fonction. Les conflits ne sont pas les seuls problèmes entraînés par
l’ordonnancement séparé, il y a aussi les problèmes suivants :

L’augmentation de coût de maintenance du retard ;


L’augmentation de coût de production ;
La pénalisation des clients mécontents des retards ;
Utilisation non optimale des ressources ;
Diminution de la performance de l’entreprise.

38
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Chapitre 4 : L’optimisation des ordonnancements


d’atelier par l’algorithme génétique
Etudes d’un problème d’ordonnancement dans un atelier flow shop strictement non-
préemptif où les machines sont sujettes à des interventions périodiques de maintenance
préventive systématiques. L’objectif est la minimisation d’une fonction tenant compte des deux
aspects production et maintenance.

1 Problème d’atelier de type flow shop


Cette étude se porte sur le type d’atelier flow shop notes Fn//Cmax. C’est le type
d’atelier flow shop qu’on rencontre le plus souvent dans les entreprises. Il s’agit ici d’un atelier
ou’ l’ordre de passage des jobs sur les machines est le même pour tous les jobs. On rencontre
ici un atelier appelle sous le nom de flow shop de permutation.

2 Notations et hypothèses
Le problème d’ordonnancement de type flow shop strictement non-préemptif avec la
prise en compte de périodes de maintenance des machines se définit comme suit :

Un ensemble de n travaux J = {J1, J2, . . ., Jn} doit être réalise sur m machines M =
{M1, M2, . . ., Mm} ;
Chaque travail Ji compose d’une séquence de m opération {Oi1, Oi2, . . ., Oim}, visite
toutes les machines dans l’ordre (M1, M2,…,Mm) ;
Chaque machine ne peut réaliser qu’une seule opération a la fois et chaque opération
nécessite une seule machine à la fois ;
Les machines sont sujettes à plusieurs types de maintenance et a des périodes
différentes. Une gamme de maintenance sera fixée a priori ;
Les opérations sont strictement non-préemptives, ce qui signifie que l’exécution de
toute opération ne peut être interrompue ni par la réalisation d’une intervention de
maintenance, ni par celle d’une autre opération.

Afin d’optimiser le placement des tâches de maintenance, nous supposons qu’elles


sont flexibles et que leurs dates de début doivent être déterminées durant la procédure
d’ordonnancement. Une fenêtre temporelle est donc allouée à l’exécution de chaque tâche.
Cette hypothèse se rapproche d’ailleurs de la réalité industrielle, telle par exemple
l’obligation de planifier une tâche de maintenance sur une machine toutes les 10 heures de

39
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

travail plus ou moins 1 heure. En plus, il est raisonnable de penser que si une machine est
libre à un moment donné et si une tâche de maintenance peut s’effectuer à ce moment, il
peut être plus intéressant de la réaliser aussitôt que possible, de manière à poursuivre avec
une machine dont la probabilité de panne est plus faible. On suppose aussi que le nombre
de tâches de maintenance est une seule intervention de maintenance préventive pour chaque
machine, et il n’y a qu’une seule équipe d’intervention dans l’entreprise, de ce fait, on ne
peut réaliser deux interventions de maintenance en même temps sur deux machines, donc
on doit supposer aussi qu’il existe un intervalle de temps entre deux maintenances
successives.

On considère la maintenance comme les taches de production avec des dates de


contraintes supplémentaires (les dates de disponibilité, l’intervalle de temps entre deux
interventions…).

Symbole Signification

Pij Le temps opératoire de la tache Ji sur la machine Mj

P[i]j Le temps opératoire du travail ordonnancé en position i sur la machine Mj

Cij La date d’achèvement du travail Ji sur la machine Mj

C[i]j La date d’achèvement du travail ordonnance en position i sur la machine Mj

Sij Le temps ou’ un travail Ji est ordonnancé

Ps Le temps nécessaire pour que la première tâche de maintenance soit disponible

V L’intervalle du temps entre deux maintenances successives

Tableau 2: Notations de problème d’ordonnancement

3 La fonction objective
Le but est de proposer une méthode qui fournit un planning commun pour les taches de
production et de maintenance. L’objectif de l’optimisation consiste en un compromis entre la
fonction objectif que l’on souhaite atteindre pour la production et la maintenance.

40
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Les contraintes imposées par les clients à leurs fournisseurs s’expriment souvent en
termes de délai, ce qui nous fait naturellement nous tourner vers la minimisation de temps total
de fabrication (Makespan ou Cmax). Cette fonction objective qui peut par :

Pour chaque tache Jij ordonnancé à un temps Sij la fonction objective peut être calculés
comme suit :

𝐶𝑚𝑎𝑥 = 𝑚𝑎𝑥𝑖∈(1…𝑀) [𝑆𝑖𝑀 + 𝑃𝑖𝑀 ]

4 Les algorithmes génétiques


Il existe de nombreuses méthodes de résolution des problèmes d’ordonnancement. Mais
les différentes recherches ont montré l’efficacité en prouvant sa capacité à fournir de bonnes
solutions aux problèmes d’optimisation combinatoire NP-difficiles, en un temps relativement
cours.

Les algorithmes génétiques (AGs) sont des algorithmes d’exploration fondés sur les
mécanismes de la sélection naturelle et de la génétique. Ils utilisent à la fois les principes de la
survie des structures les mieux adaptées, et les échanges d’informations aléatoires, parfois
guidées, pour former un algorithme d’exploration qui possède certaines des caractéristiques de
l’exploration humaine. Ils ont été développés par John Holland à l’université de Michigan avec
deux objectifs à atteindre :

Mettre en évidence et expliquer rigoureusement les processus d’adaptation des systèmes


naturels ;
Concevoir des systèmes artificiels (des logiciels) qui possèdent les propriétés importantes
des systèmes naturels.

5 Principe général des algorithmes génétiques


Les AGs constituent une classe de stratégies de recherche réalisant un compromis entre
exploration et exploitation. Ils représentent des méthodes qui utilisent un choix aléatoire comme
outil pour guider une exploration hautement intelligente dans l’espace des paramètres.

Ce sont des algorithmes itératifs de recherche globale dont l’objectif est d’optimiser une
fonction prédéfinie, appelée fonction coût ou fonction fitness. En algorithme génétique, on
emploie presque certains termes qu’on trouve en génétique. On travaille sur un ensemble
d’individus qu’on appelle population. Un individu a deux représentations, le phénotype et le

41
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

génotype. Le premier représente une solution potentielle au problème à optimiser en utilisant la


formulation originale du problème, tandis que le second donne représentation codée d’une
solution potentielle sous forme de chromosome. Un chromosome est formé de gènes disposés
en une succession linéaire et chaque gène peut prendre plusieurs valeurs appelées allèles.

Un de points des plus importants des algorithmes génétiques est la flexibilité dans la
fonction objective.

Un AG peut être considéré à la base comme un processus aléatoire. Cependant, les


informations qui viennent de fonctions objectives sont toujours utilisées pour paramétrer ce
processus.

Le travail de recherche commence en plusieurs points dans l’espace des solutions, c’est-
à-dire sur une population de points et non pas en un point singulier comme dans la plupart des
techniques d’optimisation. On opère ensuite par la sélection des parents, le croisement et la
mutation de ces derniers et enfin l’évaluation des enfants trouvés.

5.1 Génération de la population initiale

La population initiale est les diverses taches de production et de maintenance que le


programme doit ordonnancer, ces taches sont subdivisées en plusieurs opérations qui se
dérouleront sur chaque machine. À partir des données saisies par l’utilisateur, qui sont les
durées d’opération, le programme va générer une première séquence de tache qu’il va améliorer
au fur et à mesure que le programme avance dans son calcul.

5.2 Le module génétique


5.2.1 La sélection

Nous avons utilisé la sélection par roue de roulette (Roulette Wheel Selection), ou
sélection proportionnelle à la forme physique, qui garantit que l’ajusteur d’une solution
individuelle a plus de chances d’être sélectionné. Dans ce cas, chaque individu de la population
est une séquence de permutation, et plus sa Makespan est basse, plus elle est en forme. En fait,
la mesure de la forme physique utilisée pour chaque individu est la valeur normalisée de
l’inverse multiplicatif de la Makespan. Ainsi, lorsque la sélection de la roulette est effectuée,
les meilleures séquences sont choisies un grand nombre de fois, alors que les séquences les
moins bien ajustées sont choisies plus rarement. Il en résulte une population en meilleure forme,
ce qui rend plus probable l’obtention des valeurs optimales.

42
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Dans la sélection de la roue de roulette, une proportion de la roue est généralement


attribuée à chacune des sélections possibles en fonction de leur valeur de leur Makespan. Dans
cette procédure de sélection de parents, plus le fitness (Makespan) d’un Chromosome
(Séquence) est faible, plus il a de chance d’être sélectionné. Cela ne veut pas dire que les
chromosomes de plus grand Makespan ne sera pas mis en considération, car eux, ils sont leurs
chances d’être choisi quand la roue sera tournée pour la sélection. Pendant cette procédure de
sélection, si la case d’un individu s’arrête sur le point fixe, alors il sera sélectionné comme
parent de la nouvelle génération. La figure 21 montre le fonctionnement du principe.
Séquences Makespan % de sélection

Séquence 1 32 16

Séquence 2 25 20

Séquence 3 54 9

Séquence 4 48 11

Séquence 5 15 34

Séquence 6 50 10

Séquence 6 Séquence 1
10% 16%

Point fixe Séquence 2


20%

Séquence 5
34%

Séquence 4 Séquence 3
11% 9%

Figure 21: Principe de sélection par roue de roulette

La partie fondamentale du processus de sélection consiste à sélectionner


stochastiquement une génération pour créer la base de la génération suivante. L’exigence est
que les individus les plus aptes aient plus de chances de survie que les plus faibles. Cela
reproduit la nature en ce sens que les individus en meilleure santé auront une meilleure
probabilité de survie et constitueront le pool de reproduction de la génération suivante. Les

43
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

individus les plus faibles ne sont pas sans chance. Dans la nature, ces individus peuvent avoir
un codage génétique qui pourrait s’avérer utile pour les générations futures. De nouveau, M
séquences sont sélectionnées parmi les séquences résultantes. Un croisement partiellement
mappé est appliqué à chacune des séquences M avec les séquences restantes (M-1) créant des
séquences M * (M-1).

5.2.2 Le croisement

Une opération de croisement combine des parties de deux individus, appelés parents,
pour obtenir un nouvel individu appelé enfant. Les croisements entraînent un mélange de
caractéristiques d’individus différents ; si les bonnes parties de deux parents sont combinées,
cela peut donner un enfant en meilleure forme. Dans cette étude, la méthode PMX (Partially
Mapped Crossover) est utilisé comme technique de croisement qui mappe directement une
partie (entre deux points de croisement générés aléatoirement) de la séquence parent, puis
remplit le reste de l’enfant en copiant les éléments selon l’ordre du second parent, en omettant
ceux déjà présents, ce processus est aussi appelé Crossover ordonné. On va utiliser des
croisements ordonnés sur chaque paire de séquences d’une population pour générer un grand
nombre de nouvelles solutions pouvant présenter des caractéristiques très différentes et donc
améliorer rapidement les solutions.

Dans cette méthode, deux points de croisement sont sélectionnés de manière aléatoire
et PMX procède par échanges de position. Les deux points de croisement permettent une
sélection correspondante. Il affecte les opérations d’échange croisées par position par position.
Les parents sont mappés les uns aux autres, nous pouvons donc également l’appeler le
croisement partiellement mappé. L’exemple ci-dessous montre ce processus de croisement

Parent 1 : 4 3 6 2 5 1 9 7 8

Parent 2 : 6 4 7 1 5 2 9 8 3

Le croisement de ces deux parents, en prenant la position 2 et 6 comme point de


croisement, donne les enfants suivants :

Enfant 1 : 4 3 7 1 5 2 9 6 8

Enfant 2 : 7 4 6 2 5 1 9 8 3

44
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

5.2.3 La mutation

Une opération de mutation introduit des modifications mineures chez un individu,


généralement en modifiant la séquence dans très peu de positions aléatoires. Nous avons utilisé
deux types de mutations : la mutation inverse, dans laquelle un segment entre deux positions
décidées au hasard est inversé, et la mutation Pairwise Swap, dans laquelle deux éléments
sélectionnés de manière aléatoire dans une séquence sont échangés. La mutation entraîne des
changements mineurs, mais souvent importants chez les individus d’une population, assurant
ainsi la diversité de la population, tout en empêchant la solution de rester bloquée dans les
optima locaux. Les mutations d’échange inverses et par paires sont utilisées pour générer des
séquences permutables pour lesquelles Makespan est calculé et comparé. La mutation inverse
est définie comme une opération dans laquelle un segment de chromosome est coupé, retourné
et réinséré dans le chromosome. Une inversion chromosomique peut être héritée de l’un ou des
deux parents, ou il peut s’agir d’une mutation qui apparaît chez un enfant dont la famille n’a
aucun antécédent d’inversion chromosomique. Ici, les index de début et de fin sont générés
aléatoirement. Le module contient une autre fonction de générateur de séquence implémentant
une mutation d’échange par paire. Après application des techniques de tri et de réduction aux
séquences générées par le module de mutation et de sélection, la méthode génétique de
croisement ordonné est appliquée pour sélectionner M meilleures séquences de la liste (ici M =
20) et les ajouter à la liste. Voici quelques exemples de mutation utilisée dans le programme.

Pour le croisement à deux points (Pairwise swap mutation) :

Parent (avant mutation) Enfant (après mutation)

4, 6, 8, 2, 7, 0, 9, 3, 1, 5 4, 6, 8, 2, 7, 0, 1, 3, 9, 5

6, 9, 0, 7, 8, 3, 5, 2, 1, 4 6, 9, 0, 7, 8, 3, 5, 1,2, 4

Tableau 3: Parwaise swap mutation

45
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Mutation inverse

Parent (avant mutation) Enfant (après mutation)

1, 3, 4, 5, 9, 0, 6, 8, 2, 7 1, 3, 8, 6, 0, 9, 5, 4, 2, 7

3, 2, 6, 5, 7, 8, 9, 0, 4, 1 3, 0, 9, 8, 7, 5, 6, 2, 4, 1

Tableau 4: Mutation inverse

Conclusion partielle
Cette partie s’est focalisée sur l’ordonnancement conjoint production/maintenance, en
passant par la différente méthode d’ordonnancement de ces deux fonctions. La technique
d’optimisation par algorithme génétique a été aussi mise en valeur où on a précisé comment cet
algorithme évolutionnaire fonctionne et quelles sont les étapes à suivre. La programmation et
la simulation du planificateur optimisé seront l’objet de la troisième partie, il sera testé afin
qu’on puisse déterminer son efficacité et sa performance.

46
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
PARTIE 3 : PROGRAMMATION
ET SIMULATION
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Chapitre 5 : Conception et programmation du


planificateur optimisé
1 Le langage de programmation Python
1.1 Choix du langage

Python est un langage de programmation orienté objet très puissant et de haut niveau. Il
est gratuit (open source) et indépendant. La conception de Python met l’accent sur la lisibilité du
code et sa syntaxe qui est extrêmement simple. Les expressions et les instructions sont plus courtes
que ceux des autres langages de programmation tels que Java, C, C ++. Toutes ces fonctionnalités
et ses supports de bibliothèque font de Python un langage de programmation de premier choix
pour les programmeurs.

Python est un langage de programmation multiparadigmes : la programmation orientée


objet et la programmation structurée sont entièrement prises en charge, et un certain nombre de
fonctionnalités de langage prennent en charge la programmation fonctionnelle. Un objectif
important des développeurs Python est de rendre Python facile et amusant à utiliser. Cela se reflète
dans l’origine du nom, qui vient de Monty Python. Python est destiné à être un langage très lisible.
Il est conçu pour avoir une présentation visuelle simple, utilisant fréquemment des mots-clés
anglais là où d’autres langages utilisent la ponctuation. Python utilise une indentation d’espace,
plutôt que des accolades ou des mots-clés, pour délimiter les blocs ; cette fonctionnalité est
également appelée la « off-side rule ». Une augmentation de l’indentation intervient après
certaines déclarations ; une diminution de l’indentation signifie la fin du bloc en cours.

Les programmes Python sont généralement supposés fonctionner plus lentement que les
programmes Java, mais leur développement prend beaucoup moins de temps. Les programmes
Python sont généralement 3 à 5 fois plus courts que les programmes Java équivalents. Cette
différence peut être attribuée aux saisies de données de haut niveau intégrées à Python et à son
typage dynamique. Par exemple, un programmeur Python ne perd pas de temps à déclarer les
types d’arguments ou de variables, et les puissants types de listes et de dictionnaires polymorphes
de Python, pour lesquels un support syntaxique riche est construit directement dans le langage,
trouvent une utilisation dans presque tous les programmes Python. En raison de l’exécution du
code à la frappe, le compilateur et l’environnement de Python travail plus que celle durant un
programme en Java. Par exemple, lors de l’évaluation de l’expression a + b, il doit d’abord
inspecter les objets a et b pour déterminer leur type, ce qui n’est pas connu au moment de la
48
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

compilation. Il appelle ensuite l’opération d’addition appropriée, qui peut être une méthode
définie par l’utilisateur surchargée. Java, en revanche, peut effectuer une addition efficace de
nombres entiers ou de réels, mais nécessite des déclarations de variable pour a et b, et ne permet
pas de surcharger l’opérateur + défini dans une classe précédemment créer par l’utilisateur. Il a
été constaté que les programmes écrits en Python sont 5-10 fois plus courts que les programmes
écrits en C++.

1.2 Les différentes bibliothèques requises

Il s’agit ici de toutes les bibliothèques associées à Python qui sont requises au développement du
planificateur optimisé.

1.2.1 La bibliothèque <<NumPy>>

La bibliothèque NumPy a été principalement utilisée en raison de sa prise en charge facile


sur la fonction tableau à N dimensions. Des tableaux multidimensionnels peuvent être créés à
l’aide de la structure de données de liste. Mais la manipulation de listes de commandes élevées
devient un problème. La bibliothèque NumPy permet au programmeur de définir et de manipuler
facilement des tableaux multidimensionnels. NumPy peut également être utilisé comme un
conteneur multidimensionnel efficace de données génériques. Des types de données arbitraires
peuvent être définis. Cela permet à NumPy de s’intégrer de manière transparente et rapide à une
grande variété de bases de données. NumPy facilite l’exécution du programme en fournissant
des tableaux multidimensionnels, des fonctions et des opérateurs fonctionnant efficacement sur
les tableaux. La fonctionnalité principale de la bibliothèque NumPy est son « ndarray », pour la
structure de données en tableau à n dimensions. C’est pour cette raison que nous avons utilisé
cette bibliothèque. Les opérations fournies par la bibliothèque nous ont permis d’ajouter
facilement des tableaux après avoir appliqué les divers opérateurs d’algorithmes génétiques.

1.2.2 La bibliothèque << random>>

La bibliothèque « random » implémente des générateurs de nombres pseudo-aléatoires


pour diverses distributions. Pour les entiers, sélection uniforme dans une plage d’entiers. Pour
les séquences, sélection uniforme d’un élément aléatoire, une fonction permettant de générer
une permutation aléatoire d’une liste en place et une fonction d’échantillonnage aléatoire sans
remplacement. Python utilise le Mersenne Twister comme générateur de base. Il produit des
flotteurs de précision à 53 bits et a une période de 2 ** 19937 - 1. Le Mersenne Twister est l’un
des générateurs de nombres aléatoires les plus largement testés. Cependant, étant complètement

49
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

déterministe, il ne convient pas à tous les usages et ne convient absolument pas à la


cryptographie.

La bibliothèque « random » a été principalement utilisée dans nos différentes opérations


génétiques. Nous avons utilisé la bibliothèque pour sélectionner de manière aléatoire les
‘allèles’. Cela a généré deux nombres aléatoires sur lesquels on a appliqué les divers opérateurs
génétiques.

1.2.3 La bibliothèque << sys >>

Le module “sys” fournit des informations sur les constantes, les fonctions et les méthodes
de l’interpréteur Python. L’un des principaux utilitaires du module « sys » est le répertoire dir
(system), qui fournit un résumé des constantes, fonctions et méthodes disponibles. On a utilisé
le module « sys » pour nous assurer que le nd-array complet est affiché. Habituellement, pour
les grands tableaux, les valeurs du milieu ne sont pas affichées. Les valeurs au début et à la fin
sont affichées. En important cette bibliothèque et en utilisant sys.maxsize, on a pu s’assurer que
le nd-array complet soit affiché.

1.2.4 Le module <<Tkinter>>

Le module « tkinter » (« interface Tk ») est la boîte à outils d’interface graphique Python
standard de Scriptics (auparavant développée par Sun Labs). "Tkinter" est constitué d’un certain
nombre de modules. L’interface « tk » est fournie par un module d’extension binaire nommé
_tkinter. Ce module contient une interface de bas niveau avec « tk » et ne devrait jamais être
utilisé directement par les programmeurs d’application.

L’interface publique est fournie via un certain nombre de modules Python. Le module
d’interface le plus important est le module « tkinter » lui-même. Le module « tkinter » n’exporte
que les classes de widgets et les constantes associées. Pour initialiser « tkinter », nous devons
créer un widget racine « tk ». C’est une fenêtre ordinaire, avec une barre de titre et une autre
décoration fournie par le gestionnaire de fenêtres. Un seul widget racine doit être créé pour
chaque programme et il doit être créé avant tout widget. Un widget étiquette peut afficher du
texte, une icône ou une autre image. Il existe une méthode appelée pack, qui est utilisée pour
« compresser » le texte, l’image, etc. donnée afin qu’ils soient visibles. Même après tout cela,
nous devons appeler la boucle d’événement « tkinter » pour faire apparaître la fenêtre. Le
programme restera dans la boucle d’événements jusqu’à la fermeture de la fenêtre. La boucle
d’événements ne gère pas uniquement les événements de l’utilisateur (tels que les clics de souris
et les appuis sur une touche) ou le système de fenêtre, il gère également les opérations mises en
50
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

file d’attente par « tkinter » lui-même. Parmi ces opérations figurent la gestion de la géométrie
(mise en file d’attente selon la méthode du pack) et les mises à jour d’affichage. Cela signifie
également que la fenêtre de l’application n’apparaîtra pas avant que nous entrions dans la boucle
principale.

2 Implémentation des différents composants de l’algorithme génétique


L’implémentation des codes sources est un processus assez complexe et difficile. Les
étapes à considérer sont : la génération de la population initiale, le calcul de Makespan et enfin
le processus de Crossover et mutation.

2.1 Modèle conceptuel des étapes de fonctionnement du programme


Saisie des données

Génération de la
population initiale

Evaluation du
Makespan Cmax

Sélection

Croisement & mutation

Sortie « Ordonnancement Optimale »

Figure 22: Modèle conceptuel du programme

2.2 La fonction objective Makespan (Cmax)

La durée totale d’ordonnancement est le critère d’optimisation de cette étude. Elle


est très souvent étudiée dans plusieurs ouvrages à cause de son impact dans la globalité de
l’entreprise. En effet, la minimisation de cette fonction permet à l’entreprise de gagner du

51
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

temps, mais aussi d’utiliser ses ressources le plus optimales possible. De plus, la date de
début et fin des taches s’accorde de façon à minimiser les retards dans la production.

2.2.1 Matrice de travaux

L’un des modules principaux est le module de calcul Makespan. Makespan est défini
comme le temps nécessaire pour effectuer toutes les tâches. Le processus de calcul du Makespan
est expliqué ci-dessous avec un exemple.

Considérons une matrice de travaux comportant 5 lignes et 4 colonnes, chaque cellule


représentant le temps total requis par chaque travail pour son utilisation sur chaque machine. Le
calcul du Makespan est présenté dans les tableaux suivants.

M1 M2 M3 M4

J1 8 3 8 2

J2 5 7 4 1

J3 7 7 3 2

J4 6 4 9 3

J5 4 7 8 7

Tableau 5: Matrice de travaux

2.2.2 Calcul du Makespan Cmax

Soit la séquence suivante J2, J5, J1, J4, J3. Le calcul de la durée de fabrication de cette
séquence est comme suit :

J2 5 12 16 17
5 7 4 1
J5 9 19 27 34
4 7 8 7
J1 17 22 35 37
8 3 8 2
J4 23 27 44 47
6 4 9 3
J3 30 37 47 49
7 7 3 2
Tableau 6: Calcul du Makespan (Cmax)

52
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Ici, le deuxième travail, à savoir J2, est en première ligne et nécessite 5 unités de temps
la machine M1. Le deuxième travail en ligne est J5 et il en faut 5 (attend que la tâche précédente
soit terminée) + 4 = 9 unités dans la machine M1. Le travail J2 aurait pris 7 unités de temps
indépendamment dans la machine M2 et prend donc 12 unités (5 (temps d’attente avant que le
travail cesse d’utiliser la machine M1) +7) = 12 unités. Le deuxième travail J5 prend 19 unités
de temps dans la M2, car 12> 9, nous ajoutons 12 + 7 = 19 unités. Le temps requis par le dernier
travail de la séquence, c’est-à-dire J3, pour terminer le traitement dans la machine M4 est de 49.
La valeur est affectée par le temps cumulé requis par chacune des tâches précédentes sur chaque
machine et donc également sur la séquence dans laquelle les tâches sont organisées. Cette valeur
49 est la valeur de Makespan pour la séquence particulière J2, J5, J1, J4 et J3.

Donc, pour résumer la procédure de calcul du Makespan dans le module de programme,


nous avons calculé la première ligne et la première colonne suivies en complétant le reste avec
la formule :

b [i, j] = a [i, j] + (b [i - 1, j] si b [i - 1, j]> b [i, j - 1] sinon b [i, j - 1]) où i désigne les


machines et j les opérations.

Dans cet exemple, on n’a pas encore introduit ni expliqué lesquelles de ces taches appartient
à la maintenance, c’est une explication simple qui démontre le calcul de la durée de de fabrication
ou Makespan. Nous allons introduire les contraintes introduites par la maintenance dans le prochain
paragraphe qui sont notamment des contraintes de ressources et des contraintes temporelles.

3 Fonctionnement du programme de planification optimisé


L’organigramme suivant montre le fonctionnement du programme et les différentes
consignes qu’il doit suivre pour un ordonnancement optimal des taches à la sortie.

53
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Initialisation

Classer les taches en ordre croissant (1, 2, …, n)

Ajouter l’ordonnancement de maintenance

Commencer par 4 taches (1 2 3 4). Permuter 4! = 24. Prendre i =24

Calculer le Makespan des 24 séquences et arranger suivant l’ordre croissant

Sélectionner les k meilleurs séquences (k=20)

Dupliquer pour avoir 3*20 = 60 séquences

Sélectionner les k meilleurs séquence

Pour chaque séquence appliqué un Crossover ordonné avec les k-1 séquence pour avoir
k*k-1

Sélectionner les k meilleurs séquence

Appliquer la mutation inverse pour avoir k autres séquence, donnant 2*k


séquences

54
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Sélectionner les k meilleurs séquence

Appliquer le Paiwise Swap Mutation pour


avoir k autre séquence, donnant 2*k
séquence

Sélectionner les k meilleurs séquence

Incrémenter i => i=i+1

OUI
Si i > n

Ajouter la ième job dans chacune


des k séquences

Sélection la meilleure séquence et


afficher avec sa durée d’ordonnancement
(Makespan) correspondante

FIN

Figure 23: Organigramme du fonctionnement du planificateur

4 Les différentes étapes de l’algorithme


La description suivante montre des différentes étapes de l’algorithme sous une forme
plus formelle.

55
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

1. Initialisation des séquences de n taches dans l’ordre croissant (1 2 … n).


2. Ajouter l’ordonnancement de maintenance.
3. Commencer par 4 taches et permuter pour 4! =24 séquences. Prendre i = 4.
4. Calculer le Makespan des 24 séquences et arranger suivant l’ordre croissant.
5. Sélection les 20 meilleures séquences.
6. Dupliquer suivant la sélection par roue de roulette pour avoir 3*k séquences
7. Sélectionner les k meilleurs séquences.
8. Pour chacune de séquence, appliquer le Crossover Ordonnée avec les K-1 séquence pour
donner k*k-1 séquences.
9. Sélectionner les k meilleurs séquences.
10. Appliquer la mutation inverse sur chacun des k séquences pour avoir k autres séquences,
donnant en tous 2*k séquences.
11. Sélectionner les k meilleurs séquences.
12. Appliquer la Pairwise Swap Mutation sur chaque k séquences pour avoir k autres séquences,
donnant en tous 2*k séquences.
13. Sélectionner les k meilleurs séquences.
14. Appliquer le Crossover ordonné avec les k-1 séquences afin d’avoir k*k-1 séquences.
15. Sélectionner les k meilleurs séquences.
16. Incrémenter i, si i > n, aller à l’étape 19, sinon continuer avec l’étape 17.
17. Ajouter la i-ème taches, sur les différentes positions possibles, dans chacune des séquences.
18. Sélectionner les k meilleurs séquences.
19. Sélectionner la meilleure séquence avec le Makespan correspondant et afficher.

5 Création de l’interface graphique


5.1 Le design de l’interface utilisateur

Pour faciliter l’utilisation de ce programme, son design a été simplifié, on introduit tous les
taches et les différentes conditions de manière simple et rapide. Pour le programme les colonnes
correspondent aux taches est ces durées d’opération, tandis que les lignes désignent les
machines. Les machines sont comptées de haut en bas et les taches de gauches à droite.

5.2 Les données à l’entrée

Les données à l’entrée du programme consistent à un ensemble de taches prises dans un


tableau. Ces taches sont divisées en plusieurs opérations et ensuite affectées au nombre de
machines correspondantes. Vue que notre étude se porte sur le cas d’un atelier Flow Shop de

56
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

permutation, toutes les taches doivent passer par chacune des machines du début jusqu’à la fin
de la ligne, et ce pour cela que ces taches sont divisées en plusieurs opérations ayant toutes
leurs durées de traitement sur chaque machine.

A l’entrée aussi se trouver les deux conditions d’ordonnancement de la maintenance


qui sont le Temps Avant la Première Maintenance (TAPM) et le Temps Entre Deux
Maintenance Successive (TEDMS) qui se résulte des contraintes de ressources et temporelles
de l’entreprise. En effet, le TAPM se découle du fait qu’il y a un temps nécessaire pour
l’équipe de maintenance pour se préparer à faire sa fonction. Et le TEDMS vient de la
disponibilité de l’équipe de maintenance qui est supposée, dans notre étude, une seule. De
plus le TEDMS dépend fortement de la MTBF (Moyen de temps de bon fonctionnement) et
λ (taux de défaillance) des machines, car il n’y a pas de raison de faire la maintenance
préventive si les conditions n’approchent pas ces chiffres. A noter que des maintenances trop
successives pourraient augmenter le coût de maintenance de l’entreprise et une perte de
productivité.

Ainsi dans chacun des problèmes traités par le programme, l’utilisateur doit entrer :

Le nombre de machines (correspondant aux nombres de colonnes) ;


La durée de chaque opération des différentes tâches (correspondant au nombre de
lignes) sur chaque machine ;
L’ordonnancement de la maintenance des machines ;
Le nombre de machines ;
Le nombre de tâches avec leur durée opératoire respectif.

Voici quelques captures de ces cases d’entrée du programme.

En premier lieu, l’utilisateur doit saisir dans la section ci-dessous la séquence de


maintenance établie par la fonction maintenance, puis le nombre de Jobs c’est-à-dire le nombre
de tâches à réaliser. Et ensuite le nombre de machines alloué à ces taches. Elle va se trouver
dans la partie haut à gauche de l’écran.

57
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Figure 24: Section de saisie du conditionnement du programme

En second lieu, l’utilisateur doit entrer les temps opératoires de chaque tache sur les
différentes machines. Elle doit être saisie en sachant que les machines sont en colonne et les
taches en ligne. Ici, les cases des valeurs par défaut 0.

Figure 25: Entrer des temps opératoires

5.3 Les cases de sortie

A la sortie du programme, il y a la séquence optimale trouvée et le Makespan correspondant.


La séquence s’exécute de manière successive ce qui veut dire que celle-ci s’enchaîne de la même
manière sur chaque machine pour la production, et tache de maintenance s’introduit seulement
sur la machine désignée par la tâche de maintenance.

Il y a aussi le bouton d’exécution de lancement du programme, et un bouton de


réinitialisation si on veut refaire le calcul entrer d’autre donner.

58
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Figure 26: Les cases de sortie

59
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Chapitre 6 : Simulation et évaluation


1 Les critères d’évaluation du programme
Dans cette étude de simulation, on n’a pas pu relever des données de retour d’expérience vue le
temps qu’on a pris pour rédiger et créer cet ouvrage. De ce fait, pour mettre en valeur l’efficacité
de l’application qu’on a développée, des données déjà calculées, par des chercheurs qui seront
nommés prochainement, ont été introduites pour mettre en évidence l’efficacité et l’applicabilité
de notre application.

De même pour les conditions de maintenance préventive systématiques, ils ont été pris
aléatoirement, car il revient à l’utilisateur de calculer le temps nécessaire avant la première
intervention de maintenance, et le temps nécessaire entre deux maintenances. Cela du fait que ces
deux composants dépendent du moyen de temps de bon fonctionnement (MTBF, MUT, MDT) des
machines considérées.

Afin de tester la performance du programme, on a effectué des tests qu’on va comparer avec des
résultats calculés manuellement par SAOUDI Bakir et REMITA Fares, concernant
l’ordonnancement d’atelier flow shop. Cela permettra de savoir l’optimalité des résultats affichés
par le programme vu qu’on n’a pas des résultats de retour d’expérience.

Deux types de problèmes a été prise en compte, les petites et celle des grandes tailles. Ici, la taille
correspond aux nombres d’opération et de machine.

1.1 Les problèmes de petite taille

Afin de tester le programme, nous allons appliquer un test sur une loi uniforme M [1…3] et J [1…4]

Pendant les tests suivants, on suppose que :

Chaque machine est concernée par une seule opération de maintenance ;


La séquence de maintenance est préétablie par la maintenance, et l’on a qu’à la saisir
dans le programme pour chaque problème ;
Il existe une seule équipe d’intervention pour la maintenance, ce qui veut dire qu’on ne
peut pas exécuter deux maintenances en même temps ;
Une machine doit effectuer au moins une tâche avant que sa maintenance ne se
déclenche, cela veut dire qu’une tâche de maintenance ne doit jamais se trouver en début
de séquence d’ordonnancement.

TEST 1

60
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Séquence maintenance = J5

J1 J2 J3 J4 J5

M1 5 4 7 8 2

Tableau 7: Test 1

TEST 2

Séquence maintenance : J3, J4, J5

J1 J2 J3 J4 J5

M1 5 3 1 0 0

M2 8 2 0 2 0

M3 4 10 0 0 1.5

Tableau 8: Test 2

TEST 3

Séquence maintenance : J4, J5

J1 J2 J3 J4 J5

M1 12 20 11 2 0

M2 17 8 19 0 2

Tableau 9: Test 3

TEST 4

Séquence maintenance : J5, J6

J1 J2 J3 J4 J5 J6

M1 5 6 4 3 1 0

M2 3 5 4 2 0 1.5

Tableau 10: Test 4

61
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

TEST 5

Séquence maintenance : J4, J5, J6,

J1 J2 J3 J4 J5 J6

M1 2 3 4 1 0 0

M2 4 1 3 0 0.5 0

M3 3 2 5 0 0 1.5

Tableau 11: Test 5

Les résultats des tests

Makespan (Cmax) INCERTITUDE Séquencement Séquencement avec


manuel le programme
manuel Programme

Test1 26 26 100/100 2-1-4-3-5 2-1-4-3-5


Test2 22 22 100/100 2-3-1-4-5 2-3-1-4-5
Test3 57 57 100/100 3-4-1-2-5 3-4-1-5-2
Test4 22 22 100/100 4-3-5-2-6-1 4-5-2-6-3-1
Test5 18 18 100/100 1-4-3-5-2-6 1-4-3-5-2-6
Tableau 12: Résultats des tests de petite taille

En comparant les résultats affichés par le programme et les obtenues par calcul manuel,
aucune différence n’a été remarquée dans le résultat de petite taille. Dans ce cas, on peut affirmer
que le programme est performant dans le traitement de données de petite taille. Les diagrammes
de Gantt de ces différents tests sont dans l’annexe de cet ouvrage.

1.2 Les problèmes de grandes tailles

On voudrait tester le programme en entrant des données de plus grande taille, à partir de 10
taches et 5 machines. Cela permettra de savoir la capacité du programme à résoudre de plus
grand problème d’ordonnancement ce qui prend énormément de temps à être calculé avec une
méthode exacte.

62
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

TEST 6

C’est un test de 10 taches qui seront effectuées sur 5 machines. Donc, il y aura 15 taches
en tout dont 5 taches concernent la maintenance.

J1, J2, J4, J7, Maintenances


J3 J5, J6, J8, J9, J10
M1 14 14 14 10 J11
M2 41 41 45 8 J12
M3 15 14 12 5 J13
M4 70 73 68 15 J14
M5 32 35 36 12 J15
Tableau 13: Test 6

Les données de ce test 6 ont été saisies dans le programme afin de tester sa performance
dans la résolution de problème avec une population d’envergure. On a obtenu la séquence
suivante : J6,J4,J11,J10,J9,J12,J1,J13,J7,J3,J14,J5,J2,J15,J8 qui affiche un Cmax = 821,0. Ce
résultat est la même que celle qu’on a trouvée avec un calcul exact. De ce fait, on peut conclure
que les tests sont concluants et que notre planificateur est à la fois efficace et performant. Les
résultats ainsi que leur diagramme de Gantt respectif sont affichés en annexe.

Ces diagrammes montrent qu’aucune tache, que ce soit de la production ou de la


maintenance, ne se superpose avec un autre, cela veut dire que la problématique posée est résolue
pour le problème d’atelier flowshop. On a pu aussi minimiser la durée d’ordonnancement en se
basant sur l’algorithme génétique.

Conclusion partielle
La programmation ainsi que les tests effectués avec le planificateur, traité dans la partie
trois de ce mémoire, s’est avérée concluante. On peut dire que le programme et performant et
efficace pour les traitements de l’ordonnancement d’atelier flowshop de permutation.

63
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

CONCLUSION GÉNÉRALE
Pour conclure, cette étude nous a permis de démontrer qu’on peut avoir un
ordonnancement conjoint production/maintenance afin d’éviter les conflits entre ces deux
fonctions. En prenant le Makespan Cmax comme critère d’optimisation, on a programmé un
planificateur qui contourne les calculs manuels lassant et presque impossible à faire pour les
données de grande taille.

Le programme s’est basé sur l’algorithme génétique qui s’inspire de l’évolution naturelle
qui s’avère particulièrement pratique dans le traitement de problème d’optimisation. Toutefois,
on a pris que la maintenance préventive systématique pour initialiser le programme, cela du fait
que la maintenance corrective dépend des pannes aléatoires.

Vu le vaste contexte de l’ordonnancement d’atelier, ce mémoire s’est focalisé


principalement dans le problème de flowshop. Alors pour élargir le sujet, implémenter les deux
autres types d’ateliers (jobshop et openshop) dans le programme serait un objet d’étude
passionnant, et complétera le programme afin qu’il puisse être utilisé par tout genre d’entreprise.
On peut aussi de cette façon s’entendre sur un problème d’optimisation multicritère.

64
ANDRIAMIADANAIVO Alphène Fabruce Mathieu
ANNEXE
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Résultat des tests avec leur Diagramme de Gantt respectif

TEST 6

Figure 27: Ordonnancement test 6

ANDRIAMIADANAIVO Alphène Fabruce Mathieu 66


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

DIAGRAMME DE GANTT TEST 6


0 100 200 300 400 500 600 700 800 900
Machines

Machine 1

Machine 2

Machine 3

Machine 4

Machine 5

Temps
Taches j6 entre2.1 J4 J11 entre2.2 J10 ENTRE2.3 J9
J12 Entre2.4 j1 j13 Entre2.4 J7 entre2.5 J3 j14
Figure 28: Diagramme de Gantt test 6
ANDRIAMIADANAIVO Alphène Fabruce Mathieu 67
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Figure 29: Tableau des temps opératoires test 6

ANDRIAMIADANAIVO Alphène Fabruce Mathieu 68


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Test 2

Figure 30: Ordonnancement test 2

Figure 31: Ordonnancement test 2

ANDRIAMIADANAIVO Alphène Fabruce Mathieu 69


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Test 3

Figure 32: Ordonnancement test 3

Figure 33: Diagramme de Gantt Test 3

ANDRIAMIADANAIVO Alphène Fabruce Mathieu 70


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Test 4

Figure 34: Ordonnancement test 4

Figure 35: Diagramme de Gantt test 4

ANDRIAMIADANAIVO Alphène Fabruce Mathieu 71


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Test 5

Figure 36: Ordonnancement test 5

Figure 37: Diagramme de Gantt test 5

ANDRIAMIADANAIVO Alphène Fabruce Mathieu 72


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

BIBLIOGRAPHIE
[Aggoune,2002] Aggoune R., Ordonnancement d’ateliers sous contraintes de
disponibilité des machines. Thèse de doctorat soutenue à l’Université de Metz, France, 2002.

[Aliouat W,2013] Aliouat W, le problème conjoint de l’ordonnancement de la production


et de planification de la maintenance : cas du Flow Shop Flexible, Mémoire de magister de
l’Université de Boumerdes, Algérie, 2013.

[Anily,1999] Anily S., Glass C.A. & Hassin R., “Scheduling maintenance services to
three machines”, Annals of Operations Research, VOL. 86, 1999.

[Azem S,2010] Azem S, Ordonnancement des systèmes flexibles de production sou


contraintes de disponibilité des ressources, Thèse de doctorat, École Nationale Supérieure des
Mines de Saint-Étienne, France, 2010.

[Belkaid F,2014] Belkaid F, Investigation sur l’ordonnancement des systèmes à


machines parallèles, Thèse de Doctorat en Productique de l’Université de Tlemcen, Algérie,
2014

[Benbouzid F,2005] Benbouzid F, Contribution à l’étude de la performance et de la


robustesse des ordonnancements conjoints production/maintenance –cas du flow shop. Thèse de
doctorat en Automatique et Informatique de l’Université de Franche-Comté, France, 2005.

[Benbouzid,2008] Benbouzid Sitayeb F., Contribution _a l’_etude de la performance et


de la robustesse des ordonnancements conjoints Production/Maintenance - Cas du Flowshop.
Thèse de doctorat, L’UFR des Sciences et Techniques de l’Université de Franche-Comté,
France, 2008.

[Ben-D,1998] Ben-Daya M. & Makhdoum M., “Integrated production and quality model
under various maintenance policies”, Journal of the Operational Research Society, VOL. 49(8),
1998.

[Berrichi A,2009] Berrichi A, La gestion à deux niveaux avec optimisation de la


production et de la maintenance sous diverses contraintes : cas mono et multicritère, Thèse de
doctorat de l’Université de Boumerdès, Algérie, 2009.

ANDRIAMIADANAIVO Alphène Fabruce Mathieu i


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

[Boukef,2006] Boukef H., F. Tangour, M. Benrejeb, P. Borne, « Nouveau codage pour


la résolution de problèmes d’ordonnancement d’ateliers de type flow-shop par les algorithmes
génétiques », STA’06, pp.1-14, 2006.

[Boulenger,1988] Boulenger A., Vers le zéro panne avec la maintenance conditionnelle,


Guides de l’utilisateur, AFNOR, Paris, 1988.

[Brandolese,1996] Brandolese M., Fransi M. & Pozzeti A., “Production and maintenance
integrated planning”, International Journal of Production Research, VOL. 34(7), pp.20592075,
1996.

[Carlier J,1988] Carlier J, Chretienne P. Les Problèmes d’ordonnancement. Masson,


Paris, France, 1988.

[Chareonsuk,1997] Chareonsuk C., Nagarur N. & Tabucanon M.T., “A multicriteria


approach to the selection of preventive maintenance intervals”, International Journal of
Production Economics, VOL. 49, 1997.

[Coudert,2000] Coudert T., Apport des systèmes multi-agents pour la négociation en


ordonnancement : application aux fonctions production et maintenance. Thèse de doctorat
soutenue à l’ENI de Tarbes (France), 2000.

[Coudert,2000] Coudert T., Apport des systèmes multi-agents pour la négociation en


ordonnancement : application aux fonctions production et maintenance. Thèse de doctorat
soutenue à l’ENI de Tarbes (France), 2000.

[Deloux,2005] Deloux E., Castanier B., and Bérenguer C., Optimisation de la politique
de maintenance pour un système à dégradation graduelle stressé, 7ème Congrès international
pluridisciplinaire Qualité de Sûreté de Fonctionnement, 20, 21 et 22 mars 2007, volume1,
Tanger (Maroc), 2007.

[Espinouse,2001] Espinouse M.L., Formanowicz P. & Penz B., “Complexity results and
approximation algorithms for the two machines no-wait flowshop with limited machine
availability”, Journal of the operational research society, VOL. 52, 2001.

[Esquirol P,1999] Esquirol P, Lopez P. L’ordonnancement. Economica, Paris, France,


1999.

[Georges J,2007] Organisation et gestion de la production, 3ème édition, Dunod, 2007.

ANDRIAMIADANAIVO Alphène Fabruce Mathieu ii


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

[Giard V,1988] Giard V. Gestion de production, Paris, Ed. Economica, 1988.

[Goldberg,1994] Goldberg G.E., « Algorithmes génétiques », Éditions AddisonWesley,


Paris, 1994.

[Graves,1999] Graves G. & Lee C.-Y., “Scheduling maintenance and semi-resumable


jobs on single machine”, Naval Research Logistics, VOL. 46, pp.845-862, 1999.

[Holland,1975] Holland J.H., « Adaptation in natural and artificial systems », PhD,


Thesis Michigan Press University, Ann Arbor, Michigan, 1975

[Lee C,2000] Lee C Y and Chen Z L, Scheduling jobs and maintenance activities on
parallel machines. Naval Research Logistics, 2000.

[Letouzey A,2001] Letouzey A, Ordonnancement interactif basé sur des indicateurs:


Applications à la gestion de commandes incertaines et à l’affectation des opérateurs. Thèse de
doctorat, L’Institut National Polytechnique de Toulouse, France, 2001.

[Mazouz,2012] Mazouz N. TP méta-heuristiques avec ParadisEO. 2012.

[McCALL,1965] McCALL J.J., “Maintenance policies for stochastically failing


equipment: a survey”, Management Science, VOL. 11(5), 1965.

[Mesghouni,1999] Mesghouni K., « Application des algorithmes évolutionnistes dans


les problèmes d’optimisation en ordonnancement de la production », Thèse de Doctorat,
Université des Sciences et Technologies de Lille 1, 1999.

[Monchy,1996] Monchy F., La fonction maintenance. Edition Masson, 1996.

[Parunak H,1985] Parunak, H.V.D, Manufacturing experience with the contract net. In
Proceedings of the Fith Workshop on Distributed Artificial Intelligence, 1985.

[Paz,1994] Paz N.M. & Leigh W., “Maintenance scheduling: issues, results and
research needs”, International Journal of Operations & Production Management, VOL. 14(8),
1994.

[Pierskalla,1976] Pierskalla W. & Voelker J., “A survey of maintenance models: the


control and surveillance of deteriorating systems”, Naval Research Logistics Quarterly, VOL.
23, 1976.

[Qi,1999] Qi X., Chen T. & Tu F., “Scheduling the maintenance on single machine”,
Journal of the Operational Research Society, VOL. 50(10), pp.1071-1078, 1999.
ANDRIAMIADANAIVO Alphène Fabruce Mathieu iii
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

[Retour,1990] Retour D., Bouche M. & Plauchu V., “Où va la maintenance


industrielle”, Problèmes Économiques, VOL. 2 (159), 1990.

[Rinnooy K,1976] Rinnooy Kan A.H.G. Machine Scheduling Problems: Classification,


Complexity and Computations. Martinus Nijhoff, The Haque, 1976.

[Sanmarti,1997] Sanmarti E., Espuna A. & Puigjaner L., “Batch production and
preventive maintenance scheduling under equipment failure uncertainty”, Computer Chemical
Engineering, VOL. 21(10), pp.1157-1168, 1996.

[Tangour,2007] Tangour F. Ordonnancement dynamique dans les industries


agroalimentaires. Automatique / Robotique. École Centrale de Lille, 2007.

[Tsai,2001] Tsai Y.T., Wang K.S. & Teng H.Y., “Optimizing preventive maintenance
for mechanical components using genetic algorithms”, Reliability Engineering and System
Safety, VOL. 74, 2001.

[Vacher,2000] Vacher P., « Un système adaptatif par agents avec utilisation des
algorithmes génétiques multiobjectifs : Application à l’ordonnancement d’atelier de type job-
shop », Thèse de Doctorat, Université du Havre, 2000.

[Verdol,1988] Verdol P., Térotechnologie : interprétation économique d’un nouveau


mode d’organisation intégrée de la disponibilité des équipements industriels, thèse de doctorat
soutenue à l’université Lumière Lyon II (France), 1988.

[Weinstein L,1999] Weinstein L and Chung C. H, Integrating maintenance and


production decisions in a hierarchical production planning environment. Computers and
Operations research, 1999.

ANDRIAMIADANAIVO Alphène Fabruce Mathieu iv


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Table des matières


REMERCIEMENTS ................................................................................................................... a

SOMMAIRE ............................................................................................................................... c

LISTES DES FIGURES ............................................................................................................ g

LISTE DES ABREVIATIONS ................................................................................................... j

INTRODUCTION GÉNÉRALE ............................................................................................... 1

PARTIE 1 : GENERALITES SUR L’ORDONNANCEMENT DES SYSTEMES DE


PRODUCTION ET LA MAINTENANCE INDUSTRIELLE .................................................. 2

Chapitre I : Les systèmes de production .................................................................................... 3

1 La fonction « Production » .............................................................................................. 3

1.1 Le processus de production ............................................................................................. 3

1.2 Système de production .................................................................................................... 3

1.3 Classification des systèmes de production ...................................................................... 3

1.3.1 Selon le processus de production ............................................................. 3

1.3.2 Selon le déclenchement de la production ................................................. 4

1.3.3 Selon l’organisation des ressources ......................................................... 4

1.4 Modèle conceptuel d’un système de production ............................................................. 5

1.5 Les différents types de décisions ..................................................................................... 7

1.5.1 Les décisions tactiques ............................................................................. 7

1.5.2 Les décisions opérationnelles................................................................... 7

1.5.3 Les décisions stratégiques ........................................................................ 7

2 Organisation de la production ......................................................................................... 8

2.1 Le principe des 5 zéros .................................................................................................... 8

2.2 Critères d’évaluation d’un système de production .......................................................... 9

2.2.1 La performance ........................................................................................ 9

2.2.2 La sûreté de fonctionnement .................................................................. 10

3 L’ordonnancement dans les systèmes de production .................................................... 10

ANDRIAMIADANAIVO Alphène Fabruce Mathieu v


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

3.1 Ordonnancement............................................................................................................ 10

3.2 Ordonnancement d’atelier ............................................................................................. 10

3.3 Diagramme de Gantt...................................................................................................... 11

3.4 Ordonnancement de la production................................................................................. 12

4 Présentation des problèmes d’ordonnancement ............................................................ 12

4.1 Les taches et opérations ................................................................................................. 13

4.2 Les ressources ................................................................................................................ 14

4.3 Les contraintes ............................................................................................................... 14

4.3.1 Les contraintes temporelles .................................................................... 14

4.3.2 Les contraintes de ressources ................................................................. 14

5 Les critères d’évaluation................................................................................................ 14

5.1 Une machine ∅ : ............................................................................................................ 15

5.2 Machine parallèle : ........................................................................................................ 15

5.3 Machine dédiée :............................................................................................................ 16

5.3.1 Flow shop de permutation (à cheminement unique) .............................. 16

5.3.2 Job shop (à cheminement multiple) ....................................................... 16

5.3.3 Open Shop (à cheminement libre) ......................................................... 16

6 Ordonnancement d’atelier flow shop ............................................................................ 17

7 Complexité des problèmes d’ordonnancement ............................................................. 18

7.1 Méthode de résolution ................................................................................................... 19

7.1.1 Méthode exacte ...................................................................................... 20

7.1.2 La procédure par séparation et par évaluation ....................................... 20

7.1.3 La programmation dynamique ............................................................... 20

7.1.4 Les méthodes approximatives ................................................................ 21

Chapitre II : La fonction maintenance ..................................................................................... 22

1 Définition ....................................................................................................................... 22

2 Evolution de la maintenance ......................................................................................... 23

ANDRIAMIADANAIVO Alphène Fabruce Mathieu vi


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

3 Classification des méthodes de maintenance ................................................................ 24

3.1 La maintenance préventive ............................................................................................ 24

3.1.1 La maintenance préventive systématique .............................................. 24

3.1.2 La maintenance préventive conditionnelle ............................................ 24

3.1.3 La maintenance préventive prévisionnelle ............................................. 25

3.2 La maintenance corrective ............................................................................................. 25

3.3 Les processus de maintenance ....................................................................................... 26

4 Notion sur la sûreté de fonctionnement ......................................................................... 27

4.1 États successifs d’un système réparable ........................................................................ 28

4.2 Les indicateurs de fiabilité (λ) et MTBF ....................................................................... 29

4.2.1 Le taux défaillance ................................................................................. 29

4.2.2 Temps Moyen de Bon fonctionnement .................................................. 29

5 Objectif de la maintenance ............................................................................................ 30

6 La Gestion de Maintenance Assistée par Ordinateur (G.M.A.O) ................................. 30

7 Ordonnancement de la maintenance .............................................................................. 31

8 Objectifs de l’ordonnancement de la maintenance ........................................................ 32

Conclusion partielle ................................................................................................................. 33

PARTIE 2 : ORDONNANCEMENT CONJOINT PRODUCTION/MAINTENANCE :


OPTIMISATION PAR ALGORITHME GENETIQUE ......................................................... 34

Chapitre III : Ordonnancement conjoint Production/Maintenance .......................................... 35

1 Problématique ................................................................................................................ 35

2 La différente méthode d’ordonnancement..................................................................... 36

2.1 Ordonnancement séparé ................................................................................................ 36

2.2 Ordonnancement séquentiel .......................................................................................... 37

2.3 Ordonnancement intégré ............................................................................................... 37

3 Les problèmes dus à l’ordonnancement séparé ............................................................. 37

Chapitre 4 : L’optimisation des ordonnancements d’atelier par l’algorithme génétique ......... 39

ANDRIAMIADANAIVO Alphène Fabruce Mathieu vii


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

1 Problème d’atelier de type flow shop ............................................................................ 39

2 Notations et hypothèses ................................................................................................. 39

3 La fonction objective ..................................................................................................... 40

4 Les algorithmes génétiques ........................................................................................... 41

5 Principe général des algorithmes génétiques ................................................................. 41

5.1 Génération de la population initiale .............................................................................. 42

5.2 Le module génétique ..................................................................................................... 42

5.2.1 La sélection ............................................................................................ 42

5.2.2 Le croisement ......................................................................................... 44

5.2.3 La mutation ............................................................................................ 45

Conclusion partielle ................................................................................................................. 46

PARTIE 3 : PROGRAMMATION ET SIMULATION .......................................................... 47

Chapitre 5 : Conception et programmation du planificateur optimisé .................................... 48

1 Le langage de programmation Python ........................................................................... 48

1.1 Choix du langage ........................................................................................................... 48

1.2 Les différentes bibliothèques requises........................................................................... 49

1.2.1 La bibliothèque <<NumPy>> ................................................................ 49

1.2.2 La bibliothèque << random>> ............................................................... 49

1.2.3 La bibliothèque << sys >> ..................................................................... 50

1.2.4 Le module <<Tkinter>> ......................................................................... 50

2 Implémentation des différents composants de l’algorithme génétique ......................... 51

2.1 Modèle conceptuel des étapes de fonctionnement du programme ................................ 51

2.2 La fonction objective Makespan (Cmax) ...................................................................... 51

2.2.1 Matrice de travaux ................................................................................. 52

2.2.2 Calcul du Makespan Cmax .................................................................... 52

3 Fonctionnement du programme de planification optimisé ............................................ 53

4 Les différentes étapes de l’algorithme ........................................................................... 55

ANDRIAMIADANAIVO Alphène Fabruce Mathieu viii


Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

5 Création de l’interface graphique .................................................................................. 56

5.1 Le design de l’interface utilisateur ................................................................................ 56

5.2 Les données à l’entrée ................................................................................................... 56

5.3 Les cases de sortie ......................................................................................................... 58

Chapitre 6 : Simulation et évaluation ....................................................................................... 60

1 Les critères d’évaluation du programme ....................................................................... 60

1.1 Les problèmes de petite taille ........................................................................................ 60

1.2 Les problèmes de grandes tailles ................................................................................... 62

Conclusion partielle ................................................................................................................. 63

CONCLUSION GÉNÉRALE .................................................................................................. 64

ANNEXE ................................................................................................................................. 65

BIBLIOGRAPHIE ...................................................................................................................... i

ANDRIAMIADANAIVO Alphène Fabruce Mathieu ix


Nom: ANDRIAMIADANARIVO
Ordonnancement conjoint Production / Maintenance : Programmation d’un planificateur optimisé sur la base d’algorithme génétique

Prénom: Alphene Fabruce Mathieu

Adresse : Lot VS 52 NA bis Avaratr’Ankatso

Téléphone : +261 34 51 213 18

Email : andri.alphenefm@gmail.com

Titre : Ordonnancement conjoint Production/Maintenance : programmation


d’un planificateur optimisé sur la base d’algorithme génétique

Nombre de pages : 72

Nombre de figures : 37

Nombres de tableaux : 13
Résumé

Ce mémoire traite le problème d’ordonnancement d’atelier flow shop de permutation


en tenant compte des obligations de la maintenance préventive. La programmation d’un
planificateur est l’objet d’étude de manière à résoudre le conflit dus aux superpositions des
déroulement d’opération de production et de maintenance. De ce fait, on a travaillé avec les
algorithmes génétiques afin d’optimiser le Makespan (Cmax) et imité ainsi l’évolution naturel.
Des simulations ont été effectuées ainsi que la réalisation de l’ordonnancement avec le
diagramme de Gantt afin de mettre en évidence la performance du programme.

Mots clés : Ordonnancement, flow shop, production, maintenance préventive,


diagramme de Gantt, Makespan (Cmax), algorithme génétique.
Abstract

This thesis deals with flow shop of permutation scheduling problem considering the
interruption due to the preventive maintenance. Programming a scheduler capable of solving
the issue between the department of production and maintenance in term of task execution
is the main subject of this work. Therefore, we have implemented genetic algorithm in order
to optimize the Makespan (Cmax) so that the program refers to natural evolution. Some
simulations have been conducted as well as its drawing of the Gantt chart to emphasize the
scheduler’s performance.

Key words: Scheduling, flow shop, production, preventive maintenance, Gantt


chart, Makespan, genetic algorithm.
ANDRIAMIADANAIVO Alphène Fabruce Mathieu x

Vous aimerez peut-être aussi