Méthode de résolution par séparation et évaluation : Branch & Bound

Documents pareils
Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Programmation linéaire

Cours de Master Recherche

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Définitions. Numéro à préciser. (Durée : )

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Probabilités sur un univers fini

Arbres binaires de décision

Feuille TD n 1 Exercices d algorithmique éléments de correction

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Probabilités Loi binomiale Exercices corrigés

La classification automatique de données quantitatives

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Chapitre 3 Les régimes de fonctionnement de quelques circuits linéaires

Quelques algorithmes simples dont l analyse n est pas si simple

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Programmation par contraintes. Laurent Beaudou

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

La fonction exponentielle

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Complément d information concernant la fiche de concordance

Probabilités sur un univers fini

Fonction inverse Fonctions homographiques

Les indices à surplus constant

Fonctions homographiques

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Chapitre 1 Régime transitoire dans les systèmes physiques

ASR1 TD7 : Un microprocesseur RISC 16 bits

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Exercices de dénombrement

Représentation des Nombres

Cours 02 : Problème général de la programmation linéaire

Continuité et dérivabilité d une fonction

Image d un intervalle par une fonction continue

Algorithmique et programmation : les bases (VBA) Corrigé

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Stratégie de recherche adaptative en programmation par contrainte

ARBRES BINAIRES DE RECHERCHE

OPTIMISATION À UNE VARIABLE

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

GEA II Introduction aux probabilités Poly. de révision. Lionel Darondeau

CORRECTION TP Multimètres - Mesures de résistances - I. Mesure directe de résistors avec ohmmètre - comparaison de deux instruments de mesure

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Probabilités conditionnelles Exercices corrigés

Annexe 6. Notions d ordonnancement.

BACCALAURÉAT PROFESSIONNEL EPREUVE DE TRAVAUX PRATIQUES DE SCIENCES PHYSIQUES SUJET A.1

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Le produit semi-direct

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Apprentissage par renforcement (1a/3)

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Notion de fonction. Résolution graphique. Fonction affine.

Plus courts chemins, programmation dynamique

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Raisonnement probabiliste

CH.6 Propriétés des langages non contextuels

avec des nombres entiers

CCP PSI Mathématiques 1 : un corrigé

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Résolution de systèmes linéaires par des méthodes directes

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Programmation linéaire

Pour l épreuve d algèbre, les calculatrices sont interdites.

Bases de données documentaires et distribuées Cours NFE04

Chapitre 6. Fonction réelle d une variable réelle

Les nombres entiers. Durée suggérée: 3 semaines

LE PROBLEME DU PLUS COURT CHEMIN

TD1 PROPAGATION DANS UN MILIEU PRESENTANT UN GRADIENT D'INDICE

Les puissances La notion de puissance La puissance c est l énergie pendant une seconde CHAPITRE

Les arbres binaires de recherche

Raisonnement par récurrence Suites numériques

Architecture des Systèmes d Information Architecture des Systèmes d Information

Objets Combinatoires élementaires

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

V- Manipulations de nombres en binaire

Les structures de données. Rajae El Ouazzani

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

I. Ensemble de définition d'une fonction

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs

Jeux sous forme extensive (Jeux dynamiques)

îundesdruokerei Berlin

données en connaissance et en actions?

Exercices Corrigés Premières notions sur les espaces vectoriels

Revue d article : Dynamic Replica Placement for Scalable Content Delivery

Chaînes de Markov au lycée

Qu est-ce qu une probabilité?

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Chp. 4. Minimisation d une fonction d une variable

Transcription:

