Vous êtes sur la page 1sur 97

Notions de base

Flot maximal

Optimisation des graphes

M. El Ossmani
ENSAM–Meknès

2023–2024

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 1/97


Notions de base
Flot maximal

Problématique

Visiter la ville en passant une seule fois par chaque pont ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 2/97


Notions de base
Flot maximal

Les ponts de Königsberg

La question à l’origine de la théorie des graphes est due à


Euler, en 1736 : dans cette partie de la ville de Königsberg :

Peut-on, lors d’une promenade, revenir à notre point de


départ en empruntant une, et une seule fois, chaque pont ?
Le problème est décrit dans cette vidéo :
https://www.youtube.com/watch?v=aE3MtaDDk5U

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 3/97


Notions de base
Flot maximal

Les 7 ponts de Königsberg


La ville de Königsberg est construite autour de deux ı̂les situées sur le Pregel et
reliées entre elles par un pont. Six autres ponts relient les rives de la rivière à
l’une ou l’autre des deux ı̂les.
Le problème consiste à déterminer s’il existe ou non une promenade dans les
rues de Königsberg permettant, à partir d’un point de départ au choix, de passer
une et une seule fois par chaque pont, et de revenir à son point de départ.

Pour y répondre, Euler a introduit le graphe ci-dessus (les arcs symbolisent les
ponts ; les sommets, les quatre zones terrestres) :
Le problème de départ se ramène alors à la question suivante : peut-on trouver
un circuit permettant d’emprunter une, et une seule fois chaque arête, en
retournant à son point de départ ?
La réponse, dans ce cas particulier, est non.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 4/97


Notions de base
Définitions
Flot maximal

Graphes non orientés

Définition (Graphe non orienté)


un graphe non orienté G = (S, A) est défini par :
un ensemble S fini de sommets.
un ensemble A d’arêtes, chaque arête connectant deux sommets (pas
nécessairement différents).

Une arête a = {x , y } est aussi notée (xy ). On dit que x et y sont adjacents.
Une arête a = {x , x } est une boucle reliant deux fois le même sommet x .
A B
n o
S= A, B, C , D, E

E n
A= {A, B}, {A, C }, {C , D}, {B, D},
o
{B, E }, {D, E }
C D
Un graphe non orienté, G1

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 5/97


Notions de base
Définitions
Flot maximal

Graphes orientés

Définition (Graphe orienté)


un graphe orienté G = (S, A) est défini par :
un ensemble S fini de sommets,
un ensemble A d’arcs, chaque arc ayant une origine et un but dans S.

Un arc a = (s, t) : t est un successeur de s et s est un antécédent de t.


Un arc s → s est une boucle. On appelle |S| l’ordre du graphe.
A B F n o
S= A, B, C , D, E F , G

E n
A= (A, B), (A, C ), (B, E ), (D, B),
o
G (C , D), (E , D), (F , G), (G, F )
C D
Un graphe orienté, G2

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 6/97


Notions de base
Définitions
Flot maximal

Graphes simples, degrés

Définition (Graphe simple)


Un graphe est dit simple s’il ne comporte aucune boucle et que deux
arêtes(arcs) ne relient jamais la même paire de sommets.

Définition (Degré)
Dans un graphe orienté, le degré sortant (resp. entrant) d’un
sommet s est le nombre de sommets qui sont successeurs (resp.
antécédents) de s. Le degré est la somme des degrés entrants et
sortants.
Dans un graphe non orienté, le degré de s est le nombre de
sommets adjacents à s.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 7/97


Notions de base
Définitions
Flot maximal

Sous-graphe et graphe partiel


A B
Définition (Sous-graphe)
Soit un graphe G = (S, A), et S 0 ⊂ S,
le sous-graphe induit par S 0 est le
graphe (S 0 , A0 ) où
A0 = {(u, v ) ∈ A/u ∈ S 0 ∧ v ∈ S 0 }.
C D
Le sous-graphe de G2 induit par {A, B, C , D}

A B F
Définition (Graphe partiel)
Soit un graphe G = (S, A), et A0 ⊂ A, E
le graphe (S, A0 ) est un graphe partiel
de G.

C D G
Un graphe partiel de G2

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 8/97


Notions de base
Définitions
Flot maximal

Matrice et liste d’adjacence


Définition (Matrice d’adjacence)
La matrice d’adjacence A d’un graphe G = (S, A) d’ordre n est
une matrice n × n à coefficients dans {0, 1} où chaque ligne et
chaque colonne correspond à un sommet de G et où :

Aij = 1 ⇔ (i, j) ∈ A

Dans le cas non orienté, la matrice d’adjacence est symétrique.

Définition (Liste d’adjacence)


un tableau Adj de |S| listes, une pour chaque sommet.
pour chaque sommet u, la liste Adj[u] contient les (ou des
références aux) sommets v adjacents à u (tels qu’il existe un
arc/arête (u, v ) ∈ A).
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 9/97
Notions de base
Définitions
Flot maximal

Matrice d’adjacence
A B A B

C D C D
A B C D E
A B C D
A 0 1 1 0 0
 
A 0 1 1 0
 
 1 0 0 1 1 
B 
 0
B 0 0 0 

C 1 0 0 1 0 

C 0 0 0 1 
  
D 0 1 1 0 1 
 
