Algorithmique des graphes. Cours de Lélia Blin 3eme année de Licence

Documents pareils
MIS 102 Initiation à l Informatique

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

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

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

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

Programmation linéaire

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

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

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

BACCALAUREAT GENERAL MATHÉMATIQUES

Chapitre 5 : Flot maximal dans un graphe

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

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

Chapitre 2. Eléments pour comprendre un énoncé

Intelligence Artificielle Planification

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

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

Résolution d équations non linéaires

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

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

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Plus courts chemins, programmation dynamique

Faculté des sciences Département de mathématiques. Théorie des graphes

L apprentissage automatique

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Feuille d exercices 2 : Espaces probabilisés

chapitre 4 Nombres de Catalan

Continuité et dérivabilité d une fonction

Introduction à l étude des Corps Finis

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

Université Paris-Dauphine DUMI2E 1ère année, Applications

Développements limités. Notion de développement limité

1.1 Codage de source et test d hypothèse

6. Les différents types de démonstrations

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

Structures algébriques

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Programmation linéaire

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

LE PROBLEME DU PLUS COURT CHEMIN

Pourquoi l apprentissage?

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Calcul intégral élémentaire en plusieurs variables

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Rappel sur les bases de données

Quatrième partie IV. Test. Test 15 février / 71

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

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

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Carl-Louis-Ferdinand von Lindemann ( )

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Raisonnement par récurrence Suites numériques

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Limites finies en un point

Chapitre 10 Arithmétique réelle

Correction du Baccalauréat S Amérique du Nord mai 2007

Théorie et codage de l information

Modélisation et Simulation

Jean-Philippe Préaux

Introduction à la théorie des graphes

Fonctions de plusieurs variables

ARBRES BINAIRES DE RECHERCHE

ÉPREUVE COMMUNE DE TIPE Partie D

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Algorithmes d'apprentissage

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

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

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Développement décimal d un réel

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

Cours d Analyse. Fonctions de plusieurs variables

CHAPITRE VIII : Les circuits avec résistances ohmiques

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

Les arbres binaires de recherche

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

DOCM Solutions officielles = n 2 10.

Programmation Linéaire - Cours 1

Compression Compression par dictionnaires

Probabilités sur un univers fini

Informatique Générale

Créer et modifier un fichier d'import des coordonnées approximatives avec Excel

Lecture graphique. Table des matières

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Fonctions de plusieurs variables

données en connaissance et en actions?

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Représentation d un entier en base b

Relation d ordre. Manipulation des relations d ordre. Lycée Pierre de Fermat 2012/2013 Feuille d exercices

A. Définition et formalisme

Introduction au Data-Mining

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Logiciel de Base. I. Représentation des nombres

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Transcription:

Algorithmique des graphes Cours de Lélia Blin 3eme année de Licence 1

Historique Un bon dessin vaut mieux qu un bon discours Le langage des graphes essaie de mettre en pratique cette idée La théorie des graphes est née des préoccupations qui n étaient pas directement des préoccupations mathématiques 2

Les sept ponts de Königsberg Le problème des sept ponts de Königsberg (aujourd hui Kaliningrade) est le problème mathématique suivant: Peut on se promener en passant une fois et une seule par tous les ponts et revenir au point de départ? 3

Les sept ponts de Königsberg Cette configuration des ponts de Königsberg se modélise par des relations binaires 4

Graphes Cette modélisation des relations binaires s appelle un graphe: L élément représenté par un point: sommet La relation représenté par un lien: arête 5

Leonhard Euler (1707-1783) 6

Preuve de Leonhard Euler En 1736 Leonhard Euler prouve: Qu il est impossible de traverser chacun des sept ponts de la ville de Königsberg une fois exactement et de revenir au point de départ De plus il prouve: Que pour traverser il aurait fallu pour chaque rive un nombre de pont pair. 7

Preuve de Leonhard Euler Ce qui ce traduit en théorie des graphes par: Pour qu un trajet passe une fois et une seule sur chaque arête et revienne au point de départ sur un graphe, il faut que chaque sommet du graphe soit de degré pair. La résolution de ce problème est considérée comme le premier théorème de la théorie des graphes. Euler a démontré qu'un graphe ne pouvait être parcouru d'un seul trait s'il avait plus de deux sommets avec des degrés impairs. 8

Historique Plus récemment (60,70) vision plus unifié des concepts des objets des résultats obtenus Les graphes sont devenus une branche des mathématiques discrète 9

Historique Développement des ordinateurs Problématique de la manipulation automatique de telles structures 10

Utilisations 11

Relation binaire Les graphes capturent essentiellement une relation binaire entre deux éléments. Il existe une arête entre u et v si il existe une relation binaire entre u et v u v 12