Méthode de résolution par séparation et évaluation : Branch & Bound Annexe à l énoncé du TP La technique du Branch & Bound est une méthode algorithmique classique pour résoudre un problème d optimisation combinatoire. Il s agit de rechercher une solution optimale dans un ensemble combinatoire de solutions possibles. La méthode repose d abord sur la séparation (branch) de l ensemble des solutions en sous-ensembles plus petits. L exploration de ces solutions utilise ensuite une évaluation optimiste pour majorer (bound) les sous-ensembles, ce qui permet de ne plus considérer que ceux susceptibles de contenir une solution potentiellement meilleure que la solution courante. 1 Arborescence des solutions possibles Soit E l ensemble de solutions au problème. On le suppose discret, fini mais très grand. On énumére tous les éléments de E en le séparant en n 1 sous-ensembles non vides contenant chacun une partie, de taille variable, des éléments de E (on n impose pas toujours que ces sous ensembles soient disjoints, mais c est en général le cas). On peut recommencer avec chaque sous ensemble qui contient plus d un élément et ainsi de suite jusqu à ce que tous les ensembles ne contiennent plus qu un seul élément. Cette énumération peut se représenter par un arbre de la façon suivante (cf. figure 1) : la racine de l arbre représente E, ses n 1 fils représentent les n 1 sous-ensembles créés dans la première partition de E, et ainsi de suite. Fig. 1 Représentation par un arbre d une énumération totale des solutions du problème. Les feuilles de l arbre représentent les éléments de l ensemble, c est-à-dire les solutions au problème. Si on a effectué une partition des ensembles à chaque fois, chaque élément n est présent qu une fois. S il y a eu séparation en sous-ensembles non disjoints, on obtient des répétitions d éléments. Il y a bien entendu un très grand nombre de façons différentes de choisir les partitions pour un ensemble donné. Exemple des permutations. On considère l ensemble E des n! permutations de n éléments que l on cherche à énumérer. une approche classique consiste à d abord fixer le premier élément de la permutation, puis le second, etc. On dit qu on divise ou sépare sur le premier élément, puis sur le suivant et ainsi de suite. La figure 2 illustre un tel arbre dans le cas où n = 4. On aurait pu aussi séparer l ensemble des permutations en deux sous-ensembles, celles dont le premier élément est entre 1 et k et celles dont cet élément est entre k + 1 et n (avec en général k = n/2), chaque sous ensemble étant ensuite divisé en deux de la même manière, et ainsi de suite. Ceci a l inconvénient de créer des arbres profonds. Exemple de problème du sac à dos. Ce problème consiste à remplir un sac à dos de capacité C avec des produits P 1, P 2,..., P n, qui prennent une place v 1, v 2,..., v n et rapportent a 1, a 2,..., a n par unité, de façon à maximiser le bénéfice. On suppose ici que l on a autant d unités de chaque produit que l on veut. Ce Annexe à l énoncé du TP page: 1/8

(1,...) (2,...) (3,...) (4,...) (1,2,..) (1,3,..) (1,4,..) (2,1,..) (2,3,..) (2,4,..) (3,1,..) (3,2,..) (3,4,..) (4,1,..) (4,2,..) (4,3,..) (1,2,3,4) (1,3,2,4) (1,4,2,3) (2,1,3,4) (2,3,1,4) (1,2,3,4) (1,3,4,2) (1,4,3,2) (2,1,4,3) (2,3,4,1)......... (4,3,2,1) Fig. 2 Arbre énumérant l ensemble des permutations de quatre éléments. problème peut s écrire comme un programme linéaire en nombres entiers. Si on note x i le nombre d unités du produit P i à mettre dans le sac à dos, il s agit de calculer le bénéfice maximal max {x i 0} ( n ) a i x i sous la contrainte i=1 n i=1 v i x i C Prenons l exemple numérique suivant avec 4 produits : article 1 article 2 article 3 article 4 bénéfice 4 5 6 2 volume 33 49 60 32 Volume total du sac : 130 Il s agit donc de résoudre max(4x 1 + 5x 2 + 6x 3 + 2x 4 ) sous les contraintes que x 1, x 2, x 3, x 4 sont des entiers positifs ou nuls et qu ils satisfassent l inéquation 33x 1 + 49x 2 + 60x 3 + 32x 4 130. L ensemble E qui nous intéresse ici est celui de toutes les valeurs possibles du quadruplet (x 1, x 2, x 3, x n ) qui représentent des solutions potentielles, c est à dire celles auxquelles on ne peut pas rajouter de produit. Il peut se décrire par l arbre de la figure 3 en utilisant la même technique que pour les permutations (diviser sur x 1, puis x 2...). On verra plus loin dans ce chapitre que lors de l énumération des solutions, on a intérêt à classer les objets par intérêt décroissant. L ordre des variables dans l exemple numérique tient compte de cette remarque, le produit le plus intéressant étant, dans le cas du sac à dos, celui qui rapporte le plus par unité de volume. 2 La méthode du Branch & Bound Le problème à résoudre est le suivant : trouver dans un ensemble E de solutions potentielles donné un élément de valeur optimale. Pour fixer les idées nous supposerons dans ce qui suit que l on cherche un élément de valeur maximum. Le cas minimum s en déduit aisément. Comme dans tous les problèmes d optimisation, on cherche un élément de valeur optimale et non tous. En effet, il pourrait y en avoir un nombre important et leur énumération nécessiterait à elle seule un temps considérable. Par exemple dans certains problèmes d ordonnancement de tâches, le temps d achèvement de l ensemble des n tâches peut être indépendant de l ordre de passage de celles-ci, et par conséquent les n! solutions ont la même valeur. 2.1 Principe de la méthode La dénomination séparation et évaluation (Branch & Bound) recouvre deux idées : la séparation (branch) consiste à séparer un ensemble de solutions en sous-ensembles ; Annexe à l énoncé du TP page: 2/8

