Académique Documents
Professionnel Documents
Culture Documents
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
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
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.
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.
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].
12
Figure 1 Relation entre les classes P, NP, NP-difficile, et NP-complet
𝐹=𝑆→𝑁
𝑛
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.
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.
14
o « α » : Représente la codification de la dimension du problème
2. Type d'allocation
• (B) Tous les objets1 et une sélection d’éléments (pièces2)
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
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
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.
- V : car de plus petites pièces sont extraites d’une pièce de plus grande taille.
A) Restriction de guillotine
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].
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é.
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 :
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.
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-F L’Orientation des pièces est fixée, et la découpe n’est pas guillotinée
(Free)
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]:
𝑅𝐺 ⊂ 𝑂𝐺
𝑒𝑡 𝑂𝐹 ⊂ 𝑂𝐺
𝑒𝑡 𝑅𝐹 ⊂ 𝑂𝐺
𝑒𝑡 𝑅𝐹 ⊂ 𝑅𝐺
𝑒𝑡 𝑅𝐹 ⊂ 𝑂𝐹
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.
❖ 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.
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.
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].
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
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
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 𝑤𝑖 >
𝑊.
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].
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.
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]
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].
25
• Algorithme « First Fit » (FF)
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].
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].
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.
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.
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.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] :
31
Figure 11 Exemple de placement d'individus sur la roue de la fortune
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].
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].
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.
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.
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
𝑀𝑖𝑛 𝑓1 (𝑝1 , 𝑝2 , … 𝑝𝑛 ) = 𝑊 𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,..𝑝𝑛 ) ∗ 𝐿 𝑅𝑒𝑐𝑡𝑀𝑖𝑛 (𝑝1 ,𝑝2 ,..𝑝𝑛 )
o Critère 2 (C2) : Regrouper l’ensemble des pièces à découper dans un carré [WAN 83].
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).
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 :
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).
Et sa largeur 𝑊𝑃 :
𝑊𝑃 = 𝑤𝑝1 + 𝑤𝑝2
Sachant que : 𝑙𝑝1 (resp. 𝑙𝑝2 ), représente la longueur de la pièce à découper 𝑝1 (resp.
𝑝2).
6
La notation postfixé fait précéder les opérandes à l’opérateur
36
Figure 17 Exemple de codage de pièces horizontales
De sorte que cette fois : La longueur 𝐿𝑝 de la pièce d’intégration est [ONO 99] :
𝐿𝑃 = 𝑤𝑝1 + 𝑤𝑝2
Et sa largeur 𝑊𝑃 :
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] :
Et quel que soit l’opérateur, le résultat de l’opération d’intégration est empilé à son
tour.
38
Figure 19 Exemple de décodage d'un chromosome
De sorte que :
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).
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
A noter que :
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 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 (𝑗)
41
Figure 20 étape 1 du croisement (préparation des chromosomes parents)
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.
Le résultat final du croisement des « identifiants », est présenté dans la figure 23.
• 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] :
43
Figure 24 Résultat final de l'opération de croisement avec la méthode PMX
Si ces deux gènes sont des gènes « opérateur », alors leurs emplacements sont également
inversés (Voir figure 26).
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.
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.
• 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).
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.
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.
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é.
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ù :
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é.
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 ».
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©.
50
Les pièces sont dessinées en fonction de la largeur, et longueur restante sur le
rectangle. De sorte que :
𝑊𝐷𝑖𝑓𝑓 = 𝑊𝑅𝑒𝑐𝑡 𝑇𝑜𝑡𝑎𝑙 − 𝑊𝑝𝑖è𝑐𝑒
Tel que :
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 :
- 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).
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
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.
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 35 Résultat sur la console de Unity lors du clic sur le bouton "Debug pop"
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] :
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
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
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
- 𝑊𝑓2 = 8
58
La valeur maximum obtenue pour la fonction fitness de ce problème est : 13.33
- OptiCut
- SmartCut
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
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.
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.
[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.
[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.
[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.
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
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.
ملخص
. تتطلب إيجاد حلول لمشاكل التحسين التي تواجهها،اإلدارة الجيدة للعمليات الصناعية
هذا هو الحال بالنسبة لمشكلة. وتحتاج إلى خوارزميات خاصة ليتم حلها،البعض منها متعدد الحدود غير الحتمية صعب
.قطع المواد
. تقلل كمية المادة الضائعة،يتطلب حل مشكلة القطع اقتراح خطة قطع مثالية
فإن استخدام الطريقة،نظرا للطبيعة المعقدة لهذه المشكلة
ا، ومع ذلك،حلوًل مرضية ا تقترح العديد من الطرق الدقيقة
وتنفيذ خوارزمية جينية قادرة، قررنا خالل هذا العمل تصميم.اًلستكشافية مثل الخوارزميات التطورية امر ضروري
يتم تقييم الكروموسومات في هذه الخوارزمية ألول مرة باستخدام. وتحسين حل لمشكلة القطع الضائعة،على الحصول
يتم. وتعظيم النسبة بين عرضه وطوله، تستند هده الخيرة على تقليل مساحة المستطيل المراد تقسيمه،وظيفة اللياقة البدنية
وبدلك يحل اًلحفاد. قبل ان تحدت لهم طفرة وراثية،)بعد دلك تشابك األفراد لمختارين (حسب النخبوية وعجلة الحظ
.محل الجداد ويعطون الحياة لجيل جديد
. في عصر التحول البيئي، ولكن أيضاا على البيئة، على الشركات التي تبنت هذا النهج،تأثير هذا العمل ليس اقتصادياا فقط
. تحسين القطع الضائعة، القطع الضائعة، التحسين، مشكلة التقسيم، التقسيم،خوارزمية جينية .كلمات مرشدة
69