Le voyageur de commerce, méthode de branch and bound.

Documents pareils
Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

chapitre 4 Nombres de Catalan

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

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Cours de Master Recherche

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

Algorithmes d'apprentissage

Resolution limit in community detection

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

Programmation linéaire

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

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

Algorithmes de recherche


Chapitre 5 : Flot maximal dans un graphe

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

Table des matières. 1 Programmation linéaire 1

Optimisation multi-objectif par colonies de fourmis : cas des problèmes de sac à dos

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

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

Pourquoi l apprentissage?

Programmation linéaire

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Programmation par contraintes. Laurent Beaudou

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

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Eléments de Théorie des Graphes et Programmation Linéaire

Carl-Louis-Ferdinand von Lindemann ( )

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

Plus courts chemins, programmation dynamique

FIMA, 7 juillet 2005

1 - PRESENTATION GENERALE...

Stratégie de recherche adaptative en programmation par contrainte

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Analyse en Composantes Principales

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

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Ebauche Rapport finale

Big Data et Graphes : Quelques pistes de recherche

Implémentation de Nouveaux Elements Finis dans Life et Applications

OPTIMISATION À UNE VARIABLE

Couples de variables aléatoires discrètes

Algorithmique et Programmation

Géométrie Algorithmique Plan du cours

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

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

TRS: Sélection des sous-graphes représentants par l intermédiaire des attributs topologiques et K-medoïdes

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS EXPLORATION OPTIMALE D'UN ARBRE PAR UN ESSAIM D'AGENTS MOBILES

Programmation Linéaire - Cours 1

Jean-Philippe Préaux

Introduction à la théorie des graphes. Solutions des exercices

Cryptographie et fonctions à sens unique

Intégration de la dimension sémantique dans les réseaux sociaux

Optimisation Discrète

THÈSE. En vue de l'obtention du JURY

Cours d analyse numérique SMI-S4

Big Data et Graphes : Quelques pistes de recherche

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet

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

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

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

Introduction aux outils BI de SQL Server Fouille de données avec SQL Server Analysis Services (SSAS)

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

UNIVERSITÉ DU QUÉBEC À CHICOUTIMI UNIVERSITÉ DU QUÉBEC À MONTRÉAL

SAS ENTERPRISE MINER POUR L'ACTUAIRE

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Trouver un vecteur le plus court dans un réseau euclidien

Statistiques Décisionnelles L3 Sciences Economiques & Gestion Faculté d économie, gestion & AES Université Montesquieu - Bordeaux

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

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

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Fondements de l informatique Logique, modèles, et calculs

Modélisation multi-agents - Agents réactifs

Introduction à l étude des Corps Finis

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

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)


Problème 1 : applications du plan affine

Techniques d interaction dans la visualisation de l information Séminaire DIVA

LE PROBLEME DU PLUS COURT CHEMIN

Master of Science en mathématiques

VI. Tests non paramétriques sur un échantillon

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Raisonnement par récurrence Suites numériques

Une nouvelle approche de détection de communautés dans les réseaux sociaux

Sujet 4: Programmation stochastique propriétés de fonction de recours

Programmation linéaire

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Master of Science en mathématiques

Sites web éducatifs et ressources en mathématiques

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

Théorie et codage de l information

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

choisir H 1 quand H 0 est vraie - fausse alarme

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

Transcription:

Le voyageur de commerce, méthode de branch and bound. Pierre Chatelain, Kevin Quirin ENS Cachan - Antenne de Bretagne 15 août 2010

TSP Le problème du voyageur de commerce ( TSP ) consiste à trouver le chemin le plus court qui passe par n villes, étant données les distances. Formellement, TSP s'écrit : TSP Soit G = (V, E, ω) un graphe complet ( E = V V ), où ω est une fonction de poids sur E. Trouver le cycle hamiltonien de G de poids minimum. 3/1

La solution naïve est en complexité O( V!), ce qui la rend inexploitable pour plus de 15 villes. TSP est NP-complet, on utilise donc deux types d'algorithmes : Les algorithmes exacts Les algorithmes d'approximations On va étudier ici un algorithme exact, la méthode du branch and bound ( séparation et évaluation ). 4/1

Initialisation 5/1

Initialisation Données du problème G = (V, E) est un graphe complet à n sommets. 6/1

Initialisation Données du problème G = (V, E) est un graphe complet à n sommets. Ce graphe est représenté par sa matrice d'adjacence C = (c i,j), qui sera modiée au cours de l'algorithme. 6/1

Initialisation Données du problème G = (V, E) est un graphe complet à n sommets. Ce graphe est représenté par sa matrice d'adjacence C = (c i,j), qui sera modiée au cours de l'algorithme. Un chemin t dans le graphe est représenté par une suite d'arêtes, et son coût est déni par : z(t) = (i,j) t c i,j 6/1

