• Aucun résultat trouvé

1.3 Synthèse

2.1.3 Méthodes de résolution

Diérentes méthodes de résolution peuvent être utilisées pour résoudre les problèmes d'or- donnancement. Ces méthodes utilisent un grand nombre de techniques d'optimisation diérentes et peuvent être séparées en deux groupes distincts. Le premier rassemble les méthodes exactes, qui permettent d'obtenir des solutions optimales. L'utilisation de ces méthodes est restreinte à des problèmes présentant un nombre de variables limité, le plus souvent pour des raisons de complexité mathématique des problèmes à résoudre. D'autres méthodes de résolution appro- chées sont alors nécessaires pour le traitement de problèmes de grande taille. Le second groupe est ainsi constitué des méthodes heuristiques, qui permettent de trouver des solutions en temps polynomial.

2.1.3.1 Méthodes exactes

Les méthodes exactes ont pour but la construction d'une solution optimale pour un problème de taille nie et dans un temps limité. Quelques méthodes de résolution classiques sont présentées. L'algorithme de séparation et évaluation (Branch and Bound) a été proposé par Land et al. [63] et est basé sur une méthode arborescente de recherche d'une solution optimale. L'ensemble des solutions est représenté sous la forme d'un arbre d'états composé de n÷uds et de feuilles. La méthode consiste à parcourir l'espace des solutions seulement en partie, en s'assurant que la partie non explorée ne contient aucune solution qui puisse être meilleure que la dernière sélectionnée.

