Vous êtes sur la page 1sur 45

T.

Masrour
ENSAM Meknès

Optimisation des graphes


T. Masrour Chapitre 1. Notions de base des graphes

Chaînes, cycles, chemins, circuits

Définitions : (dans un graphe non orienté)


- Une chaîne dans un graphe = une succession d’arêtes qui permet de relier deux sommets du graphe.
- Le nombre d'arêtes qui composent une chaîne = longueur de la chaîne.
- Une chaîne fermée = chaîne dont l'origine et l'extrémité coïncident.
- Un cycle = chaîne fermée dont les arêtes sont toutes distinctes.

Exemple de chaînes :
(C,D,B,B,A), (D,B,C,E), (E,C,D,B,C,D,B,A). Resp. de
longueurs 4, 3 et 7.

(C,B,D,A) et (B,E) ne sont pas des chaînes.

Exemple de cycles :

(C,D,B,B,C), (D,B,A,B,C,E,C,D) cycles

(D,B,A,D) et (B,C,E,B) ne sont pas des cycles.


T. Masrour Chapitre 1. Notions de base des graphes

Définitions : (dans un graphe orienté)


- Un chemin dans un graphe orienté = succession d’arcs qui permet de se rendre d’un sommet à un autre.
- Un circuit dans un graphe orienté = un chemin dont l’extrémité initiale coïncide avec l’extrémité finale.

Exemple de chemins :

(A,B,D,C,B), (E,A,A,B), (D,C,D,C,B resp. de longueurs 4, 3 et 4.

(A,B,C,D,B) et (D,C,B,A) ne sont pas des chemins.

Exemple de circuits :

(B,D,C,B), (D,C,B,D,C,D).

(B,C,D,B) et (A,B,D,C,B,A) ne sont pas des circuits.


T. Masrour Chapitre 1. Notions de base des graphes

Définitions
Dans un graphe non orienté (resp. orienté), une chaîne (resp. un chemin) est simple si elle ne passe pas
deux fois par la même arête (resp. arc).
Dans un graphe non orienté (resp. orienté), une chaîne (resp. un chemin) est dite élémentaire si elle ne
passe pas deux fois par le même sommet.

Rqs.
- Pour les cycles et circuits, la même définition s’applique. Pour les origines et extrémités confondus on ne
les compte pas comme double si on veut examiner le caractère élémentaire.
- Une chaîne ou un chemin élémentaire simple
T. Masrour Chapitre 1. Notions de base des graphes

(E,C,D,B,C) est une chaîne simple (E,A,B,D,C,B) est un chemin simple


(C,D,B,B,C) est un cycle simple. (B,D,C,B)est un circuit simple.
(A,B,D,C,E) est une chaîne élémentaire (E,A,B,D,C) est un chemin élémentaire
(B,D,C,B) est un cycle élémentaire. (D,C,D) est un circuit élémentaire.
T. Masrour Chapitre 1. Notions de base des graphes

Théorème Soit G=(V,E) un graphe non orienté (resp. orienté) et 𝑀 sa matrice d’adjacence. Soit p un entier non nul. Alors,
le coefficient à l'intersection de la i-ème ligne et de la j-ème colonne de 𝑀𝑝 est égal au nombre de chaînes (resp.
chemins) de longueur p, ayant pour origine le i-ème sommet et pour extrémité le j-ème sommet.

- Il y a 4 chaînes de longueur 3 de B vers A :


(B,A,B,A), (B,C,B,A), (B,D,B,A) et (B,B,B,A).

- Il y a 3 cycles de longueur 3 de D vers D :


(D,B,C,D), (D,C,B,D) et (D,B,B,D).
T. Masrour Chapitre 1. Notions de base des graphes

Graphes connexes

Définition
Soit G=(V,E) graphe orienté (ou non orienté).
On dit que G est connexe si pour tout couple { x, y } de sommets de G il existe une chaîne qui relie x et y.

Non connexe
connexe
T. Masrour Chapitre 1. Notions de base des graphes