Initialisation Données du problème G = (V, E) est un graphe complet à n sommets. Ce graphe est représenté par sa matrice d'adjacence C = (c i,j), qui sera modiée au cours de l'algorithme. Un chemin t dans le graphe est représenté par une suite d'arêtes, et son coût est déni par : z(t) = (i,j) t c i,j But Trouver t hamiltonien minimisant z. 6/1

Initialisation Exemple 1 26 23 7 27 2 27 43 16 30 26 7 16 1 30 25 43 20 16 21 2530 12 5 6 3046 5 5 1 16 9 18 5 50 48 18 4 5 27 3525 13 16 20 13 35 5 0 21 16 25 18 18 12 46 27 48 5 23 5 5 9 5 3 7/1

Initialisation Exemple 27 43 16 30 26 7 16 1 30 25 20 13 35 5 0 21 16 25 18 18 12 46 27 48 5 23 5 5 9 5 z = 43 + 13 + 30 + 5 + 9 + 21 = 121 8/1

Branching 9/1

Branching Représentation par un arbre binaire L'ensemble des cycles hamiltoniens possibles du graphe est représenté par les feuilles d'un arbre. all i, j i, j k, l k, l 10/1

Branching Représentation par un arbre binaire L'ensemble des cycles hamiltoniens possibles du graphe est représenté par les feuilles d'un arbre. Initialement, l'arbre a un seul noeud, représentant tous les cycles. all 10/1

Branching Représentation par un arbre binaire L'ensemble des cycles hamiltoniens possibles du graphe est représenté par les feuilles d'un arbre. Initialement, l'arbre a un seul noeud, représentant tous les cycles. Le noeud i, j représente tous les cycles contenant l'arête (i, j), et le noeud i, j tous les cycle qui ne la contiennent pas. i, j all i, j 10/1

Branching Représentation par un arbre binaire L'ensemble des cycles hamiltoniens possibles du graphe est représenté par les feuilles d'un arbre. all Initialement, l'arbre a un seul noeud, représentant tous les cycles. Le noeud i, j représente tous les cycles contenant l'arête (i, j), et le noeud i, j tous les cycle qui ne la contiennent pas. i, j i, j Chaque étage de l'arbre divise ainsi l'ensemble des cycles. k, l k, l 10/1

Lower Bounds 11/1

Lower Bounds Réduction 27 43 16 30 26 7 16 1 30 25 20 13 35 5 0 21 16 25 18 18 12 46 27 48 5 23 5 5 9 5 12/1

Lower Bounds Réduction 27 43 16 30 26 6 15 0 29 24 20 13 35 5 0 21 16 25 18 18 12 46 27 48 5 23 5 5 9 5 Réduction sur une ligne (h = 1) 12/1

Lower Bounds Réduction 22 43 16 30 26 6 15 0 29 24 20 8 35 5 0 21 11 25 18 18 12 41 27 48 5 23 0 5 9 5 Réduction sur une colonne (h = 5) 12/1

Lower Bounds Réduction 11 27 0 14 10 1 15 0 29 24 15 13 35 5 0 0 0 9 2 2 2 41 22 43 0 13 0 0 4 0 Réduction sur les lignes, puis les colonnes : h = 48 z(t) = h + z1(t) 48 12/1

Déroulement de l'algorithme 13/1

Déroulement de l'algorithme Initialisation Meilleur parcours On dénit Z 0 par le coût du meilleur parcours trouvé. 14/1

Déroulement de l'algorithme Initialisation Meilleur parcours On dénit Z 0 par le coût du meilleur parcours trouvé. Initialement, Z 0 = +. 14/1

Déroulement de l'algorithme Initialisation Meilleur parcours On dénit Z 0 par le coût du meilleur parcours trouvé. Initialement, Z 0 = +. Réduction et initialisation de l'arbre L'arbre contient seulement le noeud all. 14/1

Déroulement de l'algorithme Initialisation Meilleur parcours On dénit Z 0 par le coût du meilleur parcours trouvé. Initialement, Z 0 = +. Réduction et initialisation de l'arbre L'arbre contient seulement le noeud all. La matrice est réduite, et le coecient de réduction est retenu pour le noeud : 14/1

Déroulement de l'algorithme Choix d'un noeud Critère de choix Idée : Partitionner l'ensemble des parcours en T 1, T 2, où T 1 contient probablement le parcours optimal, et T 2 a peu de chances de le contenir. 15/1

Déroulement de l'algorithme Choix d'un noeud Critère de choix Idée : Partitionner l'ensemble des parcours en T 1, T 2, où T 1 contient probablement le parcours optimal, et T 2 a peu de chances de le contenir. On choisit de partitionner selon une arête de coût nul. 15/1