La recherche de solutions utilise deux concepts complémentaires : la séparation et l'évalua- tion. La séparation consiste à diviser l'ensemble des solutions en sous-ensembles. Trouver la meilleure solution dans chaque sous-ensemble permet de déterminer la solution opti- male du problème initial. Utilisée seule, la séparation revient à eectuer une énumération exhaustive des solutions. An d'éviter cela, l'évaluation est utilisée pour réduire l'espace de recherche en éliminant les sous-ensembles ne contenant pas de solution optimale. Le coût de chaque n÷ud parcouru est comparé à la solution de plus bas coût rencontrée pen- dant l'exploration dans le cas d'une minimisation du critère d'optimisation (la solution de plus haut coût est considérée pour une maximisation). Si le coût du n÷ud considéré est supérieur (ou inférieur dans le cas d'une maximisation) au meilleur coût, l'exploration du sous-ensemble correspondant est arrêtée. Le parcours de l'arbre peut être eectué suivant diérentes stratégies, telles que la profondeur d'abord, la largeur d'abord et le meilleur d'abord.

La programmation dynamique repose sur le principe d'optimalité énoncé par Bellman [9], spéciant que toute solution optimale est composée de solutions intermédiaires optimales de sous-problèmes résolus localement. Appliqué de façon séquentielle, ce principe fournit des formules récursives pour la recherche de solutions optimales. Il s'agit alors de considérer de façon exhaustive l'ensemble des solutions possibles et de choisir la meilleure sur la base d'un critère. Diérents sous-problèmes sont résolus de manière ascendante, c'est-à-dire

26 Chapitre 2. Ordonnancement

en démarrant avec le plus petit, pour déduire de façon progressive l'ensemble la solution optimale du problème initial.

Un algorithme de programmation dynamique est composé de quatre étapes successives [34] : (i) l'identication de sous-problèmes dont les solutions optimales vont permettre de re- constituer une solution optimale du problème initial ; (ii) la dénition de la valeur de la solution optimale de manière récursive, à partir des valeurs des solutions optimales des sous-problèmes ; (iii) le calcul ascendant de la valeur de la solution optimale ; (iv) la reconstruction de la solution optimale, sur la base des valeurs calculées dans l'étape précédente.

La programmation linéaire s'applique aux problèmes d'optimisation sous contraintes, pour lesquels la fonction objectif et les contraintes sont toutes linéaires par rapport aux variables de décision, qui sont les inconnues. Diérentes variantes de programmes linéaires peuvent être considérées en fonction de la nature des variables de décision. On peut trouver des pro- grammes linéaires en nombres réels, rationnels ou entiers, en variables binaires ou mixtes. Toute aectation des variables de décision qui respecte les contraintes est une solution réa- lisable. La solution optimale, s'il en existe au moins une, est celle qui optimise la fonction objectif. Trois situations peuvent être rencontrées. Si l'ensemble des solutions réalisables est vide, le programme linéaire n'a pas de solution. Cela arrive lorsque les contraintes ne sont pas compatibles. Si cet ensemble des solutions est non vide, mais que la fonction ob- jectif n'est pas bornée, il n'est pas possible de trouver une solution optimale au programme linéaire, que ce dernier en admette une ou non. Enn, si l'ensemble des solutions est non vide et la fonction objectif est bornée, le programme linéaire admet une solution optimale, non nécessairement unique.

Une exploration exhaustive de toutes les solutions requiert un nombre d'opérations qui devient vite grand en fonction du nombre de variables. L'algorithme du simplexe est alors généralement utilisé pour réduire le nombre de solutions à explorer en limitant l'explo- ration aux sommets qui permettent d'améliorer la valeur de la fonction objectif pour les programmes linéaires à variables réelles [34]. D'autres méthodes de type Branch-and-Cut, basées sur le principe de séparation et évaluation, sont aussi utilisées pour les programmes linéaires plus complexes, par exemple à valeurs entières ou binaires.

2.1.3.2 Méthodes heuristiques

Les méthodes heuristiques permettent de trouver une solution réalisable en un temps poly- nomial. On cherche généralement à déterminer la meilleure possible, sans forcément avoir une garantie sur son optimalité. Ces méthodes peuvent être classées en trois familles diérentes : les heuristiques constructives, les heuristiques d'amélioration et les métaheuristiques. Chacun de ces types d'heuristiques construit les solutions suivant une stratégie bien particulière.

Les heuristiques constructives élaborent des solutions de façon itérative à partir des données initiales. A chaque itération, une solution partielle est complétée, jusqu'à l'obtention de la solution complète. Ces heuristiques sont généralement rapides et relativement simples. La qualité des solutions est en revanche limitée, puisque l'ordonnancement est construit pas à pas, sans optimisation eectuée de façon globale.

Les heuristiques d'amélioration démarrent avec une solution admissible déjà construite et la modient dans le but d'améliorer la valeur de la fonction objectif [85]. Une solution

2.1 Ordonnancement 27

initiale, généralement construite avec une heuristique constructive, sert ainsi de base à un processus itératif qui fait évoluer la solution complète en la remplaçant par un de ses voisins ayant une meilleure valeur pour la fonction objectif. Un critère d'arrêt est nécessaire pour ce type de fonctionnement. Il peut prendre la forme d'un nombre xé d'itérations ou être basé sur une comparaison des solutions successives.

Les métaheuristiques sont à la fois plus complètes et plus complexes que les deux types d'heuristiques précédents. Elles sont basées sur un processus itératif qui combine de façon intelligente diérents concepts pour explorer ecacement l'espace de recherche et exploiter les informations disponibles dans le but de guider les solutions obtenues vers une solution optimale [75]. Elles permettent d'obtenir des solutions de bonne qualité dans un laps de temps raisonnable. Alors qu'une heuristique est la plupart du temps dénie pour un problème donné, une métaheuristique est une heuristique générique pouvant être décrite de façon abstraite et adaptée à diérents types de problèmes avec peu de modications. Plusieurs métaheuristiques sont basées sur des principes inspirés par des systèmes naturels qui se retrouvent dans divers domaines, tels que la biologie (algorithmes évolutionnaires et génétiques), la physique (recuit simulé) ou l'éthologie (algorithmes de colonies de fourmis). D'autres métaheuristiques, telles que la méthode tabou, ne s'inspirent d'aucun phénomène naturel.

Le choix de l'une ou l'autre de ces méthodes de résolution peut être basé sur le type de problème à résoudre, le temps alloué à la recherche de solution et/ou le niveau de qualité de la solution recherché. Les méthodes exactes et les heuristiques peuvent de plus être combinées pour tirer parti des points forts de chacune d'entre elles an de fournir des solutions à la fois performantes du point de vue de leur qualité (liée à l'objectif) et du temps d'exécution [83].