x 1 = 3 x 2 = 0 x 2 = 1 x 1 = 2 x 2 = 0 x 4 = 2 x 2 = 1 x 4 = 2 x 1 = 1 x 2 = 0 x 4 = 1 x 4 = 4 x 2 = 2 x 4 = 1 x 2 = 1 x 1 = 0 x 4 = 3 x 2 = 0 x 3 = 2 x 4 = 3 x 4 = 5 Fig. 3 Solutions potentielles pour l exemple du sac à dos. l évaluation (bound) consiste à évaluer les solutions d un sous-ensemble de façon optimiste, c est-à-dire en majorant la valeur de la meilleure solution de ce sous-ensemble. L algorithme propose de parcourir l arborescence des solutions possibles en évaluant chaque sous-ensemble de solutions de façon optimiste. Lors de ce parcours, il maintient la valeur M de la meilleure solution trouvée jusqu à présent. Quand l évaluation d un sous-ensemble donne une valeur plus faible que M, il est inutile d explorer plus loin ce sous-ensemble. Les paragraphes suivants détaillent les différentes opérations de l algorithme. Séparation. Pour décrire l opération de séparation, il suffit de dire comment on divise un ensemble de solutions en sous-ensembles. Cela revient à décrire comment construire l arbre permettant d énumérer toutes les solutions. L ensemble de noeuds de l arbre qu il reste encore à parcourir comme étant susceptibles de contenir une solution optimale, c est-à-dire encore à diviser, est appelé ensemble des noeuds actifs. Evaluation optimiste. Etant donné l arbre énumérant toutes les solutions, chaque feuille contient une solution dont on peut calculer la valeur exacte. Pour un noeud interne de l arbre, k, on va évaluer ce noeud en calculant un majorant de la valeur de toutes les solutions contenues dans le sous-ensemble représenté par le sous-arbre de racine k. Si l arbre entier était connu, on pourrait évaluer un noeud par la meilleure solution portée par ses feuilles. Mais ce n est bien sûr pas le cas! Il faut donc essayer d estimer par majoration la meilleure solution qu il est possible d atteindre à partir du noeud. Comme un noeud interne représente une solution partielle (dont Annexe à l énoncé du TP page: 3/8

une partie des variables du problème est (partiellement) fixée), on calcule sa valeur en cherchant la meilleure valeur qu on peut obtenir grâce aux degrés de liberté restants. Cette fonction d évaluation, spécifique à chaque problème, est dite optimiste car elle calcule un majorant du meilleur résultat possible à partir d une solution partielle. Une bonne fonction doit majorer au plus près la solution maximale, tout en restant le moins coûteuse possible d un point de vue algorithmique. C est un des aspects cruciaux quand aux performances de la résolution du problème. Elaguage. Une fois que la valeur d un noeud interne est calculée, on peut utiliser cette valeur pour interrompre éventuellement l exploration de cette partie de l arbre. En particulier, il est inutile de diviser le noeud dans les cas suivants. 1. L évaluation a permis de calculer une solution qui a exactement cette valeur. Cette solution est nécessairement optimale dans ce sous-ensemble de solutions. Si cette solution est la meilleure trouvée jusque là, elle devient la meilleure solution courante. Ce cas est plutôt rare. 2. L évaluation est inférieure ou égale à la valeur de la meilleure solution trouvée jusque là. On n a donc aucune chance de trouver mieux dans ce sous-ensemble. Ceci peut permettre des gains importants, car on élimine une partie de l arbre de recherche. 3. Le sous-ensemble est réduit à un seul élément. Dans les cas 1 et 2, on gagne dans l exploration de l arbre puisque la branche suivant le nœud considéré ne sera pas explorée. On dit que cette branche est élaguée (pruning en anglais). A noter que dans le cas 1, si la meilleure solution courante a changé, il convient de parcourir tous les nœuds actifs pour voir s ils le restent. Approximation. Le succès de la méthode dépend essentiellement de la précision de la fonction d évaluation. On peut l accélérer en se contentant d une solution approchée avec garantie de qualité. On peut décider d élaguer tout nœud dont l évaluation est inférieure à (1 + α) fois la valeur de la meilleure solution courante. Par exemple si α = 0, 05, alors quand on s arrêtera la valeur de la solution trouvée sera à moins de 5% de l optimum. Algorithme du Branch & Bound. L algorithme maintient la valeur M de la meilleure solution trouvée jusqu à présent et la liste NA des noeuds actifs, susceptibles de contenir de meilleures solutions que M. N A { racine de l arbre des solutions } tant que NA faire prendre un noeud actif n dans N A ; diviser n ; pour chaque fils f de n évaluer f et en fonction du résultat, mettre à jour M et transformer f en noeud actif (le mettre dans N A) ou l élaguer ; fin pour fin tant que 2.2 Stratégies de parcours En fonction de la structure de données utilisée pour la liste des noeuds actifs NA, l algorithme peut avoir des performances expérimentales très différentes. La façon dont on parcourt l arbre des solutions et donc le choix du prochain nœud actif à diviser sont cruciaux. Plusieurs stratégies sont à envisager. Stratégie de recherche en profondeur : on choisit pour prochain noeud actif l un des fils du nœud qui vient d être divisé. Si aucun de ces nœuds n est actif on revient en arrière (backtrack) dans l arbre. Stratégie en largeur : on divise les nœuds dans l ordre de leur création. Stratégie de la meilleure évaluation : on divise le nœud de meilleure évaluation. Stratégie du plus prioritaire : la priorité d un noeud peut être évaluée par pondération entre son évaluation et sa profondeur dans l arbre (en fait sa distance à une feuille). En effet, les évaluations loin des feuilles sont souvent plus intéressantes mais moins fiables et il peut être avantageux de diviser un noeud potentiellement moins bon mais plus profond dans l arbre. Annexe à l énoncé du TP page: 4/8