Définition
Soit G=(V,E) un graphe orienté (ou non orienté).
On peut décomposer G en sous-graphes induits dont chacun sera connexe. Ces sous-graphes s’appellent les
composantes connexes de G.

3 composantes connexes :
{B,C,D,E}
{I,J,K,H}
et
{A,F,G}
T. Masrour Chapitre 1. Notions de base des graphes

Exo
Un réseau informatique est constitué de 7
ordinateurs
O1,O2,⋯,O7
Et une imprimante I

1. Si l'on retire le câble entre O4 et I


peut-on accéder à l’imprimante à
partir de n’importe quel ordinateur ?

2. Même question si l'on retire le câble entre O4 et I ?


T. Masrour Chapitre 1. Notions de base des graphes

Graphes eulériens Le problème classique des 7 ponts de Konigsberg

Posé et résolu par Euler (1707-1783)


dans un article en 1736
T. Masrour Chapitre 1. Notions de base des graphes

Königsberg est traversée par un fleuve, le Pregel qui délimite deux îles, et 7 ponts relient les rives
et les îles. Ils sont représentés en vert

Pb.
Peut-on effectuer parcourir la ville de Königsberg en
empruntant ces 7 ponts une et une seule fois ?
T. Masrour Chapitre 1. Notions de base des graphes

On peut le modéliser par un graphe non orienté


les sommets sont les rives B et C et les îles A et D
les arêtes sont les 7 ponts

La question devient
Peut-on trouver une chaîne passant une et une seule fois par
toutes les arêtes de ce graphe ?
T. Masrour Chapitre 1. Notions de base des graphes

Définitions
Soit G=(V,E) un graphe non orienté.
- Une chaîne eulérienne de G = chaîne simple passant par toutes les arêtes de G
(càd une chaîne passant une et une seule fois par toutes les arêtes de G).

- Un cycle eulérien = chaîne eulérienne ayant les mêmes extrémités.

- Un graphe eulérien = graphe qui possède un cycle eulérien.

Rq.
Un graphe admet une chaîne ou un cycle eulérien le graphe est connexe
Un graphe admet un cycle eulérien chacun de ses sommets a un degré pair

Théorème
Soit G=(V,E) un graphe non orienté connexe.
Le graphe G admet un cycle eulérien si et seulement si tous ses sommets ont un degré pair.
Le graphe G admet une chaîne eulérienne qui n’est pas un cycle
si et seulement si tous ses sommets ont un degré pair sauf exactement deux d’entre eux.
Ces deux sommets particuliers seront les extrémités de cette chaîne.
T. Masrour Chapitre 1. Notions de base des graphes
Le problème des 7 ponts de Konigberg

Les 4 sommets de ce graphe ont des degrés impairs

Il n’existe donc ni cycle eulérien, ni chaîne eulérienne.

Le problème des ponts de Königsberg n’a donc pas de solution.


T. Masrour Chapitre 1. Notions de base des graphes

Algorithme de détermination d'un cycle eulérien

1. Choisir un sommet arbitrairement.


2. Construire un cycle simple (quel qu’il soit) ayant pour origine et extrémité ce sommet (c’est
toujours possible).
3. Si ce cycle est eulérien, la recherche est terminée.
4. Sinon, considérer le sous-graphe obtenu en supprimant les arêtes du cycle précédent.
5. À partir d’un sommet commun au sous-graphe restant et au cycle, construire de nouveau un
cycle simple.
6. Insérer ce second cycle dans le premier.
7. Recommencer à partir de l'étape 3
T. Masrour Chapitre 1. Notions de base des graphes

Exemple On considère ensuite le sous-graphe de G obtenu en


supprimant ce cycle :

Ce graphe est eulérien car il est connexe, et tous les degrés de


ses sommets sont pairs. A partir du sommet D, on peut construire un second
On commence donc par choisir un sommet, par exemple A. On cycle simple, par exemple (D,C,B,D), ici en vert :
construit alors un cycle simple d'origine et extrémité A, comme
(A,D,E,F,A)
T. Masrour Chapitre 1. Notions de base des graphes