D 0 1 0 0
ENSAM–Meknès M. El Ossmani
0 1 des0 graphes
E Optimisation 1 0 2023–2024 10/97
Notions de base
Définitions
Flot maximal

Liste d’adjacence
Non orienté Orienté

Sommet Adjacents Sommet Successeurs


A B A A, B
B B, A, C , D B D
C B, D, E C B, D
D B, C D C
E C E A

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 11/97


Notions de base
Définitions
Flot maximal

Graphe complet, planaire


Définition (Graphe complet)
Un graphe est complet s’il est simple et pour toute paire de sommets (u, v ) il
existe au moins un arc (arête) entre u et v .
Un graphe complet d’ordre n est noté Kn .

Le graphe complet non orienté K6

Définition (Graphe planaire)


C’est un graphe orienté ou non tel que les arrêtes ne se coupent pas.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 12/97


Notions de base
Définitions
Flot maximal

Exercice 1. :
Dessiner un graphe non orienté complet d’ordre 4.
1. Quel est le degré des sommets de ce graphe ?
2. Combien d’arêtes possède-t-il ?
3. Généralisez ces résultats à un graphe simple complet ayant n sommets.
4. Ce graphe complet d’ordre 4 est-il planaire ?

1ère représentation
2ème représentation du même graphe

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 13/97


Notions de base
Définitions
Flot maximal

Propriété
n(n−1)
Un graphe (S, E ) non orienté complet d’ordre n possède 2
arrêtes.

Preuve :
Une arrête a = {si , sj }= combinaison de 2 sommets si , sj ∈ S.
Nombre de sommets est n.
Le graphe étant complet, donc chaque 2 sommets forme une arête.
n!
D’où le résultat : Cn2 = (n−2)!x 2!
.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 14/97


Notions de base
Définitions
Flot maximal

Exemple : Énigme des 3 maisons

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 15/97


Notions de base
Définitions
Flot maximal

Lemme des poignées de main

Théorème
1 Graphe (S, A) non

orienté :

d(s) = 2 card(A)
X

s∈S

2 Graphe (S, A) orienté :

d + (s) = d − (s) = card(A)


X X

s∈S s∈S

Corollaire
Dans un graphe non orienté le nombre de sommets de degrés
impaires est pair.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 16/97


Notions de base
Définitions
Flot maximal

Exemple

Exercice 2 :
On a 7 types de matières premières que l’on veut tester. La
procédure est la suivante :
On veut examiner le mélange de chaque paire de types de MP.
a) Est-il possible de tester chaque MP exactement 5 fois ?
b) 4 fois

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 17/97


Notions de base
Définitions
Flot maximal

Chaı̂nes et cycles

Définition (dans un graphe non orienté)


Une chaı̂ne dans un graphe non orienté = 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.
Simple : ne passe pas deux fois par la même arête.
Élémentaire : ne passe pas deux fois par le même sommet.

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.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 18/97


Notions de base
Définitions
Flot maximal

Chemins et circuits

Définition (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.
Simple : ne passe pas deux fois par le même arc.
Élémentaire : ne passe pas deux fois par le même sommet.
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.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 19/97


Notions de base
Définitions
Flot maximal

Simple et élémentaire

Graphe non orientée Graphe orientée

(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.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 20/97


Notions de base
Définitions
Flot maximal

Théorème
Soit G=(V,E) un graphe non orienté (resp. orienté) et Ma 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 Map 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.

1 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).
2 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).

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 21/97


Notions de base
Définitions
Flot maximal

Graphes connexes

Définition (Connexité)
Soit G = (V , E ) un 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 .

Connexe Non connexe

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 22/97


Notions de base
Définitions
Flot maximal

Composantes connexes

Définition (composantes connexes)


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.

2 composantes connexes :

{a,b,c,d}
{e,f,g}

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 23/97


Notions de base
Définitions
Flot maximal

Exercice 3

Un réseau informatique est constitué de


7 ordinateurs O1 , O2 , . . ., O7 et une im-
primante 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 O7 et I ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 24/97


Notions de base
Définitions
Flot maximal

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

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 25/97


Notions de base
Définitions
Flot maximal

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

Problème
Peut-on parcourir la ville de
Königsberg en empruntant ces
7 ponts une et une seule
fois ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 26/97


Notions de base
Définitions
Flot maximal

On peut le modéliser par un


graphe non orienté : les som-
mets 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 ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 27/97


Notions de base
Définitions
Flot maximal

Chaı̂ne Eulérienne
Définition
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.

Remarque :
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.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 28/97


Notions de base
Définitions
Flot maximal

Le problème des 7 ponts de Königsberg

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.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 29/97


Notions de base
Définitions
Flot maximal

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

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 30/97


Notions de base
Définitions
Flot maximal

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. On commence donc par choi-
sir un sommet, par exemple A. On A partir du sommet D, on peut
construit alors un cycle simple d’origine construire un second cycle simple, par
et extrémité A, comme (A,D,E,F,A) exemple (D,C,B,D), ici en vert :

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 31/97


Notions de base
Définitions
Flot maximal

Exemple suite ....


On supprime ce nouveau cycle :

Il ne reste plus qu’à insérer les deux der-


niers 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 tri-
viale, il s’agit de (E,A,B,E)

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 32/97


Notions de base
Définitions
Flot maximal

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

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 33/97


Notions de base
Définitions
Flot maximal