Déroulement de l'algorithme Choix d'un noeud Critère de choix Idée : Partitionner l'ensemble des parcours en T 1, T 2, où T 1 contient probablement le parcours optimal, et T 2 a peu de chances de le contenir. On choisit de partitionner selon une arête de coût nul. Parmi les choix restants, on maximise la fonction : θ(i, j) = min(c k =j i,k) + min(c k =i k,j) 15/1

Déroulement de l'algorithme Exemple 11 27 0 14 10 1 15 0 29 24 15 13 35 5 0 0 0 9 2 2 2 41 22 43 0 13 0 0 4 0 θ(1, 4) = 10 + 0 = 10 16/1

Déroulement de l'algorithme Exemple 11 27 10 14 10 1 15 1 29 24 15 13 35 5 5 1 0 9 2 2 2 41 22 43 2 13 0 9 4 2 argmax(θ(i, j)) = (1, 4) 17/1

Déroulement de l'algorithme Simplication de la matrice 11 27 0 14 10 1 15 0 29 24 15 13 35 5 0 0 9 2 2 2 41 22 43 0 13 0 0 4 0 18/1

Déroulement de l'algorithme Réduction 11 27 0 14 10 0 14 0 28 23 15 13 35 5 0 0 9 2 2 2 41 22 43 0 13 0 0 4 0 19/1

Déroulement de l'algorithme Mise à jour de Z 0 20/1

Déroulement de l'algorithme Fin de l'algorithme 21/1

Complexité au pire 22/1

Complexité au pire Complexité au pire Au pire, on explore tous les chemins possibles O((n 1)!) 23/1

Complexité au pire Complexité au pire Au pire, on explore tous les chemins possibles O((n 1)!) On va étudier la complexité en moyenne. 23/1

Complexité en moyenne 24/1

Complexité en moyenne Complexité en moyenne On dénit un arbre aléatoire T (b, d) par : 25/1

Complexité en moyenne Complexité en moyenne On dénit un arbre aléatoire T (b, d) par : T (b, d) est de profondeur d. 25/1

Complexité en moyenne Complexité en moyenne On dénit un arbre aléatoire T (b, d) par : T (b, d) est de profondeur d. Les nombres de ls des noeuds sont indépendants, identiquement distribués, d'espérance b. 25/1

Complexité en moyenne Complexité en moyenne On dénit un arbre aléatoire T (b, d) par : T (b, d) est de profondeur d. Les nombres de ls des noeuds sont indépendants, identiquement distribués, d'espérance b. Les coûts des arêtes sont indépendants et identiquement distribués. 25/1

Complexité en moyenne Complexité en moyenne On dénit un arbre aléatoire T (b, d) par : T (b, d) est de profondeur d. Les nombres de ls des noeuds sont indépendants, identiquement distribués, d'espérance b. Les coûts des arêtes sont indépendants et identiquement distribués. Le coût d'un noeud est la somme des coûts des arêtes de la racine à ce noeud. 25/1

Complexité en moyenne But On va donc chercher le nombre de branches que doit explorer l'algorithme pour arriver à la feuille de coût minimal. 26/1

Complexité en moyenne But On va donc chercher le nombre de branches que doit explorer l'algorithme pour arriver à la feuille de coût minimal. On note p 0 la probabilité que le coût d'une arête soit 0. 26/1

Complexité en moyenne Théorème Dans un arbre aléatoire T (b, d), quand d : 27/1

Complexité en moyenne Théorème Dans un arbre aléatoire T (b, d), quand d : Si bp 0 < 1, la recherche de la feuille de coût minimal est de complexité exponentielle. 27/1

Complexité en moyenne Théorème Dans un arbre aléatoire T (b, d), quand d : Si bp 0 < 1, la recherche de la feuille de coût minimal est de complexité exponentielle. Si bp 0 1, la recherche de la feuille de coût minimal est de complexité polynomiale. 27/1

Complexité en moyenne Théorème Dans un arbre aléatoire T (b, d), quand d : Si bp 0 < 1, la recherche de la feuille de coût minimal est de complexité exponentielle. Si bp 0 1, la recherche de la feuille de coût minimal est de complexité polynomiale. On voit donc qu'il y a une transition de complexité en bp 0 = 1, d'exponentielle à polynomiale. 27/1

Complexité en moyenne Dans le cas du TSP, l'hypothèse d'indépendance n'est plus réaliste. 28/1

Complexité en moyenne Dans le cas du TSP, l'hypothèse d'indépendance n'est plus réaliste. Cependant, des études expérimentales montrent qu'il y a une transition de complexité en fonction du nombre de valeurs possibles pour les distances entres les villes. 28/1