UNIVERSITE SAAD DAHLAB DE BLIDA



Documents pareils
PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Algorithmes de recherche

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct (ajout de la section 3 et augmentation de la section 1)

Pourquoi l apprentissage?

Chp. 4. Minimisation d une fonction d une variable

Annexe 6. Notions d ordonnancement.

Chapitre 1 : Introduction aux bases de données

Chapitre 5 : Flot maximal dans un graphe

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

LE PROBLEME DU PLUS COURT CHEMIN

Programmation linéaire

LES PROBLEMES D'ORDONNANCEMENT

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

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

1. Introduction Création d'une requête...2

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Cours de Master Recherche

OPTIMISATION À UNE VARIABLE

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

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

LES DÉTERMINANTS DE MATRICES

1 sur 5 10/06/14 13:10

En vue de l'obtention du. Présentée et soutenue par Abir BEN HMIDA SAKLY Le 12/12/2009

Contrainte de flot pour RCPSP avec temps de transfert

ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

CHAPITRE VIII : Les circuits avec résistances ohmiques

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Gestion de projet. GanttProject Didacticiel V novembre Gérard Gervois Frédéric Giamarchi

Installation et Réinstallation de Windows XP

NOTIONS DE PROBABILITÉS

Système Immunitaire Artificiel Parallèle appliqué aux Flow Shop Hybride (FSH)

Travail collaboratif avec OpenOffice Texte (Writer)

Vous avez dit... LED??? DOCLED V2 Page 1 / 14

Systemes d'exploitation des ordinateurs

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

Département des systèmes d'information et de télécommunications Groupe de soutien achats et marchés

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Pluridisciplinarité. Classe de BTS DATR

TRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 )

Raisonnement par récurrence Suites numériques

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Reaper : utilisations avancées

Conception d'un réseau de transport d'électricité

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Gestion de projet - principales caractéristiques d'un projet

Gestion de Production

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Les mises à disposition de personnels ou de matériels

Ministère de l Enseignement Supérieur et de la Recherche Scientifique. Mémoire de fin d études. Thème

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

Application de K-means à la définition du nombre de VM optimal dans un cloud

Algorithmes d'apprentissage

Fonctions de plusieurs variables

Approche d'évaluation pour les problèmes d'ordonnancement multicritères : Méthode d'agrégation avec direction de recherche dynamique

AIDE AU PILOTAGE. BO Web intelligence Session 1

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer

Partie 7 : Gestion de la mémoire

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Sommaire. Introduction Définition Historique Domaine d application.2. 4.Les Travaux réalisés sur les domaines d application.

Vers l'ordinateur quantique

ORACLE TUNING PACK 11G

Windows 8 Installation et configuration

REALISER UN SITE INTERNET AVEC IZISPOT SOMMAIRE

Code_Aster. Procédure IMPR_RESU aux formats 'RESULTAT' et 'ASTER' 1 But

Structures algébriques

Navigation dans Windows

Classer et partager ses photographies numériques

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

VMWARE VSPHERE ESXI INSTALLATION

Conditions débit argent DEGIRO

Ebauche Rapport finale

I. Introduction aux fonctions : les fonctions standards

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans


Repo - un instrument financier pour les banques

Programmation linéaire

Le Seven Card Stud. Club Poker 78

Chapitre 4 Pierre, papier, ciseaux

Centre d'etudes Nucléaires de Fontenay-aux-Roses Direction des Piles Atomiques Département des Etudes de Piles

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

AVERTISSEMENT. D'autre part, toute contrefaçon, plagiat, reproduction encourt une poursuite pénale. LIENS

Chapitre 2. Classes et objets

Algorithmique avec Algobox

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

LE DIPLOME DE MAGISTER

!" #$$%& Disque dur 2.5 pouces Firewire Apple MacOS FR V2.4 - Page 1/17

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

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

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

Date : Tangram en carré page

Plus courts chemins, programmation dynamique

TUTORIAL Microsoft Project 2010 Fonctionalités de base

Transcription:

