Vous êtes sur la page 1sur 69

UNIVERSITE BADJI MOKHTAR-ANNABA ‫جامعة باجي مختار – عنابـــــــــــــــة‬

FACULTE DES SCIENCES DE L’INGENIORAT ‫كلية علــــــــــــوم الهندســـــــــة‬


DEPARTEMENT D’INFORMATIQUE ‫قسم اإلعــــــــــــــالم اآللــــــــــــــي‬

Mémoire présenté en vue


de l’obtention du diplôme de Master

OPTIMISATION DU DECOUPAGE DE
MATERIAUX : UNE APPROCHE PAR
ALGORITHMES GENETIQUES
Domaine : Mathématiques, Informatique et Applications aux Sciences
Filière : Informatique
Spécialité : Ingénierie des Logiciels Complexes

Par : Melle Lina GHEDIR

Jury d’évaluation
Qualité Nom et Prénom Grade Université
Président Melle Fadila ATIL Prof. Badji Mokhtar-Annaba
Rapporteur Mr Djamel MESLATI Prof. Badji Mokhtar-Annaba
Co-Rapporteur Mme Labiba SOUICI-MESLATI Prof. Badji Mokhtar-Annaba
Examinateur Melle Kamilia MENGHOUR MCB Badji Mokhtar-Annaba

Année 2018-2019
Année 2008-2009
REMERCIEMENTS
Lors de mes nombreuses lectures de thèses et de documents, j’ai pu remarquer que
souvent les remerciements se ressemblaient tous, remplis de phrases standards, ce qui en
faisait des remerciements impersonnels. J’ai alors décidé de ne pas m’inspirer de ce type
d’écrit, et d’être honnête et franche.
Avant toute chose, je remercie Dieu tout puissant, pour m’avoir donné la santé, la force et
le courage de mener à bien ce travail.
Je remercie ma maman chérie, l’amour de ma vie, ma protectrice, mon ange gardien, une
femme forte qui s’est battue pour faire de moi ce que je suis aujourd’hui.
Je tiens également à présenter mes plus sincères remerciements au professeur MESLATI
DJAMEL, tout d’abord pour avoir bien accepté de m’encadrer, et de m’avoir fait confiance.
Mais particulièrement pour ses enseignements tout au long de ces deux années de Master.
Un texte aussi long qu’il soit, n’exprimera jamais toute ma gratitude envers vous monsieur.
Je remercie, le docteur SOUICI-MESLATI Labiba, pour sa gentillesse, et sa compréhension
pendant tout notre cursus, mais aussi pour tous ses efforts fournis afin d’améliorer notre
quotidien à l’université.
Je remercie tout particulièrement les membres du jury, Professeur ATIL Fadila, et Docteur
MENGHOUR Kamilia, d’avoir bien voulu fournir l’effort d’évaluer ce modeste travail.
Je remercie également tous mes enseignants et professeurs du département
d’informatique, et du département de Mathématique et informatique, pour la qualité de
leur enseignement, et tout particulièrement les enseignants de l’équipe de master
Ingénierie des logiciels complexes (ILC).
Je remercie mes amis, et ma famille, qui m’ont soutenue et encouragée pour mener à bien
ce travail.
Enfin, je remercie tous ceux que je n’ai pas cité nommément, et qui je l’espère trouverons
quelque part dans cet écrit l’expression de ma plus profonde gratitude.

2
DEDICACES
Je dédie ce modeste travail,
o À ma grand-mère, cette femme forte et douce, qui a toujours voulu voir ma
réussite, qui m’a appris qu’il fallait toujours braver les risques, et aller au bout de
ses rêves.
o À mon défunt grand-père, qui j’en suis persuadée aurait été fier de voir sa première
petite-fille chérie réaliser ses rêves. Paix à ton âme papi, tu seras à jamais présent
dans mon cœur et dans mes mots.
o À ma maman, aucun mot ne suffit pour te dire à quel point je t’aime ma «
mamounette »
o À mes oncles et tantes, qui m’ont apporté tellement d’amour et d’encouragements.
o À tous mes amis, je n’en cite aucun de peur d’en oublier.

3
TABLE DES MATIERES
Remerciements ......................................................................................................................... 2
Dédicaces ................................................................................................................................. 3
Table des Matières ................................................................................................................... 4
Table des Illustrations .............................................................................................................. 6
Table des tableaux .................................................................................................................... 7
Introduction .............................................................................................................................. 8
Contexte de recherche .............................................................................................................. 8
Problématique........................................................................................................................... 9
Motivations............................................................................................................................... 9
Objectifs ................................................................................................................................... 9
Contenu du mémoire .............................................................................................................. 10
Chapitre 1 état de l'art sur le problème de découpage des matériaux ................................... 11
1.1 De quoi s'agit-il ?......................................................................................................... 11
1.2 Le découpage en tant que problème d'optimisation .................................................... 12
1.2.1 Problème de découpe et NP-Complexité ................................................................. 12
1.2.2 Approche du problème de découpage ..................................................................... 13
1.3 Particularités du problème de découpage .................................................................... 14
1.3.1 Classification des problèmes de découpe ................................................................ 14
1.3.1.1 Classification de Dyckhoff .................................................................................. 14
1.3.1.2 Classification d’après le type de découpage ........................................................ 17
1.3.2 Les modes de découpage modernes ......................................................................... 20
1.4 Le découpage et le problème du sac à dos .................................................................. 22
1.4.1 Définition du problème de sac à dos ....................................................................... 22
1.4.2 Résolution du problème de sac à dos par algorithmes génétiques (AG) ................. 23
1.5 Les solutions proposées actuellement ......................................................................... 24
1.6 Avantages des logiciels de découpage ........................................................................ 27
1.7 Conclusion ................................................................................................................... 27
Chapitre 2 Proposition d'une approche pour le découpage de matériaux à base d’Algorithme
génétique ................................................................................................................................ 28
2.1 Description de l’approche par Algorithmes génétiques .............................................. 28
2.1.1 Définitions propres aux AGs ................................................................................... 30
2.1.2 Etapes de mise en œuvre d’un AG .......................................................................... 30
2.1.2.1 Codage des individus ........................................................................................... 30

4
2.1.2.2 Fonction d’adaptation (fonction fitness) .............................................................. 31
2.1.2.3 La sélection .......................................................................................................... 31
2.1.2.4 Le croisement ....................................................................................................... 32
2.1.3 Avantages des AGs .................................................................................................. 34
2.2 Résolution proposée du problème de découpage à base d’Algorithmes génétiques ... 35
2.2.1 Codage des individus ............................................................................................... 36
2.2.2 Décodage des génotypes .......................................................................................... 38
2.2.3 Fonction fitness........................................................................................................ 39
2.2.4 La sélection des individus........................................................................................ 40
2.2.5 Le croisement des individus .................................................................................... 41
2.2.6 Mutation des individus ............................................................................................ 44
2.2.7 Méthode de remplacement....................................................................................... 45
2.2.8 Critère d’arrêt .......................................................................................................... 46
2.2.9 Assurance que le découpage est guillotiné .............................................................. 46
2.3 Contexte pratique d'utilisation ..................................................................................... 47
2.4 Conclusion ................................................................................................................... 47
Chapitre 3 Implémentation et cas d'études ............................................................................. 48
3.1 Mise en œuvre du système .......................................................................................... 48
3.1.1 Les différents outils utilisés ..................................................................................... 50
3.1.2 Structure de l’application......................................................................................... 50
3.2 Description de l'environnement réalisé ....................................................................... 51
3.3 Application à des cas d'étude ...................................................................................... 55
3.4 Comparaison avec d'autres approches / outils ............................................................. 59
3.5 Conclusion ................................................................................................................... 61
Conclusion et Perspectives ..................................................................................................... 62
Résumé des contributions....................................................................................................... 62
Perspectives de recherche ....................................................................................................... 63
Bibliographie .......................................................................................................................... 64
Webographie .......................................................................................................................... 67
Annexe A................................................................................................................................ 68
CUTLOGIC 2D ...................................................................................................................... 68
OptiCut ................................................................................................................................... 68
Optimik................................................................................................................................... 68

5
TABLE DES ILLUSTRATIONS
Figure 1 Relation entre les classes P, NP, NP-difficile, et NP-complet ................................. 13
Figure 2 Les types de découpes suivant la restriction de la guillotine ................................... 18
Figure 3 Les types de découpes suivant la restriction de la rotation ...................................... 19
Figure 4 Ordre de complexité entre les types de découpage .................................................. 20
Figure 5 image réelle d'une machine à découper au laser ...................................................... 22
Figure 6 image réelle d'une machine à découper à jet d'eau .................................................. 22
Figure 7 image réelle d'une poinçonneuse ............................................................................. 22
Figure 8 Exemple d'algorithme de génération de bandes ....................................................... 25
Figure 9 Exemple de l'algorithme First Fit............................................................................. 26
Figure 10 Fonctionnement général d'un AG [MIL 15] .......................................................... 29
Figure 11 Exemple de placement d'individus sur la roue de la fortune ................................. 32
Figure 12 Croisement en 1-point ............................................................................................ 33
Figure 13 Croisement en 2-points .......................................................................................... 33
Figure 14 Exemple de croisement PMX (les parents)............................................................ 33
Figure 15 Exemple de croisement PMX (les enfants)............................................................ 33
Figure 16 Exemple de croisement PMX (résultat final du croisement) ................................. 34
Figure 17 Exemple de codage de pièces horizontales ............................................................ 37
Figure 18 Exemple de codage de pièces verticales ................................................................ 37
Figure 19 Exemple de décodage d'un chromosome ............................................................... 39
Figure 20 étape 1 du croisement (préparation des chromosomes parents) ............................ 42
Figure 21 Etape 2 du croisement (Croisement en deux points, et obtention des descendants)
................................................................................................................................................ 42
Figure 22 Etape 3 du croisement (détection des doublons).................................................... 43
Figure 23 Résultat final du croisement des identifiants ......................................................... 43
Figure 24 Résultat final de l'opération de croisement avec la méthode PMX ....................... 44
Figure 25 Mutation de deux gènes "identifiants" .................................................................. 44
Figure 26 Mutation de deux gènes "opérateurs" .................................................................... 44
Figure 27 Représentation en forme d'arbre de coupe [ONO 99]............................................ 46
Figure 28 Procédé de Déroulement de l'algorithme .............................................................. 49
Figure 29 Interface Principale du système ............................................................................. 53
Figure 30 Interface principale - partie insertion de pièces. (Le rectangle à découper est en
gris)......................................................................................................................................... 53
Figure 31 Message d'alerte - cas : aucune pièce insérée - ..................................................... 54
Figure 32 Message d'alerte -cas : plus de place pour insérer des pièces -............................. 54
Figure 33 Interface d'affichage de résultat ............................................................................. 55
Figure 34 Boutons rouges pendant l'exécution de l'algorithme.............................................. 55
Figure 35 Résultat sur la console de Unity lors du clic sur le bouton "Debug pop" .............. 55
Figure 36 Graphe des valeurs de fitness des différents tests en fonction du nombre de
générations ............................................................................................................................. 58
Figure 37 Solution optimale obtenue au test N° 9 ................................................................. 59
Figure 38 Graphe d'évaluation du temps d'exécution des outils pour la résolution du
problème ................................................................................................................................. 60
Figure 39 Meilleur solution au problème atteinte par notre Approche .................................. 61

6
TABLE DES TABLEAUX

Tableau 1 Classification de Dyckhoff pour les problèmes d'optimisation connus ................ 16


Tableau 2 Types de codifications ........................................................................................... 19
Tableau 3 Description du problème à résoudre ...................................................................... 56
Tableau 4 Résultats obtenus par l'AG proposé....................................................................... 57
Tableau 5 Description du problème à résoudre pour comparaison ........................................ 59
Tableau 6 Résultat obtenus lors de la comparaison d'outils ................................................... 60

7
INTRODUCTION
Contexte de recherche
La majorité des matériaux utilisés actuellement dans l’industrie sont initialement présentés
sous forme de plans, et nécessitent le passage par un procédé de découpage, afin de les
diviser en pièces de dimensions variables.
Le processus de découpage de grands panneaux de matériaux engendre des chutes de
matière, impliquant des pertes économiques, et dans certains cas un impact écologique,
c’est le cas pour les matériaux difficilement biodégradables tel que l’aluminium. Il est vrai
que certains matériaux résiduels retrouvent une nouvelle vie, mais au détriment de leur
valeur économique, (tel que l’utilisation du bois comme combustible), ou alors au
détriment d’un effort, et d’un cout supplémentaire pour les retravailler (la refonte de l’acier
en est un exemple). Par conséquent la minimisation des chutes, est un problème majeur,
particulièrement dans le milieu industriel. Ce type de problèmes, est connu sous le nom de
« problème de découpe de matière ».
Les modes de découpages ont évolué au fil des siècles et offrent des modes de coupe de
plus en plus automatisés. Les solutions au problème de découpage, impliquent
l’automatisation de tout le processus, en partant de la proposition d’un plan de coupe
optimal.
Le problème de découpage, consiste essentiellement à découper une grande pièce, pour
produire plusieurs petites pièces, la coupe est prévue pour minimiser les chutes de
matériaux. Ce type de problème sont une variété des problèmes combinatoires, auxquels
une solution exacte ne peut être trouvée en explorant tout l’espace de recherche. Malgré
les progrès considérables de l’informatique, les méthodes classiques de résolution de
problèmes tel que les méthodes exhaustives, qui parcourent tous les cas possibles, ne sont
pas satisfaisantes en termes de temps d’exécution, d’où la nécessité d’avoir recours à des
méthodes heuristiques tel que les algorithmes génétiques.
Dans la pratique, les contraintes liées au type de matériaux, et aux modes de découpe
doivent être prisent en compte. Certains matériaux supportent difficilement les variations
d’angle de coupe. Dans notre travail nous allons concentrer nos efforts sur la résolution du
problème de découpage guillotiné à deux dimensions.
L’optimisation du problème de découpage a fait l’objet de plusieurs travaux de recherches,
particulièrement motivés par les enjeux industriels de la résolution de ce type de problème,
mais également par la résolution de la variété de difficulté qui émanent des différents
critères du problème de découpage (dimension, rotation du matériaux, nombre de pièce à
découper… etc.).
La première formulation connue du problème de découpage est posée par l’économiste
russe L. Kantorovich, en 1939. Dans ses recherches, Kantorovich se base sur l’optimisation
de l’utilisation des machines dans une usine. Plus tard, des progrès significatifs ont été