Chemin eulérien
Définition (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 un 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

d+ (x ) = d (x ) − 1 et d+ (y ) = d (y ) + 1

Ce chemin aura pour origine x et pour extrémité y .


ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 34/97
Notions de base
Définitions
Flot maximal

Exercice 4 :
Les graphes suivants possèdent-ils un cycle eulérien ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 35/97


Notions de base
Définitions
Flot maximal

Graphes Hamiltoniens

Définition
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.

Ce graphe non orienté est hamiltonien Ce graphe orienté est hamiltonien car il
car il possède le cycle (A,E,B,C,D,F,A). possède le cycle (E,D,C,B,A,F,E).

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 36/97


Notions de base
Définitions
Flot maximal

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)

Question : 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 ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 37/97


Notions de base
Définitions
Flot maximal

Peut-on trouver un cycle


passant une et une seule
Voici le diagramme planaire as- fois par tous les sommets
socié au problème d’Hamilton de ce graphe ? c.à.d. cycle
hamiltonien.
La réponse est oui

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 38/97


Notions de base
Définitions
Flot maximal

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és 1 : C, G , F

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 39/97


Notions de base
Définitions
Flot maximal

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é n ≥ 3. Il est


donc hamiltonien. Voici un exemple de cycle hamiltonien :
ENSAM–Meknès
(A,B,C,E,D,A)
M. El Ossmani Optimisation des graphes 2023–2024 40/97
Notions de base
Définitions
Flot maximal

Exercice 5 :
Les graphes suivants possèdent-ils un cycle hamiltonien ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 41/97


Notions de base
Définitions
Flot maximal

Coloration des Graphes

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 42/97


Notions de base
Définitions
Flot maximal

Problème de coloration de graphe

Problème très pratique et très étudié dans : la planification des


horaires, l’allocation des ressources, réseaux de routes aériennes, ..., etc.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 43/97


Notions de base
Définitions
Flot maximal

Problème de coloration de graphe

Définition
Soit un graphe simple non-orienté G = (V , E ). Une coloration de
G est une fonction associant à tout sommet de G une couleur telle
que deux sommets adjacents n’ont pas la même couleur.

Problème de décision : trouver une coloration avec k couleurs.


Problème d’optimisation : trouver une coloration avec le nombre
minimum de couleurs, appelé nombre chromatique χ(G).

Il s’agit de problèmes difficiles en général pour k ≥ 3.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 44/97


Notions de base
Définitions
Flot maximal

graphe G = (V , E )

3-coloration légale

3-coloration non légale

k-coloration de G = (V , E )
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 45/97
Notions de base
Définitions
Flot maximal

Applications : allocation de ressources rares

Emplois du temps
Allocation de créneaux horaires à des événements : cours, examens...

Sommets : les événements


Arêtes : les contraintes ; deux événements ne peuvent se dérouler simultanément
Couleurs : les créneaux horaires
⇒ Minimiser la durée totale des événements

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 46/97


Notions de base
Définitions
Flot maximal

Applications : allocation de ressources rares

Allocation de fréquences dans les réseaux GSM


Attribuer aux antennes relais des bandes de fréquences pour communiquer avec
les usagers.

Sommets : les antennes relais


Arêtes : entre deux antennes trop proches géographiquement l’une de
l’autre (niveau d’interférence trop important)
Couleurs : les canaux de fréquences radio
⇒ Minimiser le nombre de fréquences utilisées ou pour un nombre de
fréquences donné minimiser les interférences

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 47/97


Notions de base
Définitions
Flot maximal

Applications : allocation de ressources rares

Allocation de niveaux de vol


Attribuer un niveau de vol aux avions pour éviter les conflits
aériens.

Sommets : les avions


Arêtes : entre deux avions
en conflits (ne respectant
pas les distances de sécurité)
Couleurs : les niveaux de vol
⇒ Minimiser le nombre de
niveaux de vol utilisés

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 48/97


Notions de base
Définitions
Flot maximal

Applications : allocation de ressources rares


Coloration de carte géographique

Sommets : les départements


Arêtes : entre deux départements
frontaliers
⇒ colorier en 4 couleurs

Sudoku, carré latin...

Compléter une grille de sudoku


9 8 7 4 2
Sommets : les cases de la grille 9 6
Arêtes : entre deux cases de la même ligne, même
6 8 4 9
colonne et même carré
5 8 3 4
Couleurs : les numéros 6 3 7
3 5 2 8
⇒ Existence d’une solution à partir d’une solution
6 3 7 9
partielle 2 7 5 6

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 49/97


Notions de base
Définitions
Flot maximal

Problème de compatibilité

Dans un groupe de 8 étudiants, on doit former des groupes de telle


sorte que les étudiants d’un même groupe ne s’entendent pas trop
mal. On connaı̂t les incompatibilités suivantes :
l’étudiant A B C D E F G H
ne s’entend pas avec B,E,F,H A,C,E,G B,D C,E,G A,D,F,H A,E,H B,D,H A,E,F G

Question : Quel est le nombre minimal de groupe que nous pouvons


réaliser en tenant compte des incompatibilités des étudiants ?

Le nombre minimal de groupes


nécessaire correspond au nombre
chromatique du graphe des in-
compatibilités

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 50/97


Notions de base
Définitions
Flot maximal

Problème d’emploi du temps

