Première partie I
T HÉORIE DES GRAPHES
Graphes non orientés quelconques
Graphe non orienté
Un graphe non orientéGest un triplet(V,E,Φ)tel que V : ensemble des sommets
E : ensemble des arêtes
Φ: une application deE dans{X ⊆V :|X|=2}
Une arête est caractérisée par une paire de sommets : pour toute∈E, on aΦ(e) ={u,v} avecu,v ∈V
1 2
3 4
a 5 b c
d
e f
Graphe non orienté G= (V,E,Φ) V ={1,2,3,4,5} et E=
a,b,c,d,e,f Φ(a) ={1,2}, Φ(b) ={1,3}, Φ(c) ={1,4}, Φ(d) ={2,3},Φ(e) ={3,4},Φ(f) ={3,5}
Pour les graphes simples, un graphe non orienté est notéG= (V,E)où E ⊆ {X ⊆V :|X|=2} et ∀e∈E,e={u,v}
Vocabulaire sur les graphes non orientés
1
2
3 4
5
6 7 8 9 10
extrémités d’une arête e tel queΦ(e) ={u,v}:sommetsu,v un sommetu est incident à une arêteesiuextrémité dee degré du sommet u :nombre d’arêtes incidentes àu
une arêteeest incidente à un sommetu siuextrémité dee un sommetuest adjacent à un sommetv si{u,v}forme une arête voisin du sommet u :sommet adjacent àu
voisinage du sommet u :ensemble des sommets adjacents àu
Graphes orientés quelconques
Graphe orienté
Un graphe orientéG~ est un triplet(V,E,Φ)tel que V : ensemble des sommets
E : ensemble des arcs
Φ: une application deE dansV ×V
Chaque arc est caractérisé par un couple de sommets : pour toute∈E, on aΦ(e) = (u,v) avecu,v ∈V
1 2
3 4
a 5 b c
d
e f
Graphe orientéG~ = (V,E,Φ) V ={1,2,3,4,5} et E=
a,b,c,d,e,f Φ(a) = (1,2), Φ(b) = (1,3),Φ(c) = (4,1), Φ(d) = (2,3), Φ(e) = (3,4), Φ(f) = (3,5)
Pour les graphes simples, un graphe orienté sera notéG~ = (V,E)avec E ⊆V ×V et ∀e∈E,e= (u,v)
Vocabulaire sur les graphes orientés
1
2
3 4
5
extrémité initiale (origine) d’un arc e avecΦ(e) = (u,v):sommetu extrémité terminale (but) d’un arc e avecΦ(e) = (u,v):sommetv incidence→similaire aux graphes non orientés
degré entrant du sommet u :nombre d’arcs entrants enu degré sortant du sommet u :nombre d’arcs sortants deu adjacence→similaire aux graphes non orientés
voisin entrant du sommet u :sommetv tel que(v,u)forme un arc voisin sortant du sommet u :sommetv tel que(u,v)forme un arc voisinage entrant du sommet u :voisins entrants deu
voisinage sortant du sommet u :voisins sortants deu
Graphe simple
Définitions
Soit un graphe quelconque (orienté ou non) boucle :arc/arête de même extrémité
arêtes multiples :arcs/arêtes possédant les mêmes extrêmités graphe simple :graphe sans boucle et arêtes multiples
1 2
3 4
5
Graphe multiple carG possède
une boucle
une arête multiple/parallèle
Pour la suite, on considère seulement des graphes simples les graphes non orientés sont notésG= (V,E)
les graphes orientés sont notésG~ = (V,E)
Isomorphisme de graphe
Isomorphisme de graphes non orientés
Deux graphes non orientés simplesG= (V,E)etG0 = (V0,E0)sont isomorphes s’il existe une bijectionϕ:V →V0tel que
{u,v} ∈E ⇔ {ϕ(u), ϕ(v)} ∈E0
1 2
3 4
5
a b
d c e
φ(1) =a φ(2) =c φ(3) =e φ(4) =b φ(5) =d
Une définition analogue existe pour les graphes orientés Isomorphisme de graphes orientés
Deux graphes orientés simplesG~ = (V,E)etG~0= (V0,E0)sont isomorphes s’il existe une bijectionϕ:V →V0tel que
(u,v)∈E ⇔(ϕ(u), ϕ(v))∈E0
Incidence, degré dans les graphes non orientés
Définitions
SoitG= (V,E)graphe non orienté simple arêtes incidentes au sommet u∈V :
δ(u) =n{u,v} ∈E :v ∈Vo
degré du sommet u∈V :d(u) =|δ(u)|
arêtes incidentes à l’ensemble V0 ⊂V :
δ(V0) =n{u,v} ∈E :u∈V0,v ∈/V0o
a b
c d
e
g f
h
exemples
δ(e) =
{e,h},{e,c} ,δ(f) =∅ d(e) =2, d(f) =0
δ({a,f}) =
{a,b},{a,g} ,δ({c,e,h}) =∅
Remarque : X
u∈V
d(u) =2|E|
Incidence, degré dans les graphes orientés
Définitions
SoitG= (V,E)graphe orienté simple
arcs entrants/sortants du sommet u∈V :
δ−(u) =n(v,u)∈E :v ∈Vo / δ+(u) =n(u,v)∈E :v ∈Vo degré entrant/sortant du sommet u ∈V :
d−(u) =|δ−(u)| / d+(u) =|δ+(u)|
arcs entrants/sortants de l’ensemble V0⊂V :
δ−(V0) =n(v,u)∈E:u∈V0,v∈/V0o / δ+(V0) =n(u,v)∈E:u∈V0,v∈V/ 0o
a b
c
d
e
g f
h
exemples δ+(a) =
(a,b),(a,d),(a,g) ,δ−(f) =∅ d+(a) =3, d−(f) =0
δ+({c,e}) =
(c,d),(c,h),(e,h) Remarque : P
u∈Vd−(u) =P
u∈Vd+(u) =|E|
Voisins, voisinage dans les graphes non orientés
Définitions
SoitG= (V,E)graphe non orienté simple voisinage du sommet u∈V :
V(u) ={v ∈V :{u,v} ∈E}
voisinage de l’ensemble V0⊆V :
V(V0) ={v ∈V :∃u∈V0 tel que{u,v} ∈E}
1 2
3 4
5 exemples
V(2) ={1,3,5} et d(2) =3
V({2,4}) ={1,3,5}et d({2,3}) =3
Remarque : en général,|V(V0)| 6=|δ(V0)|,∀V0 ⊆V
Cependant, pour les graphes simples, on a|V(u)|=|δ(u)|,∀u∈V
Voisins, voisinage dans les graphes orientés
Définitions
SoitG= (V,E)graphe orienté simple voisinage entrant du sommet u∈V :
V−(u) ={v ∈V : (v,u)∈E} voisinage sortant du sommet u∈V :
V+(u) ={v ∈V : (u,v)∈E}
1 2
3 4
5 exemples
V−(2) ={1} et d−(2) =1 V+(2) ={3,5} et d+(2) =2
Remarque : en général,|V(V0)| 6=|δ(V0)|,∀V0 ⊆V
Chaînes, chemins, cycles dans les graphes non orientés
Définitions
SoitG= (V,E)graphe non orienté simple
chaîne/chemin :suite de sommetsP= [v1, . . . ,vk]tel que {vi,vi+1} ∈E pour tout 1≤i≤k −1
chaîne/chemin simple :chaîneP= [v1, . . . ,vk]tel que vi 6=vj pour tout 1≤i <j ≤k
longueur d’une chaîne P :long(P) =nombre d’arêtes de la chaîne cycle/cycle simple :chaîne/chaîne simpleC = [v0,v1, . . . ,vk,v0]où chaque arête apparaît une seule fois au maximum
1 2
3 4
5
exemples
une chaîne :P1= [1,2,3,4,1,3,5]
une chaîne simple : P2= [1,2,3,5]
longueur : long(P1) =6, long(P2) =3 un cycle simple : C1= [1,2,3,4,1]
Chaînes, chemins, cycles dans les graphes orientés
Définitions
SoitG= (V,E)graphe orienté simple
chaîne :suite de sommetsP= [v1, . . . ,vk]tel que (vi,vi+1)ou(vi+1,vi)∈E pour tout 1≤i ≤k −1 chemin :suite de sommetsP = [v1, . . . ,vk]tel que
(vi,vi+1)∈E pour tout 1≤i≤k−1
chaîne/chemin simple :chaîne/cheminP= [v1, . . . ,vk]tel que vi 6=vj pour tout 1≤i<j ≤n
cycle/circuit :chaîne/cheminC= [v0,v1, . . . ,vk,v0]
1 2
3 4
5
exemples
une chaîne :P= [1,2,3,5,2,1,4]
un chemin :P= [1,2,3,1,4]
un cycle : C= [1,4,3,5,2,3,1]
un circuit : C= [1,2,3,1]
Graphes basiques : chaîne, cycle, complet
Les chaînesPn
1 2
P2
1 2 3
P3
1 2 3 4
P4
1 2 n−1 n
Pn
Les cyclesCn
1
2 3
C3 1
2 3 4
C4 1
2 3 4
5
C5 1
2 3 4 n
n−1 Cn
Les graphes completsKn 1
2 3
K3 1
2 3 4
K4 1
2 3 4
5
K5 1
2 3 4 5 6 K6
G= (V,E)graphe complet :si∀u,v ∈V,u6=v, {u,v} ∈E
Sous-graphe, sous-graphe induit
Définitions
SoitG= (V,E)graphe non orienté simple
sous-graphe de G :grapheG0 = (V0,E0)avecV0 ⊆V,E0 ⊆E et :
∀ {u,v} ∈E0, ⇒ u,v ∈V0
sous-graphe induit de G :sous-grapheG0= (V0,E0)deGtel que
∀u,v ∈V0, {u,v} ∈E ⇒ {u,v} ∈E0
1 2
3 4
5
GrapheG
1 2
3 4
Sous-grapheG0 deG
1 2
3 4 Sous-graphe induitG0deG
Remarque : on note parG[V0]le sous-graphe induit parV0 ⊆V Des définitions analogues existent pour les graphes orientés
Connexité, acyclique dans les graphes non orientés
Définitions
SoitG= (V,E)graphe non orienté simple G graphe connexe :
s’il existe un chemin entre toute paire de sommets composantes connexes de G :
sous-graphes induits connexes maximaux deG G graphe acyclique :siGne contient pas de cycles G arbre :siGest connexe, acyclique
1 2
3 4
5
Graphe connexe, non acyclique
a b
c d
e
g f
h
Graphe non connexe, non acyclique
1
2 3 4
5
Graphe connexe, acyclique
Connexité, acyclique dans les graphes orientés
Définitions
SoitG= (V,E)graphe orienté simple G graphe connexe :~
s’il existe une chaîne entre toute paire de sommets G graphe fortement connexe :~
s’il existe un chemin entre toute paire de sommets G graphe acyclique :~ siG~ ne contient pas de cycles G arbre enraciné :~ siG~ est connexe, acyclique
1 2
3 4
5
Graphe fortement connexe, non acyclique
1 2
3 4
5
Graphe non connexe, non acyclique
1 2
3 4
5
Graphe connexe, acyclique
Propriétés de connexité
Définitions
SoitG= (V,E)graphe non orienté simple
coupe :bi-partition{S,S}de l’ensembleV :S⊆V etS=V \S une coupe est aussi caractérisée par :
δ(S) ={arêtes possédant une extrémité dansSet dansS}
Propriétés des graphes connexes
SoitG= (V,E)graphe non orienté simple Les propriétés suivantes sont équivalentes :
1 Gest connexe
2 Gpossède une seule composante connexe
3 toute coupe[S,S]vérifieδ(S)6=∅
Pourquoi s’intéresser aux problèmes ?
1 Résoudre des problématiques dans les graphes
2 Nombreuses applications industrielles Principaux problèmes dans les graphes
problème de l’arbre couvrant de poids minimum, problème du plus court chemin,
problème du flot maximum, problème de coût minimum, problème de couplage,
problème de coloration de graphe, problème du postier chinois,
problème du voyageur de commerce, et bien d’autres,...
Graphes pondérés
Un graphe peut être pondéré/valué sur ses sommets et/ou ses arêtes Graphe pondéré
Un graphe pondéré est un graphe auquel on a associé une (ou plusieurs) fonction de valuation
SoientG~ = (V,E)un graphe orienté etp,cdeux fonctions d’évaluation
1 10
2 15
3 5
4 7
5 9
6 3 u
pu
v pv
15
10 5
25 10
10 30 45
10 cuv
sur les sommets, on associe et sur les arcs, on associe p:V → R
v 7→ pv
c: E → R (u,v) 7→ cuv
Des fonctions analogues existent pour les graphes non orientés
Sous-graphe couvrant, arbre couvrant d’un graphe
Définitions
SoitG= (V,E)graphe non orienté simple
sous-graphe couvrant de G :sous-grapheG0 = (V0,E0)deGavec V0 =V
arbre couvrant de G :sous-graphe couvrant, connexe, acyclique
1 2
3 4
5
GrapheG
1 2
3 4
5
Sous-graphe couvrant deG 1
2
3 4
5
Arbre couvrant deG
Problème de l’arbre couvrant de poids minimum
Données : G= (V,E)graphe non orienté pondéré pepoids de l’arêtee∈E
Objectif : déterminer l’arbre couvrant de poids total minimum Contraintes : couvrir tous les sommets par un arbre
Hypothèse : Ggraphe connexe
Problème de la recherche d’un arbre couvrant de poids minimum Chercher l’arbre de poids total minimum couvrant l’ensemble des sommets du graphe
1
2
3
4 5 6
7
i j
5
9
3 5
9
2 4
9 6 8 pe
3
10 6
12
un graphe pondéré avec une solution réalisable
Distance, diamètre dans les graphes non orientés
Définitions
SoitG= (V,E)graphe non orienté simple
distance d’un sommet u ∈V à un sommet v ∈V :longueur du plus petit chemin entreuetv
dist(u,v) =min{long(Puv) :Puv un chemin}
convention : s’il n’existe pas de chemin,dist(u,v) =∞
diamètre du graphe G :plus grande valeur de distance entre deux sommets du graphe :
diam(G) = max
u,v∈V{dist(u,v)}
a b
c
d
e
g f
h
GrapheG= (V,E)
dist(c,h) =1, dist(c,b) =2, dist(b,f) =3 diam(G) =4 cardist(e,g) =4
Problème du plus court chemin
Données : G~ = (V,E)graphe orienté + 2 sommets particulierss ett cij distance de parcours de l’arc(i,j)∈E
Objectif : chercher le chemin le plus court en distance entresett Hypothèses : pas de circuit de distance totale négative
existence d’un chemin entre le sommetset le sommett Problème du plus court chemin entre le sommetset le sommett
Trouver un chemin de longueur total minimale entre le sommet sources et le sommet ciblet (i.e. envoyer une unité de flot entresett)
s
1
2
3
4
t
i j
10
7
7
1 5
10
2 5
3 cij
un graphe des distances avec une solution réalisable
Points d’articulation, isthmes
Définitions
SoitG= (V,E)graphe non orienté simple
point d’articulation: sommetu∈V tel que le grapheG[V \ {u}]
possède une composante connexe de plus queG
convention : le graphe induitG[V \ {u}]est souvent notéG−u isthme (ou pont) :arêtee∈E tel que le grapheG(V,E\ {e}) possède une composante connexe de plus queG
convention : le grapheG(V,E\ {e})est souvent notéG−e
a
b
c d
e
f g
h
i
points d’articulation :c,f,g isthmes :{f,g},{g,h},{g,i}
une arête est un isthme ssi elle n’est contenue dans aucun cycle
Problème du flot maximum
Données : G~ = (V,E)graphe orienté + 2 sommets particulierss ett uij capacité de transport sur l’arc(i,j)∈E
Objectif : chercher la valeur du plus grand flot transportée desàt Contraintes : respect capacités des arcs + conservation du flot :
flot entrantv =flot sortantv ∀v ∈V\ {s,t}
Problème du flot maximum entre le sommetset le sommett
Envoyer le plus de flot possible entre un sommet sourceset un sommet puitst sans excéder les capacités maximales de transport
s
1
2
3
4
t
i j
10
7 1
7
5 2
10
5
3
uij 5
3
un graphes de capacités avec une solution réalisable
Couplage d’un graphe non orienté
Définitions
SoitG= (V,E)graphe non orienté simple
couplage de G :ensemble d’arêtesM ⊆E tel que tout sommet de Gest incident qu’au plus à une arête deM
couplage maximum de G :couplage deGde cardinalité maximal couplage parfait de G :ensemble d’arêtesM⊆E tel que tout sommet deGest incident à exactement une arête deM
un couplage un couplage parfait
Problème de couplage de cardinalité maximum
Données : G= (V,E)graphe non orienté
Objectif : déterminer un couplage de cardinalité maximum
Problème de la recherche d’un couplage de cardinalité maximum Chercher un couplage du graphe dont le nombre d’éléments est maximum
1
2
3
4 5 6
7
un graphe avec une solution réalisable
Graphe complémentaire, clique, stable d’un graphe
Définitions
SoitG= (V,E)graphe non orienté simple
graphe complémentaire de G :grapheG= (V,E)tel que :
∀u,v ∈V,u 6=v, {u,v} ∈E ⇔ {u,v}∈/ E clique de G :ensemble de sommetsV0⊆V tel que
∀u,v ∈V0, {u,v} ∈E G[V0]sous graphe induit complet deG
stable de G :ensemble de sommetsV0 ⊆V tel que
∀u,v ∈V0, {u,v}∈/E
un stable est une clique dans le graphe complémentaire
1 2
3 4
5
GrapheG
1 2
3 4
5
Graphe complémentaire deG
une clique : {2,3,5}
un stable : {2,4}
Problème de coloration de graphe
Données : G= (V,E)graphe non orienté
Objectif : chercher une coloration minimale des sommets
Contraintes : deux couleurs différentes pour les sommets adjacents Problème de coloration de graphe
Colorier avec le moins de couleurs tous les sommets du graphe tel que chaque paire de sommets adjacents ne possède pas la même couleur
un graphe non orienté une solution réalisable
Le problème de coloration de graphes est équivalent à chercher la plus petite partition des sommets en ensembles stables (1 stable=1 couleur)
Pourquoi s’intéresser à des graphes particuliers ?
1 Certains types de graphes sont mieux adaptés à la modélisation
2 Mieux comprendre et appréhender certaines problématiques
3 Résoudre plus efficacement des problèmes normalement difficiles
4 Identifier des structures particulières dans les graphes Graphes particuliers
chaînes, cycles, graphes complets, arbres, arbres enracinés, forêts,
graphes k-connexes, graphes k-arêtes-connexes,
graphes bipartis, graphes planaires, graphes parfaits, graphes triangulés, graphes d’intervalles,
graphes eulériens, hamiltoniens, et bien d’autres... cf. graphclasses.org
Par exemple : le problème de coloration est un problème difficile à résoudre mais facile pour les arbres, les graphes bipartis et d’autres
Graphes particuliers : arbres
Définitions
SoitG= (V,E)un graphe non orienté G arbre :siGest connexe et acyclique nœuds/branches :sommets/arêtes de l’arbre
feuilles/nœuds internes :nœuds de degré 1/nœuds de degré>1 G forêt :siGest acyclique (plusieurs arbres)
feuilles
internes
un arbre
une chaîne
une étoile une forêt
Remarque : Les chaînes et les étoiles sont des arbres
Propriétés des arbres
Théorème
Tout arbreT = (V,E)vérifie|E|=|V| −1 (preuve par récurrence)
Théorème
Tout grapheG= (V,E)possédant deux de ces propriétés est un arbre : Gest connexe
Gest acyclique
|E|=|V| −1
Autres propriétés des arbres SiT = (V,E)est un arbre, alors
Il existe un unique chemin entre chaque paire de nœuds de l’arbre T graphe connexe minimal: enlever une arête rendT non connexe T graphe acyclique maximal : ajouter une arête crée un cycle les branches sont des isthmes
Graphes particuliers : arbres enracinés
Définitions
SoitG~ = (V,E)un graphe orienté
G arbre enraciné :~ graphe connexe et acyclique avec un unique nœud (appelé racine) de degré entrant nul
parents/fils :voisins entrants/sortants
racine
un arbre enraciné
Remarque : les nœuds (différent racine) ont un degré entrant égal à 1
Graphes particuliers : graphes bipartis
Définitions
SoitG= (V,E)graphe non orienté
G graphe biparti :s’il existe une bi-partition{S,T}deV tel que
∀{u,v} ∈E, u∈S,v ∈T
les graphesG[S]etG[T]sont des graphes sans arêtes
H P R
D E F
A B
graphe biparti
completK3,3 graphes bipartis graphes non bipartis
Propriétés des graphes bipartis
Proposition [König, 1916]
Un graphe est biparti ssi il ne contient pas de cycle de longueur impaire
Conséquences
Les cycles pairs et les arbres sont des graphes bipartis
Propriétés
Un graphe est biparti ssi il est 2-coloriable
Graphes particuliers : graphes planaires
Définitions
SoitG= (V,E)graphe non orienté
G graphe planaire :il existe une représentation dans le plan tel qu’aucune arête ne se croise
face :région connexe du plan délimitée par des arêtes
1
2 3
4 1
3 2 4
faces
face extérieur
1 2
3 4 5
1 2 3
4 5
graphes planaires
K5 K3,3
graphes non planaires
Remarque : Les cycles et les arbres sont des graphes planaires
Propriétés des graphes planaires 1/3
Formule d’Euler
SoitG= (V,E)graphe non orienté planaire avecn=|V|,m=|E|etf le nombre de faces. Alors, siGest connexe, on a :
n−m+f =2 SiGpossèdec composantes connexes, on a :
n−m+f =c+1
Corollaire
SoitGgraphe planaire simple et connexe, alors on am≤3n−6 Conséquence :K5n’est pas planaire
Corollaire
SoitGgraphe planaire simple et connexe, alorsGcontient au moins un sommet de degré 5
Conséquence :Gest 6-coloriable
Propriétés des graphes planaires 2/3
Définitions
SoitG= (V,E)graphe non orienté
subdivision élémentaire d’une arête e∈E :
graphe obtenu en remplaçant une arêteedeGpar une chaîne
i j i j
subdivision de G :
graphe obtenu après plusieurs subdivision élémentaires
Théorème de Kuratowski [Kuratowski, 1930]
Un graphe est planaire ssi il contient pas de subdivision deK5ouK3,3
Graphe de Petersen Non planaire Gcontient une subdivision deK3,3
Propriétés des graphes planaires 3/3
Définitions
SoitG= (V,E)graphe non orienté
contraction de sommets adjacents u,v ∈V :graphe obtenu en remplaçant{u,v}par un sommetw avecδ(w) =δ({u,v})\ {u,v}
u v w
contraction de G :
graphe obtenu après plusieurs contractions de sommets Théorème de Wagner [Wagner, 1937]
Un graphe est planaire ssi il contient pas de contraction deK5ouK3,3
Graphe de Petersen Contraction deGdonneK5