Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex,...

251
Graphes, Algorithmes et mod´ elisation Thomas Schiex, Simon de Givry INRA 1 24 octobre 2013 1. Remerciements ` a J-P. M´ etivier pour ses transparents anim´ es. Certaines figures proviennent de Cormen, Leiserson et Rivest c MIT, 2001 Thomas Schiex, Simon de Givry Graphes, Algorithmes

Transcript of Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex,...

Page 1: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes, Algorithmes

et modelisation

Thomas Schiex, Simon de Givry

INRA 1

24 octobre 2013

1. Remerciements a J-P. Metivier pour ses transparents animes. Certainesfigures proviennent de Cormen, Leiserson et Rivest c©MIT, 2001

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 2: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes

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

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 3: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes

Les elements importants. . .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 4: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes

A

B

C

D

a

b

c

d

e

f

g

B

A

C

D

a

b c

d

e

f

g

Les dernieres etapes. . .

Un graphe admet un circuit eulerien ssi tout sommet est connectea un nombre pair de sommets.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 5: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Carrefour (Princeton)

A

B

C

D

E

Determiner les differentes phases des feux de circulation.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 6: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes. . .

1 lister les flots possibles (sommets).

2 lister les incompatibilites entre flots (aretes).

3 Probleme de determination d’un nombre minimum de“phases : coloriage (NP-dur).

AB AC AD

BA BC BD

DA DB DC

EA EB EC ED

Le graphe d’incompatibilite

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 7: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes non orientes

Definition (Graphe non oriente)

un graphe non oriente G = (S ,A) est defini par :

un ensemble S fini de sommets.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 8: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes non orientes

Definition (Graphe non oriente)

un graphe non oriente G = (S ,A) est defini par :

un ensemble S fini de sommets.

un ensemble A d’aretes, chaque arete connectant deuxsommets (pas necessairement differents).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 9: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes non orientes

Definition (Graphe non oriente)

un graphe non oriente G = (S ,A) est defini par :

un ensemble S fini de sommets.

un ensemble A d’aretes, chaque arete connectant deuxsommets (pas necessairement differents).

Une arete a = {x , y} est aussi notee x – y . On dit que x et ysont adjacents.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 10: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Un graphe non oriente

BA

C D

E

Un graphe non oriente, G2

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 11: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Un graphe non oriente

BA

C D

E

Un graphe non oriente, G2

N.B. en anglais :

graph ≡ graphevertex/vertices ≡ sommet/sommetsedge ≡ arete

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 12: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes orientes

Definition (Graphe oriente)

un graphe oriente G = (S ,A) est defini par :

un ensemble S fini de sommets (vertices, un sommet : avertex)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 13: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes orientes

Definition (Graphe oriente)

un graphe oriente G = (S ,A) est defini par :

un ensemble S fini de sommets (vertices, un sommet : avertex)

un ensemble A d’arcs, chaque arc ayant une origine et un butdans S.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 14: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes orientes

Definition (Graphe oriente)

un graphe oriente G = (S ,A) est defini par :

un ensemble S fini de sommets (vertices, un sommet : avertex)

un ensemble A d’arcs, chaque arc ayant une origine et un butdans S.

Un arc a = (s, t) : t est un successeur de s, s un predecesseurde t.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 15: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes orientes

Definition (Graphe oriente)

un graphe oriente G = (S ,A) est defini par :

un ensemble S fini de sommets (vertices, un sommet : avertex)

un ensemble A d’arcs, chaque arc ayant une origine et un butdans S.

Un arc a = (s, t) : t est un successeur de s, s un predecesseurde t.

Un arc s → s est une boucle. On appelle |S | l’ordre du graphe.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 16: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Un graphe oriente

BA

C D

E

F

GUn graphe oriente, G1

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 17: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Un graphe oriente

BA

C D

E

F

GUn graphe oriente, G1

N.B. en anglais :

directed graph/digraph ≡ graphe oriente

(directed) edge/arc ≡ arc

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 18: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes simples, degres

Definition (Graphe simple)

Un graphe est dit simple s’il existe au plus un arc (arete)d’origine et de buts donnes et s’il est sans boucle.

Definition (degres)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 19: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes simples, degres

Definition (Graphe simple)

Un graphe est dit simple s’il existe au plus un arc (arete)d’origine et de buts donnes et s’il est sans boucle.

A definit dans ce cas une relation binaire sur S (une partie deS × S).

Definition (degres)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 20: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes simples, degres

Definition (Graphe simple)

Un graphe est dit simple s’il existe au plus un arc (arete)d’origine et de buts donnes et s’il est sans boucle.

A definit dans ce cas une relation binaire sur S (une partie deS × S).

Definition (degres)

Dans un graphe oriente, le degre sortant (resp. entrant) d’unsommet s est le nombre de sommets qui sont successeurs(resp. predecesseurs) de s. Le degre est la somme des degresrentrants et sortants.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 21: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes simples, degres

Definition (Graphe simple)

Un graphe est dit simple s’il existe au plus un arc (arete)d’origine et de buts donnes et s’il est sans boucle.

A definit dans ce cas une relation binaire sur S (une partie deS × S).

Definition (degres)

Dans un graphe oriente, le degre sortant (resp. entrant) d’unsommet s est le nombre de sommets qui sont successeurs(resp. predecesseurs) de s. Le degre est la somme des degresrentrants et sortants.

Dans un graphe non oriente, le degre de s est le nombre desommets adjacents a s

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 22: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Sous-graphe

Definition (Sous-graphe)

Soit un graphe G = (S ,A), et S ′ ⊂ S, le sous-graphe induit par S ′

est le graphe (S ′,A′) ou A′ = {(u, v) ∈ A/u ∈ S ′ ∧ v ∈ S ′}.

BA

C DLe sous-graphe de G1 induit par {A,B ,C ,D}

Isomorphisme de sous-graphe : NP-difficile.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 23: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe partiel

Definition (Graphe partiel)

Soit un graphe G = (S ,A), et A′ ⊂ A, le graphe (S ,A′) est ungraphe partiel de G .

BA

C D

E

F

G

Un graphe partiel de G1

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 24: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe complet, clique

Definition (Graphe complet)

Un graphe est complet si pour toute paire de sommets (u, v)il existe au moins un arc (arete) entre u et v .

Le graphe simple complet non oriente K6

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 25: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe complet, clique

Definition (Graphe complet)

Un graphe est complet si pour toute paire de sommets (u, v)il existe au moins un arc (arete) entre u et v .

Si le sous-graphe induit par S ′ ⊂ S est complet, S ′ forme uneclique. Un graphe simple complet d’ordre n est note Kn.

Le graphe simple complet non oriente K6

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 26: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Chaınes et cycles

Definition (Chaınes,cycles)

Soit un graphe non oriente G = (S ,A), une chaıne de longueur kentre un sommet u et un sommet u′ appele but est une sequence〈v0, . . . , vk〉 telle que v0 = u, vk = u′ et

∀i , 0 ≤ i ≤ k − 1, (vi , vi+1) ∈ A

Simple : ne passe pas deux fois par la meme arete.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 27: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Chaınes et cycles

Definition (Chaınes,cycles)

Soit un graphe non oriente G = (S ,A), une chaıne de longueur kentre un sommet u et un sommet u′ appele but est une sequence〈v0, . . . , vk〉 telle que v0 = u, vk = u′ et

∀i , 0 ≤ i ≤ k − 1, (vi , vi+1) ∈ A

Simple : ne passe pas deux fois par la meme arete.

Elementaire : ne passe pas deux fois par le meme sommet.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 28: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Chaınes et cycles

Definition (Chaınes,cycles)

Soit un graphe non oriente G = (S ,A), une chaıne de longueur kentre un sommet u et un sommet u′ appele but est une sequence〈v0, . . . , vk〉 telle que v0 = u, vk = u′ et

∀i , 0 ≤ i ≤ k − 1, (vi , vi+1) ∈ A

Simple : ne passe pas deux fois par la meme arete.

Elementaire : ne passe pas deux fois par le meme sommet.

Une chaıne dont les deux extremites sont confondues estappele un cycle.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 29: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Chemin, circuit

Definition (Chemins,circuits)

Soit un graphe oriente G = (S ,A), un chemin de longueur k d’unsommet u appele extremite initiale vers un sommet u′ appeleextremite finale/terminale est une sequence 〈v0, . . . , vk〉 telle quev0 = u, vk = u′ et ∀i , 0 ≤ i ≤ k − 1, vi → vi+1 ∈ A.

Simple : ne passe pas deux fois par le meme arc.

Circuit : chemin qui boucle. Details sur elementaire.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 30: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Chemin, circuit

Definition (Chemins,circuits)

Soit un graphe oriente G = (S ,A), un chemin de longueur k d’unsommet u appele extremite initiale vers un sommet u′ appeleextremite finale/terminale est une sequence 〈v0, . . . , vk〉 telle quev0 = u, vk = u′ et ∀i , 0 ≤ i ≤ k − 1, vi → vi+1 ∈ A.

Simple : ne passe pas deux fois par le meme arc.

Elementaire : ne passe pas deux fois par le meme sommet.

Circuit : chemin qui boucle. Details sur elementaire.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 31: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe connexe

Definition (Connexite)

Un graphe (non oriente) G = (S ,A) est connexe s’il existeune chaıne entre chaque paire de sommets s, t ∈ S.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 32: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe connexe

Definition (Connexite)

Un graphe (non oriente) G = (S ,A) est connexe s’il existeune chaıne entre chaque paire de sommets s, t ∈ S.

La composante connexe d’un sommet s ∈ S est le sous grapheinduit par tous les sommets relies a s par une chaıne au moins.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 33: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe connexe

Definition (Connexite)

Un graphe (non oriente) G = (S ,A) est connexe s’il existeune chaıne entre chaque paire de sommets s, t ∈ S.

La composante connexe d’un sommet s ∈ S est le sous grapheinduit par tous les sommets relies a s par une chaıne au moins.

Classe d’equivalence de la relation d’existence d’une chaıne.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 34: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Arbre et Forets

Definition (Arbre)

Un graphe non oriente et sans cycle simple (acyclique) est aussiappele une foret.

Chaque composante connexe est appele un arbre.

B

C D

E

A F

G

H

I

J

K

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 35: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Arbres. . .

Soit G = (S ,A) un graphe de n ≥ 2 sommets.

Il est connexe et a n − 1 aretes.

Il est connexe et sans cycle simple.

Il sans cycle simple et a n − 1 aretes.

Il est sans cycle simple et l’ajout d’une arete cree un cyclesimple.

Il existe une et une seule chaıne simple entre chaque paire desommets.

Il est connexe et la perte d’une arete quelconque le rend nonconnexe

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 36: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe fortement connexe

Definition

Un graphe oriente G = (S ,A) est fortement connexe si pourtous sommets s, t ∈ S, il existe un chemin allant de s a t.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 37: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe fortement connexe

Definition

Un graphe oriente G = (S ,A) est fortement connexe si pourtous sommets s, t ∈ S, il existe un chemin allant de s a t.

La composante fortement connexe d’un sommet s ∈ S est lesous-graphe induit par l’ensemble des sommets t ∈ S tels qu’ilexiste une chemin de s a t et de t a s.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 38: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe fortement connexe

Definition

Un graphe oriente G = (S ,A) est fortement connexe si pourtous sommets s, t ∈ S, il existe un chemin allant de s a t.

La composante fortement connexe d’un sommet s ∈ S est lesous-graphe induit par l’ensemble des sommets t ∈ S tels qu’ilexiste une chemin de s a t et de t a s.

Classe d’equivalence de la relation d’accessibilite mutuelle.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 39: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Composantes fortement connexes

BA

C D

E

F

G

Les composantes fortement connexes de G1

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 40: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Des racines et des arbres. . .

Definition (Arborescence)

Un arbre enracine ou arborescence est un graphe orientepossedant un sommet privilegie appele racine et tel qu’il existeun chemin et un seul de la racine a tout autre sommet.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 41: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Des racines et des arbres. . .

Definition (Arborescence)

Un arbre enracine ou arborescence est un graphe orientepossedant un sommet privilegie appele racine et tel qu’il existeun chemin et un seul de la racine a tout autre sommet.

A partir d’un arbre : choisir une racine. Vocabulaire : nœuds,fils, descendants, ascendants. . .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 42: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Des racines et des arbres. . .

Definition (Arborescence)

Un arbre enracine ou arborescence est un graphe orientepossedant un sommet privilegie appele racine et tel qu’il existeun chemin et un seul de la racine a tout autre sommet.

A partir d’un arbre : choisir une racine. Vocabulaire : nœuds,fils, descendants, ascendants. . .

Definition (Arborescence ordonnee)

Une arborescence est ordonnee si les ensemble des fils de chaquesommet sont ordonnes.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 43: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Une arborescence

B

C D

E

A

Arborescence obtenue a partir de la composante connexe{A,B ,C ,D,E} de la foret precedente, en isolant A comme racine

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 44: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

En machine : matrice d’adjacence

Definition (Matrice d’adjacence)

La matrice d’adjacence A d’un graphe G = (S ,A) d’ordre n estune matrice n × n a coefficients dans {0, 1} ou chaque ligne etchaque colonne correspond a un sommet de G et ou :

Aij = 1⇔ (i , j) ∈ A

Dans le cas non oriente, la matrice d’adjacence est symetrique.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 45: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes. . .

0 1 1 0 00 0 0 0 10 0 0 1 00 1 0 0 00 0 0 1 0

La matrice d’adjacence du sous-graphe de G1 induit par{A,B ,C ,D,E}

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 46: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphes. . .

0 1 1 0 00 0 0 0 10 0 0 1 00 1 0 0 00 0 0 1 0

La matrice d’adjacence du sous-graphe de G1 induit par{A,B ,C ,D,E}

Acces en temps constant a l’existence d’arc/arete entre 2 sommetsmais parcours des aretes en O(n2).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 47: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Une alternative plus usuelle

Definition (Liste d’adjacence)

un tableau Adj de |S | listes, une pour chaque sommet.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 48: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Une alternative plus usuelle

Definition (Liste d’adjacence)

un tableau Adj de |S | listes, une pour chaque sommet.

pour chaque sommet u, la liste Adj[u] contient les (ou desreferences aux) sommets v adjacents a u (tels qu’il existe unarc/arete (u, v) ∈ A).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 49: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Une alternative plus usuelle

Definition (Liste d’adjacence)

un tableau Adj de |S | listes, une pour chaque sommet.

pour chaque sommet u, la liste Adj[u] contient les (ou desreferences aux) sommets v adjacents a u (tels qu’il existe unarc/arete (u, v) ∈ A).

A

B

C

D

E

B C

A E

D

C B E

B D

D

A

Listes d’adjacence de G2

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 50: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemples

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 51: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Matrices et graphes

Produit de deux matrices n × n naıf est en O(n3). Pasd’amelioration importante (eg. algorithme de Sollen enO(nlog2(7))).

Pour manipuler les matrices, on utilise l’algebre de Boole(multiplication = ∧, addition = ∨).

Definition (Fermeture transitive)

La fermeture transitive d’une graphe (simple) G = (S ,A) est legraphe G ′ = (S ,A′) tel que (i , j) ∈ A′ ⇔ il existe unchemin/chaıne de i a j .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 52: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Matrices et Chemins

M matrice d’adjacence de G . Mp est telle que Mpij = 1⇔ ∃ un

chemin de p arcs allant de i a j .

Entrees : M, matrice, p puissance;si p = 1 alors

retourner M;sinon

J ← M⌊ p2⌋;

K ← J × J;si p est pair alors

retourner K ;sinon

retourner K ×M;

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 53: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme de Warshall

S’il existe un chemin entre deux sommets de G , il existe un cheminelementaire en ces sommets, de longueur < n.

La matrice de la fermeture transitive du graphe est la somme (leou logique) M +M2 + · · ·+M |S|−1.

Entree : M, matrice d’adjacence;pour i allant de 1 a n faire

pour j allant de 1 a n fairesi Mji = 1 alors

pour k allant de 1 a n fairesi Mik = 1 alors Mjk ← 1

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 54: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Recurrence, sur la boucle exterieure

A la i eme iteration, pour toute paire de sommets j , k , on aMjk = 1 ssi il existe un chemin de j a k qui utilise uniquement dessommets (en sus) de {1, . . . , i}.

1 Vrai au debut de l’algorithme car M est la matrice d’incidence.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 55: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Recurrence, sur la boucle exterieure

A la i eme iteration, pour toute paire de sommets j , k , on aMjk = 1 ssi il existe un chemin de j a k qui utilise uniquement dessommets (en sus) de {1, . . . , i}.

1 Vrai au debut de l’algorithme car M est la matrice d’incidence.

2 a l’iteration i , il existe un chemin de j a k qui passe par dessommets de {1, . . . , i} ssi il existe un chemin elementaire de ja k qui passe par des sommets de {1, . . . , i}.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 56: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Recurrence, sur la boucle exterieure

A la i eme iteration, pour toute paire de sommets j , k , on aMjk = 1 ssi il existe un chemin de j a k qui utilise uniquement dessommets (en sus) de {1, . . . , i}.

1 Vrai au debut de l’algorithme car M est la matrice d’incidence.

2 a l’iteration i , il existe un chemin de j a k qui passe par dessommets de {1, . . . , i} ssi il existe un chemin elementaire de ja k qui passe par des sommets de {1, . . . , i}.

3 il se decompose en 2 parties de j a i et de i a k .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 57: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Recurrence, sur la boucle exterieure

A la i eme iteration, pour toute paire de sommets j , k , on aMjk = 1 ssi il existe un chemin de j a k qui utilise uniquement dessommets (en sus) de {1, . . . , i}.

1 Vrai au debut de l’algorithme car M est la matrice d’incidence.

2 a l’iteration i , il existe un chemin de j a k qui passe par dessommets de {1, . . . , i} ssi il existe un chemin elementaire de ja k qui passe par des sommets de {1, . . . , i}.

3 il se decompose en 2 parties de j a i et de i a k .

4 chaque partie utilise des sommets de {1, . . . , i − 1}. Onapplique l’hypothese de recurrence.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 58: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Recurrence, sur la boucle exterieure

A la i eme iteration, pour toute paire de sommets j , k , on aMjk = 1 ssi il existe un chemin de j a k qui utilise uniquement dessommets (en sus) de {1, . . . , i}.

1 Vrai au debut de l’algorithme car M est la matrice d’incidence.

2 a l’iteration i , il existe un chemin de j a k qui passe par dessommets de {1, . . . , i} ssi il existe un chemin elementaire de ja k qui passe par des sommets de {1, . . . , i}.

3 il se decompose en 2 parties de j a i et de i a k .

4 chaque partie utilise des sommets de {1, . . . , i − 1}. Onapplique l’hypothese de recurrence.

5 l’algorithme fixe Mjk a 1 ssi ces deux conditions sont verifiees.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 59: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

La version graphe

Entree : G , un graphe;pour chaque sommet s de G faire

pour chaque arc s1 → s de G fairepour chaque arc s → s2 de G faire

Ajouter a G l’arc s1 → s2;

En utilisant une autre algebre que (∧,∨), l’algorithme peutcalculer d’autres proprietes. Avec (min,+), il calcule la distanceminimum entre toute paire de sommets (plus courts chemins).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 60: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Parcourir les graphes : arborescences

Visiter chaque sommet, chaque arc/arete UNE fois.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 61: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Parcourir les graphes : arborescences

Visiter chaque sommet, chaque arc/arete UNE fois.

Profondeur d’abord : pour visiter un nœud que l’ondecouvre, il faut d’abord visiter tous ses fils. Il est alors ferme.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 62: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Parcourir les graphes : arborescences

Visiter chaque sommet, chaque arc/arete UNE fois.

Profondeur d’abord : pour visiter un nœud que l’ondecouvre, il faut d’abord visiter tous ses fils. Il est alors ferme.

Structures : d [u], f [u] date de decouverte/fermeture.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 63: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Parcourir les graphes : arborescences

Visiter chaque sommet, chaque arc/arete UNE fois.

Profondeur d’abord : pour visiter un nœud que l’ondecouvre, il faut d’abord visiter tous ses fils. Il est alors ferme.

Structures : d [u], f [u] date de decouverte/fermeture.

u racine, t variable globale initialisee a 0;Procedure DFS-Tree(u)

d [u]← (t ← (t + 1));pour chaque sommet v, fils de u faire

DFS-Tree(v);

f [u]← (t ← (t + 1));

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 64: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Applique aux graphes

Arborescence DFS : a la decouverte d’un sommet s, les fils de cesommet dans l’arborescence sont les sommets accessibles depuis set non encore visites.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 65: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Applique aux graphes

Arborescence DFS : a la decouverte d’un sommet s, les fils de cesommet dans l’arborescence sont les sommets accessibles depuis set non encore visites.

Appel sur le graphe G = (S ,A) (oriente ou non);Procedure DFS(G)

pour chaque sommet u ∈ S fairecouleur [u]← b;π[u]← nil;

t ← 0;pour chaque sommet u ∈ S faire

si couleur [u] = b alors DFS-Visit(u)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 66: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Applique aux graphes

Arborescence DFS : a la decouverte d’un sommet s, les fils de cesommet dans l’arborescence sont les sommets accessibles depuis set non encore visites.

Appel sur le graphe G = (S ,A) (oriente ou non);Procedure DFS(G)

pour chaque sommet u ∈ S fairecouleur [u]← b;π[u]← nil;

t ← 0;pour chaque sommet u ∈ S faire

si couleur [u] = b alors DFS-Visit(u)

N.B. en anglais :

DFS ≡ Depth First Search

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 67: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme de parcours

Procedure DFS-Visit(u)couleur [u]← g ;d [u]← (t ← (t + 1));pour chaque sommet v ∈ Adj[u] faire

si couleur [v ] = b alorsπ[v ]← u;DFS-Visit(v);

couleur [u]← n;f [u]← (t ← (t + 1));

Initialisation θ(|S |),DFS-Visit une fois par sommet : globalementen θ(|S |+ |A|)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 68: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

u v w

x yz

Parcourir ce graphe en profondeur d’abord

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 69: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

Exploration en profondeur d’abordThomas Schiex, Simon de Givry Graphes, Algorithmes

Page 70: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Les arcs

Et les couleurs du sommet v a sa premiere rencontre.

arcs d’arbre (blanc) : ceux qui sont suivis par DFS. Un arcu → v est un arc d’arbre si v a ete decouvert a partir de u.

arcs arrieres (gris) : ce sont les arcs qui connectent unsommet u a un ancetre dans l’arborescence de profondeurd’abord.

arcs avants (noir) : ce sont les arcs qui connecte un sommetu a un descendant de u mais qui n’ont pas ete suivies parDFS.

arcs traversiers (noir) : tous les autres arcs.

Detection de circuits : existence d’arcs arriere (gris) dans unparcours DFS.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 71: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple : le tri topologique

Un tri topologique d’un Graphe Oriente Sans Circuit (GOSC) Gconsiste a determiner un ordre des sommets tel que si un arc u → vexiste dans G , alors v est place apres u dans l’ordre des sommets.

Procedure Tri-Topologique(G)Appeler DFS(G ) pour calculer les f [u];

A chaque fois qu’un sommet est ferme, l’inserer en tete d’uneliste L;retourner L;

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 72: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple : le tri topologique

Un tri topologique d’un Graphe Oriente Sans Circuit (GOSC) Gconsiste a determiner un ordre des sommets tel que si un arc u → vexiste dans G , alors v est place apres u dans l’ordre des sommets.

Procedure Tri-Topologique(G)Appeler DFS(G ) pour calculer les f [u];

A chaque fois qu’un sommet est ferme, l’inserer en tete d’uneliste L;retourner L;

N.B. en anglais :

Graphe Oriente Sans Circuit (GOSC) ≡ Directed Acyclic Graph (DAG).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 73: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple : habillage du Pr. Cosinus

slip

ceinture

pantalon

chemise

veste

chaussures

montre

chaussettes

cravate

11/16

12/15

6/7

1/8

2/5

3/4

17/18

13/14

9/10

Tri topologique du Pr. Cosinus avant l’habillage

chaussettes slip pantalon montrechaussures chemise ceinture vestecravate

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 74: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Largeur d’abord

On decouvre les sommets par distance croissante avec la “racine”.Utilise une file (FIFO)

Procedure BFS(G , s)pour chaque sommet u ∈ S − {s} faire

couleur [u]← b;d [u]← +∞;π[u]← nil;

couleur [s]← g ;d [s]← 0;π[s]← nil;Q ← {s};

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 75: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

La suite

tant que Q 6= ∅ faireu ← tete(Q);pour chaque sommet v ∈ Adj[u] faire

si couleur [v ] = b alorsπ[v ]← u;couleur [v ]← g ;d [v ]← d [u] + 1;Enfiler(Q, v);

Defiler(Q);couleur [u]← n;

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 76: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

L’algorithme est globalement en O(|S |+ |A|).

r s t u

v w x y

Un graphe a parcourir en largeur

Plus courts chemins depuis s identifies (une arete = 1).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 77: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 78: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Minimum Spanning Tree : MST

Definition (Graphe pondere)

Graphe pondere : pour tout arc ou arete (u, v), on note w(u, v)le poids qui lui est associe. Il s’agit en general d’un entier.

Probleme modelise : connecter plusieurs ≪ composants ≫ ensembleen utilisant le moins de longueur de fils possible.

Un sommet : un composantLe poids d’une arete : longueur de fil.

Definition (Arbre couvrant)

Etant donne un graphe G = (S ,A), un arbre couvrant de G est ungraphe partiel de G qui definit un arbre et qui inclut tous sessommets.

Connecter et minimum de fil : sans cycle simple, donc un arbre.Poids minimum.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 79: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Un algorithme glouton

Definition (Algorithme glouton)

Algorithme qui construit un objet en faisant a chaque etape lechoix qui rapporte le plus instantanement.

Definition

Soit un ensemble de sommets T ⊂ S quelconque. On appellecocycle de T , et on note ω(T ), l’ensemble des aretes de A dontune des extremites est dans T et l’autre dans S − T.

Pour tout T ⊂ S , soit e une arete de poids minimum de ω(T ).Alors e ∈ a un MST de G .

Glouton = correct (ici).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 80: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Pourquoi la gloutonnerie marche, ici

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 81: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

L’algorithme de Prim

Procedure MST-Prim(G ,w , r )Q ← ensemble des sommets du graphe;pour chaque u ∈ Q faire key [u]← +∞;key [r ]← 0 ; π[r ] = nil;tant que Q 6= ∅ faire

u ← Extrait-Minimum(Q);pour chaque v ∈ Adj [u] faire

si v ∈ Q et w(u, v) < key [v ] alorsπ[v ]← u;key [v ]← w(u, v);

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 82: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Implementation

File de priorite Q : permet de conserver une liste d’objets avec unepriorite key [u] et un acces aise a l’element le plus prioritaire.

Liste Tas

Construction O(n) O(n)Ajout O(1) O(log(n))key chg. O(1) O(log(n))Extrait-Minimum O(n) O(log n)

Avec un tas (heap) : en O(|S | log |S |+ |A| log |S |) = O(|A| log |S |).

Tas de Fibonacci : complexite amortie en O(1) pour la diminutiond’une key , donc Prim en O(|A|+ |S | log |S |).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 83: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

a

b c d

e

fgh

i14

9

10

7

4

2

1

6

2

78

11

8

4

Un graphe non oriente pondere

Maximum ≡ MinimumHeld et Karp / WSP

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 84: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 85: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Plus court chemins

Definition

Etant donne un graphe (oriente), avec une ponderation des arcs w ,on definit le poids d’un chemin c = 〈v0, . . . , vk〉 comme la sommedes poids des arcs qui le constituent.

δ(u, v) =

{

minc chemin de u a v{w(c)} si ∃ chemin de u a v+∞ sinon

Une source, une destination

Une source, toutes destinations

Toutes paires

(min,+) peut se remplacer par (∧,∨), (+, ∗) . . .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 86: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Circuits et couts negatifs

Definition (Circuit absorbant)

Un circuit de longueur negative : si un tel circuit existe la distanceminimum entre 2 sommets peut ne pas etre definie.

Poids positifs, graphe quelconque : Dijkstra

Poids quelconques, graphe sans circuit : Bellman-Kalaba

Poids quelconques mais sans circuit absorbant :Belmann-Ford-Moore.

Plus court 6≡ Plus long !

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 87: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Propriete de Bellman

≪ Tout sous-chemin d’un chemin optimal est aussi un cheminoptimal ≫

Pour connaıtre la longueur ℓ du plus court chemin de Toulouse aLille, il suffit par exemple de connaıtre la longueur d’un plus courtchemin ℓi de Toulouse aux villes i reliees directement a Lille et dechoisir d’aller vers la ville i∗ qui minimise la somme ℓi +w(i ,Lille).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 88: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Arborescence des PCC

Definition (Arborescence des PCC de racine s)

Un sous-graphe oriente G ′ = (S ′,A′), ou S ′ ⊆ S et A′ ⊆ A :

1 S ′ est l’ensemble des sommets accessibles a partir de s dansG ,

2 G ′ forme une arborescence de racine s,

3 pour tout v ∈ S ′, le chemin de s a v dans G ′ est un pluscourt chemin de s vers v dans G .

π[u] : predecesseur de u par lequel passer si l’on veut aller de s a u.

10

5

2 3

1

9

7

2

4 60

8

5

s

u v

x y7

9

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 89: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Les procedures de base

d [u] : estimation pessimiste du PCC de s a u.

Procedure Initialisation-PCC(G , s)pour chaque sommet v de G faire

d [v ]← +∞;π[v ]← nil;

d [s]← 0;

Amelioration eventuelle de l’estimation de la distance de s a v .;Procedure Relaxation(u, v ,w)

si d [v ] > d [u] + w(u, v) alorsd [v ]← d [u] + w(u, v);π[v ]← u;

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 90: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Quelques proprietes fondamentales

Propriete (Inegalite triangulaire)

Pour tout arc (u, v) ∈ A, on a δ(s, v) ≤ δ(s, u) + w(u, v).

Propriete (Propriete du majorant)

On a toujours d [v ] ≥ δ(s, v) pour tous les sommets v ∈ S, et unefois que d [v ] a atteint la valeur δ(s, v), elle ne change plus.

Propriete (Propriete aucun-chemin)

S’il n’y a pas de chemin de s a v , alors d [v ] = δ(s, v) = +∞.

Propriete (Propriete de convergence)

Si s u → v est un plus court chemin dans G pour un certainu, v ∈ S et si d [u] = δ(s, u) a un certain instant anterieur aurelachement de l’arc (u, v), alors d [v ] = δ(s, v) en permanenceapres le relachement.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 91: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Quelques proprietes fondamentales

Propriete (Propriete de relachement de chemin)

Si p = 〈v0, v1, . . . , vk〉 est un pcc de s = v0 a vk et si les arcs de psont relaches dans l’ordre (v0, v1), (v1, v2), . . . (vk−1, vk), alorsd [vk ] = δ(s, vk). Cette propriete est vraie independamment detoutes autres etapes de relachement susceptibles de se produire,meme si elles s’entremelent avec des relachements d’arcs de p.

Propriete (Propriete de sous-graphe predecesseur)

Une fois que d [v ] = δ(s, v) pour tout v ∈ S, le sous-graphepredecesseur est une arborescence de ppc de racine s.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 92: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Belmann-Ford-Moore

Procedure Bellman-Ford(G ,w , s)Initialisation-PCC(G , s);pour chaque i ← 1 a |S | − 1 faire

pour chaque (u, v) ∈ A faireRelaxation(u, v ,w);

pour chaque (u, v) ∈ A fairesi d [v ] > d [u] + w(u, v) alors

retourner faux ;

retourner vrai ;

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 93: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 94: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

1 L’initialisation est en θ(|S |).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 95: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

1 L’initialisation est en θ(|S |).

2 La boucle principale s’execute O(|S |) sur A

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 96: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

1 L’initialisation est en θ(|S |).

2 La boucle principale s’execute O(|S |) sur A

3 La boucle finale s’execute en O(|A|)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 97: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

1 L’initialisation est en θ(|S |).

2 La boucle principale s’execute O(|S |) sur A

3 La boucle finale s’execute en O(|A|)

L’algorithme est en O(|S ||A|).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 98: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Si le graphe n’a pas de circuit absorbant.

1 Soit p = 〈v0, v1, . . . , vk〉, ou v0 = s et vk = v , un plus courtchemin elementaire de s a v .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 99: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Si le graphe n’a pas de circuit absorbant.

1 Soit p = 〈v0, v1, . . . , vk〉, ou v0 = s et vk = v , un plus courtchemin elementaire de s a v .

2 p a au plus |S | − 1 arcs.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 100: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Si le graphe n’a pas de circuit absorbant.

1 Soit p = 〈v0, v1, . . . , vk〉, ou v0 = s et vk = v , un plus courtchemin elementaire de s a v .

2 p a au plus |S | − 1 arcs.

3 A chaque iteration i de la boucle, l’arc (vi−1, vi ) est relaxedonc d [v ] = δ(s, v).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 101: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction

Si le graphe n’a pas de circuit absorbant.

1 Soit p = 〈v0, v1, . . . , vk〉, ou v0 = s et vk = v , un plus courtchemin elementaire de s a v .

2 p a au plus |S | − 1 arcs.

3 A chaque iteration i de la boucle, l’arc (vi−1, vi ) est relaxedonc d [v ] = δ(s, v).

4 l’algorithme retourne vrai par inegalite triangulaire.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 102: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction (2)

Si le graphe contient un circuit absorbant 〈v0, v1, . . . , vk〉accessible depuis v0 = vk = s et retourne vrai .

1 Pour tout i = 1, . . . , k , on a d [vi ] ≤ d [vi−1] + w(vi−1, vi )

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 103: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction (2)

Si le graphe contient un circuit absorbant 〈v0, v1, . . . , vk〉accessible depuis v0 = vk = s et retourne vrai .

1 Pour tout i = 1, . . . , k , on a d [vi ] ≤ d [vi−1] + w(vi−1, vi )

2 Sommons toutes ces inegalites. On a :

k∑

i=1

d [vi ] ≤k

i=1

d [vi−1] +

k∑

i=1

w(vi−1, vi )

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 104: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction (2)

Si le graphe contient un circuit absorbant 〈v0, v1, . . . , vk〉accessible depuis v0 = vk = s et retourne vrai .

1 Pour tout i = 1, . . . , k , on a d [vi ] ≤ d [vi−1] + w(vi−1, vi )

2 Sommons toutes ces inegalites. On a :

k∑

i=1

d [vi ] ≤k

i=1

d [vi−1] +

k∑

i=1

w(vi−1, vi )

3 mais c’est un circuit donc

k∑

i=1

d [vi−1] =

k∑

i=1

d [vi ]

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 105: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Correction (2)

Si le graphe contient un circuit absorbant 〈v0, v1, . . . , vk〉accessible depuis v0 = vk = s et retourne vrai .

1 Pour tout i = 1, . . . , k , on a d [vi ] ≤ d [vi−1] + w(vi−1, vi )

2 Sommons toutes ces inegalites. On a :

k∑

i=1

d [vi ] ≤k

i=1

d [vi−1] +

k∑

i=1

w(vi−1, vi )

3 mais c’est un circuit donc

k∑

i=1

d [vi−1] =

k∑

i=1

d [vi ]

4 donc∑k

i=1 w(vi−1, vi ) ≥ 0. Impossible.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 106: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

Cas de graphes avec des poids tous positifs ou nuls.

1 Maintient un ensemble V de sommets pour lesquelsl’estimation d [·] est correcte (egale a δ(s, ·))

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 107: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

Cas de graphes avec des poids tous positifs ou nuls.

1 Maintient un ensemble V de sommets pour lesquelsl’estimation d [·] est correcte (egale a δ(s, ·))

2 Selectionne un sommet u de S − V dont l’estimation d [u] estla plus faible.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 108: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

Cas de graphes avec des poids tous positifs ou nuls.

1 Maintient un ensemble V de sommets pour lesquelsl’estimation d [·] est correcte (egale a δ(s, ·))

2 Selectionne un sommet u de S − V dont l’estimation d [u] estla plus faible.

3 L’insere dans V

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 109: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

Cas de graphes avec des poids tous positifs ou nuls.

1 Maintient un ensemble V de sommets pour lesquelsl’estimation d [·] est correcte (egale a δ(s, ·))

2 Selectionne un sommet u de S − V dont l’estimation d [u] estla plus faible.

3 L’insere dans V

4 Relache tous les arcs qui quittent u

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 110: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

Dijkstra(G ,w , s);Initialisation-PCC(G , s);V ← ∅;Q ← S ;tant que Q 6= ∅ faire

u ← Extrait-Minimum(Q);pour chaque sommet v ∈ Adj[u] faire

Relaxation(u, v ,w);

V ← V ∪ {u};

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 111: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra : correction

Lorsqu’un sommet u est insere dans V , d [u] = δ(s, u). Parl’absurde.

1 Soit u le premier sommet insere dans V tel que d [u] 6= δ(s, u).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 112: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra : correction

Lorsqu’un sommet u est insere dans V , d [u] = δ(s, u). Parl’absurde.

1 Soit u le premier sommet insere dans V tel que d [u] 6= δ(s, u).

2 u 6= s donc V non vide.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 113: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra : correction

Lorsqu’un sommet u est insere dans V , d [u] = δ(s, u). Parl’absurde.

1 Soit u le premier sommet insere dans V tel que d [u] 6= δ(s, u).

2 u 6= s donc V non vide.

3 il y a un chemin de s a u (sinon d [u] =∞ = δ[s, u])

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 114: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra : correction

Lorsqu’un sommet u est insere dans V , d [u] = δ(s, u). Parl’absurde.

1 Soit u le premier sommet insere dans V tel que d [u] 6= δ(s, u).

2 u 6= s donc V non vide.

3 il y a un chemin de s a u (sinon d [u] =∞ = δ[s, u])

4 donc un plus court chemin de s a u.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 115: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra : correction

Lorsqu’un sommet u est insere dans V , d [u] = δ(s, u). Parl’absurde.

1 Soit u le premier sommet insere dans V tel que d [u] 6= δ(s, u).

2 u 6= s donc V non vide.

3 il y a un chemin de s a u (sinon d [u] =∞ = δ[s, u])

4 donc un plus court chemin de s a u.

5 Soit y le premier sommet de ce pcc qui n’est pas dans V et xson predecesseur dans V .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 116: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

s

u

y

x

V

Mise a jour des sommets de V

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 117: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

1 d [x ] = δ(s, x)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 118: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

1 d [x ] = δ(s, x)

2 d [y ] = δ(s, y) (plus court chemin et relaxation).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 119: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

1 d [x ] = δ(s, x)

2 d [y ] = δ(s, y) (plus court chemin et relaxation).

3 Poids positifs : d [y ] = δ(s, y) ≤ δ(s, u) ≤ d [u]

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 120: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

1 d [x ] = δ(s, x)

2 d [y ] = δ(s, y) (plus court chemin et relaxation).

3 Poids positifs : d [y ] = δ(s, y) ≤ δ(s, u) ≤ d [u]

4 u de poids minimum donc d [u] ≤ d [y ]

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 121: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

1 d [x ] = δ(s, x)

2 d [y ] = δ(s, y) (plus court chemin et relaxation).

3 Poids positifs : d [y ] = δ(s, y) ≤ δ(s, u) ≤ d [u]

4 u de poids minimum donc d [u] ≤ d [y ]

5 donc d [y ] = δ(s, y) = δ(s, u) = d [u]

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 122: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Dijkstra

1 d [x ] = δ(s, x)

2 d [y ] = δ(s, y) (plus court chemin et relaxation).

3 Poids positifs : d [y ] = δ(s, y) ≤ δ(s, u) ≤ d [u]

4 u de poids minimum donc d [u] ≤ d [y ]

5 donc d [y ] = δ(s, y) = δ(s, u) = d [u]

Impossible puisque d [u] 6= δ(s, u).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 123: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Un exemple

10

5

2 3

1

9

7

2

4 60

8

5

s

u v

x y7

9

Arbre des plus courts chemins, en italique les δ(s, u).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 124: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Un exemple

Arbre des plus courts chemins, dans les sommets δ(s, u).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 125: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

On utilise une file de priorite.

|S | appels a Extrait-Minimum

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 126: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

On utilise une file de priorite.

|S | appels a Extrait-Minimum

Chaque Adj[·] explore

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 127: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

On utilise une file de priorite.

|S | appels a Extrait-Minimum

Chaque Adj[·] explore

En O(|S |2 + |A|) (file = tableau non trie)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 128: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

On utilise une file de priorite.

|S | appels a Extrait-Minimum

Chaque Adj[·] explore

En O(|S |2 + |A|) (file = tableau non trie)

En O(|S |+ |A|. log(|S |)) (Tas),

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 129: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite

On utilise une file de priorite.

|S | appels a Extrait-Minimum

Chaque Adj[·] explore

En O(|S |2 + |A|) (file = tableau non trie)

En O(|S |+ |A|. log(|S |)) (Tas),

en O(|S |. log(|S |) + |A|) (Tas de Fibonacci).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 130: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Bellman-Kalaba

Adapte aux graphes orientes sans circuit (DAG). Poids de signesquelconques.

1 Pas de circuit, donc tri topologique possible depuis s.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 131: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Bellman-Kalaba

Adapte aux graphes orientes sans circuit (DAG). Poids de signesquelconques.

1 Pas de circuit, donc tri topologique possible depuis s.

2 Un chemin de s a u respecte l’ordre du tri.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 132: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Bellman-Kalaba

Adapte aux graphes orientes sans circuit (DAG). Poids de signesquelconques.

1 Pas de circuit, donc tri topologique possible depuis s.

2 Un chemin de s a u respecte l’ordre du tri.

3 Il suffit de connaıtre la longueur d’un PCC de s auxpredecesseurs de u (inductivement).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 133: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

GOSC-PlusCourt(G ,w , s);Tri-Topologique(G );Initialisation-PCC(G , s);pour chaque sommet u de G pris dans l’ordre du tri topologiquefaire

pour chaque sommet v ∈ Adj[u] faireRelaxation(u, v ,w);

En θ(|S |+ |A|).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 134: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

5

3

2

6

7 -1

1

-2sr t u v x

0 2

4

2

6 5 3

Un GOSC, un arbre des plus courts chemins.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 135: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

Omnipresent : Algorithme de Viterbi, de Needleman et Wunsch. . .Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 136: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Ordonnancement simple

Pour renover une maison, il est prevu de

refaire l’installation electrique (3 jours)

reamenager (5 jours) la salle de bains

de carreler (2 jours) la salle de bains

de refaire le parquet de la salle de sejour (6 jours)

de repeindre les chambres (3 jours).

La peinture et le carrelage ne pourront etre faits qu’apres larefection de l’installation electrique.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 137: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

La methodes Potentiel/Tache (et PERT)

d f

parquet

ream. SdB carr. SdB

electricite

peinture

6

5

3

3

2

3

0

0

0

Graphe potentiel/taches et chemin critique

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 138: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Les dates importantes

date de debut au plus tot de chaque tache : longueur d’unplus long chemin de la source d a chacun des sommets

chemins critiques : chemins les plus longs de d a f .

date de debut au plus tard : duree globale moins la longueurd’un plus long chemin de f a la tache.

marge totale d’une tache : difference entre sa date de debutau plus tot et sa date de debut au plus tard

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 139: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

Taches debut au debut au margeplus tot plus tard totale

parquet 0 1 1ream. SdB 0 0 0carr. SdB 5 5 0electricite 0 1 1peinture 3 4 1

���������������������������������������������������

���������������������������������������������������

������������������������������������������������������������

������������������������������������

����������������������������������������

������������������������

0 1 2 3 4 5 6 7

electricite

ream. SdB carr. SdB

parquet

peinture

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 140: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemples d’utilisation de ces algorithmes

1 Bellman-Kalaba : Chaıne de Markov cachees et Viterbi.

2 Bellman-Kalaba : Alignement de sequences d’ADN etNeedleman et Wunsch.

3 Prim/Kruskal et MST : k-clustering.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 141: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Couplages

On doit affecter un certain nombre de cours a un certain nombred’enseignants.

Chaque enseignant est qualifie dans certaines disciplines.

On desire attribuer un cours a chaque enseignant de tel faconqu’un meme enseignement ne soit pas affecte a deuxprofesseurs differents, et vice-versa.

S’il n’est pas possible de satisfaire tous les enseignants, onveut satisfaire le maximum d’entre eux.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 142: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe biparti

Definition (Graphe biparti)

Un graphe non oriente G = (S ,A) est biparti si S = S1 ∪ S2,S1 ∩ S2 = ∅, s’il n’existe pas d’arete entre les sommets de S1 et s’iln’existe pas d’arete entre les sommets de S2.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 143: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Couplage

Definition

Etant donne un graphe non oriente G = (S ,A), un couplage sur Gest forme d’un ensemble d’aretes C tel qu’aucune paire d’aretes deC ne partage un sommet commun.

La taille du couplage est le nombre d’aretes de C.

Le couplage est parfait si tous les sommets du graphe sontcouverts par le couplage.

Objectif : trouver un couplage de taille maximum (≤ ⌊ |S|2 ⌋)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 144: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

c1

c2

c3

c4

c5

c6

e1

e2

e3

e4

e5

e6Un graphe biparti

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 145: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

c1

c2

c3

c4

c5

c6

e1

e2

e3

e4

e5

e6Un graphe biparti et un couplage maximum (parfait)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 146: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Terminologie

Soit C ⊂ A un couplage de G .

un sommet s ∈ S est sature si c’est l’extremite d’une arete deC . Sinon, insature.

Une chaıne dans laquelle une arete sur deux est dans C et lesautres dans A− C est dite alternee.

Une chaıne alternee est dite ameliorante si elle relie deuxsommets insatures a ses extremites (longueur impaire).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 147: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Theoreme de Berge

Theoreme

Un couplage C est maximum si et seulement s’il n’existe pas dechaıne alternee ameliorante relativement a C .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 148: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Chaıne ameliorante : suffisant

A partir d’un couplage C et d’une chaıne ameliorante CA :on ameliore le couplage (de 1) par “ou exclusif” ⊕ (suppressiondans C des aretes C ∩ CA et ajout des aretes CA\(C ∩ CA)).

c1

c2

c3

c4

c5

c6

e1

e2

e3

e4

e5

e6

c2

c4

c6

e1

e2

e5

c1

c2

c3

c4

c5

c6

e1

e2

e3

e4

e5

e6

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 149: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Chaıne ameliorante : necessaire

Soit C et D, 2 couplages de G , |C | < |D| et G ′ = (S ,C ⊕ D).

C et D sont deux couplages : chaque sommet de S est l’extremited’au plus une arete de C et d’au plus une arete de D.

Une composante connexe de G ′ est une chaıne simple (event. uncycle) dont une arete sur deux est dans C et les autres dans D.

Comme |C | < |D|, C ⊕ D contient plus d’aretes de D que de C .Les cycles : autant d’aretes de C que de D ⇒ G ′ a une chaıne quin’est pas un cycle, avec plus d’aretes de D que de C : c’est unechaıne ameliorante.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 150: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme des chaınes ameliorantes (algorithmed’Hopcroft-Karp)

On peut chercher les chaınes ameliorantes en parcourant le graphebiparti en alternant le parcours d’aretes hors et dans C a partir dessommets insatures de S1.

=⇒ Construction du graphe des chaınes ameliorantes par unparcours en largeur

Au plus il y a ⌊ |S|2 ⌋ chaınes ameliorantes.

Complexite (majorant) de l’algorithme en O(|S |.|A|)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 151: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

Entree : Un graphe biparti G = (S1 ∪ S2,A)Sortie : Un couplage maximal C/* initialisation */

anciennetaille = -1 ;C = ∅ ;/* traitement */

Tant que anciennetaille 6=|C | fairemm anciennetaille = |C | ;mm orienter le graphe (S1 vers S2, excepte pour C , ordre inverse) ;mm Pour tout u ∈ S1 tel que u 6∈ C fairemmmmm Si ∃ v ∈ S2 connecte a u par un chemin tel que v 6∈ C alorsmmmmmmmm chemin = chemin ameliorant de u vers v ;mmmmmmmm C = C ⊕ chemin ;Retourner C

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 152: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={ }

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 153: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={ }

A

D

B

E

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 154: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={ }

A

D

B

E

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 155: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) }

A

D

B

E

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 156: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) }

B

D

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 157: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) }

B

D

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 158: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) }

C

F G

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 159: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) }

C

F G

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 160: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) (C,F) }

C

F G

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 161: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) (C,F) }

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 162: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) (C,F) }

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 163: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) (C,F) }

B

D

A

E

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 164: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) (C,F) }

B

D

A

E

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 165: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={(A,D) (C,F) (B,D) }

B

D

A

E

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 166: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={ (C,F) (B,D) }

B

D

A

E

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 167: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={ (C,F) (B,D) (A,E)}

B

D

A

E

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 168: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’Hopcroft-Karp

A

B

C

D

E

F

G

. C={ (C,F) (B,D) (A,E)}

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 169: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

c1

c2

c3

c4

c5

c6

e1

e2

e3

e4

e5

e6Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 170: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple

e1

e2

e3

e4

e5

e1

e2

e3

e4

e5

c1

c2

c3

c5

c4

c1

c2

c3

c5

c4

c1

c2

c3

c5

c4

e1

e2

e3

e4

e5

Un couplage, chaıne ameliorante, couplage ameliore

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 171: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Finalement. . .

A chaque iteration, la taille du plus court chemin augmente de 1.

A l’iteration√

|S |, il y a au plus√

|S | chemins ameliorants detaille superieure a

|S |.

Algorithme de Hopcroft et Karp : complexite en O(√

|S |.|A|)

Extensions possibles : couplages ponderes, graphes quelconques

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 172: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exercice : probleme du Sudoku

9 8 7 4 2

9 6

6 8 4 9

5 8 3 4

6 3 7

3 5 2 8

6 3 7 9

2 7 5 6

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 173: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Solution : probleme du Sudoku

Probleme Sudoku NP-complet.

Modelisation par 27 graphes bipartis.

Test si aucune solution n’existe :taille d’un couplage maximum < |X |

Suppression des valeurs n’appartenant a aucune solution :retrait des sommets xi ,a et test d’existence d’un couplage couvrantX − xi .=⇒ complexite O(|A|2)

Possibilite d’ameliorer la complexite en O(|A|) (Regin, 1994).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 174: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Filtragedesdomaines

��

��

��

��

��

��

��

��

��

��

��

��

Uncouplagecouvrantl’ensembledesvariablesetleresultatdufiltrage

ThomasSchiex,SimondeGivryGraphes,Algorithmes

Page 175: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Theoreme de Hall

Theoreme

Un graphe biparti G = (S1 ∪ S2,A) admet un couplage parfait si etseulement si pour tout sous-ensemble X de S1 (de S2,respectivement), le nombre de sommets de S2 (de S1,respectivement) adjacents a un sommet de X est superieur ou egala la cardinalite de X .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 176: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Autre probleme : transport

Une entreprise a une usine de grues au sommet s et un entrepot ausommet t.

Le transport des grues qu’elle fabrique necessitent l’utilisation deconvois exceptionnels. Un ensemble de routes existent entre lessommets s et t chaque route permettant un certain nombre detransports exceptionnels par mois.

L’entreprise aimerait ajuster sa production mensuelle de facon aproduire exactement le maximum d’objets qu’elle peut transporterdans son entrepot chaque mois.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 177: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

La notion de reseau

Un reseau ou graphe de transport est :

un graphe oriente G = (S ,A) pondere par c(u, v) appeleecapacite de l’arc (u, v), toujours positive ou nulle.

deux sommets particuliers : s et t (respectivement source etpuits).

Pour toute paire de sommets (u, v), si (u, v) 6∈ A, on etendc(u, v) = 0.

Par commodite, on suppose que chaque sommet se trouve sur uncertain chemin reliant la source au puits.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 178: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Ce que l’on cherche

Un flot net sur ce graphe est une ponderation f des arcs du graphequi :

Respect des capacites : f (u, v) ≤ c(u, v)

Symetrie : pour tout u, v ∈ S , f (u, v) = −f (v , u)

Conservation des flots : pour tous les sommetsu ∈ S − {s, t},

v∈S f (u, v) = 0 (tout ce qui rentre dans unsommet en sort).

Valeur d’un flot f , notee |f | =∑

v∈S f (s, v)

Analogie avec un flot de materiau (liquide, electricite,communication). capacite = debit maximal.

Objectif : trouver un flot de valeur maximum.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 179: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

La bonne idee

Definition

Capacite residuelle : cf (u, v) = c(u, v)− f (u, v)(toujours positive ou nulle, par definition).

Reseau residuel : Gf = (S ,Af ) avecAf = {(u, v) ∈ S × S : cf (u, v) > 0}

6

3

4

2

7

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 180: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exemple : flot, reseau residuel, chemin ameliorant

11/16

8/13

12/12

10 1/4 4/9

11/14

15/20

7/7

4/4

11/16

12/12

10 1/4

11/14

7/7

4/412/13

9

19/20 5

11

11 3

12

3

11

7

412

1

9

119

5

11

8

11 3

12

4

5

3

11

7

515

45

s

v1

v2

v3

v4

t

s

v1

v2

v3

v4

t s

v1

v2

v3

v4

t

s

v1

v2

v3

v4

t

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 181: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson

Procedure FordFulkerson(G , s, t)pour chaque arc (u, v) ∈ A faire

f [u, v ]← 0;f [v , u]← 0;

tant que ∃ un chemin p de s vers t dans le reseau residuelfaire

cp ← min{cf (u, v) : (u, v) ∈ p};pour chaque arc (u, v) de p faire

f [u, v ]← f [u, v ] + cp;f [v , u]← −f [u, v ];

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 182: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Theoreme de Ford-Fulkerson

Theoreme

Soit G un reseau de source s et de puits t.

Un flot f est maximum si et seulement s’il n’existe pas de cheminameliorant dans le reseau residuel Gf .

La valeur du flot maximum est egale a une coupe de capaciteminimum dans G.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 183: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Notation ensembliste et proprietes sur les flots

Definition

Notation de sommation implicite :

f (U,V ) =∑

u∈U

v∈V

f (u, v)

Conservation des flots : ∀u ∈ S \ {s, t}, f (u,S) = 0.Valeur du flot |f | = f (s,S) = f (S , t).

Propriete

pour tout U ⊆ S, on a f (U,U) = 0.

pour tout U,V ⊆ S, on a f (U,V ) = −f (V ,U).

pour U,V ,W ⊆ S et U ∩ V = ∅, alorsf (U ∪ V ,W ) = f (U,W ) + f (V ,W )f (W ,U ∪ V ) = f (W ,U) + f (W ,V )

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 184: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Coupe d’un reseau

Definition

Une coupe (E ,T ) d’un reseau de transport G = (S ,A) est unepartition de S en E et T = S − E telle que s ∈ E et t ∈ T.

Capacite de la coupe : c(E ,T ) =∑

(u,v)∈A:u∈E ,v∈T c(u, v)

Theoreme

Pour toute coupe (E ,T ) et tout flot f ,

|f | ≤ c(E ,T )

Preuve par recurrence : f (E ,T ) = |f |. Si |E | = 1, c’est immediat.Par recurrence, soit e un element pris dans T \ {s, t} et mis dansE . On a f (E ∪ e,T − e) = f (E ,T )− f (E , e) + f (e,T ) =f (E ,T ) + f (e,S) = f (E ,T ). Par definition, f (E ,T ) ≤ c(E ,T ).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 185: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Coupe d’un reseau

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 186: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Preuve du Theoreme de Ford-Fulkerson

Theoreme

f ∗ ≡ 6 ∃ chemin ameliorant dans Gf ≡ ∃ c(E ,T ) = |f ∗|

Preuve :Hypothese f flot maximum. Si Gf contient un chemin ameliorantalors on peut ameliorer le flot f ce qui contredit l’hypothese.Hypothese Gf ne contient pas de chemin ameliorant.Soit (E ,T ) une coupe telle queE = {v ∈ S : ∃ chemin s v ∈ Gf } et T = S − E .∀(u, v) ∈ E × T , f (u, v) = c(u, v) (sinon une capaciteresiduelle non nulle existe entre u et v et v ∈ E ).=⇒ |f | = f (E ,T ) = c(E ,T ).Or |f | ≤ c(E ′,T ′) quelque soit la coupe (theoreme precedent),donc f est forcement maximum.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 187: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

FF peut etre lent

Complexite de l’algorithme en O(|f ∗|.|A|) ou f ∗ est la valeur duflot maximum et ce pour des capacites entieres (theoreme del’integralite de |f |).

11

1

11 999 999

999 999

999 999

999 999

1 1

1 000 000

1 000 000

1 000 000

1 000 000

1 000 000 999 999

999 9991 000 000

Un reseau difficile pour Ford-Fulkerson : reseau initial et reseauxresiduels successifs

Edmonds-Karp : O(|S |.|A|2) (FF avec recherche en largeur du pluscourt chemin ameliorant).

Goldberg et Tarjan : O(|S |.|A|. log( |S|2

|A| ))http://www.boost.org/libs/graph/

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 188: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Preuve de complexite d’Edmonds-Karp

Theoreme

∀v ∈ S − {s, t}, la distance de plus court chemin δf (s, v) dans Gf

augmente de facon monotone apres chaque augmentation de flot.

Preuve par l’absurde : ∃v ∈ S \ {s, t} tel qu’une augmentation de flot def a f ′ provoque δf ′(s, v) < δf (s, v).On suppose que δf ′(s, v) ≤ δf ′(s, u) pour tout u ∈ S \ {s, t} tel queδf ′(s, u) < δf (s, u) (ie. v le plus proche de s). Sa contraposee donne :δf ′(s, u) < δf ′(s, v) =⇒ δf (s, u) ≤ δf ′(s, u).Soit p′ = s u → v , un plus court chemin de s a v dans Gf ′ . On a(u, v) ∈ Af ′ et δf ′(s, u) = δf ′(s, v)− 1.Par la contraposee, on a δf (s, u) ≤ δf ′(s, u).Cas (u, v) ∈ Af . Alors δf (s, v) ≤ δf (s, u) + 1 (inegalite triangulaire).Donc δf (s, v) ≤ δf ′(s, u) + 1 ≤ δf ′(s, v). Contradiction.

Cas (u, v) 6∈ Af . Il faut un plus court chemin p dans Gf ayant augmente

f (v , u). δf (s, v) = δf (s, u)− 1 ≤ δf ′(s, u)− 1 ≤ δf ′(s, v)− 2 < δf ′(s, v).

Contradiction.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 189: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Preuve de complexite d’Edmonds-Karp

Theoreme

L’algorithme d’Edmonds-Karp effectue un nombre totald’augmentations en O(|S |.|A|).

Definition : arc (u, v) critique sur un chemin ameliorant p de Gf sicf (p) = cf (u, v).=⇒ tout arc critique disparait apres avoir augmente le flot=⇒ il existe au moins un arc critique par chemin ameliorant

Preuve : chacun des 2.|A| arcs peut devenir critique au plus |S |/2− 1 fois.Soit (u, v) ∈ A. Lorsque (u, v) devient critique, on aδf (s, v) = δf (s, u) + 1 car (u, v) appartient a un plus court chemin.Ensuite (u, v) reapparaıtra ssi (v , u) ∈ p′, chemin ameliorant de Gf ′ .On a δf ′(s, u) = δf ′(s, v) + 1 ≥ δf (s, v) + 1 ≥ δf (s, u) + 2 (cf. theoremeprecedent).

Donc la distance entre u et la source augmente au moins de 2 entre deux

moments critiques et ne peut pas depasser |S | − 2. Ainsi (u, v) ne devient

critique au plus |S |/2− 1 fois.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 190: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Cas d’un probleme a sources et puits multiples

��

���

��

��

��

��

��

��

��

��

��

��

��

��

��

∞ ∞

�� ��

�� ��

����

� �

����

�� ��

����

�� ��

� �

� �

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 191: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Cas d’un probleme a capacites sur les sommets

cu cu

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 192: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Cas d’un probleme avec demandes et capacites

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 193: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(0,1)

(1,2)

(0,1)(0,1)

(1,2)

(0,1)

(1,2)

(2,2)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 194: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(0,1)

(1,2)

(0,1)(0,1)

(1,2)

(0,1)

(1,2)

(2,2)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 195: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(1,2)

(0,1)(0,1)

(1,2)

(0,1)

(1,2)

(2,2)(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 196: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(1,2)

(0,1)

(1,2)

(0,1)

(1,2)

(2,2)(0,1)

(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 197: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(1,2)

(0,1)

(1,2)

(0,1)

(1,2)

(0,1)

(0,1)

(1,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 198: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(1,2)

(0,1)

(1,2)

(0,1)

(1,2)

(0,1)

(0,1)

(1,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 199: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t(0,1)

(1,2)

(0,1)

(1,2)

(0,1)

(0,1)

(1,1)

(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 200: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(1,2)

(0,1)

(1,2)

(0,1)

(0,1)

(1,1)

(0,1)

(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 201: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(1,2)

(0,1)

(1,2)

(0,1)

(0,1)

(0,1)

(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 202: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(1,2)

(0,1)

(1,2)

(0,1)

(0,1)

(0,1)

(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 203: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t

(1,2)

(0,1)

(1,2)

(0,1)

(0,1)(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 204: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t(0,1)

(1,2)

(0,1)

(0,1)(0,1)

(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 205: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Methode de Ford-Fulkerson avec demandes etcapacites

Si la demande d(u, v) est non nulle et une unite de flot passe dans(u, v), alors diminuer d(u, v) et c(u, v) de 1 dans le reseauresiduel.

s

B

A D

C

t(0,1)

(0,1)

(0,1)(0,1)

(0,1)

(0,1)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 206: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exercice : probleme du centre aere

Un centre aere propose un ensemble d’activites encadrees par desmoniteurs agrees. Realiser le planning des moniteurs pour satisfaireles contraintes d’encadrement enoncees ci-dessous.

��������� �� ��� ���� � ��� ��� � ���� �� � �

������� � � ������ � ���� �

����� � ������ � � ���� � �

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 207: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Solution : probleme du centre aere

��������� �� ��� ���� � ��� ��� � ���� �� � �

������� � � ������ � ���� �

����� � ������ � � ���� � �

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 208: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exercice : probleme de fermeture de beneficemaximal

Un certain nombre de taches j ∈ J avec un benefice associe b(j)sont definies. Le benefice peut etre negatif (une perte).

Les taches sont soumises a des contraintes de fermeture : le choixd’une tache j1 peut impliquer le choix d’une tache j2. On representecette relation dite de fermeture (ou implication) par un graphedont les sommets sont les taches, et ou il existe un arc (j1, j2) si etseulement si le le choix de j1 implique le choix de j2. L’objectif estde trouver un ensemble de taches coherentes (respectant lescontraintes) et de benefices maximal. Plus formellement :

Determiner un sous ensemble U ⊂ J tel que (1) aucun arc ne sortede U (coherence) et (2)

j∈U b(j) soit maximum.

Exercice : modeliser ce probleme par un graphe de transport telqu’un flot maximum (ou une coupe minimum) dans ce graphedonne une solution optimale du probleme.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 209: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Solution : fermeture de benefice maximal

Reseau dont les sommets sont les taches plus source s et puits t.

Cas b(j) ≥ 0, ajouter l’arc (s, j) de capacite b(j)

Cas b(j) < 0, ajouter l’arc (j , t) de capacite −b(j)

Cas j1 =⇒ j2, ajouter l’arc (j1, j2) avec une capacite infinie

Soit (E ,T ), coupe de capacite finie, donc coherente.Soit H+ = {j ∈ H : b(t) ≥ 0} et H− = {j ∈ H : b(t) < 0} ∀H ⊆ J

c(E ,T ) =∑

j∈T+

c(s, j) +∑

j∈E−

c(j , t) (1)

=∑

j∈T+

b(j)−∑

j∈E−

b(j) (2)

=∑

j∈J+

b(j)−∑

j∈E+

b(j)−∑

j∈E−

b(j) (3)

=∑

j∈J+

b(j)−∑

j∈E

b(j) (4)

Minimiser la coupe ≡ maximiser le benefice de E (∑

j∈J+ b(j) constant)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 210: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Lien entre couplage maximum dans un graphebiparti et flot maximum

� � � �

� �

��� ���

Complexite de Ford-Fulkerson sur un graphe biparti en O(|S |.|A|)

car f ∗ ≤ |S|2 .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 211: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Flot maximum de cout minimum

Reseau G = (S ,A) pondere pour chaque arc (u, v) ∈ A par :

une capacite c(u, v)

un cout de transport unitaire w(u, v)

Un flot brut (perte de la symetrie si w(u, v) 6= w(v , u)) sur cegraphe est une ponderation g des arcs du graphe qui :

Respect des capacites : g(u, v) ≤ c(u, v)

Conservation des flots :∀u ∈ S − {s, t},

(u,v)∈A g(u, v) =∑

(v ,u)∈A g(v , u)

Cout total d’un flot g , note K =∑

(u,v)∈A w(u, v).g(u, v)

Objectif : parmi les flots de valeur maximum, trouver celui de coutminimum

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 212: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Graphe des capacites residuelles

Definition

Soit un reseau G = (S ,A) de capacite c et de cout w et un flotbrut g sur G .Le graphe des capacites residuelles avec couts Gg = (S ,Ag ) telque :

(u, v) ∈ A tel que g(u, v) < c(u, v) =⇒ (u, v)+ ∈ Ag aveccg (u, v) = c(u, v)− g(u, v) et wg (u, v) = w(u, v)(appele arc avant)

(u, v) ∈ A tel que g(u, v) > 0 =⇒ (v , u)− ∈ Ag aveccg (v , u) = g(u, v) et wg (v , u) = −w(u, v)(appele arc inverse)

Chemin ameliorant p de s a t dans Gg :augmenter le flot de cg (p) = min(u,v)∈p cg (u, v) sur chaque arcavant de p et diminuer de cg (p) sur chaque arc inverse.=⇒ cout du flot augmente de wg (p) = cg (p)× longueur duchemin p

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 213: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Circuit de cout strictement negatif

Theoreme

Un flot brut g de valeur |g | est de cout minimum parmi tous lesflots de valeur |g | ssi il n’existe pas un circuit negatif dans Gg .

Preuve par la contraposee ( =⇒ ) : S’il existe un circuit negatif c dansGg , modifier le flot g selon ce circuit en augmentant g de 1 le long desarcs avant du circuit et en le diminuant de 1 pour les arcs inverses.

=⇒ valeur du flot inchangee et cout diminue de wg (c).

Deux approches possibles :

1 Partir d’un flot d’une valeur desiree et le rendre minimum ensupprimant progressivement les circuits negatifs paraugmentation locale du flot dans les circuits.

2 Construire une serie de flots de valeurs croissantes, mais tousde cout minimum pour leur valeur (sans circuit negatif).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 214: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme de Busacker et Gowen

Procedure BusackerGowen(G , s, t, c ,w)F ← 0;W ← 0;pour chaque arc (u, v) ∈ A faire

g [u, v ]← 0;

tant que ∃ un chemin p de cout minimum z de s a t dans Gg

fairecp ← min{cg (u, v) : (u, v) ∈ p};F ← F + cp ;W ← W + cp .z ;pour chaque arc avant (u, v)+ de p faire

g [u, v ]← g [u, v ] + cp ;

pour chaque arc inverse (u, v)− de p faireg [v , u]← g [v , u]− cp ;

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 215: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exercice

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 216: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Preuve de correction de Busacker et Gowen

Theoreme

A chacune des iterations, le flot courant est de cout minimumparmi tous ceux de valeur F .

Preuve par recurrence sur la valeur du flot : Vrai pour un flot nul.Soit un flot g de cout minimum et un chemin ameliorant π de coutminimum conduisant a un flot g ′ sous-optimal.Donc il existe un circuit negatif ρ dans Gg ′ (et pas dans Gg ) passant par(i , j) tel que (j , i) ∈ π.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 217: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Suite de la preuve de Busacker et Gowen

Soit π′ = {(u, v) ∈ π : (v , u) ∈ ρ} et ρ′ = {(v , u) ∈ ρ : (u, v) ∈ π}.Alors θ = (π − π′) ∪ (ρ− ρ′) forme un chemin de s a t et une union decircuits (cas |π′| pair) dans Gg ′ et Gg .Ces circuits sont forcement de couts positifs (dans Gg ).On a w(π′) = −w(ρ′) par construction de Gg ′ , doncw(θ) = w(π) + w(ρ).Puisque w(ρ) < 0 alors w(θ) < w(π).Donc il existe un chemin de cout inferieur a π dans Gg . Contradiction !

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 218: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Complexite de l’algorithme de Busacker et Gowen

Soit B = max(u,v)∈A c(u, v) la capacite maximale du reseau.

Alors la capacite de toute coupe est au plus de n = B .|S |=⇒ au plus n iterations si cp = 1 pour tous les plus courtschemins trouves.

Calculer un chemin de cout minimal en presence de couts negatifs(mais pas de circuit negatif) dans le graphe residuel : algorithmede Bellman-Ford-Moore en O(|S |.|A|)

Donc complexite de Busacker et Gowen : O(|S |2.|A|.B)(pseudo-polynomial)

Goldberg et Tarjan : O(|S |2.|A|3. log2(|S |))Orlin : O(|A|. log(|S |).(|A| + |S |. log |S |))

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 219: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exercice : probleme de transport par cargo

Une petite entreprise de transport utilise un bateau qui est capablede transporter r unites d’un bien donne. Le bateau suit une longueroute avec plusieurs arrets entre le debut et la fin de son voyage. Achacun de ces ports, il est possible de decharger et de rechargerdes unites.

Chaque port i a une quantite bij a transporter vers le port j > i(les ports sont numerotes dans l’ordre de leur visite). Soit fij lerevenu obtenu en transportant un container de i a j .

Le but de l’entreprise est de decider combien de containers il fautcharger a chaque port de facon a maximiser son revenu et sansdepasser la capacite du bateau.

Modeliser ce probleme sous forme d’un reseau de transport aveccouts.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 220: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Solution

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 221: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Lien entre probleme d’affectation, couplage parfaitpondere et flot maximum de cout minimum

Definition

Soit un graphe biparti G = (S1 ∪ S2,A) pondere pour chaque arete(u, v) ∈ A par un cout w(u, v) et tel que |S1| = |S2| = n. Leprobleme d’affectation consiste a trouver un couplage parfait C decout minimum w(C ) =

(u,v)∈C w(u, v).

� � � �

� �

��� ���

��������

����������

���������������

Busacker et Gowen : O(n4) ; algorithme Hongrois : O(n3)Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 222: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Probleme du voyageur de commerce

Un representant de commerce ou VRP souhaite faire une tourneeen visitant n villes, chacune exactement une fois, et en terminantsa tournee dans la ville de depart.

World Challenge : 1.904.711 villesThomas Schiex, Simon de Givry Graphes, Algorithmes

Page 223: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Probleme du voyageur de commerce symetrique

Definition

Soit G = (S ,A) un graphe non-oriente simple et complet ponderepar une distance c(u, v)

On a |S | = n et |A| = n(n−1)2 .

Cycle hamiltonien : cycle elementaire de G qui contient chaquesommet de S.

Objectif : Trouver un cycle hamiltonien ou tour de longueurminimum.

Le probleme du voyageur de commerce est NP-difficile.

Remarque : tester l’existence d’un cycle hamiltonien dans ungraphe quelconque est NP-complet

Remarque : tester l’existence d’un cycle eulerien (cycle simple de Gqui contient chaque arete de A) est polynomial (sommets tous dedegre pair)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 224: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme de separation et evaluation

Fonction Branch-and-Bound(VRP : (G , c))Construire un tour H approche;U ← c(H) /* majorant initial */;Q ← {G};tant que Q 6= ∅ faire

Gi ← Extrait(Q);/* Resout une relaxation du sous-probleme Gi */;Li = optimum d’une relaxation de Gi ;si Li < U alors

si la solution relaxee est un tour alorsU ← Li /* optimum de Gi */;

sinon/* Regle de branchement (partition de problemesplus contraints en restreignant les aretes possiblesde Ai) */;Q ← Q ∪ {Gi1 , . . . ,Giq};

sinonThomas Schiex, Simon de Givry Graphes, Algorithmes

Page 225: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Relaxation : probleme d’affectation

Propriete

Soit (G = (S ,A), c) un probleme VRP de longueur minimum V ∗.

Le probleme d’affectation pour le graphe biparti S1 = S et S2 = Spondere par c (c(u, u) = +∞) a une solution optimale composeeuniquement de cycles. Son optimum est donc toujours inferieur ouegal a V ∗. C’est une (bonne) relaxation du VRP.

Il y a n! solutions au probleme d’affectation et (n − 1)! sont destours.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 226: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Relaxation d’Held-Karp

Propriete

Le probleme d’arbre couvrant de longueur minimum plus une aretesupplementaire de longueur minimum est une (mauvaise)relaxation du VRP.

Definition

Soit (G = (S ,A), c) un VRP et u ∈ S. Le probleme d’arbrecouvrant de longueur minimum sur S \ {u} plus deux aretes delongueur minimum entre u et S \ {u} est appele 1−arbre. C’estaussi une relaxation du VRP.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 227: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Relaxation d’Held-Karp

Idee :ajout penalite λu sur chaque sommet en fonction de son degre

Propriete

Le probleme de maximiser selon les parametres λ un 1−arbre T delongueur minimum

(u,v)∈T c(u, v) + λu + λv est une (bonne,meilleure que le probleme d’affectation) relaxation du VRP.

Procedure Subgradient-Optimization(G , c ,U)λ← 0 ; α← 2 ; k ← 0;repeter

Trouve un 1−arbre T de longueur modifiee (λ) minimum ;pour chaque u ∈ S faire

λu ← λu + α.(degre(u) − 2). (U−c(T ))∑v∈S (degre(u)−2)2

;

k ← k + 1;if k modulo Periode = 0 then α← α− ǫ;

jusqu’a (k < kmax) ou (T est un tour) ou (c(T ) ≥ U);

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 228: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Relaxation d’Held-Karp

1−arbre initial (a) et 1−arbre ameliore (b) :

(a) L = 21 (U = 25, λ = 0, α = 2) (b) L = 24 = V ∗(λ = (0, 0, 2,−1,−1, 1, 0,−1))

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 229: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’approximation

Objectif : construire un tour approche.

Fonction Approximation-Tour-VRP(G , c)Choix d’une racine r ∈ S ;Construire un arbre couvrant de longueur minimum T avecMST-Prim(G , c , r);L← Tri-Topologique(T , r), liste des sommets visites lors d’unparcours prefixe (en profondeur d’abord) de T ;retourner cycle hamiltonien visitant les sommets dans l’ordre L

Complexite en O(n2)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 230: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’approximation

� �

� �

���

� �

� �

���

� �

� �

���

� �

� �

���

� �

� �

���

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 231: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’approximation

Definition

Un algorithme d’approximation est un algorithme qui retourne unesolution presque optimale a un probleme donne.

Un algorithme d’approximation a une borne ρ(n) si pour toutprobleme de taille n, la solution produite a une valeur V eloigneed’un facteur ρ(n) de celle V ∗ d’une solution optimale :max( V

V ∗ ,V ∗

V) ≤ ρ(n)

Theoreme

L’algorithme Approximation-Tour-VRP est un algorithmed’approximation ayant une borne egale a 2 pour un problemeverifiant l’inegalite triangulaire (c(u, v) ≤ c(u,w) + c(w , v)).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 232: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Preuve de la borne

Soit H∗ une solution optimale et H celle retournee par l’algorithme.

Preuve : on veut prouver que c(H) ≤ 2.c(H∗).

En supprimant une arete de H∗, on obtient un arbre couvrant.Donc c(T ) ≤ c(H∗) pour tout arbre couvrant minimum T .

Soit un parcours complet de T : un chemin W visitant deux fois chaquearete de T (cf. chemin de la Figure (c) precedente).On a c(W ) = 2.c(T ). Donc c(W ) ≤ 2.c(H∗).

Il est possible d’extraire un cycle hamiltonien de W en supprimant les

sommets deja visites dans l’ordre W et sans augmenter la longueur totale

grace a l’inegalite triangulaire. On obtient le cycle H retourne par

l’algorithme. On en deduit c(H) ≤ c(W ) ≤ 2.c(H∗).

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 233: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’approximation de Christofides

Idee : construire un graphe de degres tous pairs, extraire un cycleeulerien, puis a l’aide de l’inegalite triangulaire en extraire un cyclehamiltonien.

Fonction Christofides(G , c)Choix d’une racine r ∈ S ;Construire un arbre couvrant de longueur minimumT = (S ,A′) avec MST-Prim(G , c , r);Construire un couplage parfait M de longueur minimum pourles m sommets de degre impair de T (m pair);Extraire un cycle eulerien E du graphe G ′ = (S ,A′ ∪M)(degres tous pairs);retourner cycle hamiltonien visitant les sommets (la premierefois) dans l’ordre E

Complexite en O(n3)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 234: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’approximation de Christofides

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 235: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Preuve de la borne

L’algorithme Christofides a une borne ρ(n) = 32

On a c(T ) ≤ c(H∗)

Inegalite triangulaire c(M) + c(M ′) ≤ c(H∗) =⇒ min c(M), c(M ′) ≤ 12c(H∗)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 236: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’approximation du plus proche voisin

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 237: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’approximation de la plus petitedistance

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 238: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithme d’approximation de Clarke-Wright

Choix hub h et selection paire (u,v) maximisant c(u, h)+ c(h, v)− c(u, v)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 239: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Algorithmes d’approximations

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 240: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Recherche locale 2-opt

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 241: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Recherche locale 2-opt

Idee : echanger les sommets de deux aretes du tour et repeterl’operation tant que cela ameliore le tour.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 242: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Qualite des algorithmes d’approximation

Distances moyennes a la borne inferieure fournie par Held-Karp

Plus proche voisin : 26%

Plus petite distance : 17%

Clarke-Wright : 11, 3%

Christofides : 9, 7%

2-opt : 4, 9%

3-opt : 3, 1%

LKH (k-opt bride) : 2%

(distances euclidiennes aleatoires pour n=1000 villes)

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 243: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Exercice : cartographie genetique

On dispose de balises M (marqueurs

genetiques) sur les chromosomes

d’un organisme donne. On etablit un

protocole experimental mesurant la

recombinaison genetique sur les des-

cendants de deux grands-parents ho-

mozygotes (les balises de la mere

ont la valeur 0 et celles du pere

la valeur 0 ou 1). Sachant que

la recombinaison genetique est un

evenement rare, proposer une for-

mulation du probleme de localisa-

tion des balises sur les chromosomes

comme un VRP. Comment trouver

M ′ ⊆ M tel qu’il n’existe pas de

carte aussi vraisemblable ?

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 244: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Solution : cartographie genetique

Soit n le nombre d’enfants mesures et ni ,j , le nombre derecombinaisons observees entre deux marqueurs Mi et Mj (casMi = 0,Mj = 1 ou cas Mi = 1,Mj = 0).

Matrice de distance : δ(Mi ,Mj) = ni ,j (critere de parcimonie).

Seuillage de la matrice (n/2) et recherche des composantesconnexes.

Pour chaque composante C , definition d’un VRP(G = (C ′,C ′ × C ′), δ) avec C ′ = C ∪ {Mf } et Mf un marqueurfictif tel que δ(Mf ,M) = δ(M,Mf ) = 0 ∀M ∈ C .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 245: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Solution : cartographie genetique

xThomas Schiex, Simon de Givry Graphes, Algorithmes

Page 246: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Solution : cartographie genetiqueMatrice de log-vraisemblance normalisee 2-point avec un seuil a 9 sur le chromosome 2 du chien (|M| = 427).Chaıne rouge : plus long plus court chemin (|M′| = 26).

Chaıne verte : carte robuste L∗ − L ≥ 1 (|M′| = 54).1

419

420

421

422

423

424

425

426427

390

412

2

311

314

315316317

318

319320321322

323

324325

326327

328

329

330

331332333

334

335

336

299

312

313

339

340

338

341

337

345346347

342

356

3

375

377

380381382

383

384385

386

387

388

389

391392393

394

395396397

398

399400401402403404405

406

407

408

409

410

411

414

415

416417

376378

379

364

372

413

418

4

5

14

15

16

17

18

19

20

21

22

23

24

25

27

26

29

30

31

32

34

36

37

38

39

33

35

40

42

41

45

46

47

48

53

49

50

51

54

58

60

61

59

63

56

57

64

65

73

74

75

66

68

69

67

71

72

77

78

7980

81

82

83

84

85

86

88

87

89

90

91

93

9495

97

101

96

92

98

100

99

102

103

104

105

106

107

109

110111112

113

108

114

115

116117118

119

120

121

122

123

124

126

127

128131

132133

134

125129130

135

136

137

140

176

174

177

180

175

168

170

173

138

139

142141

178

179

181

182

183

184

186187

166

169171

172

143

144145147154

146 148149

150

151

152153

155156157

158

159

160

161

162

163

164165

167

185

188189

190

194195197

191

193

196

192

198

200

203

237

202

204

206

233

234

199

205

212

221

222

201

211

242

245

240

238241

239

243

244

223

208

207

209

215

236

235

246

251

247

248

252

213

214217 216

219

225

226

231

224

227228

229230

232

210

218

220

249250

254

256

257

253

259

255

258260

261

263264

265266

267268

269271

272

273274

275276

278

262

277

279280

270

283284289

281

290

285

282

286

287

288

291292

293

300

301

302

303

306

307

305

310

294

295296

297

298

304

308

309

352

343344

348354

349

350

351

353

355

357

361

365

358359

360

362

366

367

368369

370

374

363

373

371

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 247: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Partionnement de graphe et maximisation de lamodularite

Objectif : regrouper les sommets d’un graphe en moduleshomogenes et bien separes.

Definition

(Newman, 2002)Soit un graphe non-oriente G = (S ,A).Trouver une partition de S en modules qui maximise le nombred’aretes internes moins le nombre attendu d’aretes sousl’hypothese d’un tirage aleatoire des aretes ayant la memedistribution des degres que dans G .

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 248: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Maximisation de la modularite

Definition

(Newman, 2004)Soit un graphe non-oriente G = (S ,A).Maximiser Q =

m[am − em]avec am, le nombre d’aretes de A dans le module met em le nombre attendu.

Q = 0 : graphe aleatoire.Q = 1 : graphe ayant une structure en fortes communautes.

Le probleme de maximisation de la modularite est NP-difficle.

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 249: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Modularite : karate club de Zachary Q = 0.42

xThomas Schiex, Simon de Givry Graphes, Algorithmes

Page 250: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Modularite : Les Miserables de Victor Hugo Q = 0.56

1

2

3

4

5

6

78 9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

3738

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67 68

69

70

71

72

73

74

75

76

77

Thomas Schiex, Simon de Givry Graphes, Algorithmes

Page 251: Graphes, Algorithmes - et modélisation · Graphes,Algorithmes et mod´elisation Thomas Schiex, Simon de Givry INRA1 24 octobre 2013 1. Remerciements a J-P. M´etivier pour ses transparents

Reformulation en partionnement de cliques

Definition

Soit un graphe non-oriente G = (S ,A) pondere par

w(u, v) = 1|A|(eu,v −

degre(u).degre(v)2|A| )

avec eu,v = 1 si (u, v) ∈ A et eu,v = 0 sinon.

On introduit des variables Booleennes xu,v = 1 si les sommets u etv sont dans le meme module et xu,v = 0 sinon.

Maximiser Q =∑

u<v∈S w(u, v).xu,vTel que xu,v + xu,w − xv ,w ≤ 1 ∀u, v ,w ∈ Set xu,v ∈ {0, 1} ∀u, v ∈ S

x xResolution via la programmation lineaire en nombres entiers.

Thomas Schiex, Simon de Givry Graphes, Algorithmes