Pendant un festival, on veut organiser des tournois de scrable (S),


échecs (E), go (G), dames (D), tarot (T) et master-mind (M).
Plusieurs personnes se sont inscrites à la fois pour les tournois E,
S, G, d’autres personnes pour les tournois G, D, M, et enfin
d’autres personnes pour les tournois M, T, S. Il est entendu qu’une
participation simultanée à plusieurs tournois est impossible et que
les organisateurs veulent satisfaire tout le monde.
Question : Quel est le nombre maximum de tournois qui pourraient
se dérouler en même temps ?

Le nombre maximum de tournois


correspond ...... du graphe des
emplois du temps.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 51/97


Notions de base
Définitions
Flot maximal

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.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 52/97


Notions de base
Définitions
Flot maximal

1 Minoration du nombre chromatique


Il n’y a pas de méthode générale pour obtenir une bonne minoration mais si le
graphe G contient un sous-graphe complet à n sommets alors il faut au moins n
couleurs pour le colorier.

Soit w (G) l’ordre maximum des sous-graphes complets de G. On a


alors : w (G) ≤ χ(G)

2 Majoration du nombre chromatique


Pour majorer un nombre chromatique, il suffit de donner un coloriage valide du
graphe. On en obtient un grace à l’algorithme suivant :
Donnée : Un graphe G = (V, E)
Resultat : Une colloration c → N∗ de G
Pour s ∈ V faire
c(s) ← plus petite couleur non utilisé par les voisins de s

Soit ∆(G) le degré maximum des sommets de G. On a alors :


χ(G) ≤ ∆(G) + 1

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 53/97


Notions de base
Définitions
Flot maximal

Preuve
Raisonnons par l’absurde

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.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 54/97


Notions de base
Définitions
Flot maximal

Example : Encadrement du nombre chromatique

On a ainsi 4 ≤ χ(G). Pour majorer le


Pour minorer le nombre chromatique
nombre chromatique de G il faut calcu-
de G, on cherche donc un sous-graphe
ler le degré maximum de ses sommets.
complet d’ordre maximum. On trouve
Il s’agit de 5, degré des sommets A et
A,C,D,H, représenté ci-dessous en rouge,
C. On a donc χ(G) ≤ 6. Finalement, on
et qui est d’ordre 4
obtient l’encadrement suivant :
4 ≤ χ(G) ≤ 6
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 55/97
Notions de base
Définitions
Flot maximal

Problème de coloration

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 : Voici
quelques algorithmes :
Welsh et Powell
Glouton
DSATUR
Wigderson

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 56/97


Notions de base
Définitions
Flot maximal

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 S
1
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.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 57/97


Notions de base
Définitions
Flot maximal

Exemple : coloration
Puis le sommet D en vert
On choisit une couleur pour pause
A : rouge.
On applique l’algorithme :

Enfin le sommet H en jaune


On choisit le bleu pour C
degrés des sommets :
x A B C D E F G H
d(x) 5 4 5 4 4 3 4 3
On ordonne les degrés

x A C B D E G F H
d(x) 5 5 4 4 4 4 3 3

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 58/97


Notions de base
Définitions
Flot maximal

Coloration des graphes

Exercice 6

Combien de couleurs ?
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 59/97
Notions de base
Définitions
Flot maximal

Correction

Appliquons l’algorithme de
Trouvons une autre Coloration
Welsh et Powell
avec moins de couleurs ?

4 Couleurs
3 Couleurs
N.B. Ce n’est pas optimal
N.B. C’est optimal

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 60/97


Notions de base
Définitions
Flot maximal

Coloration des graphes


Exercice 7 (planification)
On veut fabriquer des produits dans une usine que l’on désigne par
A, B, C, D, E, F, G et H. 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 * * *
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 61/97
Notions de base
Définitions
Flot maximal

Solution

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 62/97


Notions de base
Définitions
Flot maximal

Exercice 8 (allocation des ressources)

Sept élèves, désignés par A, B, C, D, E, F et G, se sont rendus à la bibliothèque


aujourd’hui. Le tableau suivant précise ”qui à rencontré qui” (la bibliothèque étant
petite, deux élèves présents au même moment se rencontrent nécessairement...)
l’élève A B C D E F G
rencontré D,E D,E,F,G E,G A,B,E A,B,C,D,F,G B,E,G B,C,E,F

Question : De combien de places assises doit disposer la bibliothèque pour que chacun
ait pu travailler correctement au cours de cette journée ?

Exercice 9 (planification des horaires)

Un lycée doit organiser les horaires des examens. On suppose qu’il ya 7 épreuves à
planifier, correspondant aux cours numérotés de 1 à 7 et que les paires de cours
suivantes ont des étudiants communs : (1 et 2), (1 et 3), (1 et 4), (1 et 7), (2 et 3),
(2 et 4), (2 et 5), (2 et 7), (3 et 4), (3 et 6), (3 et 7), (4 et 5), (4 et 6), (5 et 6), (5
et 7) et enfin (6 et 7).

Question : Comment organiser ces épreuves de façon qu’aucun étudiant n’ait à passer
deux épreuves en même temps et cela sur une durée minimale ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 63/97


Notions de base
Définitions
Flot maximal

Plus court chemin

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 64/97


Notions de base
Définitions
Flot maximal