8
réalisés grâce aux travaux de Gilmore, et Gomory en 1961, par leur résolution du problème
de découpe à deux dimensions, en utilisant la programmation linéaire, inspirant ainsi
« Cood », pour utiliser ces méthodes pour les systèmes multiprogrammés. Plus de 500
articles traitant du sujet, ont par la suite vu le jour. De plus en plus de recherches tendent
vers l’utilisation des méthodes bio-inspirées, telles que les algorithmes de colonie de
fourmis, et les algorithmes évolutionnaire, pour la résolution des problèmes de découpage
et de placement.
Au cours de ce travail, nous allons nous intéresser à la résolution du problème de
découpage à deux dimensions, par algorithme génétique, en considérant le découpage de
forme uniquement rectangulaire.

Problématique
Le problème de découpage est un problème NP complexe, que l’on peut retrouver dans
plusieurs domaines tel que le découpage de : bois, verre, tissu, cuir…etc.
80% des entreprises sont amenées à découper des matériaux bruts, en plus petits
morceaux, et souffrent de la mise en place d’un mauvais plan de coupe étant donné que
plus de 25% des pertes économiques de ces entreprises sont dues à la mauvaise gestion du
processus de découpage.
Malgré les nombreuses solutions proposées par les approches actuelles, aucune n’assure
l’atteinte de l’optimalité. De La majorité des outils disponibles sur le marché ont comme
principal inconvénient la difficulté de leur prise en main.

Motivations
En dépit de l’automatisation du processus de découpage, il est aberrant de voir que la mise
en place d’un plan de coupe reste majoritairement le fruit d’un effort intellectuel. Une
multitude d’algorithme ont été mis en place pour résoudre le problème de découpage, mais
peu d’outils pratiques, les ont implémentés.
Il est donc nécessaire de mettre en place un outil capable de la proposition d’un plan de
coupe optimal pour minimiser les chutes de matière lors de la réalisation d’une coupe.

Objectifs
L’objectif de notre contribution est la réalisation d’un outil convivial, et ergonomique pour
la proposition d’un plan de coupe optimal, qui a pour rôle de minimiser l’étendu des chutes.
Notre approche se base sur l’utilisation des Algorithmes génétiques que plusieurs
recherches ont mis en avant, comme étant l’heuristique à privilégier pour la résolution du
problème de découpage à deux dimensions.

9
Contenu du mémoire
Ce mémoire est organisé en 3 chapitres :
Dans le premier chapitre nous verrons les concepts de base du problème de découpage,
afin de situer notre approche par rapport aux différentes catégories existantes.
Dans le deuxième chapitre, après une brève introduction aux algorithmes génétiques, nous
détaillerons notre approche de résolution du problème de découpage par algorithme
génétique.
Finalement, dans le troisième chapitre, nous présenterons l’outil réalisé au cours de ce
travail, ainsi que nos choix d’implémentation. Nous comparerons également les résultats
obtenus par notre approche avec ceux de différents outils disponibles sur le marché.
Nous conclurons notre mémoire en présentant les perspectives futures de notre travail.

10
CHAPITRE 1
ETAT DE L'ART SUR LE PROBLEME
DE DECOUPAGE DES MATERIAUX
Le problème de découpage est présent dans différentes disciplines notamment : la
recherche opérationnelle, l’informatique, l’industrie… etc. d’où la nécessité de trouver une
solution réalisable. Dans ce chapitre nous allons aborder les généralités du problème de
découpage, en présentant notamment les définitions nécessaires à la suite de notre travail.
Nous parcourrons également les travaux déjà réalisés sur le sujet.

1.1 De quoi s'agit-il ?


Les problèmes de découpage, ou de placement sont des problèmes connus sous le nom : «
Cutting & Packing problems » ou : C&P (Découpe et placement). Le problème de
découpage, est un problème d’optimisation qui cherche à offrir un plan de coupe optimal
[HOP 01].
Les problèmes de découpe, et de placement sont catégorisés comme étants des problèmes
d’optimisation combinatoire de complexité NP-Difficile, étants considérés comme étant
des cas particuliers du problème du sac à dos, dans la mesure où il est impossible de tester
tous les cas possibles, et qu’il est nécessaire d’avoir recours à des heuristiques pour la
résolution de ce type de problèmes [DYC 90].
Selon les caractéristiques restrictives et le nombre de dimensions du matériau à découper,
le problème de découpage peut être catégorisé en différents types. Le plus important
critère de classification est celui de la forme du tracé, si le tracé est linéaire le problème est
dit unidimensionnel, si le tracé est selon un plan, le problème est alors bidimensionnel, et
enfin si le tracé est selon un espace le problème est dit tridimensionnel (c’est le cas pour le
découpage de diamants brutes) [BEN 00].
Quel que soit le nombre de dimensions, le problème peut être formulé comme un problème
d’optimisation (de maximisation du cout des pièces à découpées, ou de minimisation de la
surface occupée par ces dernières).

11
1.2 Le découpage en tant que
problème d'optimisation
Le problème du découpage, est un problème d’optimisation NP-Difficile (ou NP-Dur, ou NP-
Complexe). C'est un problème d'optimisation combinatoire, parfois multicritère, qui
appartient à l'ensemble des problèmes connu sous le nom de "problèmes de découpe et
d’emballage" (en anglais : « Cutting and packing problems » C&P), et dont la solution
optimisée nécessite souvent l'application de techniques métaheuristiques.

1.2.1 Problème de découpe et NP-


Complexité
NP (Polynôme non déterministe) est un ensemble de tâches de prise de décision qui ne
sont pas résolubles en un temps polynomial sur tout ordinateur réel, contrairement aux
problèmes de la classe « P » [GOL 10].

Un problème est NP-difficile s’il existe une réduction (i.e. une transformation de ce
problème en un autre) vers la classe NP, et qui nécessite au moins un algorithme
exponentiel pour sa résolution [GOL 10].

Les problèmes NP-complets, sont tous les problèmes de la classe NP, et, de la classe NP-
difficile, et qui ne peuvent être résolus par un algorithme polynomial [GOL 10].

La figure 1 ci-dessous résume la relation entre ces trois classes de problèmes.

Le problème de découpage est considéré comme un problème NP-difficile (réductible au


problème du sac à dos), dans le sens où le résoudre mathématiquement de manière
optimale est très difficile ; Par conséquent, sa résolution ne peut se faire de manière
exhaustive, mais nécessite plutôt des solutions heuristiques [AVD 15].

La résolution du problème de découpage a le plus souvent été possible grâce à des


méthodes heuristiques (compte tenu de la complexité du problème). Une des approches
pertinentes pour résoudre le problème de découpage en 2D est l’utilisation d’algorithmes
bio inspirés, tels que : Les algorithmes inspirés des lucioles, les algorithmes de colonies de
fourmis (ACO), … et les algorithmes génétiques [KUR 19]. La majeure partie des solutions
heuristiques proposées étaient basées sur les algorithmes génétiques (AG) [OLI 16].

❖ Au cours de ce travail, nous verrons la résolution du problème de découpage en


utilisant les algorithmes génétiques.

12
Figure 1 Relation entre les classes P, NP, NP-difficile, et NP-complet

1.2.2 Approche du problème de


découpage
Le problème de découpage est un problème d’optimisation qu’il est nécessaire d’approcher
formellement.
La formulation standard du problème de découpe, se base sur le découpage d’un rectangle
initial 𝑅 de longeur 𝐿 , et de largeur 𝑊, en un ensemble de petites pièces 𝑃 et 𝑃 =
{𝑝1 , 𝑝2 , … , 𝑝𝑛 }, tel que chaque pièce 𝑝𝑖 , est associée à sa longueur 𝑙𝑖 , et sa largeur 𝑤𝑖 avec
(𝑖 = 1 … 𝑛) [SAA 08].

Soit 𝑆 un ensemble de vecteurs représentant les plans de coupes 𝐶, et 𝐶 = {𝐶1 , 𝐶2 , … , 𝐶3 },


tel que chaque 𝐶𝑖 représente le nombre de répétitions de la pièce 𝑖 dans le plan 𝐶 (et 𝐶 ∈
𝑆.
L’optimisation du découpage de matériaux consiste en la minimisation de la surface totale
occupée par les pièces découpées.

En d’autres termes, la minimisation de la fonction 𝐹 suivante [SAA 08] :

𝐹=𝑆→𝑁
𝑛

𝑡𝑒𝑙 𝑞𝑢𝑒: 𝐹(𝐶) = 𝐿. 𝑊 − ∑ 𝑙𝑖 . 𝑤𝑖 . 𝐶𝑖


𝑖=1

La fonction 𝐹 calcule les chutes générées pour un plan de coupe 𝐶, étant donné que la
superficie occupée par les pièces découpées dans le plan 𝐶, est soustraite de la superficie
totale du rectangle 𝑅 (𝐿 . 𝑊).

Donc plus un plan de coupe 𝐶 est optimal, et moins la superficie occupée par la découpe
est grande.
En d’autres termes, la solution optimale consiste à trouver : 𝐶 ∗ , le plan de coupe minimisant
𝐹, de telle sorte que :

13
𝐹(𝐶 ∗ ) = 𝑀𝑖𝑛 𝐹(𝐶)
Néanmoins, cette représentation mathématique est générale, et doit être adaptée au
problème étudié, et à l’approche de résolution adoptée.

1.3 Particularités du problème de


découpage
En fonction du sens du découpage, et de la méthode adoptée, le problème du découpage
possède multiples particularités, d’où la nécessité de classifier les types de découpage. Mais
également les modes de découpes en fonction des outils utilisés.

1.3.1 Classification des problèmes de


découpe
Il est distingué, une diversification, et une grande variété de problèmes de découpage, due
notamment à la diversification des outils de découpe (qui seront vus dans la section 1.3.2).
L’étude de ces problèmes, a alors nécessité leur classification dans différentes catégories,
afin de rendre leurs solutions applicables de manière moins ciblée, et plus générale.
Au cours de ce travail, nous distinguerons 2 grandes familles de classifications :
1. La classification de Dyckhoff

2. Et la classification d’après le mode de découpage, qui se base sur les propriétés des
matériaux et à découper.

1.3.1.1 Classification de Dyckhoff


Dychkoff (1990) propose une classification, qui vise à intégrer tous les problèmes de
découpage et de placement, en une solution globale, qui facilite le partage d’informations
entre les différents domaines de recherche. Dans ses travaux Dychoff classifie les
problèmes C&P selon 4 principaux critères [DYC 90]:
1. La dimensionnalité du problème
2. Type de tache
3. Caractéristique des conteneurs
4. Caractéristique des objets (pièces)

Et selon ces critères, une écriture de la forme : α / β / γ / δ a été mise en place, où :

14
o « α » : Représente la codification de la dimension du problème

o « β » : Représente le type de tâche ,


o « γ » : Représente la codification de la caractéristique du conteneur
o « δ » : Représente la codification de la caractéristique des pièces à découper du
conteneur.

La codification de chaque critère est décrite ci-dessous [DYC 90] :


1. Dimensionnalité
• (1) une seule dimension (1D)

• (2) deux dimensions (2D)

• (3) trois dimensions (3D) …

• (N) N-dimensions pour N>= 4

2. Type d'allocation
• (B) Tous les objets1 et une sélection d’éléments (pièces2)

Également appelé « maximisation de la sortie » ; Puisqu’un ensemble de


petits articles (pièces) doivent être affectés à un ensemble donné de
grands objets. L'ensemble de gros objets n'est pas suffisant pour accueillir
tous les petits éléments et tous les grands objets doivent être utilisés. En
d'autres termes : une sélection maximisant les petits objets (pièces) placés
en sortie est réalisée. [WAS 07]

• (V) Une sélection d'objets et de tous les éléments


Également appelé « minimisation de l’entrée » ; Dans ce cas, un ensemble
donné de petits articles est affecté à un ensemble de gros objets. Cette
fois-ci l'ensemble des grands objets est suffisant pour accueillir tous les
petits articles. Tous les petits articles doivent être affectés à une sélection
du ou des grands objets. En d’autres termes une sélection minimisant les
grands objets en entrée utilisés afin de placer toutes les pièces est réalisée
[WAS 07].

3. Variété des grands objets (les objets)


• (O) Un objet

• (I) objets identiques

1
« Objet » désigne de façon générale le concept de la pièce de problème de coupe de matériau d'origine
2
« Élément » signifie généralement la pièce à obtenir après le découpage de l’« objet »

15
• (D) objets totalement différents

4. Variété de petits objets (pièces)


• (F) peu d’objets de formes différentes

• (M) de nombreux objets de formes différentes

• (R) De nombreux objets, de relativement peu de formes différentes (non


congruents)

• (C) des formes congruentes3

En combinant ces principaux types, nous obtenons alors :

Quatre (4) (pour les quatre choix de dimensionalité), multiplié par deux (2) (pour les deux
types d’allocation), multiplié par trois (3) (pour les trois variétés de grand objets), multiplié
par quatre (4) (pour les quatre variétés de petits objets).
Ce qui donne : 4*2*3*4 = 96. Donc 96 types de problèmes C&P sont englobés selon cette
classification à 4 critères.

Un exemple de problèmes classés par Dyckhoff est décrit dans le tableau ci présent [DYC
90]:

Problème Classification de
Dyckhoff

Problème classique du bin packing4 (à Une dimension) 1/V/I/M

Problème du bin packing (à deux dimensions) 2/V/D/M

Problème classique du découpage de stock (à une dimension) 1 / V / I / R

Problème du découpage de stock (à deux dimensions) 2/V/I/R

Problème classique du sac à dos (à une dimension) 1/B/O/

Problème du sac à dos (à deux dimensions) 2/B/O/

Problème de planification des multiprocesseurs, 1/V/I/M

Et le problème d’allocation de mémoire.


Tableau 1 Classification de Dyckhoff pour les problèmes d'optimisation connus

3
« Congruent » = Des objets congruents ont la même forme, et la même dimension.
4
L’objectif de ce problème est de réussir à mettre un ensemble d’éléments fixés dans des sacs en utilisant le
moins de sac possible.

16
❖ Le présent travail, se concentre spécifiquement sur la résolution du problème de
découpage de matériaux rectangulaires à deux dimensions, en matériaux
rectangulaires de plus petite taille, par conséquent d’après la classification de
Dyckhoff, le problème à résoudre dans ce mémoire est de type : 2 / V / I / R.

L’explication à ceci est :

- 2 : car la dimensionalité du problème est de deux (2).

- V : car de plus petites pièces sont extraites d’une pièce de plus grande taille.

- I : car les pièces à découper sont identiques en formes.

- R : puisque les pièces à découper sont de la même forme (rectangulaire) mais


n’ont pas forcément les mêmes dimensions.

Cependant, avec l’évolution des méthodes de découpage, la classification de Dyckhoff ne


suffit pas à classer avec précision les problèmes de découpage, il a donc été nécessaire
d’avoir recours à d’autres formes de classifications, prenant notamment en compte le type
de découpe.

1.3.1.2 Classification d’après le type de


découpage
Le processus de découpage diffère en fonction de l’outil de découpe, et des matériaux à
découper. La prise en compte de ces deux facteurs, implique la distinction de 4 types de
découpage : la découpe guillotinée, la découpe non guillotinée, la découpe orthogonale, et
la découpe non-orthogonale, répartis en deux grandes familles de restrictions : La
restriction de guillotine, et la restriction de rotation [SAA 08].

A) Restriction de guillotine