Relation binaire Une relation peut dans la vie courante lier des objets divers: Relation binaire symétrique Pierre connaît Jean Marie est PACSée avec Pierre Il existe une route à double sens entre Lyon et Grenoble Relation asymétrique: Pierre est plus grand que Jean Pierre est client de Jean Il existe une route à sens unique entre Lyon et Grenoble 13

Utilisations Un graphe de ces relations met à jour les contraintes structurelles de l organisation des objets entre eux via une relation particulière. Lorsqu un graphe est donné on veut généralement pouvoir dire des choses sur lui. Ces besoins s expriment sous forment différentes: En plus court chemin pour un réseau routier En distance d un individu à un autre pour un graphe des connaissances.. 14

Graphes non orientés 15

Graphes non orientés Un graphe G(V,E) est composé D un ensemble fini de sommets, noté V(G) D un ensemble fini d arêtes E(G) E(G) {{a,b}: a V et b V} 16

Graphe simple On dit qu un graphe est simple si pour tout sommet a du graphe il n existe pas d arête de a vers a. Autrement dit: E(G) {{a,b}: a V et b V et a b} 17

Représentation a b c g f d e V={a,b,c,d,e,f,g} E={{a,b},{a,f},{a,g},{b,c},{b,g},{c,e},{d,e},{d,g},{e,f},{f,g}} 18

Représentation a b g c f d La représentation graphique d un graphe n est pas unique e 19

Arêtes incidentes Soit G=(V,E) un graphe non orienté simple (sans boucle) Des arêtes sont incidentes si elles ont une extrémité en commun. Exemples: {a,b},{a,f},{a,g} sont incidentes à a {c,e} et {e,f} sont incidentes à e a b c g f d e 20

Sommets adjacents Soit G=(V,E) un graphe non orienté simple (sans boucle) Deux sommet sont adjacentes si ils partagent une même arête Exemples de sommets adjacents: {a,b},{a,f},{a,g},{b,g},{c,e},{e,f} a b c g f d e 21

Voisins d un sommet Soit G=(V,E) un graphe non orienté simple Les voisins d un sommet u est l ensemble des sommets adjacents à u. N(u)={v V: {u,v} E} Exemples: N(a)={b,g,f} N(b)={a,g,c} a b g c f d e 22

Degré d un sommet G=(V,E) un graphe non orienté simple. Le degré d un sommet u dans G est le nombre de ses voisins d(u)= N(u) où N(u) est l ensemble des sommets voisins de u Exemples: b N(a)={b,g,f}, d(a)=3 a N(b)={a,g,c}, d(b)=3 g c f d e 23

Degré minimum d un graphe Soit G=(V,E) un graphe non orienté simple. Le degré minimum du graphe est δ=min{d(u):u V} 24

Degré d un graphe Soit G=(V,E) un graphe non orienté simple. Le degré du graphe est =Max{d(u):u V} 25

Degré (exemple) a b N(b)={a,g,c} d(b)=3 δ=2 =4 f g d c e 26

Chemin Soient u et v deux sommets distincts d un graphe G(V,E) Un chemin de u à v dans G est: Une suite u,u 0,u 1,,u k,v de sommets 2 à 2 distincts tel que: {u,u 0 } E, {u k,v} E et i {1,,k} on ai {u i-1,u i } Le sommet u est l origine du chemin Le sommet v est l extrémité du chemin La longueur d un chemin est le nombre d arête qu il possède 27

Chemin (Exemple) a b c d e f a b c d e f a b c d e f a b c d e f g h i 28

Chemin (exemple) Il y a de nombreux chemins entre a et e a,b,c,e a b c a,f,g,d,e g a,d,c,g,f,e f d. e Tous ces chemins ne sont pas de même longueur La longueur la plus courte entre a et e dans G est appelé la distance dans G 29

Distance Soit un graphe simple non orienté G(V,E) Soit u et v deux sommets distincts de V Soit P(u,v) l ensemble des chemins de u à v dans G La distance entre u et v est : d(u,v)=min{longueur P: P P(u,v)} 30

Distance (exemple) La distance entre 2 sommets est le plus court des chemins qui les relie Si P(u,v)= avec u v on pose d(u,v)=+ Exemples: a b c d(a,b)=1 d(a,e)=2 d(a,d)=2 f g e d 31

Excentricité Soit un graphe simple non orienté G(V,E) u V l excentricité de u est: exc(u)=max{d(u,v): u,v V} Autrement dit: l excentricité de u désigne la distance qui sépare u du sommet le plus éloigné de u dans G l excentricité d un sommet est la distance maximum de ce sommet aux autres sommets 32

