Cours de graphes 6 - Intranet

Slides:



Advertisements
Présentations similaires
Introduction à la Théorie des graphes
Advertisements

La recherche de chemin optimal
Présentation générale Marc Gengler
Dans cette partie Graphes Eulériens.
Algorithmes et structures de données avancées Cours 7
Algorithmes et structures de données avancés
Introduction à la Théorie des graphes
Cours d’Algorithmique
Cours d’Algorithmique
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours dAlgorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Cours d’Algorithmique
Cours d'algorithmique 9 - Intranet 1 12 décembre 2006 Cours dAlgorithmique Logique de Hoare (début) : Principes et constructions élémentaires.
Cours d’Algorithmique
Problème des 4 couleurs, graphes planaires.
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
18 octobre 2007Cours de compilation 7 - Intranet1 Cours de compilation Génération de code Optimisation de code.
Cours de graphes Problèmes de flots. Théorème du Max-flow – Min-cut.
Quelques applications.
Cours d’Algorithmique
Cours d’Algorithmique
Cours d'algorithmique 9 - Intranet 1 12 décembre 2006 Cours dAlgorithmique Logique de Hoare (début) : Principes et constructions élémentaires.
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
Cours d'algorithmique 4 - Intranet 1 16 novembre 2006 Cours dAlgorithmique Lalgorithme alpha-beta. Sous-arbres alpha et beta dun arbre minimax et propriétés.
Cours d’Algorithmique
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Cours d'algorithmique 5 - Intranet 1 17/21 novembre 2006 Cours dAlgorithmique Divide and Conquer : principes et applications. Calculabilité.Complexité.
Cours de graphes Les plus courts chemins,
21 septembre 2007Cours de compilation 2 - Intranet1 Cours de compilation Evaluation partielle etcompilation.
Marc Gengler
9 mars 2007Cours de graphes 6 - Intranet1 Cours de graphes Chemins dEuler. Chemins de Hamilton. Couplages.
24 septembre 2007Cours de compilation 4 - Intranet1 Cours de compilation Techniques danalyse descendantes.
Cours d’Algorithmique
28 février 2006Cours de graphes 3 - Intranet1 Cours de graphes Les arbres et arborescences. Les arbres de recouvrement. Les arbres de recouvrement minimaux.
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
COURS SUR LA THEORIE DES GRAPHES
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Cours d’Algorithmique
Heuristiques A. Introduction B. Recherche d ’une branche
Problème des 4 couleurs, graphes planaires.
Quelques applications.
Quelques graphes particuliers.
Équations différentielles.
Théorie des graphes Un peu de vocabulaire.
Cours de graphes Les arbres et arborescences.
16 mars 2007Cours de graphes 7 - Intranet1 Cours de graphes Problèmes NP-complets. Réductions polynômiales.
Algorithme de Bellman-Ford
Structures de données IFT-2000
Quatrième étape : cheminer dans les graphes. Une chaîne… Quand elle nutilise pas plusieurs fois la même arête, la chaîne est dite simple. Au sens du programme,
Coloration gap sommet identifiante de graphes
IFT Complexité et NP-complétude
Algorithmes d ’approximation
PROBLEMES DE DEGRE-DIAMETRE DE GRAPHES DANS LE CAS GENERAL
Optimisation dans les réseaux
Recherche Opérationnelle
- GRAPHES - Composantes et types
Cours de graphes Marc Gengler Alexandra Bac Sébastien Fournier
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
23 février 2007Cours de graphes 4 - Intranet1 Cours de graphes Problèmes de flots. Théorème du Max-flow – Min-cut. Algos de Ford-Fulkerson et Edmonds-Karp.
Programmation dynamique
Deuxième étape : échanger des poignées de mains
Atelier de formation : MAT optimisation II (les graphes).
Pour le chemin le plus court pour tous les couples

Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Programmation linéaire en nombres entiers
Problème de double digestion
Algorithme de DIJKSTRA
CSI2510 Structures de données et algorithmes Plus court chemin
Introduction à la Théorie des graphes
Cycle, Cocycle, Arbre et Arborescence
Transcription de la présentation:

Cours de graphes 6 - Intranet Chemins d’Euler. Chemins de Hamilton. Couplages. 9 mars 2007 Cours de graphes 6 - Intranet