Graphes valués
Définition
Un graphe valué (ou pondéré) est un graphe G = (V , E , w ), où w : E → R :
{u, v } 7→ w ({u, v }) est une fonction affectant à chaque arête une valeur réelle
(appelée coût, poids ou longueur).

• Le coût d’un chemin dans un graphe valué est la somme des coûts des arcs qui le
compose

Le chemin (ACDE) est de coût 6


Remarques :
1 Les graphes non valués peuvent être vus comme des graphes valués dans
lesquels on affecte le même coût (par exemple 1) à chaque arête.
2 Le cout d’un arc dans un graphe peut être négatif.
3 Un circuit de cout négatif est dit circuit absorbant.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 65/97


Notions de base
Définitions
Flot maximal

Plus court chemin


Le problème de plus court chemin (pcch) consiste à trouver un chemin d’un sommet
(dit de départ) à un autre (dit d’arrivée) de façon que son cout soit minimal.

CNS d’existence
Soient i et j deux sommets de G tels qu’il existe un chemin de i à j. Le problème du
pcch de i à j a une solution si et seulement s’il n’existe pas dans le graphe de circuit
absorbant (tel qu’il existe un chemin de i à j contenant un des sommets du circuit).

Il n’existe pas de plus court chemin entre les sommets 1 à 6


ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 66/97
Notions de base
Définitions
Flot maximal

Algorithme de Dijkstra- Étape par étape


L’algorithme de Dijkstra (prononcer approximativement  Dextra ) permet de trouver le plus court chemin
entre deux sommets d’un graphe (orienté ou non orienté). Dans l’exemple du graphe ci-dessous, on va rechercher le
chemin le plus court menant de M à S.

Initialisation :
On construit un tableau ayant pour colonnes chacun des sommets du graphe. On ajoute à gauche une
colonne qui recensera les sommets choisis à chaque étape (cette colonne est facultative mais facilitera la
compréhension de l’algorithme).
Puisque l’on part du sommet M, on inscrit, sur la première ligne intitulée  Départ , 0M dans la
colonne M et ∞ dans les autres colonnes.
Cela signifie qu’à ce stade, on peut rejoindre M en 0 minute et on n’a rejoint aucun autre sommet puisque
l’on n’a pas encore emprunté de chemin...

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 67/97


Notions de base
Définitions
Flot maximal

Étape 1 :
On sélectionne le plus petit résultat de la dernière ligne. Ici, c’est 0M qui correspond
au chemin menant au sommet M en 0 minute.
On met en évidence cette sélection (nous l’écrirons en rouge mais il est
également possible de la souligner, de l’entourer, etc.).
On inscrit le sommet retenu et la durée correspondante dans la première
colonne (ici on écrit M(0)).
On désactive les cases situées en dessous de notre sélection en les grisant par
exemple. En effet, on a trouvé le trajet le plus court menant à M ; il sera inutile
d’en chercher d’autres.

À partir de M, on voit sur le graphe que l’on peut rejoindre E, L et N en


respectivement 10, 7 et 4 minutes. Ces durées sont les durées les plus courtes ; elles
sont inférieures au durées inscrites sur la ligne précédente qui étaient ∞. On inscrit
donc 10M , 7M et 4M dans les colonnes E, L et N. Le M situé en indice signifie que
l’on vient du sommet M.
Enfin on complète la ligne en recopiant dans les cellules vides les valeurs de la ligne
précédente.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 68/97


Notions de base
Définitions
Flot maximal

Étape 2 :
On sélectionne le plus petit résultat de la dernière ligne. Ici, c’est 4M qui correspond au chemin menant au
sommet N en 4 minute.
On met en évidence cette sélection.
On inscrit le sommet retenu et la durée correspondante dans la première colonne : N(4).
On désactive les cases situées en dessous de notre sélection. On a trouvé le trajet le plus court menant à
N ; il dure 4 minutes.

À partir de N, on peut rejoindre L et S (on ne se préoccupe plus de M qui a été  désactivé ).
Si l’on rejoint L : On mettra 2 minutes pour aller de N à L et 4 minutes pour aller de M à N (ces 4
minutes sont inscrites dans la première colonne) soit au total 6 minutes. Ce trajet est plus rapide que le
précédent qui durait 7 minutes. On indique donc 6N dans la colonne L. Le N situé en indice signifie que
l’on vient du sommet N.
Si l’on rejoint S : On mettra 8 minutes pour aller de N à S et 4 minutes pour aller de M à N soit au total
12 minutes. Ce trajet est plus rapide que le précédent qui était ∞. On indique donc 12N dans la
colonne S.
Puis on complète la ligne en recopiant dans les cellules vides les valeurs de la ligne précédente.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 69/97


Notions de base
Définitions
Flot maximal

Étape 3 :
On sélectionne le plus petit résultat de la dernière ligne. Ici, c’est 6N qui correspond au chemin menant au
sommet L en 6 minute.
On met en évidence cette sélection.
On inscrit le sommet retenu et la durée correspondante dans la première colonne : L(6).
On désactive les cases situées en dessous de notre sélection. On a trouvé le trajet le plus court menant à
L ; il dure 6 minutes.