Rayon Soit un graphe simple non orienté G(V,E) le rayon de G est: R(G)=min{exc(u): u V} Autrement dit: Le rayon est la plus petite distance à la quelle puisse se trouver un sommet de tous les autres. Le centre d'un graphe est formé de l'ensemble de ses sommets d'excentricité minimale. 33

Diamètre Soit un graphe simple non orienté G(V,E) le diamètre de G est: D(G)=max{exc(u): u V} Autrement dit: D désigne la plus grande distance entre 2 sommets du graphe. 34

Excentricité, Rayon, diamètre R(G)=6 D(G)=7 35 http://fr.wikipedia.org/wiki/ Snark_de_Szekeres

Graphe connexe Un graphe est connexe si il existe un chemin dans G entre toutes paires de sommets (distincts). b b a a g c g c f d f d e e 36

Isthme Soit un graphe G=(V,E) connexe. Une arête {x,y} est appelée isthme si le graphe G (V,E-{x,y}) n est pas connexe b d b d a c a c g e g e 37

Cycle Un cycle est un chemin dont l origine et l extrémité sont confondues b a c f d e 38

Graphe partiel Soit G(V,E) un graphe, le graphe partiel de G engendré par E E est le graphe G(V,E ) B B A A G C G C F D F D E G(V,E) E G(V,E ) 39

Sous-graphe Soit G(V,E) un graphe, le sous-graphe de G engendré par V V est le graphe G(V,E ) b b a a g c c f d f d e G(V,E) e G(V,E ) 40

Graphes orientés 41

Graphes orientés Un graphe orienté G=(V,A) est composé D un ensemble fini de sommets, noté V D un ensemble fini d arcs, noté A Un arc est une paire orienté de sommets A(G) {(a,b): a V et b V} Remarque: Un graphe orienté peu être appelé digraphe pour «directed graph» en anglais 42

Représentation a b g c f d V={a,b,c,d,e,f,g} e A={(a,b),(b,c),(c,e),(d,g),(e,d),(e,f),(f,a),(f,g),(g,a),(g,b)} 43

Voisinage Soit un graphe orienté G(V,A) et soit un sommet u, on a: N + (u)={v: (u,v) A) Voisins sortants (aussi noté Γ + ) N - (u)={v: (v,u) A) Voisins entrants (aussi noté Γ - ) d + (u)= N + (u) Degré sortants d - (u)= N - (u) Degré entrant d(u)=d + (u)+d - (u) On a de même δ +, δ -, +, - 44

Chemin Soient u et v deux sommets distincts d un graphe G(V,E) Un chemin de u à v dans G est: Une suite u,u 0,u 1,,u k,v de sommets 2 à 2 distincts tel que: (u,u 0 ) A, (u k,v) A et i {1,,k} on ai (u i-1,u i) Le sommet u est l origine du chemin Le sommet v est l extrémité du chemin La longueur d un chemin est le nombre d'arcs qu il possède 45

Chemin (Exemple) a b c d e f a b c d e f 46

Définitions analogues Il y a analogie avec les graphes non orientés pour: La distance L excentricité Le rayon Le diamètre De plus: On parle de circuit et non de cycle 47

Graphe orienté symétrique Un graphe orienté G=(V,A) est symétrique ssi: u,v V, u v, (u,v) A et (v,u) A Remarque: Un graphe non orienté peu être vu comme un graphe orienté symétrique b a g c f d e 48

Graphes orientés fortement connexes Un graphe orienté G(V,A) est fortement connexe si pour tout couple de sommets u,v il existe un chemin de u vers v. b b a a g c g c f d f d e e 49

Représentations machine 50

Représentation machine Une des difficulté pour travailler sur les graphes est de les représenter correctement en mémoire. Sans utiliser trop de mémoire En ayant un temps d accès courts Remarque: On codera souvent un graphe non orienté comme un graphe orienté symétrique. 51

Matrice d adjacence Le plus simple des codages est une matrice carrée nxn (ou n= V(G) ) d éléments binaires Les n sommets du graphes sont représentés par des entiers de 1 à n Les arcs sont représenté de la façon suivante: G[i][j]=1 si il y a un arc de i vers j dans G G[i][j]=0 sinon 52

Matrice d adjacence (exemple) 2 3 1 2 3 4 5 6 7 1 1 1 1 2 1 1 1 1 4 3 1 1 7 5 6 4 1 1 1 1 5 1 1 1 6 1 1 1 7 1 1 53

Matrice d adjacence (Bilan) Avantages: Très facile à construire Accès très rapide à un arc particulier (constant) Souple d utilisation Inconvénients: Occupation n 2 cases alors que le nombre d arcs peut être bien moindre (beaucoup de 0) Donc occupation mémoire importante 54