Les grandes lignes du cours Définitions de base Connexité Les plus courts chemins Dijkstra et Bellmann-Ford Arbres Arbres de recouvrement minimaux Problèmes de flots Coloriage de graphes, graphes planaires Couplage Chemins d’Euler et de Hamilton Problèmes NP-complets 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins d’Euler ----------------------------------------------------------------- C H E M I N S E T C Y C L E S D’ E U L E R ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins d’Euler ----------------------------------------------------------------- L’origine historique : La Pregel et les ponts à Königsberg ( Kaliningrad ) ! Pouvons-nous trouver un chemin qui traverse chaque pont une et une seule fois ? Si oui, les points de départ et d’arrivée coïncident-ils ? 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins d’Euler ----------------------------------------------------------------- En termes de graphes : Nous avons un multi-graphe ! Pouvons-nous trouver un chemin qui passe une et une seule fois par chaque arête ? ( couverture des arêtes ) Si oui, le chemin est-il un cycle ? 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins d’Euler ----------------------------------------------------------------- Nous pouvons passer d’un multi-graphe à un graphe simple : Il suffit de matérialiser un pont par un sommet ! Nous conservons le même problème en termes de couverture des arêtes ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins d’Euler ----------------------------------------------------------------- La « maison de Nicolas » : Pouvons-nous dessiner la figure suivante d’un seule trait et sans lever le crayon ? La réponse est OUI ! 2 3 6 A et D sont les seuls sommets de degré impair ! 5 7 1 4 D A 8 Le point de départ est l’un de ceux-ci et le point d’arrivée l’autre. 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins d’Euler ----------------------------------------------------------------- L E T H E O R E M E D’ E U L E R S U R L E S C H E M I N S ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins d’Euler ----------------------------------------------------------------- Le théorème d’Euler (1736) : Un multi-graphe possède un chemin d’Euler si et seulement si tous ses sommets, sauf peut-être deux, sont de degré pair ! Les sommets de degré impair, s’ils existent, sont les points de départ et d’arrivée ! Si tous les sommets sont de degré pair, et seulement dans ce cas, le chemin d’Euler est un cycle d’Euler ! Remarque : Nous conservons le même résultat si nous transformons un multi-graphe en un graphe simple, car les sommets auxiliaires ( les ponts ) sont de degré 2 ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons l’existence d’un chemin ou d’un cycle d’Euler et déduisons-en les propriétés sur les degrés ! Soit le chemin d’Euler suivant : Si « u » est différent de « v », le sommet « u » intervient avec un degré impair dans le chemin ! Si « u » est différent de « v », le sommet « v » intervient avec un degré impair dans le chemin ! Si « u » et « v » sont identiques, c’est-à-dire en présence d’un cycle, le sommet « u » intervient avec un degré pair ! Tout autre sommet « w » intervient avec un degré pair dans le chemin d’Euler ! Le chemin ou cycle d’Euler contient toutes les arêtes du graphe, d’où le résultat annoncé ! . . . . . . u w v 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler ! Si tous les sommets du graphe G sont de degré pair : En enlevant une arête ( u , v ) nous obtenons un graphe G’ dont exactement deux arêtes sont de degré impair ! Par application de la seconde partie du théorème ( celle qui est à venir ), nous déduisons que G’ admet un chemin d’Euler qui commence en « u » et se termine en « v » ! En insérant à nouveau l’arête ( u , v ) nous obtenons le cycle d’Euler annoncé ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler ! Si « u » et « v » sont les seuls sommets de degré impair : Nous choisissons une arête ( u , w ) et nous la supprimons pour obtenir un graphe G’ ! Admettons d’abord que G’ est connexe ! Si v  = w , tous les sommets de G’ sont pairs et il existe un cycle d’Euler ( v ; v ) ! Et donc un chemin d’Euler ( u , v ; v ) ! ( Cas A ) 9 mars 2007 Cours de graphes 6 - Intranet

Preuve du théorème d’Euler ----------------------------------------------------------------- u et v sont au départ de degrés impairs ! u v La suppression de l’arête ( u , v ) les rend de degrés pairs ! Par hypothèse sur le nombre d’arêtes, et vu que tous les sommets sont de degrés pairs, il existe un cycle d’Euler avec v comme point de départ et d’arrivée ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler ! Si « u » et « v » sont les seuls sommets de degré impair : Nous choisissons une arête ( u , w ) et nous la supprimons pour obtenir un graphe G’ ! Admettons d’abord que G’ est connexe ! Si v  = w , tous les sommets de G’ sont pairs et il existe un cycle d’Euler ( v ; v ) ! Et donc un chemin d’Euler ( u , v ; v ) ! Si v  = w , v et w sont les seuls sommets dans G’ de degré impair ! Il existe donc dans G’ un chemin d’Euler ( w ; v ) ! Et du coup un chemin d’Euler ( u , w ; v ) dans G ! ( Cas A ) / 9 mars 2007 Cours de graphes 6 - Intranet