Stratégie mixte : on va en profondeur tant qu on le peut, mais quand on ne peut plus on saute au nœud de meilleure évaluation. On explorera les fils dans l ordre d évaluation : le meilleur d abord. Remarques sur ces stratégies. La stratégie en largeur n est plus utilisée, car elle peut mener à un nombre exponentiel de noeuds actifs et met très longtemps avant d arriver aux premières solutions. La stratégie de la meilleure évaluation n est utilisée dans certains problèmes seulement. La stratégie de recherche en profondeur a plusieurs avantages : le nombre de nœuds actifs reste relativement faible et nécessite donc moins de mémoire (avec la disponibilité actuelle de la mémoire, cet avantage n est plus aussi crucial) ; l évaluation d un fils peut profiter de l évaluation du père. En d autres termes, si on vient d évaluer le père, ce qu il y a en mémoire permet parfois d évaluer un fils beaucoup plus rapidement que si on le faisait plus tard ; normalement tout nœud de l arbre a au moins 2 fils, mais il arrive que, dans la description utilisée, certains nœuds n aient qu un fils (cf. l exemple précédent du sac à dos). Si on sait qu un nœud n a qu un fils, il est inutile de l évaluer, mieux vaut évaluer son fils. Dans une recherche en profondeur, puisque l on va de toute façon créer les fils, cela ne coûte rien d inverser l ordre. On verra dans le cas du problème du sac à dos que cela peut accélérer l algorithme ; c est profond dans l arbre qu on a le plus de chances de tomber sur une solution lors de l évaluation et donc d obtenir une valeur qui permet d élaguer des noeuds. La stratégie de du plus prioritaire repose sur une fonction de comparaison de deux noeuds, à partir de leur évaluation et de leur profondeur dans l arbre. Si x 1 et x 2 sont deux noeuds, cette fonction de comparaison peut être calculée par : x1.val x2.val max(x1.val, x2.val) + α x1.prof x2.prof max(x1.prof, x2.prof) où val est l évaluation du noeud, prof sa profondeur et α un coefficient de pondération positif. Les deux termes sont normalisés car les ordres de grandeur des évaluations et des profondeurs peuvent être très différents. Le noeud x 1 est prioritaire si cette fonction est positive, ce qui arrive dans deux cas : l évaluation de x 1 et sa profondeur sont plus grandes ; les deux termes sont alors positifs l évaluation de x 1 est moins bonne mais il est plus profond : seul le second terme est alors positif. Alors x 1 est prioritaire si la somme des deux termes pondérée par α est positive La stratégie en profondeur était presque toujours utilisée auparavant, mais est maintenant souvent remplacée par une stratégie du plus prioritaire ou mixte. L idée est souvent d avancer en profondeur à chaque fois que l on peut tirer profit de la relation père-fils, puis d opter pour le noeud de meilleure évaluation ou priorité. 3 Exemple du problème du sac à dos Reprenons l exemple du sac à dos décrit dans la section 1 ; la technique de séparation permettant de décrire l arbre des solutions y a déjà été discutée. Pour l évaluation optimiste d un noeud de l arbre, on procède comme suit. Etant donné un noeud, un sous-ensemble des variables y est fixé. Un majorant de toutes les solutions représentées par ce noeud peut s obtenir en remplissant le volume restant avec le produit qui rapporte le plus par unité de volume (on considère donc que c est un liquide). La valeur trouvée est de toute évidence un majorant grossier, mais simple à calculer. Il existe d autres évaluations plus sophistiquées détaillées dans la suite. Exécution au pas par pas de l algorithme. Nous utilisons l exemple numérique donné précédemment. La division est celle décrite dans la figure 3. E est le premier actif, et il est divisé en 4 sous-ensembles. ** On évalue ensuite le noeud x 1 = 3. On peut améliorer légèrement la fonction d évaluation en remarquant que dans ce cas, on ne peut plus mettre aucun article dans le sac et prendre comme évaluation du noeud 3 4 = 12 : c est une évaluation exacte qui correspond à une solution. Cela permet d initialiser la valeur de la meilleure solution courante M = 12. Le nœud est alors élagué. Annexe à l énoncé du TP page: 5/8