On supprime ce nouveau cycle :


Il ne reste plus qu’à insérer les deux derniers cycles dans le
premier, il vient (A,D,C,B,D,E,A,B,E,F,A) :

La construction du prochain (et dernier) cycle


simple est triviale, il s'agit de (E,A,B,E)
T. Masrour Chapitre 1. Notions de base des graphes

Algorithme de détermination d'une chaîne eulérienne

1. Choisir arbitrairement l'un des deux sommets de degré impair.


2. Construire une chaîne simple (quelle qu’elle soit) ayant pour origine ce sommet et pour
extrémité l’autre sommet de degré impair (c’est toujours possible).
3. Si cette chaîne est eulérienne, la recherche est terminée.
4. Sinon, considérer le sous-graphe de G obtenu en supprimant les arêtes de la chaîne
précédente.
5. À partir d’un sommet commun au sous-graphe restant et à la chaîne, construire un cycle
simple.
6. Insérer ce cycle dans la chaîne.
7. Recommencer à partir de l'étape 3
T. Masrour Chapitre 1. Notions de base des graphes

Définitions (Cas des graphes orientés)


Soit G=(V,E) un graphe orienté.
Un chemin eulérien de G est un chemin simple passant par tous les arcs de G, c’est-à-dire un chemin
passant une et une seule fois par tous les arcs de G.
Un circuit eulérien est un chemin eulérien ayant les mêmes extrémités.
Un graphe eulérien est un graphe possédant un circuit eulérien.

Théorème
Soit G=(V,E) un graphe orienté connexe.
Le graphe G admet un circuit eulérien si et seulement si tous ses sommets ont un degré entrant égal à leur
degré sortant.
Le graphe G admet une chemin eulérien qui n’est pas un circuit si et seulement si tous ses sommets ont un
degré entrant égal à leur degré sortant, sauf deux d’entre eux x et y qui vérifieront
𝑑+ 𝑥 = 𝑑− 𝑥 − 1 𝑑+ 𝑦 = 𝑑− 𝑦 + 1
Ce chemin aura pour origine y et pour extrémité x
T. Masrour Chapitre 1. Notions de base des graphes

Graphes Hamiltoniens

Définitions
Soit G=(V,E) un graphe orienté ou non.
Une chaîne, un chemin, un cycle ou un circuit de G sont dits hamiltoniens s’ils passent une et une seule fois par
tous les sommets de G.
Un graphe hamiltonien est un graphe non orienté possédant un cycle hamiltonien ou un graphe orienté possédant
un circuit hamiltonien.
T. Masrour Chapitre 1. Notions de base des graphes

Ce graphe non orienté est hamiltonien car il Ce graphe orienté est hamiltonien car il possède le
possède le cycle (A,E,B,C,D,F,A). cycle (E,D,C,B,A,F,E).
T. Masrour Chapitre 1. Notions de base des graphes

Histoire :
Question (1859) par Sir William Rowan Hamilton (1805-1865).

On considère 20 villes de la planète positionnées sur les sommets d’un dodécaèdre régulier (qui est un
polyèdre avec 20 faces convexes pentagonales identiques, équilatérales et équiangles)

Peut-on parcourir ce dodécaèdre en passant une et une seule fois


par chacune de ses villes et en revenant au point de départ?
T. Masrour Chapitre 1. Notions de base des graphes
Peut-on trouver un cycle passant une et une seule fois par tous
Voici le diagramme planaire associé au problème les sommets de ce graphe ?
d’Hamilton c.à.d. cycle hamiltonien.

La réponse est oui


T. Masrour Chapitre 1. Notions de base des graphes

Proposition. Soit G=(V,E) un graphe non orienté.


Si G possède un sommet de degré 1 il ne peut pas être hamiltonien.
Preuve. C’est évident, car pour qu'un graphe possède un cycle hamiltonien on doit pouvoir arriver et
repartir par n’importe quel sommet, et donc le degré de chacun des sommets doit être au moins égal à
2. !!