Preuve du théorème d’Euler ----------------------------------------------------------------- u et v sont au départ de degrés impairs et w de degré pair ! u v w La suppression de l’arête ( u , w ) donne à u de degré pair et à v et w des degrés impairs ! Par hypothèse sur le nombre d’arêtes, et vu que v et w sont les seuls sommets de degrés impairs, il existe un chemin d’Euler avec w comme départ et v comme arrivée ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler ! Si « u » et « v » sont les seuls sommets de degré impair : Nous choisissons une arête ( u , w ) et nous la supprimons pour obtenir un graphe G’ ! Admettons d’abord que G’ est connexe ! Si v  = w , tous les sommets de G’ sont pairs et il existe un cycle d’Euler ( v ; v ) ! Et donc un chemin d’Euler ( u , v ; v ) ! Si v  = w , v et w sont les seuls sommets dans G’ de degré impair ! Il existe donc dans G’ un chemin d’Euler ( w ; v ) ! Et du coup un chemin d’Euler ( u , w ; v ) dans G ! ( Cas A ) / 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler ! Si « u » et « v » sont les seuls sommets de degré impair : Nous choisissons une arête ( u , w ) et nous la supprimons pour obtenir un graphe G’ ! Admettons maintenant que G’ n’est plus connexe ! Nous avons les composantes connexes CC( u ) et CC( w ) ! ( Cas B ) Pourquoi ? CC( u ) CC( w ) u w v On l’appelle un « isthme » ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler ! Si « u » et « v » sont les seuls sommets de degré impair : Nous choisissons une arête ( u , w ) et nous la supprimons pour obtenir un graphe G’ ! Admettons maintenant que G’ n’est plus connexe ! Nous avons les composantes connexes CC( u ) et CC( w ) ! Lemme : La somme des degrés des sommets d’un graphe (connexe) est paire ! Donc, le nombre de sommets de degrés impairs est paire ! ! ! ( Cas B ) 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler ! Si « u » et « v » sont les seuls sommets de degré impair : Nous choisissons une arête ( u , w ) et nous la supprimons pour obtenir un graphe G’ ! Admettons maintenant que G’ n’est plus connexe ! Nous avons les composantes connexes CC( u ) et CC( w ) ! ( Cas B ) CC( u ) CC( w ) u w Tous pairs ! Deux impairs ou tous pairs ! v On l’appelle un « isthme » ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Preuve du théorème d’Euler ----------------------------------------------------------------- Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler ! Si « u » et « v » sont les seuls sommets de degré impair : Nous choisissons une arête ( u , w ) et nous la supprimons pour obtenir un graphe G’ ! Admettons maintenant que G’ n’est plus connexe ! Nous avons les composantes connexes CC( u ) et CC( w ) ! Les sommets de CC( u ) sont pairs, d’où le circuit d’Euler ( u ; u ). CC( w ) possède 0 ( v = w ) ou 2 ( v = w ) sommets de degrés impairs et il existe un chemin d’Euler ( w ; v ) ! On a donc le chemin d’Euler ( u ; u , w ; v ) , comme annoncé ! ( Cas B ) / 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Construction d’un chemin d’Euler ----------------------------------------------------------------- L A C O N S T R U C T I O N D ‘ U N C H E M I N D’ E U L E R ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Construction d’un chemin d’Euler ----------------------------------------------------------------- Supposons données les conditions de parité sur les degrés ! Si tous les sommets sont de degré pair, nous enlevons une arête ( u , v ) et nous construisons le chemin d’Euler ( u ; v ) ! Nous considérons un sommet courant « s » à partir duquel nous continuons le chemin ! Au début, nous choisissons pour « s » un des deux sommets impairs du graphe ! Si « s » est identique à « v » et qu’il est isolé, nous avons fini ! Si « s » n’a que le seul voisin « u », nous empruntons l’arête en question avant de la supprimer ! Nous continuons en « u ». Si « s » a plusieurs voisins, dont l’isthme ( s , u ) , nous empruntons n’importe quelle arête, sauf l’isthme ! Remarque : l’isthme est unique ( pourquoi ? ) ! Sinon, nous choisissons une arête ( s , u ) quelconque ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Construction d’un chemin d’Euler ----------------------------------------------------------------- Complexité : A chaque étape, nous choisissons une des O( | E | ) arêtes ! A chaque étape, nous sélectionnons une arête et testons, à moins que l’arête ne soit unique, si elle est un isthme en lançant une « vague » qui est de complexité O( | E | ) ! Si elle n’est pas un isthme, l’arête est parcourue ! Sinon, nous parcourons une quelconque autre arête ! Globalement, nous obtenons une complexité en O( | E |^2 ) = O( | V |^4 ). 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Construction d’un chemin d’Euler ----------------------------------------------------------------- U N E X E M P L E 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Construction d’un chemin d’Euler ----------------------------------------------------------------- Exemple : Nous évitons l’isthme et nous continuons avec l’une des deux autres arêtes ! Isthme ! D 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Construction d’un chemin d’Euler ----------------------------------------------------------------- Exemple : Isthme ! D A prendre l’isthme, nous perdons toute possibilité de visiter les sommets à droite ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Construction d’un chemin d’Euler ----------------------------------------------------------------- Exemple : L’isthme est le seul choix possible ! Isthme ! D 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- C H E M I N S E T C Y C L E S D E H A M I L T O N ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- Pouvons-nous trouver un chemin qui passe une et une seule fois dans chaque sommet ? Si oui, les points de départ et d’arrivée sont-ils voisins ? Dodéca-èdre C’est le casse-tête inventé par Lord Hamilton en 1856. Cycle de Hamilton 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- Pouvons-nous trouver un chemin qui passe une et une seule fois dans chaque sommet ? Si oui, les points de départ et d’arrivée sont-ils voisins ? Dodéca-èdre Le greedy ne marche pas car il faut considérer tout le graphe pour construire la solution ! Cycle de Hamilton 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- Pouvons-nous trouver un chemin qui passe une et une seule fois dans chaque sommet ? Si oui, les points de départ et d’arrivée sont-ils voisins ? Le graphe complet K ! Le graphe de Peterson ! 5 Ce graphe admet des chemins de Hamilton ! Il est sans chemin de Hamilton ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- U N E A P P L I C A T I O N ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- Nous avons 4 jeunes filles A, B, C, D et 4 jeunes gens a, b, c, d . Ils dansent des rondes formées de files et garçons en alternance. Combien de rondes peuvent-ils danser si chaque jeune fille ne danse qu’une seule fois à côté du même jeune homme ? A a Le graphe bi-parti complet K ! 4,4 B b Nous cherchons un cycle de Hamilton ! On peut former une deuxième ronde ! C c D d 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- Q U E L Q U E S A F F I R M A T I O N S ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- Savoir si un graphe admet un chemin ou un cycle de Hamilton est NP-complet en général ! Il s’agit de savoir s’il existe un chemin simple qui couvre les sommets ! Or, le nombre de chemins simples est en général exponentiel par rapport au nombre de sommets ! Le chemin de Hamilton comporte | V | - 1 arêtes sur les | E | arêtes qu’il y a dans le graphe ! Lesquelles faut-il prendre, lesquelles faut-il laisser ? ? ? 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- Il y a des cas particuliers : Un graphe bi-parti avec un nombre impair de sommets n’est jamais hamiltonien ! Un graphe avec n sommets ayant un degré d’au moins n/2 pour chaque sommet est hamiltonien ( Dirac ). Un graphe avec n sommets tel que pour toute paire de sommets u et v qui ne sont pas voisins on ait la propriété D( u ) + D( v ) >= n est hamiltonien ( Ore ). 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Chemins et cycles de Hamilton ----------------------------------------------------------------- Une problématique particulière : Le problème du voyageur de commerce consiste à considérer un graphe pondéré complet et à trouver le cycle de Hamilton le moins cher parmi un nombre exponentiel de cycles de Hamilton ! Si le graphe est incomplet, la simple question de savoir s’il existe un cycle de Hamilton est NP-complète ( sans vouloir trouver le meilleur de ces cycles ) ! Soit c’est difficile d’en trouver un seul cycle, soit c’est difficile à cause du trop grand nombre de cycles ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages ----------------------------------------------------------------- C O U P L A G E S ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages ----------------------------------------------------------------- Un couplage d’un graphe G = ( V , E ) consiste à trouver un sous-ensemble C des arêtes tel que chaque sommet fasse partie d’au plus un couple ! Souvent, on souhaite maximiser le nombre de couples ! Un couplage est parfait s’il sature tous les sommets du graphe ! Un couplage Les arêtes retenues et les sommets atteints sont dits saturés par le couplage. 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages ----------------------------------------------------------------- Un couplage d’un graphe G = ( V , E ) consiste à trouver un sous-ensemble C des arêtes tel que chaque sommet fasse partie d’au plus un couple ! Souvent, on souhaite maximiser le nombre de couples ! Un couplage est parfait s’il sature tous les sommets du graphe ! Un couplage parfait ! Les arêtes retenues et les sommets atteints sont dits saturés par le couplage. Un couplage maximal, non parfait ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Deux exemples ----------------------------------------------------------------- D E U X E X E M P L E S 9 mars 2007 Cours de graphes 6 - Intranet

