• Aucun résultat trouvé

6. Résolution du problème en contexte de temps manquant

6.5. Représenter l’espace des configurations possibles sous la forme d’un arbre

L’ensemble complet des configurations possibles (pour une machine de découpe de bois de plancher) peut être représenté sous la forme d’un arbre où chaque nœud correspond à un produit, chaque arc correspond à l’activation ou la désactivation de ce produit, et chaque feuille de l’arbre correspond donc à un scénario qui pourrait être simulé (Figure 29).

2

1

3

4

5

6

7

8

Produit 1

Produit 2 Produit 2

Produit 3 Produit 3 Produit 3 Produit 3

Actif Inactif

Actif

Actif Actif Actif Actif

Actif Inactif

Inactif Inactif Inactif Inactif

Inactif

Figure 29 : Arbre de recherche pour le problème de configuration d’usine de bois de plancher

En programmation par contraintes, des méthodes ont été développées pour fouiller dans cet arbre. Le parcours en profondeur (Depth First Search, ou DFS) de cet arbre permet d’énumérer toutes les configurations possibles. Si le temps de simulation est limité, nous visiterons donc les n configurations les plus à gauche. Or, de cette manière, les scénarios simulés risquent d’être très semblables les uns par rapport aux autres. En effet, en contexte de temps limité, il est fort probable que la majeure partie de l’arbre ne soit jamais visitée.

Or, les feuilles visitées de manière consécutive avec cet algorithme sont très semblables les unes aux autres. Par exemple, la première et la deuxième configuration ne diffèrent que d’une seule valeur l’une par rapport à l’autre. Les valeurs de certaines variables (e.g. l’état « inactif » du « produit 1 » dans la figure 29) n’auront même jamais été testées si on a le temps de visiter seulement le début de l’arbre.

Cependant, il existe des techniques d’exploration d’un arbre permettant, si le temps est limité, d’explorer un échantillon beaucoup plus représentatif de l’ensemble des feuilles. C’est le cas de l’algorithme LDS (Limited Discrepancy Search). Introduit par Harvey et Ginsberg [116] (puis amélioré par Korf [117]), LDS est une stratégie de recherche dans les arbres qui permet de visiter en un temps donné un ensemble de feuilles beaucoup plus hétérogènes que ne le ferait DFS (Figure 30). LDS est un algorithme itératif. En effet, dans une approche classique DFS, les solutions possibles auront tendance à se ressembler au début de la recherche. Les nœuds sont classés dans un certain ordre grâce à un critère de classement (e.g. un algorithme ou une heuristique). Si le classement est parfait, alors les meilleures solutions se trouveront sur la gauche de l’arbre. Avec DFS, si de meilleures solutions existent à l’autre bout de l’arbre, par manque de temps, elles ne seront jamais découvertes. Avec LDS, dans une première itération, ce sont les feuilles de l’arbre qui n’ont pas de déviations qui vont être visitées (soit seulement la feuille de la branche la plus à gauche, dans notre exemple, celle pour laquelle tous les produits sont actifs). Une déviation correspond à une branche dont la valeur n’est pas la « meilleure » choisie par l’heuristique ou l’algorithme (critère de classement). Dans une seconde itération, ce sont les feuilles de l’arbre qui n’ont qu’une seule déviation (ou moins) qui vont être visitées. Dans une troisième itération, ce sont les feuilles de l’arbre qui ont deux déviations (ou moins) qui vont être visitées et ainsi de suite. LDS est généralement utilisé avec un arbre binaire, mais pas obligatoirement, car il est possible de voir n’importe quelle branche, à l’exception de la branche la plus à gauche comme une déviation [117]. Selon Gaudreault et al. [118], ILOG SOLVER est capable de transformer automatiquement un arbre qui n’est pas binaire en arbre binaire. Par ailleurs, il est à noter que changer l’ordre dans lequel les produits sont énumérés (i.e. quel est le premier produit placé au haut de l’arbre, le deuxième, etc.) change la topologie de l’arbre et donc l’ordre dans lequel les solutions seront énumérées.

2

1

3

5

Produit 1 Produit 2 Produit 2 Produit 3 Produit 3 Actif Inactif Actif Actif Actif Inactif Inactif Inactif 1 Produit 4 Actif Inactif 2 3 6 4 7 8 12

2

1

3

5

Produit 3 Produit 3 Actif Actif Actif Inactif Inactif Inactif 5 Actif Inactif 9 10 13 11 14 15 16

