1.96k likes | 2.1k Views
Cours de graphes. Marc Gengler Marc.Gengler@esil.univ-mrs.fr. Alexandra Bac - Sébastien Fournier. 12h de cours 12h de TD des devoirs … et un examen. Les grandes lignes du cours. Définitions de base Connexité Les plus courts chemins Dijkstra et Bellmann-Ford Arbres
E N D
Cours de graphes Marc Gengler Marc.Gengler@esil.univ-mrs.fr Alexandra Bac - Sébastien Fournier 12h de cours 12h de TD des devoirs … et un examen Cours de graphes 1 - 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 • Couplage • Chemins d’Euler et de Hamilton • Problèmes NP-complets Cours de graphes 1 - Intranet
Bibliographie • Tout ce qui contient • - graphes, graphs. • Internet • - souvent, c’est trop simplifié ou trop dense, • - et pas toujours correct. • Mes choix • - Introduction to Algorithms, Leiserson et al. • - Algorithms, Sedgewick. • - Fundamental Algorithms, Knuth. • - Graphes, Berge. Cours de graphes 1 - 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 • Couplage • Chemins d’Euler et de Hamilton • Problèmes NP-complets Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Il y a des sommets ! (vertex, vertices) Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Il y a des sommets ! (vertex, vertices) • Il y a des arêtes ! (edge) Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Il y a des sommets ! (vertex, vertices) • Il y a des arêtes ! (edge) • Il y a des arcs ! (arc) Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. Tous des couples ( a , a ) ! Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. Aucun couple ( a , a ) ! Tous des couples ( a , a ) ! Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. • « E » peut être symétrique, anti-symétrique ou ni - ni. Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. • « E » peut être symétrique, anti-symétrique ou ni - ni. ( a , b ) ssi ( b , a ) ! Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. • « E » peut être symétrique, anti-symétrique ou ni - ni. Si ( a , b ) avec a = b alors pas ( b , a ) ! / ( a , b ) ssi ( b , a ) ! Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. • « E » peut être symétrique, anti-symétrique ou ni - ni. Graphe non orienté ! Graphe orienté ! Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. • « E » peut être symétrique, anti-symétrique ou ni - ni. • « E » peut être transitive, ou non-transitive. Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble « V » des sommets. • Il y en a « n », c’est-à-dire | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble « E » des arcs et arêtes. • C’est une partie du produit cartésien V x V . • « E » peut être réflexif, irréflexif ou ni l’un, ni l’autre. • « E » peut être symétrique, anti-symétrique ou ni - ni. • « E » peut être transitive, ou non-transitive. Si ( a , b ) et ( b , c ) alors (a , c ) ! Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • G = ( V , E ) • Un graphe est donné par les ensembles « V » et « E ». Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • G = ( V , E ) • Un graphe est donné par les ensembles « V » et « E ». • Il y a des multi-graphes qui sont correspondent au cas où « E » est un multi-ensemble (plusieurs arêtes et/ou arcs entre deux sommets). Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Formellement : • G = ( V , E ) • Un graphe est donné par les ensembles « V » et « E ». • Il y a des multi-graphes qui sont correspondent au cas où « E » est un multi-ensemble (plusieurs arêtes et/ou arcs entre deux sommets). • Il y a des graphes pondérés qui correspondent au fait l’on attache des poids aux arcs ou arêtes (entiers par exemple). 12 25 15 Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Sous-graphe G’ d’un graphe G : • Le graphe G’ = ( V’ , E’ ) est un sous-graphe du graphe G = ( V , E ) , si : • V’ V les sommets de G’ sont parmi ceux de G • E’ E V’ x V’ les arcs et arêtes de G’ sont parmi ceux et celles de G et se limitent aux sommets de G’. U U v Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Représentation des données : • Nous indexons (numérotons) les sommets. • Nous représentons les arcs et les arêtes. Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- • Représentation des données : • Nous indexons (numérotons) les sommets. • Nous représentons les arcs et les arêtes. • Nous obtenons une matrice « M » de taille n x n qui comporte des valeurs binaires. • M( a , b ) est vrai si et seulement si l’arc ( a , b ) existe ! Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- 4 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 4 1 6 2 3 5 Cours de graphes 1 - Intranet
Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 1 L’existence ou non de l’arc ( 2 , 5 ) ! ! ! 2 3 4 5 4 6 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 4 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 La diagonale parle des couples ( u , u ) ! F F F F F 4 V 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 La diagonale parle des couples ( u , u ) ! F F V Les arêtes ( 2 , 4 ) et ( 3 , 5 ) sont symétriques ! F V V F V F 4 V 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 La diagonale parle des couples ( u , u ) ! F F V Les arêtes ( 2 , 4 ) et ( 3 , 5 ) sont symétriques ! F V V F V F 4 V 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 La diagonale parle des couples ( u , u ) ! F V F V Les arêtes ( 2 , 4 ) et ( 3 , 5 ) sont symétriques ! F V Les arcs ( 1 , 4 ) et ( 4 , 1 ) donnent aussi une symétrie ! V V F V F 4 V 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 La diagonale parle des couples ( u , u ) ! F V F V Les arêtes ( 2 , 4 ) et ( 3 , 5 ) sont symétriques ! F V Les arcs ( 1 , 4 ) et ( 4 , 1 ) donnent aussi une symétrie ! V V F V F 4 V 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 La diagonale parle des couples ( u , u ) ! F V F V Les arêtes ( 2 , 4 ) et ( 3 , 5 ) sont symétriques ! F V Les arcs ( 1 , 4 ) et ( 4 , 1 ) donnent aussi une symétrie ! V V V F V F 4 V V 1 Les arcs ( 4 , 3 ) et ( 6 , 3 ) n’ont pas leur pendant symétrique ! ! ! 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 La diagonale parle des couples ( u , u ) ! F V F V Les arêtes ( 2 , 4 ) et ( 3 , 5 ) sont symétriques ! F F V F Les arcs ( 1 , 4 ) et ( 4 , 1 ) donnent aussi une symétrie ! V V V F V F 4 V V 1 Les arcs ( 4 , 3 ) et ( 6 , 3 ) n’ont pas leur pendant symétrique ! ! ! 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 La diagonale parle des couples ( u , u ) ! F F F V F F F F F V F F Les arêtes ( 2 , 4 ) et ( 3 , 5 ) sont symétriques ! F F F F V F Les arcs ( 1 , 4 ) et ( 4 , 1 ) donnent aussi une symétrie ! V V V F F F F F V F F F 4 F F V F F V 1 Les arcs ( 4 , 3 ) et ( 6 , 3 ) n’ont pas leur pendant symétrique ! ! ! 6 2 Il faut n^2 bits ! 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 Pour des multi-graphes, nous remplaçons les booléens par des multiplicités ! F F F V F F F F F V F F F F F F V F Pour des graphes pondérés, nous remplaçons les booléens par des poids ! V V V F F F F F V F F F 4 F F V F F V 1 6 2 3 5 Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 F F F V F F F F F V F F F F F F V F V V V F F F F F V F F F F F V F F V Parfois, le graphe est peu dense ! Nous mémorisons juste les indices des colonnes différentes de Faux ! Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 4 F F F V F F F F F V F F F F F F V F V V V F F F F F V F F F F F V F F V Parfois, le graphe est peu dense ! Nous mémorisons juste les indices des colonnes différentes de Faux ! Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 4 F F F V F F 4 F F F V F F F F F F V F V V V F F F F F V F F F F F V F F V Parfois, le graphe est peu dense ! Nous mémorisons juste les indices des colonnes différentes de Faux ! Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 4 F F F V F F 4 F F F V F F F F F F V F 5 V V V F F F 1 2 3 F F V F F F 3 F F V F F V 3 6 Parfois, le graphe est peu dense ! Nous mémorisons juste les indices des colonnes différentes de Faux ! Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 4 F F F V F F 4 F F F V F F F F F F V F 5 V V V F F F 1 2 3 F F V F F F 3 F F V F F V 3 6 Parfois, le graphe est peu dense ! Nous mémorisons juste les indices des colonnes différentes de Faux ! Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 4 F F F V F F 4 F F F V F F F F F F V F 5 V V V F F F 1 2 3 F F V F F F 3 F F V F F V 3 6 Parfois, le graphe est peu dense ! Nous mémorisons juste les indices des colonnes différentes de Faux ! Il faut ( | V | + | E | ) * log( | V | ) bits ! Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 Les voisins d’un sommet « u » : Les voisins sortants : V+ ( u ) Les voisins entrants : V- ( u ) F F F V F F F F F V F F F F F F V F V V V F F F F F V F F F F F V F F V Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 Les voisins d’un sommet « u » : Les voisins sortants : V+ ( u ) Les voisins entrants : V- ( u ) F F F V F F F F F V F F F F F F V F V V V F F F F F V F F F F F V F F V V+ ( u ) = { v e V | ( u , v ) e E } V- ( u ) = { v e V | ( v , u ) e E } Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 Les voisins d’un sommet « u » : Les voisins sortants : V+ ( u ) Les voisins entrants : V- ( u ) F F F V F F F F F V F F F F F F V F V V V F F F V+ ( 4 ) = { 1 , 2 , 3 } F F V F F F F F V F F V V+ ( u ) = { v e V | ( u , v ) e E } V- ( u ) = { v e V | ( v , u ) e E } Cours de graphes 1 - Intranet
1 2 3 4 5 6 Définitions de base----------------------------------------------------------------- 1 2 3 4 5 6 Les voisins d’un sommet « u » : Les voisins sortants : V+ ( u ) Les voisins entrants : V- ( u ) F F F V F F F F F V F F F F F F V F V V V F F F V+ ( 4 ) = { 1 , 2 , 3 } F F V F F F F F V F F V V- ( 3 ) = { 4 , 5 , 6 } V+ ( u ) = { v e V | ( u , v ) e E } V- ( u ) = { v e V | ( v , u ) e E } Cours de graphes 1 - Intranet