Dépendamment de la machine utilisée pour réaliser la découpe, et du matériel à découper,


nous distinguons deux formes de découpes : la découpe guillotinée, et la découpe non
guillotinée [BEN 03].

1- Découpe guillotinée :

Une coupe à guillotine, est une coupe réalisée d’un bord du matériau, à son opposé, et
de façon parallèle au bord restant, produisant dès lors deux nouvelles plaques
rectangulaires [SAA 08] (figure 2.a).

17
Certains matériaux, tels que le verre ne sont découpés que de manière guillotinée, car
l’arrêt brusque de l’outil de découpe en plein milieu du matériau implique
l’endommagement de ce dernier [GOU 18].

2- Découpe Non guillotinée

Une coupe est dite Non guillotinée, si des arrêts de découpe sont autorisés avant
d’atteindre le côté opposé du point de départ. Plusieurs découpes sont alors
nécessaires avant d’obtenir des plaques rectangulaires [SAA 08] (figure 2.b).

Les matériaux supportant les angles de découpe, tels que le papier, sont généralement
coupés suivant ce procédé.

La figure ci-dessous, montre ces deux types de découpes, appliquées à la même


instance de problème, les découpes sont numérotées selon leur ordre de mise en place
optimal afin de permettre d’obtenir le rectangle à motif à partir d’un plus grand
rectangle.

Figure 2 Les types de découpes suivant la restriction de la guillotine

B) Restriction de Rotation

L’hétérogénéité des matières à découper, implique la prise en compte d’un second type de
restrictions, qui est celui de la Rotation du matériau.

1- Découpe orthogonale :

Certains matériaux tels que : les tissus à motifs, et les planches de bois à nervures…, et
autres matériaux à caractéristiques unidirectionnelles, nécessitent que le découpage d’une
pièce se fasse selon une certaine direction. Il n’est donc pas possible d’effectuer de

18
rotation, et la découpe doit prendre en compte que le sens des pièces ne doit aucunement
être varié [SAA 08] (figure 3.a).

2- Découpe non-orthogonale :

Ce type de découpage autorise la modification de l’angle de rotation des pièces, et n’est


donc appliqué qu’aux matériaux n’ayant pas de contraintes spécifiques sur la disposition
des pièces à découper [SAA 08] (figure 3.b).

La figure 3, montre la différence entre une découpe orthogonale, et une découpe non
orthogonale, appliquées à la même instance de problème.

Figure 3 Les types de découpes suivant la restriction de la rotation

En se basant sur ces deux restrictions, et leurs 4 sous-types. Une codification a été mise en
place, par Lodi et al. En 1999, afin de répartir les problèmes de « Bin packing ». L’adaptation
de cette codification au problème de découpage donne lieu à 4 différents problèmes décrits
dans le tableau suivant [LOD 99] :

Codification Description

O-G Les pièces sont Orientées (découpe orthogonale), et la découpe est


Guillotinée.

R-G La Rotation des pièces est autorisée (découpe non-orthogonale), et la


découpe est Guillotinée

O-F L’Orientation des pièces est fixée, et la découpe n’est pas guillotinée
(Free)

R-F La Rotation est autorisée, et la découpe n’est pas guillotinée (Free)


Tableau 2 Types de codifications

19
La figure 4 montre l’ordre de complexité entre ces 4 types de découpage.
Mathématiquement cette figure peut être décrite comme suit [LOD 99]:

𝑅𝐺 ⊂ 𝑂𝐺
𝑒𝑡 𝑂𝐹 ⊂ 𝑂𝐺
𝑒𝑡 𝑅𝐹 ⊂ 𝑂𝐺
𝑒𝑡 𝑅𝐹 ⊂ 𝑅𝐺
𝑒𝑡 𝑅𝐹 ⊂ 𝑂𝐹

Donc : 𝑅𝐹 ⊂ { 𝑂𝐺 , 𝑅𝐺 , 𝑒𝑡 𝑂𝐹}, ce qui fait de ce type ; le type avec la plus faible


complexité.

Et nous avons : { 𝑅𝐺 , 𝑂𝐹 } ⊂ 𝑂𝐺, la complexité de ces deux types (RG, et OF) est alors
égale, mais est inférieure à celle des découpages de type OG. Faisant du type OG, le type
avec la plus grande complexité, mais également le plus général, étant donné qu’il couvre
plus de cas.

Figure 4 Ordre de complexité entre les types de découpage

❖ Au cours de ce travail, par souci de généralité, nous avons choisi de nous intéresser
aux problèmes de type O-G. étants les plus généraux.

1.3.2 Les modes de découpage


modernes
Les différentes catégories de problèmes de découpage dépendent non seulement des
propriétés du matériau à découper, mais aussi de l’outil de découpe utilisé. Pour cette

20
raison, nous allons explorer brièvement dans cette partie les différents modes de
découpage les plus utilisés.
1- Découpage au laser

Le mode de découpage au laser est un mode de découpage précis, car une grande
quantité d’Energie est amplifiée, puis est expulsée par une tête de découpe très fine,
sous forme d’une particule de lumière photonique [WEI 13].

Ce procédé est applicable sur tous les matériaux à surface mate tels que le bois, le
papier, le tissus… etc. Mais est particulièrement adopté dans le micro usinage.

L’image de la figure 5 montre une machine de découpage laser en action


2- Découpage à jet d’eau

Le principe est d’utiliser la force d’un jet d’eau sous haute pression, associé à des
matériaux abrasifs (tels que le sable fin), de manière localisée, de telle sorte que les
molécules des matériaux à découper se séparent sous la pression de ce jet [WEI 13].

La principale caractéristique de ce mode de découpage, est sa précision (de l’ordre de


+/-0,01 mm) n’induisant donc quasiment aucune perte significative au moment de la
découpe [WEI 13].
Ce mode de découpage est pluridisciplinaire, étant donné que Tous types de matériaux
(cuir, diamant, métal, verre, … etc.) peuvent être découpés suivant ce procédé (excepté
le verre feuilleté) [WEI 13].

L’image de la figure 6 montre le découpage d’une plaque de métal par une machine de
découpage à jet d’eau.

3- Découpage à poinçonnage

Le poinçonnage est un procédé de découpe réalisé à l’aide d’une presse hydraulique,


ou mécanique. Le matériau à découper est maintenu grâce à une matrice, et le poinçon
exerce une tension sur les fibres du matériau afin de le perforer [RAM 10].

Malgré son efficacité le poinçonnage reste limité aux matériaux tels que : le textile, le
cuir, la toile, et le métal, et ceci à cause des variations de côtes, et des défauts de formes
observés sur les autres matériaux [RAM 10].

L’image de la figure 7 montre une perforatrice en action sur une plaque de métal.

21
Figure 5 image réelle d'une machine à Figure 6 image réelle d'une machine Figure 7 image réelle d'une
découper au laser à découper à jet d'eau poinçonneuse

1.4 Le découpage et le problème du


sac à dos
Les problèmes de découpages sont des problèmes d’optimisation cherchant le meilleur
arrangement possible pour une liste d’articles, dans un conteneur plus grand. Ces
problèmes sont fortement attachés au problème du sac à dos, d’autant que le problème du
découpage est un problème NP-difficile, réductible au problème du sac à dos [AVD 15].

Les problèmes d’optimisation combinatoire, sont généralement une composition de sous


problèmes basiques, nous citons [LOD 01, MOR 13] :

1. Le problème de chargement (problème d’ajustement d’un nombre maximum de boites,


dans un conteneur).
2. Le problème de nesting (problème de découpage de pièces de différentes formes)

3. Le problème du sac à dos (que nous verrons dans ce qui suit)

1.4.1 Définition du problème de sac à


dos
Le problème du sac à dos, fait partie de la catégorie de problèmes dont la résolution est
atteinte par l’affectation d’un ensemble de petits articles, à de plus gros objets conteneurs.
L’ensemble des objets « conteneur » ne suffit pas à loger tous les articles, il est limité de
sorte que seuls quelques-uns puissent être accueillis.

22
Il s’agit donc d’un problème de « maximisation de la sortie » (Voir section 1.3.1.1).

Le problème du sac à dos consiste à remplir un sac à dos avec un ensembles d’articles 𝑗
(allant de 𝑖 = 1 … 𝑛), de poids (𝑤𝑖 ), et de coûts différents (𝑃𝑖 ). Le principe est de placer un
maximum d’articles dans le sac à dos, en maximisant le coût total des éléments contenus
dans de dernier, et en minimisant le poids du sac à dos (𝑊) [SHA 17].

La définition mathématique du problème du sac à dos est définie comme suit [SHA 17] :
𝑛

max 𝑍 = ∑ 𝑃𝑖 𝑋𝑖
𝑖=1
𝑛
𝐾𝑃 =
∑ 𝑤𝑖 𝑋𝑖 ≤ 𝑊
𝑖=1
{𝑋𝑖 ∈ {0,1}; 𝑖 = 1 … 𝑛

De telle sorte que : 𝑋𝑖 est une variable de décision, celle-ci, prend la valeur 1, si l’article 𝑖
est accepté dans le sac à dos, et 0 sinon.
A noter que d’après la définition même du problème, nous pouvons déduire que ∑𝑛𝑖=1 𝑤𝑖 >
𝑊.

1.4.2 Résolution du problème de sac à


dos par algorithmes génétiques (AG)
Avant de voir dans le chapitre suivant, les détails de la définition d’un algorithme génétique,
nous allons dans cette section voire un exemple simplifié de résolution du problème du sac
à dos par AG [HRI 04].
1. Codage des chromosomes :

Les chromosomes sont représentés par une liste de taille 𝑛 (𝑛 = nombre total d’articles), de
telle sorte que si liste[𝑖] == 1 l’article est accepté dans le sac à dos, et si liste[𝑖] == 0, l’article
ne l’est pas [HRI 04].

2. Fonction fitness :

La fonction fitness est calculée pour chaque chromosome, en faisant la somme des poids,
et des coûts de chaque article présent dans ce chromosome (où liste[𝑖] == 1). Si le poids
total dépasse la capacité du sac au dos : une mutation est réalisée, en inversant la valeur
de l’un des bits dont la valeur est à « 1 » du chromosome [HRI 04].

3. Mutation :
La probabilité de mutation dans ce problème (changement d’un bit dans la liste), est de 0.1
[HRI 04].

23
4. Croisement :

Le croisement est réalisé en un point, avec un taux de 85%, signifiant qu’à chaque
génération 15% de la population ne se reproduira pas, et sera copiée telle quelle dans la
prochaine génération [HRI 04].

1.5 Les solutions proposées


actuellement
Le problème de découpage a initialement été abordé par Kantorovich, en 1939 (traduit du
russe à l’anglais en 1960) [KAN 60]. Plusieurs travaux dans le domaine de la découpe
unidimensionnelle et l’étude de systèmes multiprogrammés ont suivi. Le premier
découpage bidimensionnel fut étudié par Beasley dans son travail « An exact two-
dimentional non-guillotine cutting tree search procedure » [BEA 85].

Le XXᵉ siècle fut témoin de plusieurs travaux de recherche, donnant le jour à deux grandes
familles d’axes de recherche ; Les méthodes de résolution heuristiques, qui assurent la
minimisation du temps d’exécution. Et les méthodes de résolution exactes, qui assurent la
solution optimale.

1. Les Méthodes de résolution heuristiques :


Les algorithmes de génération de bandes font partie des méthodes de résolutions
heuristiques les plus présentent dans la littérature, associées aux méthodes bio-inspirées.

Parmi les méthodes bio-inspirées font partie des méthodes de résolution heuristiques. Et
les plus communément utilisées pour le problème de découpage de matériaux sont : les
algorithmes génétiques (AG) (sujet de ce mémoire, il sera vu dans le chapitre suivant), et
les algorithmes de colonie de fourmis (ACO) [MOR 13]

• Algorithme de colonie de fourmis


L’algorithme ACO est inspiré du comportement de colonies de fourmis à la
recherche de nourriture. En effet, ces dernières ont un mode de communication
indirect connu sous le nom de stigmergie5. Ce mode de communication permet à
des fourmis ayant des capacités mentales limitées, et une courte mémoire de
communiquer entre elles sans le savoir [MAR 10].

En effet, Les fourmis cherchent le plus court chemin du nid vers la source de
nourriture, tout en secrétant des phéromones dans le but de retrouver leur chemin,
et de former ainsi une piste que d’autres fourmis pourront suivre dans le cas où
cette piste est concluante (Mène à de la nourriture) [MAR 10].

5
Stigmergie = méthode de communication, où les individus communiquent entre eux en modifiant leur
environnement.

24
La phéromone secrétée étant éphémère, et disparait donc rapidement, si une piste
contient encore une grande quantité de phéromones ceci signifie qu’un grand
nombre de fourmis l’a suivi, et qu’elle est donc non seulement concluante, mais
qu’elle est également le plus court chemin du nid vers la source de nourriture [MAR
10].

La procédure générale (décrite ci-dessus) de l’ACO est représentée dans


l’algorithme qui suit [MAR 10]:

Algorithme général de l’ACO

1 : Générer des solutions quelconques à un problème donné


2 : Initialiser les valeurs des phéromones
3 : Tant que (le critère d’arrêt n’est pas satisfait) faire :
Pour (Toutes les fourmis) faire :
Construire une solution
Chercher une solution avec un plus court chemin (optimale)
Sélectionner la solution optimale

4 : Sortie : La solution avec le plus court chemin

• Algorithmes par génération de bandes

Ces algorithmes procèdent en deux étapes, la première ; la génération de bandes,


en appliquant un découpage guillotiné. En d’autres termes plusieurs pièces sont
alignées de façon horizontal (resp. Verticale), et la découpe guillotinée est réalisée
au niveau de la largeur (resp. Hauteur) la plus grande des pièces. (La figure ci-
dessous montre deux exemples de découpages de bandes verticalement, et
horizontalement) [SAA 08].

Figure 8 Exemple d'algorithme de génération de bandes

25
• Algorithme « First Fit » (FF)

L’heuristique FF est souvent présente dans la littérature, et consiste en [PAL 06] :


a) Trier les pièces à découper par ordre de hauteur
b) Placer le coin supérieur gauche de la première pièce à découper dans le coin
supérieur gauche du rectangle.
c) Placer les autres pièces par ordre décroissant de hauteur à la droite de la
première pièce placée, jusqu’à ne plus avoir de place.
d) La première rangée est obtenue, avec une hauteur égale à la hauteur de la
première pièce placée, et une largeur égale à la somme de celles des pièces
placées.
e) Répéter le processus (revenir à « a ») jusqu’à compléter tout le rectangle