Figure 30 : Ordre des feuilles visitées par LDS pour un arbre de profondeur 4

Actuellement, la version améliorée de LDS, Improved LDS [117] (ILDS) est implémenté par la plupart des auteurs à la place de LDS bien qu’ils affirment utiliser LDS. LDS est en effet souvent présenté plus comme un concept que comme un algorithme.

D’autres variantes de cette approche (ex : DDS, DBDFS, IDFS) ont ensuite été proposées par différents auteurs. Elles sont recensées par Barták [119]. Tout d’abord, Depth-bounded

Discrepancy Search (DDS) introduit par Walsh [120] se veut être une combinaison de LDS

avec Iterative Deepening Search [121]. Il utilise donc une approche itérative qui prend en compte la profondeur de l’arbre. Pour la première itération, seule la branche la plus à gauche va être visitée. Lors de la seconde itération, c’est la branche n’ayant qu’une déviation au niveau du sommet (1er nœud) qui sera visitée. Pour la troisième itération, ce sont les deux branches ayant une déviation au niveau du second nœud de chaque branche partant du sommet qui seront visitées et ainsi de suite.

Interleaved Depth-First Search (IDFS) introduit par Meseguer [122] permet de rechercher

en parallèle plusieurs sous-arbres à l’aide d’un seul processeur. Lorsqu’une feuille est trouvée, l’algorithme va chercher dans un sous-arbre parallèle et ainsi de suite.

Discrepancy-Bounded Depth First Search connu sous l’abréviation DBDFS [123] permet

d’examiner les branches (en suivant l’algorithme DFS) avec des déviations appartenant à un intervalle. À chaque itération i, toutes les feuilles des branches ayant des déviations comprises entre (i-1)k et ik-1 inclus sont visitées, k est appelé « la largeur de la recherche ».

Selon Prcovic [124], « le but est de réduire la redondance au détriment de la qualité de l’ordre de visite des branches ».

Beck et Perron [123] comparent DDS, LDS, DFS et DBDFS pour des problèmes d’ordonnancement multi-gammes (job shop scheduling). Dans leur cas, LDS est plus performant que DDS pour trouver de bonnes solutions. Au global, dans leur étude, DFS est beaucoup moins performant que les autres algorithmes; les différences entre les trois autres algorithmes sont beaucoup moins significatives.

D’autres techniques basées sur LDS ont vu le jour telles que RLDS (Reverse LDS) qui visite les feuilles de l’arbre dans le sens inverse de LDS pour chaque itération [124] ou encore YIELDS (Yet Improved LDS) proposé par Karoui et al. [125] qui, entre autres, permet d’arrêter la recherche dans l’arbre lorsque le problème est impossible à résoudre avant même d’avoir visité toutes les branches de l’arbre. Prosser et Unsworth [126] conseillent d’utiliser LDS en combinaison avec la condition d’arrêt de YIELDS. Moisan et al. [127] utilisent LDS pour faire du calcul parallèle.

Les méthodes de retours arrière peuvent donc être appliquées pour ordonner la liste des scénarios possibles et trouver une bonne solution dans le temps imparti (Figure 31).

Scénario à évaluer

Simulation

Optimization Résultat de

l’optimisation

Choix du prochain scénario sur la liste

Oui

Temps diponible?

Fin

Non

Liste des scénarios possibles Liste des scénarios

possibles Liste des scénarios

possibles Liste des scénarios

possibles Liste des scénarios

possibles

Liste des scénarios possibles Liste des scénarios

possibles Liste des scénarios

possibles Liste des scénarios

possibles Liste ordonnée des scénarios possibles Application de LDS ou DFS

pour ordonner les scénarios

Liste des scénarios possibles Liste des scénarios

possibles Liste des scénarios

possibles Liste des scénarios

possibles Base de données

des résultats de simulation

Figure 31 : Principe de fonctionnement du cadre avec l’utilisation de méthodes issues de la programmation par contraintes

6.6. Application de la méthode

6.6.1. Expérimentation

Nous avons eu accès aux données d’une usine de bois de plancher utilisant un système de découpe tel que décrit dans la section 6.4. Nous disposons des scans d’un lot de 3340 planches passées qui nous permettent de réaliser nos simulations d’entraînement. Nous disposons de 100 heures pour réaliser nos simulations ce qui veut dire que nous n’avons le droit que de tester 298 configurations. Par la suite, G



S x( , ) |

xX

est utilisée pour produire un plan qui sera exécuté pour un lot de 6680 planches différentes de celles utilisées à l’entraînement.