Exemple de graphe non hamiltonien car il possède des sommets de degrés1: C, G , F


T. Masrour Chapitre 1. Notions de base des graphes

Condition de Dirac
Soit G=(V,E) un graphe non orienté d'ordre n, avec n≥3.
Si pour tout sommet x de G on a d(x) ≥ n/2 alors G est hamiltonien.

Exemple.

Ce graphe est d’ordre 5 et chaque sommet a un degré ≥ 3. Il


est donc hamiltonien.
Voici un exemple de cycle hamiltonien : (A,B,C,E,D,A)
.
T. Masrour Chapitre 2. Coloration d’un graphe

Définition
Soit G=(V,E) un graphe non orienté.
Une coloration de G est l'attribution d'une couleur à chacun de ses sommets, de telle sorte que deux sommets
adjacents ne soient pas colorés avec la même couleur.
Problème très pratique et très étudié dans : la planification des horaires, l’allocation des ressources, ….etc.
Rq. On ne peut colorer que des graphes simples!!
T. Masrour Chapitre 2. Coloration d’un graphe

Nombre chromatique

Définition
Soit G=(V,E) un graphe non orienté. Le nombre chromatique de G est le nombre minimal de couleurs
permettant de le colorer. On le notera χ(G).

Propriété
Le nombre chromatique d’un graphe non orienté complet à n sommets est n.
T. Masrour Chapitre 2. Coloration d’un graphe

Minoration du nombre chromatique


Soit G=(V,E) un graphe non orienté.
Soit ω(G) l'ordre maximum d'un sous-graphe complet de G.
On a alors : ω(G)≤χ(G)

Majoration du nombre chromatique


Soit G=(V,E) un graphe non orienté.
Soit Δ(G) le degré maximum des sommets de G.
On a: χ(G)≤Δ(G)+1
T. Masrour Chapitre 2. Coloration d’un graphe
Preuve
Raisonnons par l’absurde et supposons que χ(G)>Δ(G)+1
.
Considérons une coloration optimale de G , i.e. une coloration comportant χ(G)couleurs.

Indexons les différentes couleurs et prenons un sommet x donc la couleur est celle d'indice χ(G). Ce sommet possède
nécessairement au plus Δ(G) sommets adjacents. Dans le pire des cas, il faut attribuer une couleur différente à chacun
de ces sommets, ce qui utilise alors Δ(G) couleurs.
Puisque χ(G)>Δ(G)+1 il reste donc au moins une couleur non utilisée par le sommet x et ses sommets adjacents. On
peut alors remplacer la couleur de x par celle-ci tout en conservant une coloration valide.

On peut ensuite procéder de même pour tous les sommets possédant la couleur d'indice χ(G).

On obtient alors une coloration de G n'utilisant pas cette couleur. Ceci est absurde car cela contredit le fait que notre
coloration était optimale. Notre hypothèse de départ était donc fausse.
T. Masrour Chapitre 2. Coloration d’un graphe

Example Encadrement du nombre chromatique

On a ainsi 4≤χ(G).
Pour majorer le nombre chromatique de G
il faut calculer le degré maximum de ses
sommets. Il s'agit de 5, degré des sommets
A et C.
On a donc χ(G)≤6.
Pour minorer le nombre chromatique de G, on cherche donc un Finalement, on obtient l'encadrement
sous-graphe complet d'ordre maximum. On trouve A,C,D,H, suivant : 4≤χ(G)≤6
représenté ci-dessous en rouge, et qui est d'ordre 4 .
T. Masrour Chapitre 2. Coloration d’un graphe

Théorème des quatre couleurs


Le nombre chromatique d’un graphe planaire est au plus égal à 4.

Le problème de résolution de la coloration de graphes est de complexité


exponentielle…..Il y a des heuristiques et méta heuristiques pour ce faire…Mais ne
donnent pas toujours une solution optimale:
Welsh et Powell, glouton
DSATUR
2-coloriage
Wigderson
…..
T. Masrour Chapitre 2. Coloration d’un graphe
Algorithme de coloration (Welsh & Powell)
Soit G=(V,E) un graphe non orienté.
Etapes de l'algorithme :
1. Calculer le degré de chaque sommet.