Un exemple de l’utilisation de cette heuristique est présent dans la figure ci-


dessous :

Figure 9 Exemple de l'algorithme First Fit

2. Les méthodes de résolution exactes

Les méthodes de résolution exactes examinent de manière implicite la totalité de l’espace


de recherche. Un exemple de méthodes de résolution exactes, est la méthode Branch and
bound.

• Méthodes séparation et évaluation (Branch and bound)


Cette méthode a vu le jour dans les travaux de Gilmore, en 1960.

Elle repose sur 2 principes [BEL 04] :

- Elagage : élimination des branches de l’arbre non intéressantes

- Evaluation : Afin de choisir le prochain sous arbre à explorer

En d’autres termes, c’est une méthode de recherche graphique, basée sur la


représentation de la pièce d'origine en tant que nœud initial d'un arbre, et les
nœuds représentent des solutions. L’idée est de couper des branches de
l’arbre(élagage) en faisant une évaluation des branches de l’arbre, et en les

26
comparant à un seuil, de telle sorte que seuls les sous-arbres les plus aptes à
contenir la solution optimale soient explorés [BEL 04].
En comparaison aux techniques suscitées présentes dans la littérature, les algorithmes
génétiques ont été une heuristique privilégiée par les chercheurs, depuis le début des
années 2000, en vue de leur puissance et leur capacité à atteindre des solutions optimales,
en un temps raisonnable [BOR 04].

Le sujet de ce travail, est d’appliquer la méthode des algorithmes génétiques au problème


de découpage guillotiné de matériaux bidimensionnels, de formes rectangulaires.

1.6 Avantages des logiciels de


découpage
L’optimisation du découpage de matériaux a un coût écologique, et économique important.
Il a été démontré que les chutes de matière représentaient 25% de la quantité totale de
matériaux dans les entreprises Textiles. 15% de pertes peuvent être évitées grâce à
l’utilisation de logiciels d’optimisation de découpage. Le gain économique est également
important, puisqu’une augmentation d’environ 75% du chiffre d’affaire annuel des
entreprises utilisant des logiciels de découpage, a été constatée [BOU 98].

Hormis l’impact Economique, un impact environnemental important a notamment été


constaté, étant donné que certains types de matériaux sont difficilement recyclables, et
peuvent mettre des milliers d’années à se désintégrer (le plastique, l’aluminium, l’acier, le
polystyrène, le nylon… et particulièrement le verre, qui met plus de 5000 ans à se dégrader).

1.7 Conclusion
Au cours de ce chapitre nous avons introduit les généralités du problème de découpage de
matériaux. A travers une synthèse des propriétés des matériaux, et des outils de découpe,
il a été démontré la diversité de ces problèmes.

Dans notre travail, nous allons nous intéresser à la résolution du problème de découpage
à deux dimensions en utilisant les algorithmes génétiques. Le chapitre suivant servira à
décrire l’approche adoptée.

27
CHAPITRE 2 PROPOSITION
D'UNE APPROCHE POUR LE
DECOUPAGE DE MATERIAUX A
BASE D’ALGORITHME GENETIQUE
Les algorithmes évolutionnaires classiques, sont un type d’algorithme s’inspirant du néo-
darwinisme, et de l’évolution naturelle des espèces. Les algorithmes génétiques, sont les
premiers algorithmes Evolutionnaires (AE), et les plus présents dans la littérature,
notamment dans les domaines de la recherche intelligente, de l’apprentissage
automatique, et de L’optimisation [MAN 10].
Les algorithmes génétiques font partie des algorithmes heuristiques les plus couramment
utilisés pour la résolution du problème de découpage à deux dimensions [AVD 15].

Ce chapitre donne un bref aperçu des algorithmes génétiques, et une description de


l’approche adoptée pour la résolution du problème de découpage en utilisant ces derniers.

2.1 Description de l’approche par


Algorithmes génétiques
Les algorithmes génétiques font partie des algorithmes dits « évolutifs » (AE) imitant, le
procédé d’évolution dans la nature. Les AG sont alors basés sur le principe qu’une
population d’individus, est en compétition pour la survie du plus apte. L’algorithme se base
sur quatre étapes cycliques importantes, qui sont les piliers des algorithmes génétiques
[MIL 15] :
1. Création et entretient d’une population d’individus

2. Sélection des meilleurs individus

3. Mutation afin d’assurer une diversité

4. Croisement des individus afin d’assurer la survie de l’espèce

Ces piliers s’inscrivent dans un ensemble d’étapes, qui illustrent la définition même de
l’algorithme Génétique. L’AG procède par cycle de 7 étapes, qui composent une
« génération », de sorte que les individus soient de plus en plus forts de génération en
génération. Une génération est une succession des étapes suivantes [MIL 15] :

28
1) Coder les individus.

2) Générer une population de base de 𝜇 individus. Les individus de la population


sont appelés chromosomes.

3) Evaluer les individus de la population par une fonction fitness.

4) Sélectionner 𝜆 individus de la population pour leur reproduction.

5) Les 𝜆 individus sélectionnés sont croisés, et de nouveaux individus sont obtenus.

6) Mutation des 𝜆 nouveaux individus sélectionnés, en fonction d’un opérateur de


mutation (probabilité de mutation)

7) Sélection de 𝜇 individus parmi 𝜇 + 𝜆 individus. Afin de relancer le cycle pour une


nouvelle génération.

Une description schématisée du fonctionnement général de cet algorithme est présente


dans la figure 10 ci-dessous.

Figure 10 Fonctionnement général d'un AG [MIL 15]

29
Une description en détail des différentes étapes présentées est détaillée dans la section
suivante, ainsi qu’un lexique de termes propres aux AGs.

2.1.1 Définitions propres aux AGs


Dans cette section seront présentés quelques termes, propres aux domaines des
algorithmes génétiques et qui seront répétés dans la suite de notre travail :
- Individu : L’individu est une solution au problème, et est représenté par un
chromosome.

- Le chromosome : c’est un ensemble de gènes, et chaque gène qui prennent


différentes valeurs d’allèles.

- Allèle : C’est la valeur prise par le gène


- Génotype : c’est l’ensembles des gènes représentés par un chromosome.

- Phénotype : c’est la représentation réelle du génotype

2.1.2 Etapes de mise en œuvre d’un AG


L’utilisation des algorithmes génétiques nécessite de suivre les étapes fondamentales
précédemment citées, et décrites plus en détail dans cette section.

2.1.2.1 Codage des individus


Chaque solution doit être codée, afin que chaque individu soit représenté par un
chromosome, faisant ainsi une population de chromosomes [CHA 11].

Différentes sortes de codage peuvent être utilisées

1) Codage binaire :
Ce type de codage se base sur la représentation en formes de bit (0, et 1) des individus,
cette représentation nécessite d’être transformée en phénotype afin d’être
compréhensible [MIL 15].

Un exemple est le génotype codé en binaire : 01010100, qui n’est autre que la
représentation du nombre 84 (phénotype correspondant) [MIL 15].

Puisque :
0∗27+1∗26+0∗25+1∗24+0∗23+1∗22+0∗21+0∗20=84 [MIL 15]

30
2) Codage Réel :

Ce type de codage représente les individus par des génotype sous forme de nombre (Base
10), et généralement de valeurs réelles représentées en virgule flottante, ou encore de
lettres. Ce type de codage offre ainsi une plus grande marge de valeurs, et est plus adapté
aux problèmes nécessitants un haut degrés de précision [MIL 15].

3) Codage en Arbre :

Cette autre forme de codage est moins couramment utilisée que les précédentes. Elle
apparait le plus souvent pour décrire des circuits électroniques, étant donné qu’elle sert
principalement à décrire les branchements et les conditions [MIL 15].

2.1.2.2 Fonction d’adaptation (fonction


fitness)
C’est la fonction permettant de calculer l’adaptation d’un individu. Par analogie avec la
nature, cette fonction renvoie l’état de santé d’un individu.

Cette fonction associe un score à chaque phénotype de la population, déterminant sa


capacité à survivre, et à se reproduire [MIL 15]. Plus la fonction fitness d’un individu est
grande, et meilleure est la qualité de ce dernier, et plus grandes sont ses chances de se
reproduire.

2.1.2.3 La sélection
Le rôle de la sélection est de choisir les individus d’une génération 𝑘 qui se reproduiront
(les parents), afin de former les individus enfants de la génération 𝑘 + 1. Plusieurs types de
sélections sont présents dans la littérature [CHA 11] :

1) Sélection par « roue de la fortune » ou par « roulette » :

Également appelée : sélection proportionnelle. Le principe est de faire correspondre à


chaque individu, un secteur d’une roue, la superficie de ce secteur est équivalente au fitness
de l’individu. De sorte que plus le fitness d’un individu est grand, plus sa probabilité d’être
tiré par la roulette est grande [CHA 11].
La figure ci-dessous, montre un exemple de roulette où 6 individus sont placés en fonction
de la valeur de leur fonction fitness.

31
Figure 11 Exemple de placement d'individus sur la roue de la fortune

2) Sélection par tournoi


La définition la plus simple de la sélection par tournoi, est de choisir 𝐾 individus au hasard
dans la population, celui ayant la plus grande valeur de fitness est le « gagnant » du
tournoi. Les tournois se fond de manière itérative jusqu’à obtenir le nombre d’individus
nécessaire pour la nouvelle génération [CHA 11].

3) Sélection Elitiste
Le principe de cette sélection est de classer les individus de la population par ordre de
fitness, ceux avec la plus grande valeur de fitness seront sélectionnés. Cette méthode est
puissante, étant donné qu’elle assure de ne jamais perdre les meilleurs individus.
Néanmoins elle présente l’inconvénient de converger beaucoup trop tôt, impliquant un
risque de stagnation sur un optimum local, puisque la diversité de la population est presque
nulle [CHA 11].

4) Sélection aléatoire
Comme son nom l’indique cette méthode de sélection choisit de manière complétement
aléatoire les individus à reproduire.
1
Chaque individu a donc une probabilité de : 𝑃, où 𝑃, est le nombre d’individus de la
population totale [CHA 11].

❖ Au cours de ce travail nous allons associer les méthodes de sélection : Elitiste et


proportionnelle.

2.1.2.4 Le croisement
Le croisement est la méthode qui assure la reproduction de la population. Lors de l’étape
de croisement deux individus parents sont mélangés afin d’obtenir deux individus
« enfants » représentant la descendance issue de la recombinaison de ces parents.
Nous pouvons citer plusieurs types de croisements [MIL 15] :

- Croisement en 1-point :
Consiste à diviser les parents en 2 parties distinctes, et à fusionner ces deux parties à partir
d’un pivot choisi au Hazard, afin d’obtenir deux individus enfants (Voir figure 12) [CHA 11].

32
- Croisement en 2-points :
Consiste à diviser les parents en 3 parties distinctes, et à fusionner ces deux parties à partir
de deux pivots choisis au Hazard, afin d’obtenir des individus enfants (Voir figure 13) [CHA
11].

Figure 12 Croisement en 1-point

Figure 13 Croisement en 2-points

D’autres opérateurs sont proposés dans la littérature tels que le croisement


PMX (partial-mapped crossover), OX (order crossover), CX (cycle crossover), … etc. [CHA
11].

- Croisement PMX (partial-mapped crossover)


Le croisement PMX correspond à un croisement à 2-points, sauf que les gènes doublés
seront remplacés position par position [HAJ 10].
L’exemple suivant explique le processus de croisement PMX.
Supposons les deux parents suivants (figure 14) :

Figure 14 Exemple de croisement PMX (les parents)

Dans un premier temps, les enfants correspondants sont (figure 15) :

Figure 15 Exemple de croisement PMX (les enfants)

33
Les points de croisement « pivots » sont marqués par P1, et P2.
Néanmoins, les chromosomes « enfants » présentent des doublons, prenons l’exemple de
l’enfant « 1 » où le gène « 2 », est dupliqué à deux emplacements qui sont les
emplacements 4, et 9.
Le gène « 2 » à l’emplacement 4 est à l’intérieur des points pivots P1, et P2. Alors le gène
« 2 » à l’emplacement 9 est remplacé par le gène à l’emplacement 4 du parent 1 (étant
donné que dans cette partie, les gènes sont extraits du parent 1)
Cette vérification de doublons est répétée jusqu’à ce qu’il n’y en ait plus, et pour chacun
des deux enfants.

Le résultat final du croisement PMX est ci-dessous (figure 16) :

Figure 16 Exemple de croisement PMX (résultat final du croisement)

❖ Au cours de ce travail, il a été décidé d’utiliser la méthode de croisement PMX, la


section 2.2.5 précise les raisons de ce choix.

2.1.3 Avantages des AGs


Les Algorithmes génétiques font partie des algorithmes évolutionnaires les plus privilégiés
dans les travaux de recherches, étant donné qu’ils présentent plusieurs avantages, nous
citons [AFF 09] :

1) Les AG sont une Méthode de recherche globale