Puisque les planches sont différentes de celles utilisées à l’entraînement, les contraintes de marché peuvent parfois ne pas être respectées. Étant donné que la production réelle diffère de celle prévue par le plan, il est possible de rouler G à nouveau pendant l’exécution pour

rectifier cet écart. Deux méthodes d’application du plan différentes sont ainsi évaluées. La première, le plan est simulé sur l’ensemble du lot, la seconde, le plan est réactualisé à intervalles réguliers pour prendre en compte les éventuels écarts entre la production réelle et la production prévue.

Pour plus de détails sur le fonctionnement du système de production de bois de plancher et du simulateur utilisé, le lecteur pourra se référer à Wery et al. [128].

Dans l’expérimentation qui suit, nous allons comparer 4 approches pour choisir les configurations à tester : ad hoc (1), DFS (2), LDS (3) et aléatoire (4). La première stratégie a été spécialement élaborée pour ce cas. Elle est basée sur des résultats de précédentes productions/simulations. Dans le cas de DFS (2) et LDS (3) nous comparerons également l’impact de différentes heuristiques de choix de variables (appelées ici stratégies de choix de produits, i.e. comment déterminer quels produits placer en haut de l’arbre). Nous évaluerons les stratégies suivantes :

 Produits disposés au hasard (Quelconque)

 Produit le plus rentable en premier (Plus rentable)  Produit le moins rentable en premier (Moins rentable)

 Produit le plus produit (par rapport à des productions passées) en premier (Plus produit)

 Produit le moins produit (par rapport à des productions passées) en premier (Moins produit)

Nous disposons de 165 produits différents que l’usine peut produire. Tout d’abord, un filtrage a été effectué pour ne pas évaluer des combinaisons de produits impossibles ou improbables. Le filtrage nous permet donc de ne nous occuper que des produits pouvant changer d’états. Ils sont au nombre de 24. Le nombre de combinaisons possibles passe alors à 224.

Pour chaque couple stratégie de recherche/stratégie de choix des produits, nous obtenons donc un « historique de production » associé. Cela nous permet de déterminer un plan grâce au modèle de planification.

Chaque plan est ensuite appliqué sur l’ensemble de tests. Pour chaque scénario, 30 réplications sont effectuées. À chaque réplication, l’ordre des planches est modifié. Néanmoins, la découpe des planches est simulée dans le même ordre pour chaque ième réplication d’un scénario (i.e. pour chaque scénario, les planches sont découpées dans le même ordre pour la ième réplication, ce qui satisfait à la condition des Common Random

Numbers).

Une heuristique ad hoc (3) est utilisée comme point de comparaison. Cette heuristique a été élaborée spécialement pour trouver de « bonnes » configurations (listes de produits actifs) pour le problème appliqué au bois de plancher. Elle se base sur des résultats de simulations préalablement effectuées. Une fois ces listes déterminées, la méthode décrite précédemment est utilisée pour les phases suivantes. Un second point de comparaison est utilisé (4). Cette fois, les configurations à simuler sont déterminées aléatoirement (après filtrage des combinaisons impossibles). Pour ce dernier cas, étant donné que plusieurs configurations différentes peuvent être trouvées en répétant l’opération, nous avons réalisé 5 sets de 298 configurations différentes.

6.6.2. Résultats

Le tableau 1 présente la valeur monétaire moyenne obtenue en fonction de l’approche utilisée ainsi que la demi-largeur de l’intervalle de confiance à 95% pour 30 réplications. À noter qu’à des fins d’interprétation nous présentons la valeur annualisée de la production.