Chapitre 5 :. Introduction aux méthodes par séparation et évaluation Les méthodes arborescentes ( Branch and Bound Methods ) sont des méthodes exactes d'optimisation qui pratiquent une énumération intelligente de l'espace des solutions. Il s'agit d'énumération complètes améliorées. Elles partagent l'espace des solutions en sous ensembles de plus en plus petits, la plupart étant éliminés par des calculs de bornes avant d'être construits explicitement. Appliquées à des problèmes NP-difficiles, ces méthodes restent bien sur exponentielles, mais leur complexité en moyenne est bien plus faible que pour une énumération complète. Elles peuvent pallier le manque d'algorithmes polynomiaux pour des problèmes de taille moyenne. Pour des problèmes difficile de grande taille, leur durée d'exécution est très grande et il faut se retourner vers des heuristiques ou solutions approchées. Pour un POC, on peut inventer plusieurs méthodes arborescentes. Cependant elles auront trois composantes communes : Une règle de séparation une fonction d'évaluation une stratégie d'exploration. Principe des méthodes par séparation et évaluation Soit ( S, f ) la donnée d'un POC, plus particulièrement un problème d'ordonnancement. Définitions : - On dit qu'on sait évaluer le sous ensemble S' S, si on sait déterminer un réel g(s') tel que g(s') f(s) s S' ( respectivement g(s') f(s) s S' ). - Une évaluation g(s') de S' est dite exacte s'il existe s 0 S' tel que g(s') = f(s 0 ). - Une évaluation h(s') de S' est dite meilleure qu'une évaluation g(s') de S' si h(s') > g(s') ( resp. h(s') < g(s')). Si g(s') est une évaluation exacte, il ne peut exister une évaluation meilleure. Définition : Un sous ensemble S' S, ensemble de solutions d'un POC est dit " stérile " si on connaît une solution s 0 S tel que f(s 0 ) g(s') ( resp. f(s 0 ) g(s') ) 55

S' S peut être stérilisé dans deux cas, On est sur que S' ne peut contenir de solutions optimales ( S' = ou s 0 S, f(s 0 ) < g(s')) on dispose d'une évaluation exacte de S'. Définition 3 : Un sous ensemble S' S est dit "séparé" en S', S',, S' k si S' = S' S' S' k avec S' i S' i =,, k. La séparation n'est pas propre si et seulement si k / S' k = Théorème : Soit S = US' alors si tous les éléments de la famille F sont stériles on a soit : S' F Aucun ensemble S' n'a une évaluation exacte et S =, la meilleure évaluation exacte des ensembles S' correspond à une solution optimale. 3. Schéma général des méthodes par séparation et évaluation dites SE ŝ désignera la meilleure solution connue (non forcément optimale) et v = f( ŝ). Si ŝ est encore indéterminée on posera v = + ( resp. pour le max on pose v = - ) F une famille de sous-ensembles de S recouvrant S. 3.. Procédure d'initialisation Si on ne connaît pas de solution réalisable ŝ, indéterminée et v = +. La famille F contient l'unique élément S. S est déclaré non stérile. Aller à la procédure de choix. 3.. Procédure de choix a) si tous les éléments de F sont stériles, ŝ est solution optimale. Si ŝ est indéterminée, le problème posé n'a pas de solutions et S =. b) Sinon choisir S' F, non stérile. b) si S' n'a pas été évalué, aller à la procédure évaluation 3. b) si S' a été évalué, aller à la procédure séparation 4. 3.3. Procédure d'évaluation Calculer g(s') l'évaluation de S. a) si g(s') v alors S' est déclaré stérile. Aller à la procédure choix. 56