Les AGs, recherchent l’optimum d’une fonction, à partir d’une population de fonctions, En
introduisant des variations (mutations). Cette mutation, propre aux algorithmes
évolutionnaires, assure une recherche globale, et réduit la probabilité de stagnation sur des
optimums locaux.

2) Les AGs sont applicables aux systèmes distribués (parallèles)


Ce type d’algorithmes se base sur l’évaluation des différents individus d’une population à
partir du calcul de leur fitness. La majorité du temps d’exécution est consacré à l’évaluation
des individus, mais cette action peut aisément être réalisée de manière distribuée,
diminuant ainsi considérablement le temps total d’exécution d’un AG.

34
2.2 Résolution proposée du
problème de découpage à base
d’Algorithmes génétiques
Nous rappelons que le problème à résoudre est le découpage guillotiné, sans rotation, d’un
rectangle d’une longueur et d’une hauteur définies, en de petites pièces rectangulaires, de
dimensions différentes, et plus petites que la dimension du rectangle d’origine. Est
considérée comme « Chute », toute partie du matériau à découper comprise entre deux (ou
plus) pièces à découpées.

Au cours de ce travail nous avons décidé de nous baser sur deux critères majeurs du
problème de découpage, qui sont : la minimisation de chutes, et le regroupement des pièces
à découper dans un rectangle de cotés égaux, nous verrons dans la suite qu’un facteur
« poids » sera associé à chacun de ces deux objectifs [HAE 91].
o Critère 1 (C1) : Minimiser l’aire du rectangle contenant toutes les pièces à découper

En d’autres termes, il s’agît de minimiser le taux de chutes après découpage. En utilisant le


moins de surface de rectangle possible, pour le découpage des pièces.
De façon formelle, la fonction correspondante est alors :

𝑀𝑖𝑛 𝑓1 (𝑝1 , 𝑝2 , … 𝑝𝑛 ) = 𝑊 𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,..𝑝𝑛 ) ∗ 𝐿 𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,..𝑝𝑛 )

Où il est question de minimiser la fonction 𝑓1 qui a comme paramètre l’ensemble de pièces


𝑝𝑖 à découper, et qui multiplie la largeur 𝑊 du réctangle minimum contenant les pièces 𝑝𝑖
(𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 , 𝑝2 , . . 𝑝𝑛 )), par sa longueur 𝐿.

o Critère 2 (C2) : Regrouper l’ensemble des pièces à découper dans un carré [WAN 83].

Il s’agit de regrouper un maximum de pièces dans un rectangle de longueur, et de largeur


proportionnellement égales (carré), afin d’éviter les distributions trop horizontales, ou
verticales qui génèrent plus de chutes. Etant donné que les pièces seront plus dispersées.

De façon formelle le problème peut être décrit comme suit :

min (𝑊𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,… 𝑝𝑛 ) , 𝐿𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,… 𝑝𝑛 ) )


𝑀𝑎𝑥 𝑓2 (𝑝1 , 𝑝2 , … 𝑝𝑛 ) =
max (𝑊𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,… 𝑝𝑛 ) , 𝐿𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,… 𝑝𝑛 ) )

De sorte que nous cherchons à maximiser le rapport entre la hauteur, et la largeur du


rectangle minimal pouvant contenir les pièces à découper. Et ce, en maximisant la fonction
𝑓2, qui calcule le rapport entre la hauteur et la largeur du rectangle maximum.

0 < 𝑓2 ≦ 1

35
Deux restrictions importantes sont à prendre en compte dans ce problème : Les pièces
découpées doivent être contenues à l’intérieur du rectangle principal, et deux pièces ne
peuvent être placées au même endroit (pas de chevauchement).

2.2.1 Codage des individus


Le codage des individus solutions pour appliquer l'algorithme génétique, doit clairement
indiquer les structures de données utilisées pour atteindre les solutions au problème. En
d’autres termes, le codage est l’action qui transforme le phénotype d'un individu en
génotype, manipulable par l’algorithme.

Pour les gènes des chromosomes solution, une notation « postfixée 6» a été choisie,
(proposés par T. Ono, en 1999), il s’agît de coder les chromosomes sous forme de liste, de
telle sorte que les éléments de la liste correspondent aux identifiants des pièces à
découper, et les opérateurs correspondent aux placements de ces pièces.
Deux types d’opérateurs sont permis :

o L’opérateur « H » : est utilisé pour représenter deux pièces placées de manière


horizontale. De telle sorte que la pièce (ou ensemble de pièces) la plus à gauche sera le
premier argument du l’opérateur « H », et celle placée à droite sera le deuxième
argument.

Les deux pièces une foi associées, sont regroupée dans un seul et même rectangle,
formant une pièce 𝑃 représentant le regroupement de ces deux pièces, nous allons
appeler cette pièce « Pièce d’intégration » (marquée par un rectangle pointillé dans les
figures 17 et 18).

De telle sorte que : La longueur 𝐿𝑝 de la pièce d’intégration est [ONO 99] :

𝐿𝑃 = max (𝑙𝑝1 , 𝑙𝑝2 )

Et sa largeur 𝑊𝑃 :

𝑊𝑃 = 𝑤𝑝1 + 𝑤𝑝2

Sachant que : 𝑙𝑝1 (resp. 𝑙𝑝2 ), représente la longueur de la pièce à découper 𝑝1 (resp.
𝑝2).

Et 𝑤𝑝1 (resp. 𝑤𝑝2 ), représente la largeur de la pièce à découper 𝑝1 (resp. 𝑝2).

La figure 17 montre un exemple de codage des emplacements des pièces « 9 » et « 5 »,


utilisant l’opérateur « H ».

6
La notation postfixé fait précéder les opérandes à l’opérateur

36
Figure 17 Exemple de codage de pièces horizontales

o L’opérateur « V » : est utilisé pour représenter deux pièces placées de manière


verticale. De telle sorte que la pièce (ou ensemble de pièces) se trouvant en haut sera
le premier argument du l’opérateur « V », et celle placée en bas sera le deuxième
argument.
De même que pour l’opérateur « V », les pièces sont intégrées dans une « pièce
d’intégration ».

De sorte que cette fois : La longueur 𝐿𝑝 de la pièce d’intégration est [ONO 99] :

𝐿𝑃 = 𝑤𝑝1 + 𝑤𝑝2

Et sa largeur 𝑊𝑃 :

𝑊𝑃 = max (𝑊𝑝1 , 𝑊𝑝2 )

La figure 18 montre un exemple de codage utilisant l’opérateur « V ».

Figure 18 Exemple de codage de pièces verticales

37
2.2.2 Décodage des génotypes
Le décodage est le moyen d’obtenir le phénotype, à partir du génotype des individus. Afin
d’obtenir la position des pièces et la présentation générale de tous les éléments à partir
d’un chromosome valide. L’idée principale du décodage du chromosome est basée sur le
parcours du gène (représenté par une liste), en utilisant une pile de stockage. Le parcours
de la liste se fait de gauche à droite, de sorte que [ONO 99] :

1- Si l’élément de la liste rencontré est un identifiant de pièce, celle-ci est empilée.


2- Et le cas échéant, si l’élément rencontré est un opérateur, alors les deux dernières
pièces empilées sont extraites, et sont associées en fonction de l’opérateur « H », ou
bien « V ».

Si l’opérateur est « H » alors le premier élément dépilé (correspondant à un identifiant


de pièce), sera associé à la pièce qu’il identifie (avec ses dimensions), et celle-ci sera
placée à droite de la deuxième pièce correspondante au deuxième élément dépilé.

Si l’opérateur est « V » alors le premier élément dépilé (correspondant à un identifiant


de pièce), sera associé à la pièce qu’il identifie (avec ses dimensions), et celle-ci sera
positionnée au-dessous de la deuxième pièce correspondante au deuxième élément
dépilé.

Et quel que soit l’opérateur, le résultat de l’opération d’intégration est empilé à son
tour.

3- Lorsque l’équation est entièrement décodée (atteindre la fin du chromosome), il suffit


de dépiler tous le contenue de la liste, et une intégration est réalisée, le résultat est le
phénotype du gène décodé.

La figure 19 montre un exemple de décodage d’un chromosome de notre algorithme


génétique.

38
Figure 19 Exemple de décodage d'un chromosome

2.2.3 Fonction fitness


Compte tenu des critères (C1 et C2) décrits dans la section 2.2, la fonction fitness est la
fonction qui calcule la valeur de la condition physique d’un individu en tenant compte des
Critères 1, et 2. Ce regroupement de critères est calculé avec un poids différent pour
chacun, de sorte qu’un objectif peut avoir plus d’importance qu’un autre. La différence des
poids peut impliquer des changements importants dans le résultat final de l’algorithme
[WAN 83].

En d’autres termes, la fonction fitness est représentée par la somme de : la condition


physique de l’individu en fonction du critère C1, multiplié par le poids associé au
critère « C1 » de Minimisation de l’aire du rectangle contenant toutes les pièces à
découper. Et de la condition physique de l’individu en fonction du critère C2, multiplié par
le poids associé au critère « C2 » de Regroupement de l’ensemble des pièces à découper
dans un rectangle de cotés égaux (Carré).

De sorte que :

• La condition physique de l’individu en fonction du critère C1 est représentée par la


fonction 𝑓1 (𝑝1 , 𝑝2 , … 𝑝𝑛 ) = 𝑊 𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,..𝑝𝑛 ) ∗ 𝐿 𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,..𝑝𝑛 ) (Voir
section 2.2).

39
• La condition physique de l’individu en fonction du critère C2 est représentée par la
min (𝑊𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,… 𝑝𝑛) , 𝐿𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,… 𝑝𝑛) )
fonction 𝑓2 (𝑝1 , 𝑝2 , … 𝑝𝑛 ) = max (𝑊𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,… 𝑝𝑛) , 𝐿𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,… 𝑝𝑛) )
(Voir

section 2.2).

De manière formelle la fonction fitness est décrite comme suit :

Soit 𝐴 = (𝑝1 , 𝑝2 , 𝑝3 , … 𝑝𝑛 ) tel que 𝑝𝑖 , sont les pièces à découper.

Et 𝐴 une solution réalisable au problème.

Et 𝑊𝑓1 , le poids associé au critère « C1 » de minimisation de l’aire totale du rectangle à


découper.

Et 𝑊𝑓2 , le poids associé au critère « C2 » de maximisation du rapport entre les deux cotés
du rectangle.
Etant donné que 𝑊𝑓1 , et 𝑊𝑓2 sont des poids, alors :

0 ≤ 𝑊𝑓1 ≤ 1

0 ≤ 𝑊𝑓2 ≤ 1

Alors la fonction fitness est représentée par :

𝒇𝒊𝒕𝒏𝒆𝒔𝒔 (𝑨) = 𝒇𝟏 (𝑨) ∗ 𝑾𝒇𝟏 + 𝒇𝟐 (𝑨) ∗ 𝑾𝒇𝟐

A noter que :

max 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 (𝐴) = 𝑓1 (𝐴) + 𝑓2 (𝐴)


Dans le cas où les poids 𝑤𝑓1 et 𝑤𝑓2 sont égaux à 1, et que les deux Critère sont d’une
importance maximale.

2.2.4 La sélection des individus


La sélection consiste à choisir les individus à reproduire. Le mode de sélection le plus adapté
à la résolution du problème de découpage par Algorithmes génétiques est celui de la « Roue
de la fortune » (sélection proportionnelle) [AFF 09].

Au cours de ce travail, nous avons décidé d’associer deux méthodes de sélections :


proportionnelle (par roue de la fortune), et la sélection élitiste.
Une sélection élitiste est établie pour les deux meilleurs individus, de sorte qu'au fil des
générations, les deux meilleurs individus survivent toujours, qu'ils soient choisis ou non par
la roue. Cette méthode de sélection garantit que la meilleure solution trouvée n'est pas
perdue et qu'elle est maintenue jusqu'à ce qu'une meilleure solution soit trouvée.

40
La méthode de sélection par roue de la fortune fournit à un individu 𝑖 une probabilité de
sélection équivalente à la proportion de 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 (𝑖) par rapport à l'aptitude (fitness) de la
population totale [GUE 09].

La probabilité 𝑝𝑖 , qu’un individu 𝑖 soit sélectionné est alors donnée par [GUE 09] :
𝑓𝑖𝑡𝑛𝑒𝑠𝑠 (𝑖)
𝑝𝑖 =
∑𝑁
𝑗=1 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 (𝑗)

Sachant que : 𝑁 = Taille de la population totale.

D’autant que le risque de « convergence prématurée », (ou de domination de certains


individus sur d’autres), n’est pas présent dans notre cas puisque la fonction fitness dépend
des poids 𝑊𝑓1 , et 𝑊𝑓2 , qui assurent des valeurs de la fonction fitness relativement
uniformes.

2.2.5 Le croisement des individus


Le croisement consiste en la reproduction de deux parents sélectionnés par la technique
de la roue de la fortune, ou par élitisme (pour les deux meilleur parents) pour former deux
descendants. Le nombre de parents sélectionnés pour chaque croisement et la méthode
de sélection sont des valeurs fixes de l'algorithme et ne peuvent être modifiées.

Les chromosomes, sont composés de deux types de gènes (les opérateurs « H » et « V », et


les identifiants des pièces). Par conséquent, les gènes indiquant les identifiants des pièces,
et ceux indiquant les opérateurs appliqués que ces identifiant sont séparés. Et le
croisement est opéré sur chacun d’eux séparément.
De plus, étant donné la nature du gène, les méthodes de croisement classiques, appliquées
sur les gènes codés en binaire, ne peuvent être choisi. C’est pourquoi avons opté pour
l’utilisation des méthodes telles que : PMX (Partially-mapped crossover), OX (Order
crossover), ou CX (Cyclic Crossover).
❖ Dans ce travail, La méthode PMX (Partially-mapped crossover), est celle choisie, en
vue de sa rapidité à converger en comparaison avec les deux méthodes suscitées
[ONO 99].

Un exemple d’application de la méthode de croisement PMX sur un chromosome est décrit


ci-dessous :

• Tout d’abord les chromosomes parents sélectionnés sont manipulés de manière à


séparer les opérateurs des identifiants, et la liste des identifiants est ensuite compactée
afin de supprimer les espaces vides des opérateurs.
Comme le montre la figure ci-dessous :

41
Figure 20 étape 1 du croisement (préparation des chromosomes parents)