Nous cherchons un couplage maximal ! Deux exemples ----------------------------------------------------------------- Exemple : Une promotion d’élèves qui doivent réaliser leur projet d’algorithmique en binômes, des affinités, qui sont toujours réciproques, entre certains élèves. Quel est le maximum de binômes que nous pouvons former en respectant les affinités ? Y a-t-il une solution qui permette à tout élève de trouver un binôme ? Nous cherchons un couplage maximal ! Nous aimerions qu'il soit parfait ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Deux exemples ----------------------------------------------------------------- Exemple : des lycées représentés par autant de sommets qu’il y a de places, des élèves qui ont émis des choix ( arêtes entre des élèves et des places dans les lycées ). Y a-t-il un couplage qui sature les sommets-élèves ? Un problème plus général : Nous pouvons pondérer les arêtes par des préférences et choisir le couplage qui maximise la somme des satisfactions. 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Deux exemples ----------------------------------------------------------------- Lycées Elèves Y a-t-il un couplage qui sature les élèves ? OUI ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Deux exemples ----------------------------------------------------------------- Les c-couplages : Un lycée offrant p places est représenté par p sommets non reliés entre eux. Nous pourrions fusionner ces sommets en un unique sommet qui peut faire partie d’au plus p couples. Un c-couplage associe à chaque sommet u un nombre maximum de couples dans lequel ce sommet peut apparaître. Ce nombre doit être inférieur au degré du sommet pour que le problème soit intéressant ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Deux exemples ----------------------------------------------------------------- Lycées Elèves 3 1 Trivaux ! 1 2 1 1 2 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Deux exemples ----------------------------------------------------------------- Lycées Elèves 3 1 Y a-t-il un c-couplage qui sature les élèves ? 1 2 1 1 2 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages ----------------------------------------------------------------- C O M M E N T T R O U V E R L E S 1 - C O U P L A G E S M A X I M A U X ? ? ? 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages ----------------------------------------------------------------- Maximisation des 1-couplages ! Un chemin alterné est un chemin simple qui commence en un sommet non saturé et qui comporte une alternance d’arêtes saturées et non-saturées. Un chemin améliorant est un chemin alterné qui se termine en un sommet non saturé ! Saturé : Chemin alterné ! Non-saturé : Chemin améliorant ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages ----------------------------------------------------------------- Le chemin améliorant ! Nous avons toujours : Les extrémités d’un chemin améliorant sont non-saturées ! Les sommets intermédiaires sont saturés ! Il y a une arête non-saturée de plus que d’arêtes saturées ! Nous améliorons le couplage en saturant les arêtes du chemin améliorant qui ne l’étaient pas et en dé-saturant celles qui l’étaient. 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages ----------------------------------------------------------------- Le nouveau couplage ! Nous avons toujours : Les extrémités d’un chemin améliorant sont non-saturées ! Les sommets intermédiaires sont saturés ! Il y a une arête non-saturée de plus que d’arêtes saturées ! Nous améliorons le couplage en saturant les arêtes du chemin améliorant qui ne l’étaient pas et en dé-saturant celles qui l’étaient. Complexité en O( | V |^2 * | E | ) , car : Nous avons au plus O( | V | ) itérations ! A chaque itération, nous balayons au plus les O( | V | ) sommets non saturés à la recherche d’un chemin améliorant ! La recherche d’un chemin améliorant est en O( | E | ) ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Correction du couplage ----------------------------------------------------------------- C O R R E C T I O N D E L ‘ A L G O R I T H M E 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Correction du couplage ----------------------------------------------------------------- Théorème ( Berge, 1957 ) : Un couplage C est maximal si et seulement s’il ne comporte pas de chemin améliorant. Preuve : Il est trivial que, s’il y a encore des chemins améliorants, alors le couplage C ne peut pas être maximal ! Il est moins évident de voir que, en l’absence de chemins améliorants, le couplage C soit maximal sur tous les couplages ! Nous pourrions avoir un maximum local ! ! ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Correction du couplage ----------------------------------------------------------------- Un lemme : Soit un graphe G avec deux couplages C et C’ qui sont donnés par leurs arêtes ! Considérons l’ensemble d’arêtes ( C \ C’ ) v ( C’ \ C ). C’est l’ensemble des arêtes qui sont soit dans C , soit dans C’. Nous ignorons les arêtes de G qui ne sont dans les deux couplages ou dans aucun des deux ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Correction du couplage ----------------------------------------------------------------- Le couplage C ! Le couplage C’ ! Nous enlevons ces arêtes ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Correction du couplage ----------------------------------------------------------------- Le couplage C ! Le couplage C’ ! Nous enlevons ces arêtes ! D’après le lemme il nous reste : - soit des sommets isolés, - soit des cycles de longueur paire qui alternent les arêtes, - soit des chemins qui alternent les arêtes et dont chaque extrémité est non saturée pour l’un des couplages. 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Correction du couplage ----------------------------------------------------------------- En effet, pour chaque sommet u du graphe G : Soit, u n’est pas touché par un couplage et deviendra un sommet isolé ! Soit, u est touché par un seul couplage et deviendra un sommet de degré 1 ! Soit, u est touché par les deux couplages; alors : Si c’est par le biais de la même arête, u sera isolé ! Si c’est par le biais de deux arêtes différentes, u sera de degré 2 avec une arête dans chaque couplage ! Comme les degrés sont limités à 2 et qu’il y a alternance entre les couplages, on ne peut avoir que les solutions annoncées ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Correction du couplage ----------------------------------------------------------------- Preuve du théorème ! Soit C un couplage qui n’accepte plus de chemin améliorant. Montrons que C est maximal ! Soit, C’ un couplage maximal. Construisons le graphe comme énoncé dans le lemme ! Nous pouvons obtenir : soit, des points isolés, soit, des cycles avec autant d’arêtes dans C que dans C’, soit des chemins avec une extrémité dans chaque couplage – et donc le même nombre d’arêtes dans chaque couplage. Clairement, | C | = | C’ | ! 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Correction du couplage ----------------------------------------------------------------- Il est impossible d’avoir un chemin de la forme : En effet, si les arêtes vertes appartenaient au couplage maximal C’ , celui-ci ne serait pas maximal car C aurait plus d’arêtes ! Si les arêtes vertes appartenaient au couplage C , celui-ci accepterait un chemin améliorant sous la forme des arêtes rouges ! . . . 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages pondérés ----------------------------------------------------------------- C O U P L A G E S A V E C P O I D S 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages pondérés ----------------------------------------------------------------- Chaque arête porte un poids non négatif et nous essayons de maximiser la somme « S » des satisfactions ! 3 5 9 7 4 8 2 Un couplage de poids 13. 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages pondérés ----------------------------------------------------------------- Chaque arête porte un poids non négatif et nous essayons de maximiser la somme « S » des satisfactions ! 3 5 9 7 4 8 2 Le couplage parfait a un poids de 9. 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages pondérés ----------------------------------------------------------------- Chaque arête porte un poids non négatif et nous essayons de maximiser la somme « S » des satisfactions ! 3 5 9 7 4 8 2 Le couplage maximal a un poids de 14. 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Couplages pondérés ----------------------------------------------------------------- Chaque arête porte un poids non négatif et nous essayons de maximiser la somme « S » des satisfactions ! Le couplage maximal n’est pas nécessairement optimal : Les couplages qui saturent les mêmes sommets ne donnent pas tous la même satisfaction : C'est NP-difficile ! ! ! Le couplage maximal est de poids 2 ! Il existe un couplage non maximal qui est de poids 3 ! 3 3 1 1 1 1 1 1 3 3 1 1 1 1 3 3 9 mars 2007 Cours de graphes 6 - Intranet

Cours de graphes 6 - Intranet Synthèse ----------------------------------------------------------------- Chemins d’Euler. Chemins de Hamilton. Couplages. 9 mars 2007 Cours de graphes 6 - Intranet