Implanter les algorithmes Oum-Seymour et Oum



Documents pareils
Resolution limit in community detection

Chapitre 5 : Flot maximal dans un graphe

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

Introduction à MATLAB R

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

chapitre 4 Nombres de Catalan

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

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

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

MIS 102 Initiation à l Informatique

Programmes des classes préparatoires aux Grandes Ecoles

Cours de Master Recherche

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

Big Data et Graphes : Quelques pistes de recherche

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

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

Théorie et codage de l information

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

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Big Data et Graphes : Quelques pistes de recherche

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

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

ANALYSE CATIA V5. 14/02/2011 Daniel Geffroy IUT GMP Le Mans

1 Définition et premières propriétés des congruences

BACCALAUREAT GENERAL MATHÉMATIQUES

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

Rapport d'analyse des besoins

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

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Problèmes de dénombrement.

CARTE DE VOEUX À L ASSOCIAEDRE

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

Cryptographie et fonctions à sens unique

Serveurs de noms Protocoles HTTP et FTP

Licence Sciences et Technologies Examen janvier 2010

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

Les structures de données. Rajae El Ouazzani

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

L informatique en BCPST

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Simulation de variables aléatoires

Cours de Génie Logiciel

MABioVis. Bio-informatique et la

U.F.R. Sciences Fondamentales et Appliquées. pour obtenir. le grade de Docteur en Sciences. Spécialité : informatique

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

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

Approximations variationelles des EDP Notes du Cours de M2

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

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

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

Cours de mathématiques

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

Conception de réseaux de télécommunications : optimisation et expérimentations

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Cours 1 : Qu est-ce que la programmation?

Annexe commune aux séries ES, L et S : boîtes et quantiles

Quelques Algorithmes simples

Probabilités conditionnelles Exercices corrigés

Plus courts chemins, programmation dynamique

Indications pour une progression au CM1 et au CM2

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

Model checking temporisé

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

Continuité et dérivabilité d une fonction

Programmation Par Contraintes

Initiation à l algorithmique

COURS SYRRES RÉSEAUX SOCIAUX INTRODUCTION. Jean-Loup Guillaume

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

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

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

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

ARBRES BINAIRES DE RECHERCHE

La classification automatique de données quantitatives

Chap. 3: Le modèle de données entité-association (E.A.)

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

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Maple: premiers calculs et premières applications

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

L isomorphisme entre les tours de Lubin-Tate et de Drinfeld et applications cohomologiques par Laurent Fargues

CHAPITRE IV. L axiome du choix

Algorithmes de recherche

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

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

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

Programmation linéaire

Apprentissage Automatique

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

La fonction exponentielle

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

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

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

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


Université de Strasbourg UFR de Mathématique et d'informatique. L2 Informatique Semestres S3 et S4. Structures de Données et Algorithmes 1 et 2

Bases de programmation. Cours 5. Structurer les données

Nom : Groupe : Date : 1. Quels sont les deux types de dessins les plus utilisés en technologie?

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Transcription:

Implanter les algorithmes Oum-Seymour et Oum J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet jeanflorent.raymond@ens-lyon.fr LIP6, Université Pierre et Marie Curie 17/11/2011 J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 1 / 23

1 Motivations et références 2 Rappels théoriques 3 Implantation J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 2 / 23

Sommaire 1 Motivations et références 2 Rappels théoriques 3 Implantation J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 3 / 23

Motivations But : la résolution des problèmes difficiles en théorie des graphes. Idée : Décomposer l instance du problème en sous-instances peut permettre une résolution plus rapide. Complexité : O(f (k) poly(n)) J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 4 / 23

Références Plusieurs largeurs existent sur les graphes : largeur arborescente (tree-width) ou de branche (branch-width) : Robertson et Seymour (1991) ; largeur de clique (clique-width) : Courcelle, Engelfriet et Rozenberg (1993) ; largeur modulaire (module-width) : Lanlignel (2001), Rao (2008) ; largeur de rang (rank-width) : Oum and Seymour (2006) ; largeur booléenne (bool-width) : Bui-Xuan, Telle et Vatshelle (2009) ; etc. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 5 / 23

Références Quelques résultats sur la largeur de rang : Oum et Seymour 2006, Oum 2008 : algorithme de décomposition qui à un graphe quelconque à n sommets associe une 3-approximation de la décomposition optimale en temps O(opt 2 n 4 2 3 opt ), où opt est la largeur de la décomposition optimale ; Courcelle 2000 : à partir d une décomposition d un graphe, on peut résoudre une grande quantité de problèmes en temps exponentiel où le facteur exponentiel dépend de la largeur de la décomposition. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 5 / 23

Sommaire 1 Motivations et références 2 Rappels théoriques 3 Implantation J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 6 / 23

Largeur de rang Soient A V (G) et M la matrice d adjacence de G. On définit le rang de coupe par On remarque que : cut-rank(a) = rg(m (A,V (G)\A) ) le rang de coupe est symétrique ; le rang de coupe est une fonction sous-modulaire. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 7 / 23

Décomposition Arbre de décomposition T d un graphe G : arbre binaire entier non enraciné dont les feuilles sont en bijection avec les sommets du graphe. 5 3 4 5 3 4 1 2 1 2 J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 8 / 23

Largeur de rang Choisir une arête e de T : découper V (G) en V 1 et V 2 ; Largeur de e : rang de la matrice d adjacence dans G entre V 1 et V 2 ; Largeur de T : maximum des largeurs des arêtes de T 5 3 4 cut-rank(e) = rg ( ) 1 0 0 = 2 0 1 0 e 1 2 J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre 17/11/2011 et Marie Curie) 9 / 23