b) Si g(s') < v et si l'évaluation est exacte ( g(s') = f(s'), s' S' ) alors poserŝ = s' et v = g(s') = f(s'). S' est déclaré stérile. Aller à la procédure choix. c) Si on n'est pas dans le cas a) ou b) aller à la procédure de choix. 3.4. Procédure de séparation Séparer S' en créant les sous-ensemble S', S',, S' k où S' = S' S' S' k. Les S' i ne sont pas déclarés stériles. Posons F = ( F \ {S'}) { S', S',, S' k } et aller à la procédure du choix. Remarques : Dans le cas général, l'algorithme de ce schéma est fini si S' i S', i =,, k. Les stratégies possibles pour la procédure du choix sont les suivantes, a) sélectionner S' dont l'évaluation est la plus faible ( resp. la plus grande ). b) Sélectionner S' le plus récemment crée, cette manière de faire correspond à une exploration dite " profondeur d'abord ". La famille F fonctionne comme une pile, le dernier arrivé est le premier servi. c) Sélectionner S' le plus anciennement crée, elle correspond à une exploration " largeur d'abord ". F est géré comme une pile FIFO. d) On pratique on combine a), b) et c). Exemple : un problème d'ordonnancement à une seule machine De nombreux problèmes d'ordonnancement classés NP-difficiles peuvent être résolus par des procédures par séparation et évaluation. Nous présentons un problème à une machine et problème de type job shop. Un atelier comporte une seule machine toujours disponible. "n " tâches doivent y être exécutées les unes à la suite des autres. Elles sont toutes disponibles dès l'instant zéro. La tâche i dure p i unités de temps et doit être terminée avant l'instant d i, sinon il faut payer une pénalité de retard w i par unité de temps de retard. Il s'agit de trouver le meilleur ordre de passage des tâches sur la machine de manière à minimiser la somme des pénalités de retard à payer. Ensemble des solutions réalisables S 0 est formé des n! permutations possibles des n tâches. La séparation se fera sur la tâche que l'on fixe en dernier, puis en avant dernier, 57

Pour le calcul des bornes ou minorant, on prend en considération la somme des pénalités des tâches placées en queue. L'élimination des sous ensembles se fera sur le sommet ayant le plus petit minorant. Le problème suivant est à machine et 3 tâches. p i d i w i Tâche Tâche Tâche 3 4 3 5 5 4 3 Etape 0 : initialisation b 0 = 0 b = 8 b = 0 b 3 = 3 b 4 = 4 b 5 = 4 Fig. Schéma récapitulatifs des séparations. On a séparé par rapport à une tâche placée en dernière position. Pour calculer b, quelque soit la séquence (, 3, ) ou ( 3,, ), la tâche ne peut commencer son exécution qu'à la date p + p 3 = 5. Elle sera en retard de unités. Le coût de retard sera d'au moins x 4 = 8 d'où b = 8. Ainsi de suite b = 0 car la tâche ne sera pas en retard si elle est placée la dernière. Si la tâche 3 est placée a dernière, elle sera en retard de unité, b 3 = 3 x = 3. On sépare par rapport au sommet de b. On trouve que pour les séquences (, 3, ) ou ( 3,, ) les pénalités sont respectivement de 4 unités. Il faut encore séparer le sommet où la tâche 3 est placée la dernière. On trouve sous ensembles de coût 8 et 8. D'où (,3,) et (3,,) sont optimaux. S 0.......... 3.. 3.. 58

Exemple : un problème du job shop Pour réaliser la fabrication de trois pièces, on dispose de leur gamme de fabrication. La pièce i demande q i opérations et la jième opération de la pièce i occupe τ ij unités de temps de la machine M ij. Les durées d'usinage sont très longues par rapport aux durées de transport et de réglage et on négligera ces dernières. Cette méthode ne permet de résoudre que des problèmes de taille raisonnable. Le problème qui consiste à placer les opérations sur les machines de telle sorte que : L opération j du produit i soit terminée avant le début j+. Une machine ne traite qu une seule opération à la fois On minimise la durée totale ( l opération qui se termine la dernière se termine le plus tôt possible) Les gammes sont fournies dans le tableau suivant: n opération 3 4 Pièce durées machines Pièce durées machines Pièce 3 durées machines 3 () () (3) () () () Les bornes minorantes sont calculées par relaxation en ignorant, initialement, les contraintes dues au fait qu'une machine ne peut effectuer qu'une seule et unique opération à la fois. Ces contraintes seront intégrées progressivement au fur et à mesure des séparations jusqu'à l'obtention de solutions réalisables qui seront optimales pour le sous-ensemble de solutions auquel elles appartiennent. En fin d'exploration, la meilleure solution réalisable trouvée sera optimale. L'ensemble des solutions candidates A 0 est l'ensemble de tous les ordres possibles de toutes les opérations à exécuter sur les différentes machines. Pour trouver un minorant à la meilleure solution possible de cet ensemble, on ignore les contraintes dues aux machines en faisant comme si on avait autant d'exemplaires de chaque (3) (3)./../. (3) 3 ()./../. 59