À partir de L, on peut rejoindre E et S (on ne se préoccupe plus de M ni de N qui ont été  désactivés ).
Si l’on rejoint E : On mettra 8 minutes pour aller de L à E et 6 minutes pour aller de M à L soit, au total,
14 minutes.
Ce trajet N’EST PAS plus rapide que le précédent qui durait 10 minutes. On se contente donc de
recopier le contenu précédent 10M dans la colonne E.
Si l’on rejoint S : On mettra 5 minutes pour aller de L à S et 6 minutes pour aller de M à L soit au total
11 minutes. Ce trajet est plus rapide que le précédent qui durait 12 minutes. On indique donc 11L dans la
colonne S.

Important !

On inscrit la durée d’un trajet dans le tableau uniquement si elle est inférieure à la durée figurant sur la ligne
précédente. Dans le cas contraire, on recopie la valeur précédente.

Puis on complète la ligne en recopiant dans les cellules vides les valeurs de la ligne précédente.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 70/97


Notions de base
Définitions
Flot maximal

Étape 4 :
On sélectionne le plus petit résultat de la dernière ligne. Ici, c’est 10M qui correspond au chemin menant au
sommet E en 10 minute.
On met en évidence cette sélection.
On inscrit le sommet retenu et la durée correspondante dans la première colonne : E (10).
On désactive les cases situées en dessous de notre sélection. On a trouvé le trajet le plus court menant à
E ; il dure 10 minutes.

À partir de E, on peut rejoindre S et T (on ne se préoccupe plus des autres sommets qui ont été  désactivés ).
Si l’on rejoint S : On mettra 10 minutes pour aller de E à S et 10 minutes pour aller de M à E ( c’est 10
minutes sont inscrites dans la première colonne) soit, au total, 20 minutes.
Ce trajet N’EST PAS plus rapide que le précédent qui durait 11 minutes. On se contente donc de
recopier le contenu précédent 11L dans la colonne S.
Si l’on rejoint T : On mettra 4 minutes pour aller de E à T et 10 minutes pour aller de M à E soit au total
14 minutes. Ce trajet est plus rapide que le précédent qui était ∞. On indique donc 14E dans la colonne
T.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 71/97


Notions de base
Définitions
Flot maximal

Étape 5 :
On sélectionne le plus petit résultat. C’est 11L qui correspond au chemin menant au sommet S en 11 minutes.
On a trouvé le trajet le plus court menant à S : il dure 11 minutes. Comme c’est la question posée dans l’énoncé, il
est inutile d’aller plus loin et le tableau est terminé !

Il reste toutefois à reconstituer le trajet qui correspond à cette durée de 11 minutes. En pratique, il est plus facile
de trouver le trajet en sens inverse en  remontant  dans le tableau de la façon suivante :
On part de notre point d’arrivée : S
On recherche la cellule marquée en rouge de la colonne S ; elle contient 11L . On note la lettre écrite en
indice : L.
On recherche la cellule marquée en rouge de la colonne L ; elle contient 6N . On note la lettre écrite en
indice : N.
On recherche la cellule marquée en rouge de la colonne N ; elle contient 4M . On note la lettre écrite en
indice : M.
On est arrivé à notre point de départ M après être passé par N et L et S (liste obtenue en listant les sommets en
ordre inverse).
Le trajet optimal est donc M - N - L - S.

Enfin, on peut vérifier sur le graphe que ce trajet est correct et dure 11 minutes !

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 72/97


Notions de base
Définitions
Flot maximal

Algorithme de Dijkstra

Exemple 1 :
Appliquer l’algorithme de Dijkstra sur ce graphe en prenant E
comme sommet de départ.
E A B C D S
Départ 0E ∞ ∞ ∞ ∞ ∞

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 73/97


Notions de base
Définitions
Flot maximal

Algorithme de Dijkstra

Exemple 2 :
Appliquer l’algorithme de Dijkstra sur ce graphe pour trouver le PCCH allant de E vers
A.

E A B C D
Départ 0E ∞ ∞ ∞ ∞

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 74/97


Notions de base
Définitions
Flot maximal

Algorithme de Dijkstra

Exercice :
Appliquer l’algorithme de Dijkstra aux graphes suivant pour
calculer les chemins de poids minimum depuis le sommet A.
Combien d’itérations sont réalisés ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 75/97


Notions de base
Définitions
Flot maximal

Algorithme de Dijkstra
Exercice :
On considère un réseau de télécommunication, composé
d’émetteurs/récepteurs pouvant s’envoyer des messages, avec une
certaine fiabilité de communication, c’est à dire une certaine probabilité
pour que la communication ne soit pas interrompue. On modélise ce
problème à l’aide du graphe orienté et valué suivant, où la valuation d’un
arc est une valeur réelle comprise entre 0 et 1 et indiquant la probabilité
pour que la communication se passe sans problème.
Quel est le chemin le plus fiable pour envoyer un message de a vers i ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 76/97


Notions de base
Définitions
Flot maximal

Algorithme de Dijkstra
L’algorithme de Dijkstra ne marche pas toujours quand le graphe contient des arcs
dont les coûts (longueurs) sont négatifs. Considérons par exemple le graphe suivant :

Quel est le pcch pour aller de a à f en utilisant l’algorithme de Dijkstra ?


Pour aller de a à f , l’algorithme de Dijkstra va trouver le chemin < a, c, e, f >, de
longueur 3, alors que le chemin < a, b, d, e, f > est de poids 2.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 77/97


Notions de base
Définitions
Flot maximal