2. Trier les sommets par ordre décroissant de leurs degrés : d(S1)≥d(S2)≥⋯≥d(Sn)

3. Choisir une couleur pour le premier sommet S1

4. Parcourir la liste des sommets triés puis colorer de cette couleur le premier sommet non adjacent à S1 (s’il en existe).
5. Continuer la liste et colorer de même le prochain sommet non adjacent ni au premier ni au second.
6. Faire de même jusqu’à épuisement de la liste.
7. Prendre une seconde couleur pour le premier sommet non coloré de la liste et recommencer les étapes précédentes.
8. Recommencer jusqu’à avoir coloré tous les sommets.
T. Masrour
Chapitre 2. Coloration d’un graphe

On choisit une couleur pour A:


rouge….on applique l’algorithme: Puis le sommet D en vert

Enfin le sommet H en jaune


on choisit le bleu pour B
degrés des sommets:

On ordonne les degrés


T. Masrour
Chapitre 2. Coloration d’un graphe

Exercice

Combien de couleurs ?
T. Masrour
Chapitre 2. Coloration d’un graphe
En effet:
Appliquons l'algorithme de Welsh et Powell

3 couleurs
N.B. Ce n’est pas
optimal

4 couleurs
T. Masrour
Chapitre 2. Coloration d’un graphe
Exercice
On veut fabriquer des produits dans une usine que l’on désigne par P1, P2, P3, P4, P5, P6, P7 et P8. Dans le tableau
ci-dessous, l’étoile * signifie que les produits ne peuvent pas être fabriqués par les mêmes opérateurs pour des
raisons techniques:
A B C D E F G H

A
* * * * *
B
* * * *
C
* * * * *
D
* * * *
E
* * * *
F
* * *
G
* * * *
H
* * *
T. Masrour
Chapitre 2. Coloration d’un graphe
T. Masrour
Chapitre 3. Plus court chemin
A

B G

D
C F

H
T. Masrour
Chapitre 3. Plus court chemin

Bellman-Ford (Plus court chemin)


Une autre méthode qui est largement utilisée pour trouver le plus court chemin est Bellman-Ford .

Algorithme:
1. Les sommets 𝑥0 sans précédents sont dit du ‘1er niveau' ou niveau de départ : on leur affecte une fonction
coût (ou distance), notée m, égale à 0 : m(𝒙𝟎 ) = 0
2. Examiner les nœuds 𝑥1 adjacents aux nœuds 𝑥0 . Pour chacun, la fonction m se calcule en ajoutant la
distance à partir du nœud source par : m(𝒙𝟏 ) = d(𝒙𝟏 ; 𝒙𝟎 ) + m(𝒙𝟎 ) = d(𝒙𝟏 ; 𝒙𝟎 ) )
3. Au niveau i + 1 , on continue l'examen des nœuds adjacents à ceux visités dans le niveau i précèdent. Quand
un nœud 𝑥𝑖+1 a des liaisons avec plusieurs précédents, la valeur de m(𝑥𝑖+1 ) se calcule alors en retenant le
nœud xi le plus proche, en d'autre terme :
m(𝒙𝒊+𝟏 ) = 𝒎𝒊𝒏𝒙𝒊 ) (d(𝒙𝒊+𝟏 ; 𝒙𝒊 ) + m(𝒙𝒊 ) )) où 𝑥𝑖 sont tous les nœuds précédent de 𝑥𝑖+1
𝒊
4. Répéter l'étape 3, niveau après niveau jusqu'à ce que le nœud de destination soit atteint
T. Masrour
Chapitre 3. Plus court chemin
T. Masrour
Chapitre 3. Plus court chemin
T. Masrour
Chapitre 3. Plus court chemin
D
B
G

A H
J
E

C I

F
T. Masrour
Chapitre 3. Plus court chemin
T. Masrour
Chapitre 3. Plus court chemin

Vous aimerez peut-être aussi