machine que nécessaire pour réaliser la solution "au plus tôt" pour chaque pièce, ce qui donne l'ordonnancement non réalisable suivant représenté sur un diagramme où chaque ligne correspond à une pièce et chaque case à la j-ème opération de la tâche i sur la machine (k). 3 4 5 6 7 8 9 0 Pièce,(),(),3(3),4(3) Pièce,(),(),3(3),4() Pièce 3 3,(3) 3,() Fig. Diagramme " pièces " calé au plus tôt correspondant au sous ensemble A 0. La plus longue gamme ayant une durée totale de sept (7 ) unités de temps, 7 est un minorant pour la durée totale pour l'ensemble des solutions du problème d'où b 0 = 7. La solution ci dessus serait optimale si elle était réalisable. Elle comporte des conflits sur l'utilisation des machines. A l'instant, un conflit survient entre, () ( la première opération du produit un ) et,() ( la deuxième opération du produit deux ) sur l'utilisation de la machine. Nous devons séparer l'ensemble de solutions A 0 en deux sous ensembles de solutions de telle sorte que toute solution réalisable se retrouve obligatoirement dans l'un des deux et que les solutions non réalisables qui contenaient ce premier conflit ne s'y retrouvent plus. Pour cela, on partitionne A 0 en deux sous ensembles complémentaires A où,() est placée sur la machine avant, et A où, est placée sur la machine avant,. Avant de séparer A ou A, nous allons calculer les nouvelles bornes les concernant de manière à pouvoir appliquer une procédure par séparation et évaluation progressive en séparant toujours le sous ensemble de meilleur borne. Placer, avant, revient à déplacer le début de, de unités et donc à déplacer la fin du produit deux de 7 à 9 unités. D'où b = 9. 60

Placer, avant, revient à déplacer le début de, de 3 unités et donc de déplacer la fin du produit un de 7 à 0 unités. D'où b = 0. La meilleure borne est fournie par A que nous allons séparer en cherchant le premier conflitmachine sur son diagramme pièces calé au plus tôt. 3 4 5 6 7 8 9 0 Pièce,(),(),3(3),4(3) Pièce,() /////////////////////,(),3(3),4() Pièce 3 3,(3) 3,() Fig 3. Diagramme " pièces " calé au plus tôt correspondant au sous ensemble A. Ici, le diagramme de A n'est pas représenté. Un conflit survient à l'instant 5 entre,3(3) et,3(3) pour l'utilisation de la machine 3. A sera séparé en deux sous ensembles A 3, où,3 (3) est placée avant,3(3) et A 4, où,3(3) est placée avant, 3(3). Placer,3(3) avant,3(3) revient à déplacer,3(3) d'une unité de temps et donc de déplacer la fin du produit de l'instant 9 à 0. Placer,3(3) avant,3(3) revient à déplacer,3(3) de deux unités de temps et donc de déplacer la fin du produit de l'instant 7 à 9. 3 4 5 6 7 8 9 0 Pièce,(),() ///////////////////,3(3),4(3) Pièce,() /////////////////////,(),3(3),4() Pièce 3 3,(3) 3,() Fig 4. Diagramme " pièces " calé au plus tôt correspondant au sous ensemble A 4. 6

Ce diagramme ne comporte plus de conflit pour l'utilisation des machines. C'est une solution réalisable pour le problème posé, comme sa durée totale est strictement inférieure à toutes les bornes des sous ensembles que nous n'avons pas encore séparés. C'est l'unique solution optimale parmi les solutions calées au plus tôt. Remarque : Si on programme cette méthode, on n'utilise pas les diagrammes " pièces " mais les dates au plus tôt de toutes les opérations sur le graphe potentiel-tâche comportant les contraintes de précédence dues aux gammes puis celles ajoutées progressivement à chaque séparation pour tenir compte des conflits dus aux machines. La borne étant la date au plus tôt de la tâche fictive de fin de réalisation. A 3,() >,() et,3(3) >,3(3) A L'opération,() est placée avant,() A 0 b 0 = 7 b = 9 b = 0 b 3 = 0 b 4 = 9 Fig 5. Arborescence des séparations. A 4,() >,() et,3(3) >,3(3) A L'opération,() est placée avant,() 6