** Le noeud suivant est le nœud x 1 = 2. Parmi les articles à fixer, l article de meilleur rapport bénéfice / volume est l article 2. L évaluation du noeud est donc calculée par : 2 + 5/49(130 2 33) = 14.53. Puisque 14, 53 12 + 1, on divise le nœud. ** Le nœud suivant est le noeud x 1 = 2, x 2 = 1. En utilisant la même remarque que pour le noeud x 1 = 3, on obtient une évaluation exacte, de 13. La solution correspondante devient la nouvelle meilleure solution courante et la meilleure valeur est désormais M = 13. Le noeud est élagué. ** Le noeud suivant est le noeud x 1 = 2, x 2 = 0 d évaluation 2 4 + 0 + 6/60(130 2 33) = 14.4. Puisque 14.4 13 + 1, on divise le nœud. ** Le noeud suivant est le noeud x 1 = 2, x 2 = 0, : son évaluation est exacte et vaut 14. La solution correspondante devient la nouvelle meilleure solution courante et la meilleure valeur est désormais M = 14. Ceci a pour effet d élaguer le noeud dont l évaluation de la racine était de 14,4 puisque l on n a aucune chance de trouver mieux que 14 dedans (en effet la valeur de M est forcément entière). ** Le noeud suivant donc le noeud x 1 = 1. Son évaluation est de 4 + 5/49(130 33) = 13, 89 : il est élagué. On passe au dernier fils de la racine, le noeud x 1 = 0. Son évaluation est de 130 5/49 = 13, 26, on l élague. La recherche est terminée, la valeur de la solution optimale est de 14 et elle consiste à prendre 2 unités du produit 1 et une du produit 3. La figure 4 montre la partie de l arbre qu il a fallu développer pour obtenir le résultat, en noir figurent les noeuds qu il a fallu évaluer. x 1 = 3 x 2 = 0 x 4 = 1 12 x 2 = 1 13 x 1 = 2 14 14,53 x 2 = 0 14,4 x 1 = 1 13,89 x 1 = 0 13,26 Fig. 4 Méthode de Branch and Bound appliquée à l exemple du sac à dos. Il existe d autres méthodes pour résoudre ce problème, comme la programmation dynamique. Même si les performances du Branch & Bound sont moins bonnes dans le cas le plus défavorable, c est cette méthode qui est la plus performante en moyenne sur les cas pratiques. 4 Un exemple d ordonnancement de tâches : ordonnancement de pièces sur 3 machines Le problème qui nous intéresse est celui d ordonnancer le passage de p pièces sur 3 machines en série. On notera A, B et C les 3 machines, chaque pièce doit passer successivement sur A, puis sur B et enfin terminer Annexe à l énoncé du TP page: 6/8