• Deux points de croisement (« P1 », et « P2 ») sont ensuite choisis aléatoirement (au


même niveau) sur les deux parents résultants de l’opération de compactage. Et un
croisement simple en deux points est réalisé (Voir figure 21).

Figure 21 Etape 2 du croisement (Croisement en deux points, et obtention des descendants)

• Les descendants résultant de l’opération de croisement comportent des doublons au


niveau des identifiants (marqués en rouge dans la figure 22).
Puisque l’enfant 1, comporte un doublon dans le gène « 1 », aux emplacements : 3 et 5
du chromosome.

Et l’enfant 2, comporte un doublon dans le gène « 2 », aux emplacements : 1 et 3 du


chromosome.

42
Figure 22 Etape 3 du croisement (détection des doublons)

• Pour chaque enfant la méthode de suppression des doublons sera appliquée, de sorte
que les doublons à l’extérieur des points de croisement seront remplacés par le gène
(du même parent que celui dont est extrait le gène à remplacer), placé à l’endroit
équivalent à la position de leur doublon à l’intérieur des points de coupure.

De façon simplifiée, prenons l’exemple de l’enfant 1. Les doublons sont le gène « 1 »,


emplacements : 3, et 5. L’emplacement 5 s’avère être en dehors des points de coupure,
ce sera alors notre emplacement de gène à modifier.

Le gène « 1 », de l’emplacement 5 est extrait du parent 1 (bleu), il sera alors remplacé


par le gène à l’emplacement 3, du parent 1.
Et le même algorithme est appliqué sur l’enfant 1, de façon répétitive, jusqu’à ne plus
avoir de doublons, et ensuite sur l’enfant 2.

Le résultat final du croisement des « identifiants », est présenté dans la figure 23.

Figure 23 Résultat final du croisement des identifiants

• Finalement, la liste des opérateurs correspondants à chacun des deux parents (extraite
à l’étape 1), sera remplie en utilisant les valeurs des deux enfants résultants. De telle
sorte que [ONO 99] :

La liste d’opérateur du parent 1, est remplie avec les identifiants de l’enfant 1.

Et la liste d’opérateur du parent2, est remplie avec les identifiants de l’enfant2.


Donnant ainsi le résultat de la figure 24 ci-dessous.

43
Figure 24 Résultat final de l'opération de croisement avec la méthode PMX

2.2.6 Mutation des individus


La mutation est réalisée en prenant deux gènes de manière aléatoire d’un chromosome. Si
ces deux gènes sont des gènes « identifiant » de pièces, alors leurs emplacements
respectifs sont inversés (Voir figure 25).

Figure 25 Mutation de deux gènes "identifiants"

Si ces deux gènes sont des gènes « opérateur », alors leurs emplacements sont également
inversés (Voir figure 26).

Figure 26 Mutation de deux gènes "opérateurs"

Le problème se pose lorsque ces deux gènes sont de différents types, l’un « opérateur », et
l’autre « identifiant », avant leur inversement il faudra tenir compte de l’équation ci-
dessous, posée par T.Ono en 1999, et qui ajoute la restriction suivante au problème de
découpage, avec l’encodage postfixé :

44
• Pour tout opérateur 𝑂 dans le chromosome, le nombre d’opérateurs 𝑁𝑂 (incluant ce
dernier), doit être supérieur ou égal à 1, et, inférieur ou égal au nombre d’identifiants
𝑁𝑖 le précédent moins 1.

En d’autres termes, le nombre d’opérateurs, doit à chaque instant être précédé d’un
nombre d’identifiants plus grand, que le nombre d’opérateurs.

L’équation suivante doit donc être respectée [ONO 99] :

1 ≤ 𝑁𝑂 ≤ 𝑁𝑖 − 1

Donc, lorsque les deux gènes tirés au Hazard sont de différent type, l’équation qui suit doit
tenir pour tous les opérateurs existants entre les deux gènes tirés [ONO 99] :

𝑁𝑂 < 𝑁𝑖 − 3

Par ces équations, et les méthodes de croisement par inversion, vu ci-dessus, la validité du
chromosome résultant de l’opération de mutation est assurée.

2.2.7 Méthode de remplacement


La méthode de remplacement sert à désigner les individus qui ferons partie de la prochaine
génération.

Le remplacement est réalisé comme suit :

• Deux individus ayant la meilleure fonction fitness sont automatiquement sélectionnés


par élitisme pour apparaitre dans la prochaine génération [AFF 09].

• Le reste des individus de la population sont croisés deux à deux en étant sélectionnés
par « roue de la fortune » (les méthodes de sélection et de croisement, sont abordées
dans les sections 2.2.4, et 2.2.5), les parents peuvent ainsi faire partie de différents
croisements.

• La progéniture issue du croisement est ensuite mutée (la méthode de mutation est
décrite dans la section 2.2.6).

• Les individus issus de ces deux opérations, remplaceront la génération précédente.

Ces étapes, sont ensuite répétées, jusqu’à arrêt de notre algorithme.

45
2.2.8 Critère d’arrêt
Le critère d’arrêt sert à limiter l’exécution de l’algorithme, Au cours de ce travail, nous avons
choisi de prendre en compte deux critères d’arrêt :

o Le nombre de générations
o Et le changement de la valeur de la valeur du fitness

L’algorithme est alors exécuté pendant un nombre défini de génération, lorsque ce nombre
est relativement grand, la variation de la valeur du fitness des individus est prise en compte.

2.2.9 Assurance que le découpage est


guillotiné
Afin de confirmer que le découpage est bien un découpage guillotiné, une représentation
du décodage du génotype, en forme d’arbre (appelé « arbre de coupe ») est réalisée,
suivant le même procédé de décodage expliqué ci-dessous, sauf que cette fois-ci au lieu de
construire un phénotype réel, un arbre est construit. La figure ci-dessous montre un
exemple de décodage du génotype :

Figure 27 Représentation en forme d'arbre de coupe [ONO 99]

Cet exemple montre que l’arbre résultant du décodage du génotype donne l’ordre de
découpage à réaliser afin que celui-ci soit guillotiné.
Pour se faire, il suffit de suivre l’ordre de découpage, à partir de la racine de l’arbre jusqu’à
atteindre les feuilles, dont les numéros correspondent aux identifiants des pièces désirées

46
2.3 Contexte pratique d'utilisation
Le problème de découpage est présent dans différentes disciplines et dans différents
domaines. On le retrouve notamment dans la menuiserie, la verrerie, la couture … etc.
Notre travail consiste à appliquer l’algorithme génétiques dans un logiciel, visant à trouver
le meilleur moyen pour le découpage d’une plaque rectangulaire, en utilisant les AGs.

Etant donné que notre choix s’est porté sur un algorithme de découpage 2D, guillotiné,
notre logiciel est destiné à tous les professionnels désirant optimiser le découpage d’un
matériau afin de réaliser leurs travaux avec le moins de pertes possibles.

Considérons un système composé d’artisans, Notre application leur servira à entrer les
dimensions d’une plaque rectangulaire qu’ils souhaitent découper, mais également les
dimensions des pièces qu’il veulent obtenir. Le rôle du logiciel est alors d’utiliser les
algorithmes génétiques, et particulièrement l’algorithme sus-décrit, afin de leur proposer
le plan de coupe optimal pour leur plaque. Par la suite selon le type d’outils utilisés, ils
pourront rentrer ce plan de coupe dans des machines automatisée, ou encore simplement
le suivre manuellement.

2.4 Conclusion
Dans ce chapitre nous avons tout d’abord abordé les étapes générales de construction d’un
algorithme génétique, et nous avons pu voir toute la puissance de ces derniers dans la
résolution des problèmes d’optimisation. Par la suite, l’approche proposée pour la
résolution du problème de découpage avec guillotine à deux dimensions, dans le cas de
matériaux rectangulaires, a été détaillée. L’algorithme décrit dans ce mémoire sera
implémenté sous forme d’outil graphique convivial, qui pourra être mis à la disposition des
professionnels.

Néanmoins, la conception du système proposé nécessite d’avoir recours à un certain


nombre d’outils, et la manipulation d’un langage de programmation puissant. Les détails
de la mise en place de l’outil réalisé au cours de ce travail, mais également une description
des résultats obtenus par celui-ci sera vue en détail dans le prochain chapitre.

47
CHAPITRE 3 IMPLEMENTATION
ET CAS D'ETUDES
Pour la résolution du problème de découpage, et la mise en œuvre de l’algorithme
génétique, précédemment décrit, un logiciel a été implémenté.

Dans le chapitre précédent, nous avons détaillé la conception de l’algorithme génétique


capable de l’optimisation du découpage de matériaux, et de proposition du plan de coupe.
Dans ce chapitre nous verrons comment ces détails, sont implémentés sur la machine, afin
d’obtenir un outil fonctionnel. Nous préciserons l’environnement de développement, et les
langages de programmation utilisés. Une présentation des différentes interfaces, et une
comparaison des résultats de l’implémentation de notre algorithme seront également
décrits.

3.1 Mise en œuvre du système


Dans un premier temps, l’utilisateur est invité à rentrer les détails nécessaires à l’exécution
de l’algorithme (taille de la pièce à découper, taille des différentes pièces à découper,
paramètres de l’algorithmes … etc.) (Voir section 3.2), dès lors les individus sont codés, et
l’algorithme génétique est lancé pour 𝑁𝑏 générations (𝑁𝑏 étant un choix de l’utilisateur).
Une fois que ce nombre de générations est atteint, l’algorithme s’arrête, et renvoi le
phénotype (décodé) de la solution optimale trouvée. L’utilisateur pourra alors à nouveau
lancer l’algorithme. Un résumé du procédé général de notre système est décrit dans la
figure 28.

A noter que Dans notre système, Le positionnement initial de la première pièce à découper
est réalisé en fonction du coin supérieur gauche du rectangle d'origine, de sorte que le point
supérieur gauche de la première pièce agencée coïncide avec la pointe du coin supérieur
gauche du rectangle d’origine (soit le point (0,0)). Et Pour gagner en généralité dans le
procédé, la taille, déterminée par la largeur et la longueur des matériaux, sont quantifiés
en unités (U), toute extension dans un système réel de mesures est alors possible.

Il est important de décrire les structures de données utilisées pour le codage et le décodage
des individus, celles-ci étants par la suite simplement manipulés par les méthodes de
sélection, croisement, mutation, et remplacement.

48
1) Codage :

Les chromosomes sont représentés par une liste de « String », étant donné qu’ils se
composent de chiffres (correspondants aux identifiants des pièces), et de lettres (« H »
ou « V », qui représentent les opérateurs).

La liste représente le chromosome, et les éléments de la liste sont des gènes (identifiant
ou opérateurs).

A noter que 𝑁𝐶 = 𝑁𝑂 + 𝑁𝑖 , où :

𝑁𝑂 , correspond au nombre d’opérateurs,

𝑁𝐶 , correspond à la taille du chromosome,


Et 𝑁𝑖 , correspond au nombre de pièces,

Et malgré le fait que les listes soient dynamiques, nous savons que :

𝑁𝑂 ≤ 𝑁𝑖 − 1
(Cette formule est présentée dans la section 2.2.6) :

Supposons que : 𝑁𝑂 = 𝑁𝑖 − 1
Alors : 𝑁𝐶 = 𝑁𝑖 − 1 + 𝑁𝑖 , ce qui implique que : 𝑁𝐶 = 2𝑁𝑖 − 1
Signifiant que la taille de la liste (de chromosome) ne doit pas dépasser :2* le nombre
de pièces -1.

2) Décodage
Pour le décodage des génomes, une pile est utilisée (comme décrit dans la section
2.2.2). Lorsque deux éléments de la pile sont retirés de la pile pour être intégrés (selon
l’opérateur), un arbre binaire est construit, dont la racine est le rectangle intégré
(« pièce intégrée » de la section 2.2.2), et les feuilles sont les pièces. L’arbre binaire est
ensuite empilé.

Figure 28 Procédé de Déroulement de l'algorithme

49
3.1.1 Les différents outils utilisés
Pour la mise en œuvre de l’applications, 2 outils ont principalement été utilisés : Unity 3D
2019, et Microsoft visual studio Community 2017 pour le développement des scripts. Les
scripts ont quant à eux été écrit en C#.
1) Unity 3D 2019

Notre interface a été entièrement réalisée sous Unity 3D 2019. Unity est un éditeur
d’interfaces graphiques particulièrement utilisé dans le domaine de la création de jeu
vidéo. Cet outil s’associé avec des scripts écrits sous C#. La facilité de mise en place
d’interface sous Unity 3D, et sa parfaite compatibilité avec C#, nous a conforté dans notre
choix de cet outil pour la réalisation de l’interface.

Unity permet facilement le « Build » des applications, afin que celles-ci puissent être
partagées sous forme d’ « exécutable ».

2) Microsoft Visual Studio 2017

Visual studio 2017 est un Environnement de développement intégré (IDE), permettant le


développement d’applications .NET, Web, et mobile.
Il permet notamment le développement d’applications en utilisant les langages : C# et
C++. Cet IDE est disponible sur les systèmes d’exploitation : « Microsoft », et « Mac OS ».

3) C#

C # est un langage souple, bien que fortement typé, qui facilite le débogage et le maintien
de la structure du programme. C# est un langage orienté objet, dont la syntaxe
s’apparente à celle de java. Il permet le développement d’applications sur la plateforme
.NET de Microsoft©.

3.1.2 Structure de l’application


L’application se compose de deux scripts écrits en C# :

- Le premier script « Interface » :

Ce script est en grande partie responsable de l’interface principale de


l’utilisateur. Ce script gère les données entrées par l’utilisateur pour la
spécification du problème. Il est responsable de toutes les actions de
l’utilisateur sur l’interface principale. Il est également chargé de dessiner, de
manière primaire les pièces entrées par l’utilisateur sur le rectangle à
découper.

50
Les pièces sont dessinées en fonction de la largeur, et longueur restante sur le
rectangle. De sorte que :
𝑊𝐷𝑖𝑓𝑓 = 𝑊𝑅𝑒𝑐𝑡 𝑇𝑜𝑡𝑎𝑙 − 𝑊𝑝𝑖è𝑐𝑒

𝐻𝐷𝑖𝑓𝑓 = 𝐻𝑅𝑒𝑐𝑡 𝑇𝑜𝑡𝑎𝑙 − 𝑊𝑝𝑖è𝑐𝑒

Tel que :