Algorithme de Bellman-Ford
Une autre méthode qui est largement utilisée pour trouver le plus court chemin et
surtout quand le graphe possède des poids négatifs.

Algorithme :
1 Les sommets x0 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(x0 ) = 0
2 Examiner les nœuds x1 adjacents aux nœuds x0 . Pour chacun, la fonction m se
calcule en ajoutant la distance à partir du nœud source par :

m(x1 ) = d(x1 ; x0 ) + m(x0 ) = d(x1 ; x0 ).

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 xi+1 a des liaisons avec plusieurs
précédents, la valeur de m(xi+1 ) se calcule alors en retenant le nœud xi le plus
proche, en d’autres termes :

m(xi+1 ) = minxi (d(xi+1 ; xi ) + m(xi )),

où xi sont tous les nœuds précédent de xi+1


4 Répéter l’étape 3, niveau après niveau jusqu’à ce que le nœud de destination
soit atteint.
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 78/97
Notions de base
Définitions
Flot maximal

Exemple d’illustation

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 79/97


Notions de base
Définitions
Flot maximal

Exercice :
Trouver le plus cout chemin en utilisant l’algorithme de Bellman-Ford

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 80/97


Notions de base
Réseau de transport
Flot maximal

Flot maximal

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 81/97


Notions de base
Réseau de transport
Flot maximal

Exemple d’introduction : Problème de canalisation


Deux châteaux d’eau alimentent 3 villes à travers un réseau de canalisations au sein duquel se trouvent également
des stations de pompage.
Les châteaux d’eau ont une capacité limitée qui s’élève pour chacun d’eux à 100 000 m3 . Les villes ont exprimé une
demande qui est au minimum de 50 000 pour la ville 1, 40 000 pour la 2 et 80 000 pour la ville 3 en m3 .
Les canalisations entre les châteaux d’eau et les villes ont des débits limités. Par exemple, pour la canalisation
reliant le château 1 à la ville 1, le débit maximum est de 30 alors que celui de la canalisation reliant la station de
pompage 1 à la ville 2 est de 50 en milliers de m3 . Ces valeurs figurent sur le graphique entre parenthèses le long
des canalisations.

Un premier problème est de déterminer s’il est possible de satisfaire à travers ce réseau la demande des 3
villes et comment ?
Pour résoudre ce problème il faut dans un premier temps le modéliser.
Pour cela, nous introduisons un nouveau problème standard qui est celui du flot maximal sur un réseau

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 82/97


Notions de base
Réseau de transport
Flot maximal

Exemple d’introduction : Problème de transport


On veut amener le maximum de passagers de Strasbourg à Pau
en train, sachant qu’il reste des places seulement dans les trains
suivants (les connections sont assurées !) :
Trajet Nb places
Strasbourg → Amiens 3
Strasbourg → Besançon 8
Amiens → Cahors 4
Amiens → Dijon 2
Besançon → Cahors 6
Besançon → Dijon 3
Cahors → Pau 4
Dijon → Pau 9

Comment modéliser ce problème ?


Quelle est la meilleure solution ?
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 83/97
Notions de base
Réseau de transport
Flot maximal

Réseau de transport
Définition
Un Réseau de transport est un quadruple (G, c, S, T ) tel que
G = (V , A) est un graphe orienté,
c : A → R+ est une fonction qui associe à chaque arc sa capacité,
S ∈ V est la source,
T ∈ V est le puits.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 84/97


Notions de base
Réseau de transport
Flot maximal

Problème de flot maximal

Le problème de flots dans les graphes concerne la circulation de matière sur les arcs.
circulation d’information à travers les réseaux de communication,
circulation du courant dans les réseaux électriques,
circulation de marchandises entre différents points, etc.

Comment transférer une quantité maximale de ”matière” de S à T sans dépasser la


capacité de chaque arc ?
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 85/97
Notions de base
Réseau de transport
Flot maximal

Contrainte de capacité et loi de conservation

Un flot d’un réseau de transport (G, c, s, t) est une fonction f : V 2 → R telle que
1 Contrainte de capacité :

f (u, v ) ≤ c(u, v ), ∀(u, v ) ∈ V 2

2 Conservation du flot :
X X
f (v , u) = f (u, v ), ∀u ∈ V − {s, t}.
v ∈Pred(u) v ∈Succ(u)

La valeur d’un flot f , notée |f |, est égale à la somme des flots partant de la source, et
du fait de la propriété de conservation des flots, est aussi égale à la somme des flots
arrivant au puits : X X
|f | = f (s, u) = f (u, t)
u∈Succ(s) u∈Pred(t)

Un flot est dit réalisable (admissible ou compatible) si et seulement si


il respecte les contraintes de capacité sur chaque arc,
il respecte la loi de conservation en chaque sommet.
ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 86/97
Notions de base
Réseau de transport
Flot maximal

Capacité résiduelle
La capacité résiduelle d’un arc (u, v ) est rf (u, v ) = c(u, v ) − f (u, v ).
Un arc (u, v ) est dit saturé si f (u, v ) = c(u, v ) (i.e. rf (u, v ) = 0).
Un flot est dit complet si et seulement si tout chemin de S à T comporte au
moins un arc saturé.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 87/97


Notions de base
Réseau de transport
Flot maximal