Liste d adjacence On peut utiliser un tableau à n cases de pointeurs, chaque case i pointant vers la liste chaînés des voisins sortants (ou entrants) 2 3 1 1 2 2 4 3 4 3 4 1 4 2 55

Liste d adjacence Avantages: On ne code que les arcs réellement présent dans le graphe Inconvénients: Plus compliqué à mettre en œuvre Temps de recherche dépendant du degré du sommet 56

Familles particulières de graphes Les Arbres 57

Les arbres Les arbres constituent une famille très importante des graphes Ils sont «minimaux» pour un certain nombre de propriétés. 58

Caractérisation des arbres Soit T=(V,E) un graphe à n sommets ces propriétés sont équivalentes T est un arbre T est connexe et sans cycle T est sans cycle et admet n-1 arêtes T est connexe et admet n-1 arêtes 59

Caractérisation des arbres Soit T=(V,E) un graphe à n sommets ces propriétés sont équivalentes T est un arbre T est connexe et sans cycle T est sans cycle et admet n-1 arêtes T est connexe et admet n-1 arêtes T est sans cycle et en ajoutant une arête on crée un cycle et 1 seul 60

Caractérisation des arbres Soit T=(V,E) un graphe à n sommets ces propriétés sont équivalentes T est un arbre T est connexe et sans cycle T est sans cycle et admet n-1 arêtes T est connexe et admet n-1 arêtes T est sans cycle et en ajoutant une arête on crée un cycle et 1 seul T est connexe et si on supprime une arête quelconque, il ne l est plus 61

Forêt Une forêt est un graphe dont les composantes connexes sont des arbres 62

Arborescence terminologie Un sommet peut avoir 0 ou plusieurs enfants Un sommet (sauf la racine) a exactement un parent 63

Chemins, ancêtres, descendants Les ancêtres d un sommet sont les sommets trouvés sur le chemin unique entre ce sommet et la racine Le sommet d est un descendant de a si et seulement si a est un ancêtre de d. Soit m 1, m 2, m 3,, m k une séquence de sommets : Longueur du chemin = nombre d arcs parcourus (k-1) 64

Généalogie La racine est un ancêtre de tous les sommets Chaque sommet est un descendant de la racine Les sommets ayant le même parents sont une fratrie Un sommet n et tous ses descendants = sous-arbre 65

Feuilles et sommets internes La racine est ancêtre de tous les sommets Une feuille est sommet qui n a pas d enfant Un sommet interne est un sommet qui a au moins un enfant Tout nœud de l arbre est : Soit une feuille Soit un sommet interne 66

Hauteur et profondeur La hauteur d un sommet n est la longueur du plus long chemin depuis la racine jusqu à n. La hauteur d un arbre : max {h(x), x sommet de l arbre} 67

Autres familles particulières de graphes 68

Graphe complet Soit K n un graphe à n sommets, (n entier) tel que: V={1,,n} et E={(i,j): i,j V,i j} Autrement dit il existe une arête entre chaque paire de sommets. K5 K6 69

Graphe biparti Un graphe G(V,E) est dit biparti si On peut diviser l ensemble de ses sommets en 2 sousensemble X 1 et X 2 tel que X 1 X 2 =V et X 1 X 2 = Toute arête a E a une extrémité dans X 1 et l autre dans X 2. On note se graphe par G=(X 1, X 2,E) 70

Biparti représentation 71 Biparti complet

Grille Soit Gr pxq un graphe à n=p.q sommets, (p,q entiers). V={(i,j): 0 i p-1, 0 j q-1} E={(i,j)(i,j+1): 1 i p, 1 j q-1 } {(i,j)(i+1,j): 1 i p-1, 1 j q } Gr3x4 72

Tore Soit Tr pxq un graphe à n=p.q sommets, (p,q entiers). V={(i,j): 0 i p-1, 0 j q-1} E={(i,j)(i,j+1mod p): 0 i p-1, 0 j q-1 } {(i,j)(i+1mod q,j): 0 i p-1, 0 j q-1 } 73

Hypercube Soit H d un graphe à n=2d sommets, (d entier). L ensemble fini des sommets de H d sont tous des d-uplets (ordonnés) de 0 et de 1. Autrement dit: chaque sommet porte une étiquette utilisant un alphabet {0,1} de longueur d, Deux sommets sont adjacents si leurs étiquettes ne diffèrent que d'un symbole. V={(x 1,,x d ): i {1,,d} xi {0,1} E={(x 1,,x d )(y 1,,y d )!i x i x j ) 74

Hypercube représentation 0 1 01 11 H 0 0 00 10 H 1 H 2 011 111 010 110 001 101 000 100 H 3 H 4 75

Remarque 76