𝑊𝐷𝑖𝑓𝑓 (resp. 𝐻𝐷𝑖𝑓𝑓 ) représente la différence entre la largeur (resp. Longueur)


restante du rectangle à découper, et la largeur (resp. Longueur) de l’actuelle
pièce à découper.

𝑊𝑅𝑒𝑐𝑡 𝑇𝑜𝑡𝑎𝑙 , (resp. 𝐻𝑅𝑒𝑐𝑡𝑇𝑜𝑡𝑎𝑙 ) représente la largeur (resp. Longueur) minimum


restante sur le rectangle.

𝑊𝑝𝑖è𝑐𝑒 , (resp. 𝐻𝑝𝑖è𝑐𝑒 ) représente la largeur (resp. Longueur) de la pièce actuelle


à insérer.

Les pièces sont alors insérées A gauche : si 𝑊𝐷𝑖𝑓𝑓 ≥ 𝐻𝐷𝑖𝑓𝑓 , et en haut,


sinon.

La figure 30 montre le résultat graphique des placements des pièces.

- Le deuxième script « Genetic_algo » :


Ce script responsable de l’exécution de l’algorithme génétique, et de toutes les
actions qui ont lieu dans la deuxième (et dernière) fenêtre de l’application. Ce
script est également chargé d’afficher le phénotype résultat. Et réagi à l’action
de l’utilisateur (d’avancer dans les générations), et d’afficher les meilleurs taux
de fitness.

3.2 Description de l'environnement


réalisé
Notre système se compose de deux interfaces (volontairement écrites en anglais):

1) Interface principale :

Lors du lancement de notre système une première interface apparait, Cette interface est
composée de deux parties distinctes, une partie d’insertion d’informations, et une autre
d’affichage graphique (Voir figure 29).

Dans un premier temps l’utilisateur est invité à rentrer les différentes tailles des pièces
(dans la section : « piece informations ») qu’il souhaite découper. Lorsque l’utilisateur
rentre la largeur, et la longueur des pièces (à découper), un texte affichant la superficie
(« Area »), de cette pièce est automatiquement mis à jour. Lorsque l’utilisateur clique sur
le bouton « Add », afin de confirmer l’ajout de cette pièce comme pièce à découper ; cette

51
dernière est automatiquement affichée avec ses dimensions, sur la deuxième partie de
l’interface, qui affiche de manière dynamique les pièces à découper au fur et à mesure
(respectant l’algorithme décrit dans le script « interface » vu dans la section 3.1.2), un
compteur indiquant le nombre de pièces rentrées est également mis à jour.

Dans un second temps, l’utilisateur rentre les informations liées aux dimensions du
rectangle principal à découper, dans la partie : « sheet informations ». L’interface
d’affichage des pièces à découper sera également automatiquement mise à jour en
fonction de la taille du rectangle.

Une foi ces informations rentrées, l’utilisateur a le choix de changer ou non les paramètres
de l’algorithme. Ces paramètres sont :

- La taille de la population « Population size »

- La probabilité de mutation « mutation prob. »

- Le facteur « Min Rect. Area factor », qui est le facteur de minimisation de l’aire
totale du rectangle à découper 𝑊𝑓1 (Voir section 2.2.3).

- Le facteur « Squared factor », qui est le facteur de maximisation du rapport


entre les deux côtés du rectangle (afin d’obtenir un carré) 𝑊𝑓2 (Voir section
2.2.3).

La configuration standard par défaut de ces valeurs a été choisie en nous basant sur les
travaux de A. Bortfeldt, en 2004, qui préconise les valeurs suivantes [BOR 04] :
- Taille de la population = 50
- Probabilité de mutation = 0.33

- Facteur 𝑊𝑓1 = 6

- Facteur 𝑊𝑓2 = 8

Dans le cas où l’utilisateur se trompe, il a la possibilité de cliquer sur le bouton « Clear »,


pour effacer l’ensemble des pièces rentrées.

Concernant la partie d’affichage des pièces insérées, en plus d’un affichage graphique des
pièces à découper, elle se comporte d’un Panel ajustable en fonction de la taille du
rectangle à découper, et d’une zone de texte qui se met à jour de façon dynamique,
affichant la capacité restante du rectangle (Voir figure 30).

Dans le cas où aucune pièce n’est insérée, et que l’utilisateur clique tout de même sur le
bouton « Start », le message d’alerte de la figure 31 apparait.

Dans le cas où l’utilisateur souhaite ajouter des pièces à découper, alors que la capacité du
rectangle initial est atteinte, le message d’alerte de la figure 32 apparait.

52
Figure 29 Interface Principale du système

Figure 30 Interface principale - partie insertion de pièces. (Le rectangle à découper est en gris)

53
Figure 31 Message d'alerte - cas : aucune pièce insérée -

Figure 32 Message d'alerte -cas : plus de place pour insérer des pièces -

2) Interface de résultat

Cette interface est également composée de deux parties. Dans la première l’utilisateur
choisi sur quel bouton cliquer, afin de lancer l’algorithme pour 100, 1000, 5000, ou encore
10 000 générations (Voir figure 33). Si l’utilisateur choisi 10 000 générations, alors
l’algorithme peut continuer jusqu’à atteindre 10 000 générations, ou alors il s’arrête
lorsque la première variation de la fonction fitness est atteinte.

A la fin de l’exécution de chaque nombre de génération défini par l’utilisateur, le résultat


correspondant au génotype ayant la meilleure valeur de fitness est affichée graphiquement
(dessiné), et le nombre de générations (en rouge sur la figure 33) est mis à jour.

Les 200 meilleures valeurs de fitness trouvées sont également enregistrées et affichées
sous forme de liste déroulante, le temps d’exécution de « N » générations est également
affiché, ainsi que le temps total de l’exécution de l’algorithme.

Les boutons restent rouges tant que l’exécution de l’algorithme est en cours d’exécution,
et redeviennent noirs à la fin de celle-ci, signifiant que l’utilisateur peut à nouveau interagir
avec l’interface (Voir figure 34).
Un bouton « Debug pop » (Debug Population) est également mis à disposition des
utilisateurs sous Unity, car ce dernier utilise la console pour afficher les différentes valeurs
de fitness des individus de la population, et le génotype correspondant (Voir figure 35).

54
Figure 33 Interface d'affichage de résultat

Figure 34 Boutons rouges pendant l'exécution de l'algorithme

Figure 35 Résultat sur la console de Unity lors du clic sur le bouton "Debug pop"

3.3 Application à des cas d'étude


Toute l’exécution des cas de tests est réalisée sur un ordinateur ayant les caractéristiques
suivantes :

55
- Processeur Intel i3 5 -ème génération

- RAM 4Go
- Windows 8.1 Professionnel 64 bits

Afin de tester notre application, nous avons comparé les résultats obtenus pour le
problème de découpage d’un rectangle de 300 * 400 (hauteur 300, largeur 400).