par C et chaque machine ne peut s occuper que d une pièce à la fois. La durée de passage de la pièce i sur les machines A, B et C sera notée d i A, di B et di C respectivement. On veut trouver dans quel ordre faire passer les p pièces de façon à terminer le plus tôt possible. Deux exemples numériques du problème sont donnés dans les tableaux 1. Ce problème est NP-difficile, mais il est possible de montrer que l ordre de passage, dans une solution optimale, est le même sur les 3 machines. On cherche donc parmi les p! permutations possibles une solution optimale qui permette de terminer le plus rapidement possible. machine A machine B machine C pièce 1 3 4 10 pièce 2 11 1 5 pièce 3 7 9 12 pièce 4 10 12 2 machine A machine B machine C pièce 1 13 3 12 pièce 2 7 12 16 pièce 3 26 9 6 pièce 4 2 6 1 Tab. 1 Deux exemples numériques pour l ordonnancement de pièces sur 3 machines. Le temps total pour l ordre de passage (1,2,3,4) est de 45 dans le premier exemple et de 62 dans le deuxième. 4.1 Division L algorithme de division, permettant de décrire les p! permutations possible peut être n importe lequelle de ceux que l on a vu pour les permutations. 4.2 Méthode d évaluation Pour définir la fonction d évaluation optimiste, il faut d abord remarquer que l on cherche pour ce problème une solution minimale : une évaluation optimiste d une solution partielle devra donc fournir un minorant de toutes les solutions dérivant de cette solution partielle. On utilise la méthode suivante, due à Ignall et Schrage. Soit π un ensemble ordonné de pièces qui passera avant toutes les autres et dans l ordre de π. Notons π l ensemble des autres pièces. On suppose dans ce qui suit que les pièces de π passent dans l ordre de π sur les trois machines et que les pièces de π passent ensuite. On note t π A, tπ B et tπ C les temps qu il faut pour passer les pièces de π sur la première machine A, sur les deux premières A, B et sur les trois machines A, B, C respectivement. Aucune autre pièce ne peut passer sur ces machines avant ces dates (en fixant la date de départ à 0). Les pièces de π passent sur la machine A : cela prend un temps t π A. Les pièces de π doivent maintenant passer sur la première machine, ce qui prend un temps de i π di A. Le temps nécessaire pour faire passer l ensemble des pièces sur la machine A est donc de t π A + i π di A. Pour minorer le temps pour faire passer toutes les pièces sur toutes les machines, on considère la dernière pièce de π qui passera sur la machine A. Elle doit encore passer sur les deux autres machines et au mieux passer sans attendre. En supposant que cette dernière pièce est celle pour laquelle la somme des durées de passage sur les deux dernières machine est minimum, on obtient un premier minorant b π A du temps total nécessaire : b π A = t π A + i π d i A + min i π {d i B + d i C} Le même raisonnement peut être fait au sortir de la machine B. Faire passer les pièces de π sur les machines A et B prend un temps t π B. A la date tπ B, la machine B est libre et Les pièces de π peuvent ensuite y passer ; ceci prend un temps de i π di B. Ensuite la dernière pièce de π à passer sur la machine B doit encore passer sur la machine C. On obtient un deuxième minorant du temps total, b π B, en supposant que cette pièce est celle qui nécessite le moins de temps sur la machine C : b π B = t π B + i π d i B + min i π {d i C} Annexe à l énoncé du TP page: 7/8

De manière similaire, en se plaçant au sortir de la machine C on obtient : b π C = t π C + i π d i C La borne b = max ( b π A, bπ B, bπ C) est un minorant du temps total nécessaire pour passer toutes les pièces en supposant que celles de l ensemble π passent en premier, dans l ordre donné par π. b fournit donc une évaluation optimiste du nœud de l arbre qui correspond à toutes les permutations qui commencent par π. Améliorations possibles La fonction d évaluation décrite ci-dessus est simple à calculer (linéaire), mais fournit une borne assez grossière. Elle peut être améliorée par des techniques décrites dans un complément disponible sur le wiki. Annexe à l énoncé du TP page: 8/8