L algorithme de Oum-Seymour Entrée : Un graphe connexe G et un entier k. Sortie : soit un message d erreur ; soit une décomposition arborescente de largeur de rang inférieure à k. Principe : On affine petit à petit une décomposition arborescente partielle. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 10 / 23

L algorithme de Oum-Seymour État initial : l unique feuille de T est associée aux sommets de G : V(G) J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 10 / 23

L algorithme de Oum-Seymour Ensuite, si B > 1 B\{v}... cut-rank G (e) < k {v}... e B B\Z... cut-rank G (e) = k Z B J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 10 / 23

L algorithme de Oum-Seymour Avec Z qui découpe B en deux parties de cut-rank inférieur à celui de B : Z B et cut-rank G (Z B) cut-rank G (B) ; B\Z et cut-rank G (Z \B) cut-rank G (B). Si un tel Z n existe pas, on renvoit un message d erreur. Mais comment calculer cet ensemble? J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 10 / 23

Calcul de Z 1 on calcule X V (G)\B tel que les lignes de M (V (G)\B,B) associées aux éléments de X forment une base de cette matrice. 2 Pour toute partition (X 1, X 2 ) de X, on cherche un ensemble Z V (G) de cut-rank minimal et inférieur à min{ X 1, X 2 )} à tel que : i) Z X = X 1 ; ii) X\Z = X 2 Si un tel ensemble n existe pas, on renvoie un message d erreur. Lemme (Oum-Seymour 06) : l ensemble Z ainsi trouvé vérifie les propriétés demandées. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 11 / 23

Définitions et propriétés L opération de complémentation locale de G en un sommet v, notée G v v v v ne change pas le cut-rank. De même pour l opération de pivot de l arête uv de G, notée G uv et définie par G uv = G u v u. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 12 / 23

Pivot Le pivot est une opération fréquemment utilisée. Elle est implantée de la sorte : N(u) N(v) On inverse les valeurs des parties hachurées. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 13 / 23

Séquences bloquantes v 1,..., v m suite de sommets distincts de V (G)\(X 1 X 2 ) est une séquence bloquante pour (X 1, X 2 ) dans G si elle est la plus courte séquence telle que : v 1 X 1 X 2 v 2... v m cut-rank G (X 1, X 2 {v 1 }) > r ; cut-rank G (X 1 {v i }, X 2 {v i+1 }) > r ; cut-rank G (X 1 {v m }, X 2 ) > r Avec r = cut-rank G (X 1, X 2 ). J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 14 / 23

Déroulement de Oum 08 Entrée : un graphe G, deux ensembles disjoints X 1, X 2 V (G) et un entier k Sortie : l ensemble Z dont on a besoin dans Oum-Seymour 06 On travaille sur G une copie de G. Pour tout i 0, k, cherche une séquence bloquante pour (X 1, X 2 ) dans G : inexistante : retourne Z = X 1 {sommets accessibles dexpuis X 1 } de cut-rank cut-rank G (X 1, X 2 ) (lemme Oum 08) ; v 1,..., v m : Pour tout j 0, m 1 on cherche w X 2 adjacent à v m j dans G ; on pose G = G wv m j. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 15 / 23

Sommaire 1 Motivations et références 2 Rappels théoriques 3 Implantation J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 16 / 23

Choix d implantation Oum-Seymour 06 (décomposition) : matrice d adjacence pour l arbre de décomposition partielle (grossit au fur et à mesure que la décomposition s affine) ; file d attente pour les feuilles qu il reste à décomposer. Oum 08 (calcul de Z ) : matrice d adjacence pour le graphe (plus facile pour les pivots) ; le graphe utilisé est une copie du graphe donné en entrée, que l on modifie à chaque pivot ; recherche d une séquence bloquante : parcours en largeur dans un graphe construit au fur et à mesure. On ne contruit tout le graphe que quand il n existe pas de séquence bloquante. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 17 / 23

SAGE Les deux algorithmes ont été implémentés en python et utilisent des fonctions du système de calcul formel SAGE. Avantages : syntaxe proche de python ; beaucoup de fonctions sont déjà codées ; bien documenté. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 18 / 23

SAGE Avec SAGE : calcul du rang ; extraction de sous-matrices ; pivot de Gauss ; accessibilité depuis un sommet. Sans SAGE : cut-rank ; pivot d une arête ; recherche de séquence bloquante (parcours en largeur, etc.). J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 18 / 23

Stockage du résultat La classe suivante est utilisée pour stocker la décomposition en construction : class ArbreDec: def init (self,m) def repr (self, pere=none) def show(self,size =(8,8)) def save(self,nomfich) def feuilles(self,i,pere=none) def rang_de_coupe(self) def augmentet(self,pere) J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 19 / 23

Résultats J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 20 / 23

Perspectives Première implantation améliorations possibles. Par exemple, pour le calcul de Z (coûteux en temps) : stocker le graphe auxiliaire par listes d adjacence plutôt que par matrices ; ne pas calculer l ensemble du graphe auxiliaire mais seulement les sommets accessibles depuis X 1 ; utiliser la partie du graphe calculée pendant la recherche de séquence bloquante. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 21 / 23

Remerciements Je tiens à remercier Binh-Minh Bui-Xuan et Philippe Trébuchet pour leur aide et leurs conseils. J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 22 / 23

The end Merci pour votre attention. Avez-vous des questions? J.-F Raymond, B.-M Bui-Xuan et P. Trébuchet Implanter jeanflorent.raymond@ens-lyon.fr les algorithmes Oum-Seymour et(lip6, Oum Université Pierre17/11/2011 et Marie Curie) 23 / 23