En pièces, dont les dimensions sont présentées dans le tableau ci-dessous (Ce problème est
inspiré du challenge ROADEF 7 [TLI 18] :

Identifiant Hauteur Largeur


de la pièce

1 100 200

2 150 50

3 50 75

4 50 125

5 100 200

6 50 50

7 135 75

8 50 50

9 65 75

10 135 75
Tableau 3 Description du problème à résoudre

Les tests du système sont réalisés avec les valeurs de paramètres décrites dans le tableau
suivant, et les valeurs de la fonction fitness sont affichées à 100, 1000, 5000, et 10000
générations :

7
Ce challenge européen, mis en place par « La société français de recherche opérationnelle et aide à la
décision » est destiné aux doctorants, le principe est de mettre des équipes de doctorants en compétition, afin
de comparer les résultats obtenus par les algorithmes qu’ils proposent. Le challenge de cette année porte sur
l’optimisation du découpage de matériaux.

56
N° Taille Prob. 𝑾𝒇𝟏 𝑾𝒇𝟐 Fitness Fitness Fitness Fitness
Test De max à 100 max à max à max à
de
muta - gen. 1000 gen. 5000 gen. 10000
la tion gen.
population

1 50 0.33 6 8 11.47 12.59 12.93 12.93

2 50 0.2 6 8 12.29 12.88 12.88 12.88

3 50 0.5 6 8 11,68 12.93 12.93 12.93

4 20 0.33 6 8 11.23 11.52 11.52 11.52

5 20 0.2 6 8 11.63 11.92 11.92 11.92

6 20 0.5 6 8 11.75 11.89 11.90 11.92

7 90 0.33 6 8 11.55 12.88 12.93 12.93

8 90 0.2 6 8 11.52 12.25 12.80 12.81

9 90 0.5 6 8 12.26 12.91 12.96 13.33

10 90 0.5 3 5 7.31 7.31 7.31 7.45

11 90 0.5 1 5 6.35 9.68 10.88 10.88

12 90 0.5 9 5 6.55 6.91 7.31 9.60

13 90 0.5 6 2 7.88 7.64 7.88 7.88

14 90 0.5 6 10 10.62 10.80 10.88 10.88

15 90 0.5 1 8 6.86 9.31 9.31 9.31


Tableau 4 Résultats obtenus par l'AG proposé

Les résultats de ce tableau, sont décrits dans le graphe de la figure 36 ci-dessous, Ce graphe
montre l’évolution de la valeur de la fonction fitness, en fonction du nombre de
générations.
Ce graphe montre que les tests qui convergent le plus rapidement sont les tests : 2, et 9,
mais que seul le test 9 atteint la valeur de fitness maximale qui est 13.33.

Tous les tests ont en commun une évolution du fitness maximum de la population, avec
l’augmentation du nombre de générations.

57
Figure 36 Graphe des valeurs de fitness des différents tests en fonction du nombre de générations

Discussion des résultats obtenus :


Le taux de mutation à 0.2 est le plus mauvais taux de mutation, et le taux de mutation qui
nous permet d’obtenir l’optimum le plus élevé est à 0.5.

Concernant la taille de la population, nous avons remarqué que la variation de ce dernier


n’a qu’un impact mineur sur le taux de fitness, mais impact la rapidité à laquelle converge
l’algorithme, à savoir que plus le nombre d’individus de la population est élevé, plus la
convergence est rapide.
La baisse du facteur 𝑊𝑓1 , impacte négativement la valeur de la fonction fitness, de même
que sa hausse, la valeur avec laquelle nous avons obtenu les meilleurs taux est : 𝑊𝑓1 = 6.

La baisse du facteur 𝑊𝑓2 , et sa hausse, impactent également négativement la valeur du


fitness, la valeur optimale pour ce facteur est 𝑊𝑓2 = 8

La meilleure solution obtenue, est atteinte (au bout de 10 000 générations) avec les valeurs
de paramètres suivantes :

- Taille de la population = 50

- Probabilité de mutation = 0.5


- 𝑊𝑓1 = 6

- 𝑊𝑓2 = 8

58
La valeur maximum obtenue pour la fonction fitness de ce problème est : 13.33

La solution optimale trouvée est à la figure 37.

Figure 37 Solution optimale obtenue au test N° 9

3.4 Comparaison avec d'autres


approches / outils
Afin de comparer notre approche avec différents outils déjà existants sur le marché, nous
avons choisi les 2 outils suivants (Pour la présentation des outils, voir Annexe A)
- Cutlogic 2D

- OptiCut

- SmartCut

Pour le découpage d’un panneau de 500 * 500, en pièces de tailles suivantes

Pièce Largeur Hauteur

1 100 30

2 50 30

3 50 50

4 100 50

5 80 60

6 70 60
Tableau 5 Description du problème à résoudre pour comparaison

Nous avons ensuite comparé les résultats obtenus par notre algorithme, et de ces 3 outils,
dans le tableau ci-dessous :

59
Outils Temps pour trouver la meilleure solution

CutLogic 2D 2050 Ms

OptiCut 1110 Ms

OptimiK 2450 Ms

Notre approche 2179 Ms


Tableau 6 Résultat obtenus lors de la comparaison d'outils

Ces résultats, sont traduits dans le graphe de la figure 37 ci-dessous, qui présente les temps
d’exécutions des différents outils choisis, et de notre approche, pour la résolution du
problème suscité.

Figure 38 Graphe d'évaluation du temps d'exécution des outils pour la résolution du problème

A noter que la meilleure solution trouvée par notre algorithme est présentée dans la figure
38 et a été atteinte au bout de 244 générations, avec les paramètres de configuration par
défaut, et la meilleure valeur de la fonction fitness trouvée est 13.46.

60
Figure 39 Meilleur solution au problème atteinte par notre Approche

Nous remarquons d’après l’étude des résultats obtenus, que notre approche s’inscrit dans la
moyenne des résultats des approches commercialisées.

3.5 Conclusion
Au cours de ce chapitre nous avons détaillé les étapes de construction de l’outil matérialisant
notre approche de résolution du problème de découpage de matériaux par algorithme
génétique. Par la suite nous avons expliqué l’utilisation de ce dernier, en présentant
notamment son interface graphique simple, et ergonomique. Nous avons ensuite testé notre
algorithme, en faisant varier les valeurs des différents paramètres, afin de déduire la
configuration optimale.

Finalement, une comparaison entre les résultats obtenus par notre approche, et des outils
commercialisés a été réalisée, cette comparaison a notamment mis en avant le fait que notre
outil est dans la moyenne des outils disponibles pour la résolution du problème de
découpage de plans rectangulaires.

61
CONCLUSION ET PERSPECTIVES
Le problème de découpage est un problème récurrent dans le milieu industriel. L’objectif
principal de la résolution de dernier, est la minimisation des chutes, et par conséquent des
pertes économiques, et écologiques engendrées par un mauvais plan de coupe de
matériaux.
Plusieurs Solutions existent au problème de découpage, celles-ci sont généralement
exhaustives, et spécifiques à un problème particulier. Tandis que les algorithmes
génétiques peuvent servir à résoudre toutes les variantes des problèmes d’optimisation, et
offrent des résultats qui respectent les contraintes, et dans un temps raisonnable.

Résumé des contributions


Après une synthèse approfondie des travaux de recherches réalisés dans le domaine de
l’optimisation du découpage, nous estimons que ce travail nous a permis de mettre en place
un algorithme génétique capable de résoudre rapidement, et efficacement ce problème.
Dans un premier temps, nous avons identifié les différents critères de classification de
découpage, en fonction du type de matériaux, et du mode de découpe. Certains matériaux
supportent difficilement les variations d’angle de coupe, et nécessitent un découpage de
bout à bout, guillotiné. D’autres, n’autorisent pas les rotations des pièces à découper, en
raison de certaines caractéristiques propres à ces derniers. Parmi les grandes familles de
problème de découpage, nous avons choisi l’optimisation du cas le plus général, qui est le
découpage à deux dimensions, guillotiné, et orthogonal. Quel que soit le matériau choisi,
et quels que soient les contraintes de celui-ci, ce type de découpage lui est applicable.
Comme point de départ à notre approche, nous avons abordé les différents aspects, et les
grandes lignes des algorithmes génétiques, afin d’utiliser ces acquis dans le développement
d’une approche de résolution du problème de minimisation de chutes de matériaux. Une
fonction fitness basée sur différents facteurs tel que la minimisation du rectangle à
découper, et la maximisation du rapport entre sa largeur, et sa longueur a été adoptée. Un
croisement PMX, et une sélection hétérogène, élitiste, et par roue de la fortune ont
également été choisis.
Un outil pratique a finalement implémenté cette approche, et a montré sa puissance en
comparaison avec les outils existants, à travers des tests pratiques. Cet outil est
configurable, et offre la possibilité de varier les valeurs des différents paramètres.
De plus, au vu des résultats obtenus lors des tests, nous pouvons constater que le
découpage de plans rectangulaire par algorithmes génétiques est un processus non
déterministe. L’assurance d’atteindre une solution optimale est guidée par la fonction
fitness, et par la solution de départ qui est aléatoire.

62
Perspectives de recherche
Plusieurs perspectives futures s’offrent à ce travail, tout d’abord, une extension possible
est la conversion de l’algorithme génétique en algorithme génétique parallèle, divisé en
sous-populations de tailles réduites, réparties sur plusieurs machines. Ce type de solutions
assure de couvrir un plus grand espace de recherche.
Ensuite, une amélioration de la qualité de la solution peut être atteinte, en autorisant la
rotation des pièces à découper, ou encore en prenant en compte les variations, et
imperfections, présentes au niveau des matériaux.
Nous comptons également dans un futur proche, prendre en compte l’épaisseur de l’outil
de coupe, étant donné la variété des modes de découpage.
Finalement, des améliorations techniques au niveau de l’application réalisée sont
également à prévoir, telles que l’exportation, et importation de fichiers XML, ou Excell, issus
notamment des logiciels de dessin d’objets variés.

63
BIBLIOGRAPHIE
[AFF 09] M. Affenzeller, S. Winkler, S. Wagner et A. Beham, Genetic Algorithms and Genetic
Programming Modern Concepts and Practical Applications, Taylor & Francis Group,
CRC, 2009.
[AVD 15] A. Avdzhieva, T. Balabanov, G. Evtimov, D. Kirova, H. Kostadinov, T. Tsachev, S.
Zhelezova et N. Zlateva, «Optimal Cutting Problem,» chez Problems and FinalReports
of 113th European Study Group with Industry, 2015.
[BEA 85] J. E. Beasley, «An exact two-dimentional non-guillotine cutting tree search procedure,»
Operational Research, pp. 49-64, 1985.

[BEL 04] G. Belov, «Problems, Models and Algorithms in One- and Two-Dimensional Cutting,»
St. Petersburg - Russie, 2004.

[BEN 00] O. Ben Ayed, «Problemes de découpe : synthèse du cas unidimensionnel,» Science de
gestion, pp. 25-50, 2000.

[BEN 03] W. Benfold, M. Manfrin, A. M. R. Manso et S. Spinella, «A Genetic Algorithm for 2D


Glass Cutting Problem,» 2003.

[BOR 04] A. Bortfeldt, «A genetic algorithm for the two-dimensional strip packing problem with
rectangular pieces,» European journal of operational reserch, pp. 814-837, 2004.

[BOU 98] C. K. Bounsaythip, «Algorithmes Heuristiques et Evolutionnistes : Application à la


Résolution du Problème de Placement de Formes Irrégulières,» Lille - France, 1998.

[CHA 11] T. Chaari, «Un algorithme génétique pour l’ordonnancement robuste: application au
problème du flow shop hybride,» Famars - France, 2011.

[DYC 90] H. Dyckhoff, «A typology of cutting and packing problems,» European Journal of
Operational Research, pp. 145-159, 1990.

[GOL 10] O. Goldreich, P, NP, and NP-Completeness: The Basics of Computational Complexity,
Cambridge University Press, 2010.

[GOU 18] G. Gouvine, «Recherche à voisinage large pour la découpe de verre, appliquée au
challenge ROADEF 2018,» ROADEF, Paris, 2018.

64
[GUE 09] W. GUENOUNOU, «Méthodologie de conception de contrôleurs intelligents par
l'approche génétique- application à un bioprocédé,» Toulouse - France, 2009.

[HAE 91] W. Haessler et P. E. Sweeney, «Cutting stock problems and solution procedures,»
European Journal of Operational Research, pp. 141-150, 1991.

[HAJ 10] M. Haj-rachid, C. Bloch, W. Ramdane-cherif et P. Chatonnay, «Différents opérateurs


évolutionnaires de permutation: sélections, croisements et mutations,» Besançon -
France, 2010.
[HOP 01] E. Hoper et B. C. H. Turton, «A Review of the Application of Meta-Heuristic
Algorithms to 2D Strip Packing,» Artificial Intelligence Review, vol. 16, pp. 257 - 300,
2001.
[HRI 04] M. Hristakeva et D. Shrestha, «Solving the 0-1 Knapsack Problem with Genetic
Algorithms,» IEEE access, 2004.

[KAN 60] L. V. Kantorovich, «Mathematical methods of organizing and planing production,»


Management Sci., pp. 363-422, 1960.

[KUR 19] V. Kureichik, L. Kureichik,, V. J. Kureichik et D. Zaruba, «Bioinspired Algorithm for


2D Packing Problem,» Springer Nature, pp. 36-46, 2019.

[LOD 01] A. Lodi, S. Martello et D. Vigo, «Recent advances on two-dimensional bin packing
problems,» Discrete applied mathematics, pp. 379-396, 2001.

[LOD 99] A. Lodi, S. Martello et D. Vigo, «Heuristic and Metaheuristic Approaches for a Class
of Two-Dimensional Bin Packing Problems,» INFORMS Journal on Computing, pp.
345-357, 1999.
[MAN 10] S. M. Manyatsi, «Investigating some heuristic solutions for the two-dimensional cutting
stock problem,» Johannesburg - Afrique du sud, 2010.

[MAR 10] D. Martens, B. Baesens et T. Fawcett, «Editorial survey: swarm intelligence for data
mining,» Mach Learn, pp. 1-42, 2010.

[MIL 15] S. E. Mili, «Classification des systèmes bio-inspirés : vers une approche basée
modèles,» Annaba - Algérie, 2015.

[MOR 13] F. Moreira da Costa, T. Carvalho et R. J. Sassi, «Application of Bio-inspired


Metaheuristics to Guillotined Cutting Processes Optimize in an Glass Industry,» chez
Distributed, Ambient, and Pervasive Interactions. DAPI 2013, Berlin, 2013.

65
[OLI 16] J. F. Oliveira, A. J. Neuenfeldt, E. Silva et M. A. Carravilla, «A SURVEY ON
HEURISTICS FOR two dimentional rectangular strip packing problem,» Pesquisa
Operacional, pp. 197-226, 2016.
[ONO 99] T. Ono, «Optimizing two-dimensional guillotine cut by genetic algorithms,» Proc. of
the Ninth AJOU-FIT-NUST pp. 40-47, 1999.

[PAL 06] L. Pal, «A Genetic Algorithm for the Two-dimensional Single Large Object Placement
Problem,» 3rd Romanian-Hungarian Joint Symposium on Applied Computational
Intelligence, 2006.
[RAM 10] S. Ramde, «Simulation numérique d'une opération de découpage et méthodologie de
calcul pour optimiser la qualité de la pièce découpée et les sollicitations de l'outillage,»
Thèse de doctorat, Toulouse - France, 2010.
[SAA 08] T. Saadi, «Résolution séquentielles et parallèles des problèmes de découpe /
placement,» Thèse de doctorat, Paris - France, 2008.

[SHA 17] H. A. Shamakhai, «The 0-1 Multiple Knapsack Problem,» Thèse de Magistère,
Sudbury, Ontario, Canada, 2017.

[TLI 18] L. Tlilane et Q. Viaud, «Challenge ROADEF / EURO 2018 Cutting Optimization
Problem Description,» 2018.

[WAN 83] P. Y. Wang, «Two Algorithms for Constrained Two-Dimensional Cutting Stock
Problems,» Operations research, pp. 573-586, 1983.

[WAS 07] G. Wascher, H. Haubner et H. Schumann, «An improved typology of cutting and
packing problems,» European journal of operational reserch - Elsevier, pp. 1109-1130,
2007.
[WEI 13] L. Weiss, «Contribution au développement d’un procédé de découpe laser haute-
énergie/ jet d’eau haute-pression couplés. Application à la découpe d’alliages
métalliques.,» Metz, 2013.

66
WEBOGRAPHIE

[1] TMachines, «CutLogic2D,» [En ligne]. Available:


https://www.tmachines.com/apps/CL2DManual.pdf. [Accès le 26 Juin 2019].

[2] Bool & Partners, «OptiCut,» [En ligne]. Available:


http://www.boole.eu/opticoupe_eng.php. [Accès le 26 Juin 2019].

[3] RK Software, «Optimik,» [En ligne]. Available: http://www.optimik.com. [Accès le 26


Juin 2019].

67
ANNEXE A

CUTLOGIC 2D
CUTLOGIC 2D est un logiciel d’optimisation du découpage de matériaux rectangulaires.
Développé par « TMACHINES », il a pour principale fonction de minimiser les chutes de
matériaux, mais aussi minimiser le nombre de planches à découper [1].
CUTLOGIC 2D, est basé sur les algorithmes génétiques. Il permet également de choisir le
type de découpage, puisqu’il propose un découpage guillotiné, et non guillotiné. Mais
également une rotation partielle de 90°. Il permet également l’optimisation en fonction du
prix des matériaux [1].

OptiCut
C’est un logiciel d’optimisation de découpage de matériaux, développé par « Boole &
partners », en France en 1996. Il permet la minimisation des chutes de matériaux, et du
nombre de planches à découper, mais pas la minimisation du cout de la découpe
(contrairement à CUTLOGIC 2D) [2].

Optimik
Est un logiciel d’optimisation de découpage de matériaux, développé par « RK Software »,
aux états unis en 1999. Contrairement à OptiCut et CUTLOGIC 2D, il ne permet pas la
minimisation du nombre de planches à découper [3].

68
Résumé
Une bonne gestion des processus industriels, nécessite de trouver des solutions aux
problèmes d’optimisation auxquels ils sont confrontés. Certains d'entre eux sont NP-durs
et ont besoin d'algorithmes spéciaux pour être résolus. C’est le cas pour le problème de
découpage de matériaux.
La résolution du problème de découpage, nécessite la proposition d’un plan de coupe
optimal, minimisant les déchets. Plusieurs méthodes exactes proposent des solutions
satisfaisantes, néanmoins, étant donné la nature complexe de ce problème, l’utilisation de
méthode heuristique tels que les algorithmes évolutionnaires, s’impose. Dans ce travail,
nous avons choisis de concevoir, et mettre en œuvre, un algorithme génétique, capable
d’obtenir et d’améliorer la solution aux déchets de coupe. Les chromosomes de cet
algorithme, sont dans un premier temps, évalués à l’aide d’une fonction fitness, celle-ci est
par ailleurs basée sur la minimisation de l’air du rectangle à découper, et la maximisation
du rapport entre sa largeur et sa longueur. Les individus sélectionnés (par élitisme et par
roue de la fortune) sont ensuite croisés par PMX, avant de subir une mutation. Les
descendants remplacent ainsi les ascendants, donnants vie à une nouvelle génération.
L’impact de ce travail est non seulement économique, sur les entreprises ayant adoptées
cette approche, mais également environnemental, à l’ère de la transition écologique.

Mots clés. Algorithme génétique, découpage, problème de découpage, optimisation,


Chutes, optimisation des chutes.

‫ملخص‬
.‫ تتطلب إيجاد حلول لمشاكل التحسين التي تواجهها‬،‫اإلدارة الجيدة للعمليات الصناعية‬
‫ هذا هو الحال بالنسبة لمشكلة‬.‫ وتحتاج إلى خوارزميات خاصة ليتم حلها‬،‫البعض منها متعدد الحدود غير الحتمية صعب‬
.‫قطع المواد‬

.‫ تقلل كمية المادة الضائعة‬،‫يتطلب حل مشكلة القطع اقتراح خطة قطع مثالية‬
‫ فإن استخدام الطريقة‬،‫نظرا للطبيعة المعقدة لهذه المشكلة‬
‫ ا‬،‫ ومع ذلك‬،‫حلوًل مرضية‬ ‫ا‬ ‫تقترح العديد من الطرق الدقيقة‬
‫ وتنفيذ خوارزمية جينية قادرة‬،‫ قررنا خالل هذا العمل تصميم‬.‫اًلستكشافية مثل الخوارزميات التطورية امر ضروري‬
‫ يتم تقييم الكروموسومات في هذه الخوارزمية ألول مرة باستخدام‬.‫ وتحسين حل لمشكلة القطع الضائعة‬،‫على الحصول‬
‫ يتم‬.‫ وتعظيم النسبة بين عرضه وطوله‬،‫ تستند هده الخيرة على تقليل مساحة المستطيل المراد تقسيمه‬،‫وظيفة اللياقة البدنية‬
‫ وبدلك يحل اًلحفاد‬.‫ قبل ان تحدت لهم طفرة وراثية‬،)‫بعد دلك تشابك األفراد لمختارين (حسب النخبوية وعجلة الحظ‬
.‫محل الجداد ويعطون الحياة لجيل جديد‬
.‫ في عصر التحول البيئي‬،‫ ولكن أيضاا على البيئة‬،‫ على الشركات التي تبنت هذا النهج‬،‫تأثير هذا العمل ليس اقتصادياا فقط‬

.‫ تحسين القطع الضائعة‬،‫ القطع الضائعة‬،‫ التحسين‬،‫ مشكلة التقسيم‬،‫ التقسيم‬،‫خوارزمية جينية‬ .‫كلمات مرشدة‬

69

Vous aimerez peut-être aussi