Chaine améliorante
Une chaı̂ne µ est dite améliorante si pour chaque arrête (u, v ) ∈ µ
• f (u, v ) < c(u, v ) si (u, v ) est arc dans ”le bon sens” ((u, v ) ∈ µ+ )
• f (u, v ) > 0 si (u, v ) est arc dans ”le mauvais sens” ((u, v ) ∈ µ− )

Augmentation de la valeur de flot de α


α = min{ min (rf (u, v )), min (f (u, v ))
(u,v )∈µ+ (u,v )∈µ−
• Dans µ+: on augmente les flux de α
• Dans µ− : on diminue les flux de α
Graphe d’écart

Question : La chaı̂ne (S,c,b,a,e,T) est t-il améliorante ?


ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 88/97
Notions de base
Réseau de transport
Flot maximal

Problème de flot maximal

La valeur de flot au départ est |f | = 7

Chaine améliorante 1 : (s,c,b,a,e,t)


α = min(2 − 1, 6 − 0, 4, 3 − 0, 4 − 1) = 1
La valeur de flot |f | = 8

Chaine améliorante 2 : (s,d,c,b,a,e,t)


α = min(7 − 2, 3 − 0, 6 − 1, 3, 3 − 1, 4 − 2) = 2
La valeur de flot |f | = 10

Existe t-il une autre chaine améliorante ?

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 89/97


Notions de base
Réseau de transport
Flot maximal

St-coupe
Une St-coupe est une partition (X , Y ) des sommets de G telle que s ∈ X et t ∈ Y .
La capacité c(X , Y ) d’une st-coupe (X, Y) est définie comme la somme de capacités des arcs
(u, v ) tels que u ∈ X et v ∈ Y , et on a |f | ≤ c(X , Y ).

Théorème (Ford et Fulkerson)


max |f | = min c(X , Y )
f (X ,Y )
Autrement dit, un flot f est maximal si et seulement si il existe une st-coupe (X,Y)
telle que |f | = c(X , Y ).

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 90/97


Notions de base
Réseau de transport
Flot maximal

Algorithme de Ford Fulkerson

L’algorithme de Ford-Fulkerson procède selon une approche ”gloutonne”,


en augmentant progressivement un flot :
1 Le flot est initialisé à 0, c’est-à-dire que f (u, v ) = 0 pour tout
couple de sommets (u, v ) ∈ V 2 .
2 Tant qu’il existe une chaı̂ne améliorante µ faire
1 Calculer α = min{ min (rf (u, v )), min − (f (u, v ))}
+
(u,v )∈µ (u,v )∈µ
2 Augmenter la valeur de flux de α pour les arcs (u, v ) ∈ µ+
3 Diminuer la valeur de flux de α pour les arcs (u, v ) ∈ µ−

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 91/97


Notions de base
Réseau de transport
Flot maximal

Application

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 92/97


Notions de base
Réseau de transport
Flot maximal

Modélisation du problème de distribution d’eau par un problème de flot maximal Aux


châteaux d’eau, aux stations de pompage et aux villes on associe des sommets et aux
canalisations des arcs. Les valeurs numériques le long des arcs traduisent une capacité
inférieure nulle et une capacité supérieure égale au débit maximum

Pour modéliser les capacités des châteaux d’eau, on introduit un sommet supplémentaire s, qui sera la source du
réseau, et deux arcs (s, C1) et (s, C2) avec une capacité supérieure égale à 100. La conservation des flux au
sommet C1 permet de traduire qu’il ne peut pas partir de C1 une quantité supérieure à 100. Il en est de même pour
C2. Si on veut mesurer ce qui arrive en chaque ville, on introduit un sommet supplémentaire p, qui sera le puits, et
des arcs de chacune des villes vers p. Pour imposer que les demandes des villes soient satisfaites, on munit ces arcs
d’une capacité inférieure égale à la demande. Ce qui part de chaque ville sera au moins égal à la demande et,
d’après la loi de conservation des flux, ce qui arrive en chaque ville sera aussi au moins égal à la demande. A l’arc
de retour près, on a construit un réseau sur lequel il s’agit de déterminer un flot compatible avec les capacités et de
valeur maximale

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 93/97


Notions de base
Réseau de transport
Flot maximal

Impact du choix des chaı̂nes améliorantes dans l’algorithme


de Ford Fulkerson

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 94/97


Notions de base
Réseau de transport
Flot maximal

Si l’on ne prend pas garde au choix de la chaı̂ne améliorante, on peut


avoir un nombre d’itérations égal à la valeur du flot maximal.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 95/97


Notions de base
Réseau de transport
Flot maximal

L’algorithme de Ford Fulkerson construit toujours un flot de valeur max

MAIS

Le choix des chaı̂nes améliorantes a un impact sur le nombre des itéraions

La complexité dépend de la taille du réseau ET des capacités.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 96/97


Notions de base
Réseau de transport
Flot maximal

Comment avoir le résultat et


une « bonne » complexité ?
Utiliser l’algorithme de Edmonds-Karp ou de Y. Dinitz.

Variante de l’algorithme de Ford Fulkerson.

Idéée générale :

Choisir les plus courtes chaines améliorantes.

Une complexité qui va être une fonction de la taille du réseau.

ENSAM–Meknès M. El Ossmani Optimisation des graphes 2023–2024 97/97

Vous aimerez peut-être aussi