Les Graphes
Olivier Togni
IEM/Le2I
Université de Bourgogne
www.u-bourgogne.fr/o.togni
modifié le 02/04/2010
Ressources
bibliographiques
●
Mathématiques pour l'informatique, A. Arnold et I. Guessarian, Masson
●
Graphes & Hypergraphes, C. Berge, Dunod
●
http://www.cbel.com/combinatorics
●
http://mathworld.wolfram.com/
Plan
●
Historique
●
Définitions
●
Chemins, cycles
●
Colorations
●
Représentations
●
Graphes « petits mondes »
Champs d'application
●
Structure la plus utilisée en informatique:
Systèmes, Réseaux, BD, Image, ...
●
Problèmes d'ordonnancement, logistique
●
Chimie, Psycho/Socio, ...
Historique
En 1734, problème des ponts de Königsberg
résolu par L. Euler
Rappels sur les relations
●
Une relation sur un ensemble E est la donnée d'un sousensemble R de E x E
●
Pour indiquer qu'une paire (x,y) est dans R, on notera xRy
●
Relation = ensemble => opérations
ensemblistes: complémentaire, union,
intersection
Rappels sur les relations
Opérations non ensemblistes:
– Relation inverse R1: xR1y ssi yRx
– Produit de 2 relations: xR.R'y ssi ∃ z∈E, xRz et zRy
– Etoile: R* =Id∪R∪R.R∪R.R.R∪...
Propriétés des relations
Une relation R sur un ensemble E est:
Symétrique si xRy <=> yRx
Antisymétrique si ∀ x,y∈E, xRy => non yRx
Réflexive si ∀ x∈E, xRx
Irréflexive si ∀ x∈E, non xRx
Transitive si ∀ x,y,z∈E, xRy et yRz => xRz
Définitions
Graphe (orienté) G=(V,A) est la donnée d'un ensemble fini V et d'un sousensemble A de V x V (une relation sur V).
V=ensemble des sommets de G A= ensemble des arcs de G
Dessin: on dessine les sommets par des points et les arcs par des flèches reliant ces points.
Si A est symétrique, on représente deux arcs en sens inverse par un trait sans flèche (une arête). On parle alors de graphe non orienté.
Définitions suite
Ordre de G = nombre de sommets
Boucle = arc ou arête reliant un sommet à lui même
Degré sortant d'un sommet x= nombre d'arcs issus de x Degré entrant = nombre d'arcs arrivant en x
Chemin de longueur p = suite de p+1 sommets, 2 sommets consécutifs étant joints par un arc
Circuit = chemin revenant au point de départ
Définitions suite
G est fortement connexe ssi pour toute paire de sommets (x,y), il existe un chemin allant de x à y
Distance d(x,y) entre deux sommets x et y = longueur d'un plus court chemin entre x et y
Diamètre D(G) du graphe G = distance séparant les deux sommets les plus éloignés
Graphe non orienté
Degré d'un sommet x= nombre d'arêtes issues de x Deux sommets x et y reliés par une arêtes sont dits adjacents ou voisins
Chemin > chaîne Circuit > cycle
Fortement connexe > connexe
Extensions
Multigraphe: on autorise plusieurs arêtes ou arcs parallèles entre deux sommets (ce n'est plus directement associé à une
relation)
Hypergraphe: correspond à une relation (non forcement binaire) => les hyperarêtes peuvent regrouper plus de deux sommets
Génération, dénombrement
Questions: Pour une certaine classe de graphes donnée,
combien y a t'il de graphes à n sommets dans cette classe?
comment générer efficacement les graphes de la classe?
=> Problème de l'isomorphisme de graphes:
Deux graphes G=(V,A) et G'=(V',A') sont isomorphes s'il existe une bijection h: V→V' telle que si (x,y)∈A alors (h(x),h(y))∈A'
Isomorphisme
Ces trois graphes sontils deuxàdeux isomorphes?
Chaînes, cycles
Une chaîne Eulérienne est une chaîne qui passe une fois et une seule par chaque arête du graphe.
Un cycle Eulérien est une chaîne Eulérienne qui boucle sur elle même
Théorème (Euler, 1766) Un graphe G possède une chaîne Eulérienne ssi il est connexe et il a 0 ou 2 sommets
de degré impair (si 0 sommets de degré impair, alors cycle Eulérien)
Les ponts
Le (multi)graphe de droite estil Eulérien?
Chaînes, cycles
Une chaîne Hamiltonienne est une chaîne qui passe une fois et une seule par chaque sommet du graphe.
Un cycle Hamiltonien est une chaîne Hamiltonienne qui boucle sur elle même
Un graphe est Hamiltonien s'il possède un cycle Hamiltonien Le problème de l'Hamiltonisme d'un graphe est plus difficile (NPcomplet)
Nombre de graphes Hamiltoniens à n sommets:
1, 0, 1, 3, 8, 48, 383, 6196, 177083, ...
Le Dodécahèdre est-il
Hamiltonien?
Parcours du cavalier
Un cavalier peutil parcourir les 64 cases de l'échiquier une fois et une seule, en partant de n'importe laquelle et peutil revenir au point de départ?
Théorème (B. McKay, 1997) Il existe 13267364410532 parcours différents
Graphes Planaires
Une graphe est Planaire s'il est possible de le dessiner sur un plan de façon que deux arêtes ne se coupent pas Nombre de graphes planaires connexes à n sommets:
1, 1, 1, 2, 6, 20, 99, 646, 5974, 71885, ...
Théorème (Kuratowski, 1930) Un graphe G est planaire s'il ne contient pas de subdivision de K5 ou K3,3
Problème des 4 couleurs
Problème ancien(~1850): Peuton colorier toute carte géographique de sorte que deux régions voisines
soient de couleurs différentes?
Coloration de graphe
Une coloration propre des sommets d'un graphe G=(V,A) est une application f:V→C,
où C est un ensemble de « couleurs » telle que f(x)≠f(y) ∀(x,y)∈A
Le nombre chromatique d'un graphe est le nombre
minimal de couleurs qui permettent de le colorier proprement
Coloration de graphe
Graphe de nombre chromatique 4
Problème des 4 couleurs
En terme de graphes: estce que tout graphe planaire a un nombre chromatique au plus 4?
Preuve par Appel et Haken en 1976 (~200 pages,
utilise l'ordinateur pour tester des milliers de configurations) Théorème (Robertson, Sanders, Seymour et Thomas, 1996) Il existe un algorithme quadratique pour colorier tout graphe planaire en au plus 4 couleurs
Applications
Allocation de fréquences dans les réseaux cellulaires
Réseaux cellulaires
Contraintes: fréquences à distance 2 sur cellules voisines
fréquences différentes sur cel. presque voisines Solution utilisant 10 fréquences
6 2
5 1
4
2 7
9 3 10
3
Coloration de graphe
Théorème (Brooks, 1941)
Le nombre chromatique d'un graphe de degré maximum
∆ est inférieur à ∆ + 1
Si G possède un sousgraphe complet de taille k, alors
(G) ≥ k
Algorithme de Coloration
Algorithme «glouton» de Welsh et Powel:
Ranger les sommets par ordre décroissant des degrés Pour chaque sommet x faire
c = 1
Tant qu'il existe un voisin y de x de couleur c faire c=c+1
Fin Tantque
Associer la couleur c au sommet x Fin Pour
Coloration d'arêtes
L'indice chromatique ' d'un graphe est le nombre
minimal de couleurs qui permettent de colorier les arêtes (de sorte que 2 arêtes incidentes au même sommet aient des couleurs différentes)
Théorème (Vizing, 1964)
∆ '(G) ∆ + 1
Représentation des graphes
Soit G=(V,A) un graphe d'ordre n
●
matrice d'adjacence (matrice de booléens n*n)
M[i][j] = 1 si (i,j) est un arc ou une arête du graphe M[i][j] = 0 sinon
●
liste d'incidence: tableau de listes de voisins
T[i] = liste chaînée des voisins du sommet i
Matrice d'adjacence
Si n sommets:
●
Espace mémoire O(n
2)
●
Temps:
– test de présence d'un arc: O(1)
– parcours de l'ensemble des voisins: O(n)
– traitement de tous les arcs: O(n2)
Liste d'incidence
Si n sommets, m arcs:
●
Espace mémoire O(n+m)
●
Temps:
– test de présence d'un arc: O(degré max)
– parcours de l'ensemble des voisins: O(degré max)
– traitement de tous les arcs: O(m)
Graphe aléatoire
Graphe G(n,p), avec p entre 0 et 1
– n sommets
– la probabilité d'un arc (ou arête) entre i et j est p
Pb: ce modèle ne correspond pas à la plupart
des grands réseaux actuels
Graphe des connaissances
Sommets = personnes Arêtes = connaissances
La distance moyenne dans ce graphe est de 6
(expérience de Milgram en 67)
Graphe des collaborations scientifiques
Sommets = chercheurs
Arêtes = publications communes
Exemple: le nombre de Erdös des mathématiciens voir http://www.ams.org/msnmain/cgd/index.html le nombre de Erdös moyen est de 5
Paul Erdös
Graphe du web
Sommets = pages web Arcs = hyperliens
Distance moyenne = 19 clics
Graphe de l'internet
Sommets = routeurs Arêtes = liaisons
Distance moyenne = 13
(voir commandes tracert sous dos et traceroute
sous Linux)
Réseau petit monde (small world network)
Caractéristiques:
●
distance moyenne faible
●
coefficient de clustering élevé (probabilité que deux voisins d'un sommet soient reliés)
●
on peut trouver un chemin court de tout sommet à tout autre (routage) avec seulement des
informations locales
Réseau petit monde
Distance Clustering
Aléatoire faible faible
Petit monde faible élevé
Régulier (grille) élevée élevé
Challenges
●
Bien caractériser les réseaux petit monde
●
Générer des graphes qui soient le plus proche possible de la réalité
●
Trouver des algorithmes efficaces spécifiques pour ces types de graphes
●