Tableau 1. Résultats des différentes optimisations/simulations pour chaque couple Algorithme/Heuristique Algorithme Caractéristiques du choix de combinaison de produits Replanification Sans Avec Valeur annuelle en $ Valeur annuelle en $ Ad hoc (1) 40 364 506 40 491 317 ± 9 602 ± 8 731 DFS (2) Quelconque - - - - Plus rentable - - - - Moins rentable - - - - Plus produit - - - - Moins produit - - - - LDS (3) Quelconque 40 351 539 40 492 468 ± 11 632 ± 7 098 Plus rentable 40 351 539 40 492 896 ± 11 632 ± 6 856 Moins rentable 40 351 539 40 493 069 ± 11 632 ± 6 863 Plus produit 40 351 539 40 493 332 ± 11 632 ± 6 922 Moins produit 40 351 539 40 492 960 ± 11 632 ± 7 159 Aléatoire (4) Set 1 40 092 227 39 957 248 ± 12 163 ± 41 983 Set 2 40 115 314 40 064 316 ± 18 894 ± 21 116 Set 3 40 166 875 40 095 781 ± 15 029 ± 27 219 Set 4 40 119 110 40 027 839 ± 15 690 ± 27 374 Set 5 40 253 188 40 133 279 ± 11 562 ± 25 006 Global (Moyenne 40 149 219 40 055 693

Dans le cadre de l’algorithme LDS, nous trouvons de bonnes solutions, viables, et ceci dans le temps imparti (100 heures). Sans replanification, l’algorithme ad hoc est un peu meilleur (+0,032%) que LDS (Figure 32). Avec replanification, il n’y a pas de différences significatives.

Concernant les différentes heuristiques de choix de variables, il n’est pas possible de dénoter des différences significatives. Les résultats obtenus dans cette expérimentation ne dépendent pas de la stratégie de choix des produits. En effet, pour environ 300 combinaisons (listes de produits actifs) différentes, l’arbre de recherche est à la fin de la seconde déviation. De ce fait, les feuilles visitées se ressemblent énormément et seules quelques feuilles sont différentes. Cela explique le fait que ce sont majoritairement toujours les mêmes combinaisons de produits actifs/inactifs qui sont utilisées (avec LDS) et que l’heuristique de choix de produits n’a pas (sans replanification) ou peu (avec replanification) d’impacts sur le résultat. Cependant, si moins de combinaisons étaient étudiées, l’impact des heuristiques pourrait être très fort.

Figure 32 : Valeur annualisée de la production en fonction des stratégies utilisées

L’utilisation de nombres aléatoires pour déterminer les combinaisons à simuler ne s’avère pas intéressante. En effet, la perte de valeur par rapport à l’utilisation de LDS est en moyenne de 0.5% sans replanification et de 2.3% avec.

LDS apparaît donc être une bonne approche, car les résultats obtenus sont semblables à l’heuristique ad hoc pour le bois de plancher. Néanmoins, cette dernière ne peut fonctionner

dans le cas d’une conception d’un réseau d’usines alors que l’approche LDS peut s’y appliquer. C’est donc une approche généralisable qui ne requiert pas de connaissances particulièrement poussées du problème. Elle s’avère être rapide et simple d’implémentation.

À l’inverse, pour DFS, l’heuristique de recherche a un impact très fort puisque ce sont toutes les combinaisons autour d’une feuille qui vont être vérifiées. Nous aurons donc des combinaisons plus similaires qui vont être testées pour une heuristique. De ce fait, il n’a pas été possible de trouver une solution satisfaisant les contraintes du modèle. En effet, après 298 itérations de DFS (soit 298 combinaisons de produits actifs/inactifs différentes), sur les 24 produits, seuls neuf produits ont été au moins une fois inactivés. Les combinaisons ne sont donc pas représentatives. Dans le cadre de notre étude, DFS est à proscrire.

6.7. Conclusion

Pour résoudre ce problème de la recherche de la meilleure combinaison de scénarios, des algorithmes de fouille dans un arbre sont utilisés sur un cas d’étude appliqué à la découpe du bois de plancher. Le but est de trouver le meilleur plan possible dans un contexte où le temps nous manque. Il s’avère que l’algorithme DFS n’est pas adapté à notre contexte. L’autre algorithme étudié, LDS, fourni de bien meilleurs résultats. Étant donné le nombre élevé de combinaisons possibles et le nombre de combinaisons différentes relativement petit, en comparaison, qu’il a été possible de simuler (environ 300 pour chaque couple algorithme/stratégie de choix des produits), nous n’avons pas noté de différences significatives entre les différentes stratégies de choix des produits.

Dans nos travaux futurs, il serait intéressant de comparer LDS avec d’autres algorithmes tels que DDS ou des méthodes dynamiques. De plus, les heuristiques de choix de variables avec LDS donnent des résultats identiques (ou similaires). En effet, le nombre de feuilles à visiter durant le temps imparti était tel que les feuilles visitées étaient presque toujours les mêmes. Il serait donc pertinent d’évaluer l’impact d’une augmentation (ou diminution) de ce nombre sur les solutions pour déterminer l’importance du choix de cette heuristique.

7. Conclusion

Cette thèse propose un cadre pour résoudre le problème de la recherche de la meilleure combinaison de scénarios. Plutôt que de rechercher le meilleur scénario comme dans la plupart des cas classiques, c’est un ensemble de plusieurs scénarios maximisant conjointement une fonction objectif qui est recherché. La principale contribution de cette thèse est donc l’élaboration d’un cadre décisionnel permettant de trouver la meilleure combinaison de scénarios selon des critères définis.

Ce cadre se base sur la simulation pour évaluer chaque scénario, et sur l’optimisation pour en trouver la meilleure combinaison. La résolution de tout type de problèmes nécessitant de déterminer la meilleure combinaison de scénarios (i.e. pour lesquels le simulateur ne permet pas de simuler directement une combinaison de scénarios) pourrait tirer profit de l’utilisation de la méthode proposée. Le concept présenté peut donc être employé pour soutenir une variété de décisions. Déterminer la meilleure configuration de plusieurs usines au sein d’un réseau dans une chaîne logistique en est un exemple. Dans le cadre de cette thèse, nous avons appliqué ce cadre pour résoudre deux problèmes industriels de planification et avons ainsi démontré son applicabilité et son potentiel.

7.1. Application du cadre

7.1.1. Prise en compte des produits sur mesure dans la planification tactique des scieries de bois d’œuvre nord-américaines

Au chapitre 4, nous avons montré que cette méthode permettait d’intégrer à la planification tactique la demande pour des produits spécifiques jamais fabriqués auparavant. Pour mettre en place ce cadre, l’usine a été modélisée à l’aide du logiciel Optitek. La simulation permet d’évaluer quel serait l’impact de différentes modifications des paramètres des équipements ou de l’approvisionnement en matières premières sur le panier de produits fabriqués. Les résultats de ces simulations alimentent un modèle de planification tactique qui tient compte de la fluctuation (suivant une saisonnalité) des prix des différents produits de commodités. Le modèle de planification tactique peut ainsi définir quelle est la combinaison de scénarios la plus rentable – et de ce fait quels sont les produits les plus rentables à produire et à quels moments les produire. Le décideur est alors en mesure de déterminer quels seraient les

commandes à accepter, les paramètres des équipements à utiliser et la matière première à consommer à chaque période.

Pour appuyer cette démarche et en montrer la validité, des expérimentations ont été conduites. Elles ont montré une réelle variation du panier de produits global lors de l’introduction d’un produit sur mesure. En effet, l’introduction d’un nouveau produit affecte entièrement l’ensemble du processus de production et les produits qui seront disponibles à la vente. Accepter un contrat pour un produit sur mesure peut parfois conduire à des pertes de revenus significatives. L’implémentation du cadre permet d’éviter ces erreurs et de déterminer à quels moments l’acceptation d’un contrat peut être rentable pour la compagnie. Enfin, ces expérimentations ont mis en lumière la pertinence de l’application du cadre pour résoudre un problème concret de planification tactique.

7.1.2. Confection d’horaires pour améliorer le pilotage d’un système de découpe de bois de plancher

Au chapitre 5, nous avons montré que le cadre pouvait être utilisé pour améliorer le pilotage d’un système de découpe de bois de plancher. Dans ce cas, le système SAGE (système réel) a été utilisé en mode « hors-ligne » pour réaliser les simulations. La simulation permet ici de recréer des « historiques de production », i.e. de connaître la production attendue dans une configuration donnée pour un ensemble de planches d’entraînement. Une fois ces données connues, un horaire de production est réalisé à l’aide d’un modèle de programmation mathématique. Ce dernier permet de maximiser la valeur attendue de la production tout en respectant les contraintes de production. C’est ensuite cet horaire qui va gérer les produits (et longueurs) que SAGE va pouvoir découper sur les planches. L’horaire indique comment configurer le système de découpe tout au long de la production. Par la suite, lors de l’application de ce plan en production, l’horaire doit être actualisé à intervalles définis pour respecter de façon stricte les contraintes. En effet, les planches d’entraînement utilisées pour générer les données nécessaires à l’optimisation ne sont pas identiques aux planches qui seront découpées lors de l’application du plan. La replanification permet de corriger les déviances pour respecter de manière adéquate les contraintes de production. L’approche a été évaluée en utilisant des données industrielles. Notre cas d’étude montre que cette approche peut mener à une amélioration (en valeur

produite) de l’ordre de 100 000 $ par an pour une usine de bois de plancher de taille moyenne.

Ces deux cas d’application à des entreprises manufacturières du secteur des produits forestiers montrent le potentiel de cette approche et les gains qui peuvent découler de son