63
Algorithmique Magist` ere STIC 2002/2003 Notes de cours S. Demri (LSV, ENS de Cachan) Avril 2003 Cette partie du cours d’algorithmique traite – du probl` eme du flot maximal [CLR94, Chapitre 27] ; – NP-compl´ etude [CLR94, Chapitre 36] ; – des algorithmes d’approximation [CLR94, Chapitre 37]. Ces notes sont fortement inspir´ ees (mais pas toujours) de certaines sections de : Th. Cormen, Ch. Leiserson, and R. Rivest. Introduction ` a l’algorithmique. Dunod, 1994. L’envoi de commentaires, typos, ... est bienvenu ([email protected] cachan.fr). 1

Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

  • Upload
    doantu

  • View
    224

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

AlgorithmiqueMagistere STIC 2002/2003

Notes de cours

S. Demri (LSV, ENS de Cachan)

Avril 2003

Cette partie du cours d’algorithmique traite– du probleme du flot maximal [CLR94, Chapitre 27] ;– NP-completude [CLR94, Chapitre 36] ;– des algorithmes d’approximation [CLR94, Chapitre

37].

Ces notes sont fortement inspirees (mais pas toujours)de certaines sections de :

Th. Cormen, Ch. Leiserson, and R. Rivest.Introductiona l’algorithmique. Dunod, 1994.

L’envoi de commentaires, typos, ... est bienvenu ([email protected]).

1

Page 2: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Table des matieres

1 Le probleme du flot maximal 41.1 Reseaux de transport . . . . . . . . . . . 41.2 Modeleetendu des reseaux . . . . . . . . 81.3 La methode de Ford-Fulkerson . . . . . . 101.4 Couplage maximal dans un graphe biparti 231.5 Algorithme avec preflots . . . . . . . . . 27

2 NP-completude 392.1 Temps polynomial . . . . . . . . . . . . 392.2 Temps polynomial avec machines non deterministes 402.3 Problemes NP-complets . . . . . . . . . . 42

2.3.1 Le probleme de la clique . . . . . 432.3.2 Le probleme de la couverture de

sommets . . . . . . . . . . . . . 442.4 Le probleme du voyageur de commerce . 452.5 Traiter la NP-completude . . . . . . . . . 46

2.5.1 Sous-problemes . . . . . . . . . . 462.5.2 Algorithmes pseudo-polynomiaux 472.5.3 Methodes probabilistes . . . . . . 482.5.4 Complexite parametree . . . . . . 492.5.5 Algorithmes d’approximations . . 51

3 Algorithmes d’approximation 54

2

Page 3: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

3.1 Bornes de performance pour les algorithmesd’approximation . . . . . . . . . . . . . . 54

3.2 Techniques de conception des algorithmesd’approximation . . . . . . . . . . . . . . 56

3.3 Le probleme de la couverture de sommet . 563.4 Le probleme du voyageur de commerce . 58

3.4.1 Le probleme avec inegalite trian-gulaire . . . . . . . . . . . . . . 58

3.4.2 Le probleme general . . . . . . . 61

3

Page 4: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

1 Le probleme du flot maximal

Problemes qui mettent en jeu un flux physique de matiere,electricite, ou d’information.

Probleme de flux maximal du TD de Calculabilite deMarie Duflot.

1.1 Reseaux de transport

Definition 1.1. (reseau de transport)G = 〈S, A, s, t, c〉– G = 〈S, A〉 graphe oriente– s ∈ S (source) ;– t ∈ S (puits) ;– c : S × S → N ∪ {∞} (capacite),

c(u, v) = 0 ssi(u, v) 6∈ A.

Exemple 1.1. (reseau de transport) Exemple 27.1(a) de [CLR94,page 570].

4

Page 5: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Definition 1.2. (flot) f : S × S → R verifiant :

(capacite) : ∀u, v ∈ S, f (u, v) ≤ c(u, v) ;

(symetrie) : ∀u, v ∈ S, f (u, v) = −f (v, u) ;

(conservation) : ∀u ∈ S \ {s, t},∑

v∈S f (u, v) = 0.

Definition 1.3. (valeur d’un flot) La valeur du flotf , notee|f |, est|f | =

∑v∈S f (s, v).

Definition 1.4. (probleme du flot maximal)

entree : un reseau de transport (sans chemin des a t

etiquete seulement par∞) ;

sortie : un flot de valeur maximale entres et t.

Borne superieure de la valeur du flot maximal sur unreseaua capacites finies avecf : S × S → Z (au lieu deR) :

∑(u,v)∈A c(u, v).

Exemple 1.2. (flot) Exemple 27.1(b) de [CLR94, page570].

5

Page 6: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Notation. (sommation implicite) SiX et Y sont desensembles de sommets (deS), alors

f (X, Y ) =∑x∈X

∑y∈Y

f (x, y).

Lemme 1.3. SoientG = 〈S, A, s, t, c〉 un reseau de trans-port etf un flot deG.

(I) pourX ⊆ S, f (X, X) = 0 ;

(II) pourX, Y ⊆ S, f (X, Y ) = −f (Y,X) ;

(III) pourX, Y, Z ⊆ S avecX ∩ Y = ∅,(III.1) f (X ∪ Y, Z) = f (X, Z) + f (Y, Z) ;

(III.2) f (Z,X ∪ Y ) = f (Z,X) + f (Z, Y ).

|f | = f (s, S)

= f (S, S)− f (S \ {s}, S) (lemme 1.3(III.1))= f (S, S \ {s}) (lemme 1.3(I,II))= f (S, t) + f (S, S \ {s, t}) (lemme 1.3(III.2))= f (S, t) (par conservation du flot).

Exercice 1.1. Exercices 27.1.6 (somme des flots) et 27.1.7(produit scalaire-flot) de [CLR94, page 576]. “Les flotsd’un reseau forment un ensemble convexe.”

6

Page 7: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Flot net positif rentrant dev :

Σu∈S,f(u,v)>0f (u, v).

Similaire pour le flot net sortant.

Convention : au plus un arc entre deux sommets pourle flot (par annulation). Figure 27.2 [CLR94, 573].

7

Page 8: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Exercice 1.2. Coder le probleme suivant comme un problemede flot maximal.

1. C1, . . . , Cn : centres de distribution avec quantitesdisponiblesc1, . . . , cn ;

2. D1, . . . , Dm : demandes faites par des clients de quan-titesd1, . . . , dm ;

3. chaque client ne peutetre livre que par un sous-ensemblede centres ;R ⊆ {C1, . . . , Cn} × {D1, . . . , Dm} ;

4. Optimiser l’approvisionnement de l’ensemble des clients.

1.2 Modeleetendu des reseaux

Definition 1.5. (reseau de transporta sources et puits mul-tiples) graphe orienteG = 〈S, A〉muni de

– s1, . . . , sm ∈ S (sources) ;– t1, . . . , tn ∈ S (puits) ;– c : S × S → N ∪ {∞}.

Exercice 1.3. Comment reduire le probleme du flot maxi-mal sur un reseau de transporta sources et puits multiplesen un probleme de flot maximal sur un reseau de trans-port standard (cf. [CLR94, page 574, fig. (b)]).

8

Page 9: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Exercice 1.4. Ajout de capacite aux noeuds de reseau [Gar00].Pouru ∈ S, on ajoute une capacite c(u) ∈ N et le flotdoit verifier la condition :

(capacite noeud) :∑

(u,v)∈A,f(u,v)>0 f (u, v) ≤ c(u),∀u ∈S.

Montrer comment reduire le probleme du flot maximalavec capacite sur les noeuds en un probleme de flot maxi-mal sur un reseau de transport standard (solution dans [Gar00]).

9

Page 10: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Definition 1.6. (probleme du flot maximal avec cout mi-nimal) [Gar00]. Ajout du cout ct(u, v) pour (u, v) ∈ A.Recherche du flot maximal avec cout minimal.

1.3 La methode de Ford-Fulkerson

Definition 1.7. (taille d’un reseau)

|G| = |A|(1 + log(max(c(u, v))) + |S|.

Les entiers sont codes en binaire.

Exercice 1.5. Donner un algorithme pour resoudre le problemedu flot maximal quand toutes les capacites sont finies etles flots sont entiers. Quelle la complexite en temps decalcul en fonction de|G|?

But de la section : calcul du flot maximal en tempspolynomial en|G| (attention on prend le logarithme desc(u, v) dans le calcul de|G|).

Idee de la methode de Ford-Fulkerson :– reseaux residuels ;– amelioration des chemins ;– coupe minimale.

M ETHODE-FORD-FULKERSON(G, s, t)

10

Page 11: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

1. initialiser le flotf a 0 ;

2. TANT QUE il existe un chemin ameliorantp

3. FAIRE augmenter le flotf le long dep

4. RETOURNERf

Definition 1.8. (capacite residuelle, reseau residuel) SoientG un reseau de transport etf un flot. La capacite residuellede(u, v) est :

cf(u, v) = c(u, v)− f (u, v).

Le reseau residuel deG induit parf estGf = 〈S, Af , s, t, cf〉avec

Af = {(u, v) ∈ S × S : cf(u, v) > 0}.

Exemple 1.4. Graphe residuel de [CLR94, page 570, fig.(b)].

11

Page 12: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Lemme 1.5. SoientG = 〈S, A, s, t, c〉 un reseau de trans-port etf un flot deG. SoitGf le reseau residuel deG in-duit parf , et soitf ′ un flot deGf . Alors la sommef +f ′

est un flot deG de valeur|f + f ′| = |f | + |f ′|.

Par definition (f + f ′)(u, v) = f (u, v) + f ′(u, v).Preuve. Verification des proprietes de symetrie, capa-cite, et conservation.(symetrie)

(f + f ′)(u, v) = f (u, v) + f ′(u, v)

= −f (v, u) +−f ′(v, u)

= −(f (v, u) + f ′(v, u))

= −(f + f ′)(v, u).

(capacite)f ′(u, v) ≤ cf(u, v) = c(u, v)− f (u, v).

(f + f ′)(u, v) = f (u, v) + f ′(u, v)

≤ f (u, v) + (c(u, v)− f (u, v))

≤ c(u, v).

(conservation)u ∈ S \ {s, t}.∑v∈S(f + f ′)(u, v) =

∑v∈S(f (u, v) + f ′(u, v))

=∑

v∈S f (u, v) +∑

v∈S f ′(u, v)

= 0 + 0 = 0.

De plus, on a

12

Page 13: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

|f + f ′| =∑

v∈S(f + f ′)(s, v)

=∑

v∈S f (s, v) + f ′(s, v)

=∑

v∈S f (s, v) +∑

v∈S f ′(s, v)

= |f | + |f ′|.C.Q.F.D.

Definition 1.9. (chemin ameliorant, capacite residuelle)SoientG un reseau de transport etf un flot. Un cheminameliorantp est un chemin simple (cad sans repetitionde noeuds) des vers t dans le reseau residuelGf . Lacapacite residuelle dep est :

cf(p) = min{cf(u, v) : (u, v) ∈ p}.

Lemme 1.6. SoientG un reseau de transport,f un flot,et p un chemin ameliorant deGf . La fonctionfp definieci-dessous est un flot deGf de valeur|fp| = cf(p) > 0 :

fp(u, v) =

cf(p) si (u, v) appartientap

−cf(p) si (v, u) appartientap

0 sinon.

Preuve.Laissee en exercice. C.Q.F.D.

Corollaire 1.7. SoientG un reseau de transport,f unflot, et p un chemin ameliorant deGf . f ′ = f + fp estun flot deG de valeur superieurea |f |.

13

Page 14: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Comment est-on assurer que s’il n’y a pas de cheminameliorant alors un flot maximal est atteint ?

Une coupe est une partition d’un ensemble de noeuds(cf. aussi la notion de coupe dans un arbre couvrant mi-nimal).

Definition 1.10. (coupe, flot net, capacite, coupe mini-mum) Une coupe(E, T ) d’un reseau de transportG estune partition deS telle ques ∈ E et t ∈ T .Flot net :f (E, T ).Capacite : c(E, T ).Coupe minimum : coupe dont la capacite est minimalerapporteea toutes les coupes du reseau.

Lemme 1.8. SoientG un reseau de transport,f un flot,et (E, T ) une coupe deG. On af (E, T ) = |f |.

Preuve.Utilisation repetee du lemme 1.3.

f (E, T ) = f (E, S)− f (E, E)

= f (E, S)

= f (s, S) + f (E \ {s}, S)

= f (s, S) + 0 (carE \ {s} ⊆ S \ {s, t})= |f |.

C.Q.F.D.

14

Page 15: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Corollaire 1.9. La valeur d’un flot quelconque dans unreseau de transportG est bornee superieurement par lacapacite d’une coupe quelconque deG.

Preuve. (E, T ) coupe quelconque deG et f flot quel-conque deG.

|f | = f (E, T )

=∑

u∈E

∑v∈T f (u, v)

≤∑

u∈E

∑v∈T c(u, v)

≤ c(E, T ).

C.Q.F.D.

Resultat majeur du probleme du flot maximal :

Theoreme 1.10. (flot maximal et coupe minimale) Sifest un flot dans un reseau de transportG alors les condi-tions suivantes sontequivalentes :

(I) f est un flot maximal dansG ;

(II) Gf ne contient aucun chemin ameliorant ;

(III) |f | = c(E, T ) pour une certaine coupe(E, T ) deG.

Preuve. (I) implique (II). Supposons quef est un flotmaximal et queGf contient un chemin ameliorant p.D’apres le corollaire 1.7,f +fp est un flot deG de valeursuperieurea celle def , une contradiction.(II) implique (III). Supposons queGf ne contienne pas

15

Page 16: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

de chemin ameliorant, c’est-a-dire qu’il n’y a pas de che-min des verst dansGf . Soit E le sous-ensemble deScompose des noeuds qui peuventetre atteints des dansGf et T = S \ E. (E, T ) forme donc une coupe deGf .Pouru ∈ E et v ∈ T , on a(u, v) 6∈ Af (sinon on auraitv ∈ E). Par consequent,f (u, v) = c(u, v). D’apres lelemme 1.8,|f | = f (E, T ) = c(E, T ).(III) implique (I). D’apres le corollaire 1.9,|f | ≤ c(E, T )

pour toutes les coupes(E, T ). Par consequent,|f | =

c(E, T ) implique quef est un flot maximal.C.Q.F.D.

FORD-FULKERSON(G, s, t)

1. POURchaque arc(u, v) ∈ A

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

2. TANT QUE il existe un chemin simplep de s verst

dansGf

FAIRE

– cf(p)← min{cf(u, v) : (u, v) ∈ p}– POURchaque arc(u, v) dep

FAIRE f [u, v]← f [u, v]+cf(p) ; f [v, u]← −f [u, v].

Nombre de passages dans la boucle TANT QUE auplus|f ∗| ou f ∗ est un flot maximal. Or|f ∗| est en2O(|G|).

Exemple 1.11. Mauvais reseau, Figure 27.7 de [CLR94,page 586].

16

Page 17: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Definition 1.11. (algorithme de Edmonds-Karp) Methodede Ford-Fulkerson avec la recherche d’un plus court che-min (chaque arc a une distance unitaire).

Algorithme de Dijkstra en temps d’execution enO(|S|2).

L’algorithme du plus court chemin avec parcours enlargeur necessite un temps de calcul enO(|S| + |A|)quand le graphe est represente par des listes d’adjacence[CLR94,pages 462–463].

17

Page 18: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

δf(u, v) : distance entreu et v dansGf ou chaque arcpossede une distance unitaire.δf(u, v) = ∞ s’il n’y apas de chemin.

Lemme 1.12. Si l’algorithme de Edmonds-Karp est executesur un reseauG alors pour tous les sommetsv ∈ S \{s, t}, δf(s, v) augmente de facon monotonea chaqueaugmentation de flot.

Attention : pas d’augmentation stricte ! ! Siδf(u, v) 6=∞, alorsδf(u, v) ≤ |S| − 1

Preuve.Supposons qu’il existev ∈ S \ {s, t} pour quiune augmentation du flot provoque une diminution deδf(s, v). Soit f le flot avant augmentation etf ′ le flotapres. On a donc

δf ′(s, v) < δf(s, v).

Sans perte de generalite, on suppose que pouru ∈ S \{s, t}, δf ′(s, u) < δf ′(s, v) impliqueδf(s, u) ≤ δf ′(s, u).

Soitp′ un plus court chemin dansGf ′ de la formes∗−→

u −→ v. S’il n’y a pas de plus court chemin,δf ′(s, v) =∞et donc une contradiction est immediate.

On peut montrer queδf ′(s, u) = δf ′(s, v) − 1 car p′

est un plus court chemin etδf(s, u) ≤ δf ′(s, u) par hy-pothese.

Supposons quef [u, v] < c(u, v) ou f [u, v] est le flotnet deu versv avant l’augmentation de flot dansGf .

18

Page 19: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

δf(s, v) ≤ δf(s, u) + 1

≤ δf ′(s, u) + 1

≤ δf ′(s, v),

ce qui mene encorea une contradiction.Par consequentf [u, v] = c(u, v) et donc(u, v) 6∈ Af .

Le cheminp qui est choisi dansGf pour produireGf ′

doit contenir(v, u) puisque(u, v) ∈ Af ′ et (u, v) 6∈ Af .Le choix dep provoque un reflux le long de(u, v) : v

apparaıt avantu sur le cheminp. Commep est un pluscourt chemin, il en est de meme de ses sous-chemins etdoncδf(s, u) = δf(s, v) + 1. Par consequent,

δf(s, v) = δf(s, u)− 1

≤ δf ′(s, u)− 1

≤ δf ′(s, v)− 2

< δf ′(s, v),

ce qui menea une contradiction. C.Q.F.D.

Theoreme 1.13. Si l’algorithme de Edmonds-Karp estexecute sur un reseau de transportG alors le nombre totald’augmentations de flot effectuees par l’algorithme vautau plusO(|S| × |A|).

Preuve. (u, v) dansGf est dit critique pour un cheminameliorantp si cf(p) = cf(u, v).Quelques proprietes :

19

Page 20: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

1. Tout arc critique disparaıt du reseau residuel apresaugmentation du flot.

2. Tout chemin ameliorant contient au moins un arc cri-tique.

Pour(u, v) ∈ A, nous allons majorer le nombre de foisou (u, v) est un arc critique dans l’algorithme de Edmonds-Karp.

Soit f le flot lorsque pour la premiere fois(u, v) estcritique dans le chemin ameliorant.

p : s . . . −→ u −→ v −→ . . . t dans Gf .

On a alorsδf(s, v) = δf(s, u) + 1 et apres augmenta-tion, (u, v) disparaıt du reseau residuel.

Pour que(u, v) reapparaisse plus tard il faut que leflot net deu vers v diminue, c’est-a-dire que(v, u) seretrouve sur un chemin ameliorant. Soitf ′ le flot a cemoment-la.

p′ : t . . .←− u←− v ←− . . . s dans Gf ′.

On a alorsδf ′(s, u) = δf ′(s, v) + 1. Comme d’apres lelemme 1.12,δf(s, v) ≤ δf ′(s, v), on peut conclure :

δf ′(s, u) = δf ′(s, v) + 1

≥ δf(s, v) + 1

≥ δf(s, u) + 2.

20

Page 21: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Commeδf(s, u) est majore par|S|, (u, v) ne peutetre unarc critique qu’au plus|S|2 fois. Par consequent, le nombretotal d’augmentations de flot effectuees par l’algorithmevaut au plusO(|S| × |A|). C.Q.F.D.

L’algorithme du plus court chemin avec parcours enlargeur necessite un temps de calcul enO(|S| + |A|)quand le graphe est represente par des listes d’adjacence.

Exercice 1.6. Exercice 27.2-8 (|A| chemins ameliorants)de [CLR94, page 589]. “Comment faire mieux queO(|S|×|A|) iterations ?”

1. Montrer que si|f | > 0 alors il existe un chemins∗−→

t ou tous les flots nets sont strictement positifs (surle graphe ou seuls les flots nets positifs ou nuls sontrepresentes).

2. En deduire qu’on peut toujours trouver un flot maxi-mal dans un reseauG = (S, A) a l’aide d’une sequenced’au plus|A| chemins ameliorants.

Exercice 1.7. Probleme 27-4 de [CLR94, page 615]. SoitG = 〈S, A, s, t, c〉 un reseau de transport de capacitesentieres. Supposons qu’on connaisse un flot maximal deG.

1. Supposons que la capacite d’un seul arc(u, v) ∈ A

augmente de1. Donner un algorithme enO(|S| +

21

Page 22: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

|A|) permettant de mettrea jour le flot maximal.

2. Supposons que la capacite d’un seul arc(u, v) ∈ A

diminue de1. Donner un algorithme enO(|S|+ |A|)permettant de mettrea jour le flot maximal.

22

Page 23: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

1.4 Couplage maximal dans un graphe biparti

Exemple de probleme combinatoire qui peut se rame-nera un probleme de flot maximal.

Definition 1.12. (couplage, couplage maximal) SoitG =

(S, A) un graphe non oriente. Un couplageM est unsous-ensemble deA tel que chaque sommetv ∈ S aau plus une arete deM qui soit incidentea v. M est uncouplage maximal ssiM est un couplage et pour tous lescouplagesM ′, |M ′| ≤ |M |.

On s’interesse dans la suite aux graphes bipartis avecS = L ∪ R (L, R une partition deS) et toutes les aretesdeA passent entreL etR.

Probleme : calcul d’un couplage maximal pour un graphebipartiG.

A G on associe un reseau de transportG′ tel que l’onpuisse trouver une correspondance entre flox maximaldansG′ et couplage maximal dansG.

Definition 1.13. (reseau de transport correspondant) Onconstruit le reseau de transportG′ = 〈S ′, A′, s, t, c〉 a par-tir du graphe bipartiG = (S, A).

– S ′ = {s, t} ∪ S avecs, t 6∈ S ;– A′ = {(s, u) : u ∈ L} ∪ {(u, v) : {u, v} ∈ A, u ∈

L} ∪ {(v, t) : v ∈ R} ;

23

Page 24: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

– c retourne la valeur1 pour chaque arc deA′.

Figure 27.9 de [CLR94, page 591].

24

Page 25: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Lemme 1.14. SoientG etG′ definis comme ci-dessus.

(I) Si M est un couplage deG alors il existe un flotavaleurs entieresf dansG′, avec|f | = |M |.

(II) Si f est un flota valeurs entieres deG′, alors il existeun couplageM deG de cardinal|M | = |f |.

Preuve.(I) Soit M un couplage deG. Le flotf est definide la facon suivante :

– si{u, v} ∈M , alorsf (s, u) = f (u, v) = f (v, t) = 1

etf (u, s) = f (v, u) = f (t, v) = −1 ;– si {u, v} ∈ A \M , f (s, u) = f (u, v) = f (v, t) =

f (u, s) = f (v, u) = f (t, v) = 0.On peut facilement verifier quef est un flot (carM estun couplage). Le flot net de la coupe(L∪{s}, R∪{t}) estprecisemment|M | et donc par le lemme 1.8,|M | = |f |.(II) Soit f un flot a valeurs entieres deG′.

M = {{u, v} : u ∈ L, v ∈ R, f (u, v) > 0}.

M est un couplage carf verifie la condition de capaciteet chaque capacite deG′ vaut 1. Verifions que|M | =

|f |. On peut remarquer que pouru ∈ L couvert, on af (s, u) = 1 et pour{u, v} ∈ A \M , on af (u, v) = 0.

|M | = f (L, R)

= f (L, S ′)− f (L, L)− f (L, s)− f (L, t)

= 0− 0 + f (s, L)− 0

25

Page 26: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

= f (s, S ′)

= |f |.

C.Q.F.D.

Theoreme 1.15. (Theoreme de l’integralite) Sic ne prendque des valeurs entieres, le flot maximalf ∗ produit parla methode de Ford-Fulkerson verifie que|f ∗| est entier(ainsi que chaque valeurf [u, v]).

Corollaire 1.16. Le cardinal d’un couplage maximal dansun graphe bipartiG est la valeur d’un flot maximal dansson reseau de transportG′ correspondant.

Le cardinal du couplage maximal est au plusmin(|L|, |R|)et donc l’algorithme de Ford-Fulkerson aO(|S|) iterations :probleme resoluble en tempsO(|S| × |A|).

Exercice 1.8. Exercice 27.3-4 (couplage parfait) de [CLR94,page 593].

26

Page 27: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

1.5 Algorithme avec preflots

Algorithme Iterations Nbre d’operationsFord-Fulkerson |f ∗| O(|A| × |f ∗|)Edmonds-Karp O(|S| × |A|) O(|S| × |A|2)

Preflots O(|S|2 × |A|) O(|S|2 × |A|)Elevation vers l’avant O(|S|3)

No1 Goldberg et Tarjan O(|S| × |A| × log( |S|2

|A| ))

Particularites des algorithmes avec preflots :– modification locale du reseau (un noeud et ses voi-

sins) ;– ce n’est qu’a la fin que l’on a un flot et de plus maxi-

mal ;sinon, le tableauf [·, ·] est un preflot : symetrie, contraintesde capacite et pouru ∈ S \ {s},

f (S, u) ≥ 0 ;

– operationselementaires sur le reseau residuel :

1. poussee de flot excedentaire depuis un sommetvers ses voisins ;

2. elevation d’un sommet.

Quand un preflot f verifie que pouru ∈ S \ {s, t},f (S, u) = 0 alorsf est un flot.

27

Page 28: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Definition 1.14. (excedent de flot, debordement)f preflot,u ∈ S \ {s, t}. Excedent de flot suru : e(u) = f (S, u).u deborde sie(u) > 0.

Par definition,u ne peut pas deborder siu ∈ {s, t}.A chaque noeudu ∈ S, on associe une hauteurh(u).

h(s) = |S| eth(t) = 0 restent constants durant le deroulementde l’algorithme mais pouru ∈ S \ {s, t}, h(u) peutevoluer. Une poussee ne se produit deu vers v que siles conditions suivantes sont reunies :

1. e(u) > 0, “u deborde” (u 6∈ {s, t}, par definition) ;

2. cf(u, v) > 0 “capacite residuelle deu versv stricte-ment positive” ;

3. h(u) = h(v) + 1 “u un peu plus haut quev”.

Definition 1.15. (fonction de hauteur)G reseau de trans-port, f preflot. h : S → N est une fonction de hauteursi

– h(s) = |S| ;– h(t) = 0 ;– h(u) ≤ h(v) + 1 si (u, v) ∈ Af .

Consequence immediate : sih(u) > h(v) + 1 alors(u, v) n’est pas dans le graphe residuel.

28

Page 29: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Si

1. u deborde (cadf (S, u) > 0 etu 6∈ {s, t}) ;

2. cf [u, v] > 0 ;

3. h[u] = h[v] + 1 ;

alors on poussedf [u, v] = min(e[u], cf [u, v]) unites deflot deu versv.

POUSSER(u, v)

1. df [u, v]← min(e[u], cf [u, v])

2. f [u, v]← f [u, v] + df [u, v]

3. f [v, u]← −f [u, v]

4. e[u]← e[u]− df [u, v]

5. e[v]← e[v] + df [u, v]

Nombre constant d’etapes de calcul.

Poussee saturante sicf [u, v] = 0 apres la poussee.Apres une poussee non saturante,u ne deborde plus.Si df [u, v] = e[u] = cf [u, v] alors on a une poussee satu-rante et apresu ne deborde plus.

29

Page 30: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Si

1. u deborde ;

2. pourv tel quecf [u, v] > 0, h[u] ≤ h[v] ;

alors oneleveu avech[u] = 1+min{h[v] : (u, v) ∈ Af}.

ELEVER(u)

1. h[u]← 1 + min{h[v] : (u, v) ∈ Af}.Commeu deborde, il existev tel quef [v, u] > 0 et

donccf [u, v] = c[u, v]− f [u, v] = c[u, v] + f [v, u] > 0.

Procedure d’initialisation : chaque arc partant de lasource est rempli au maximum.

– h[s] = |S| et pouru ∈ S \ {s}, h[u] = 0 ;

– f [u, v] =

c[u, v] si u = s

−c[u, v] si v = s

0 sinon.

– mettrea joure[u] pouru ∈ S.

Verifions queh[.] initiale est une fonction de hauteur.u −→ v dansGf impliqueu 6= s, h[u] = 0, et donch[u] ≤h[v] + 1.

30

Page 31: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Algorithme de preflot generique :PREFLOT GENERIQUE(G)

1. INITIALISER-PREFLOT(G, s) ;

2. TANT QUE il est possible d’appliquer une operationde poussee ou d’elevationFAIRE choisir une poussee ou uneelevation appli-cable, et l’executer.

3. RETOURNERf .

Quelques proprieteselementaires :

1. a tout sommet qui deborde, on peut appliquer soituneelevation soit une poussee (mais pas les deuxa lafois), a supposer queh[.] est une fonction de hauteur(cf. le lemme 1.17) ;

2. les hauteurs ne diminuent jamais.

Lemme 1.17. SoitG un reseau de transport. Pendant l’executionde PREFLOT GENERIQUE(G), l’attribut h[.] est unefonction de hauteur.

Preuve.Recurrence sur le nombre d’operationselementaireseffectuees.

A l’initialisation, h est une fonction de hauteur.Montrons queh demeure une fonction de hauteur apres

l’execution deELEVER(u). Si (u, v) ∈ Af alors on a bien

31

Page 32: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

h[u] ≤ h[v] + 1 carh[u] = 1 + min{h[w] : (u, w) ∈ Af}.Si (w, u) ∈ Af et h[w] ≤ h[u] + 1 avant l’execution deELEVER(u), alorsh[w] ≤ h[u] + 1 apres carh[u] croıt.

Montrons queh demeure une fonction de hauteur apresl’execution de POUSSER(u, v). Si (v, u) est ajoute a Af

(poussee saturante ou pas), alorsh[v] = h[u]− 1 et donch est une fonction de hauteur (car alorsh[v] ≤ h[u] + 1).Si (u, v) est supprime deAf (poussee saturante) alors iln’y a plus de contraintes sur(u, v). C.Q.F.D.

Lemme 1.18. SoientG un reseau de transport,f un preflot,eth une fonction de hauteur surS. Alors, il n’y a pas dechemin entres et t dans le reseau residuelGf .

Preuve.Laissee en exercice. C.Q.F.D.

De meme, on peut verifier quef [., .] demeure un preflotpendant l’execution de PREFLOT GENERIQUE(G).

Theoreme 1.19. Si PREFLOT GENERIQUE(G) ter-mine alors le preflot calcule est un flot maximal.

Preuve.Si PREFLOT GENERIQUE(G) termine alorsaucune operation n’est applicable, c’est-a-dire aucun noeudne deborde et doncf est un flot. Commeh est une hau-teur, il n’y a pas de chemin entres et t dansGf . Par letheoreme 1.10 (flot maximal et coupe minimale),f estmaximal. C.Q.F.D.

32

Page 33: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Nous allons maintenant montrer que le nombre d’operationsexecutees est borne.

– Nombre d’elevations≤ 2× |S|2 ;– Nombre de poussees saturantes2× |S| × |A| ;– Nombre de poussees non saturantes4 × |S|2(|S| +|A|).

Il y a moyen de remettre une partie du trop pleina lasource quandu deborde.

Lemme 1.20. SoientG un reseau de transport etf unpreflot. Siu est un sommet debordant, alors il existe unchemin simple deu verss dansGf .

Preuve.U : ensemble de noeuds accessibles deu dansGf . Supposons ques 6∈ U et posonsU = S \ U .

v ∈ U etw ∈ U

→ 〈v, w〉 6∈ Af (sinonw ∈ U )→ c(v, w)− f (v, w) = 0

→ f (v, w) ≥ 0

→ f (w, v) ≤ 0.

Ainsi f (U, U) ≤ 0.

e(U) = f (S, U)

= f (U, U) + f (U,U)

= f (U, U) (f (U,U) = 0 meme sif est un preflot)≤ 0.

33

Page 34: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Comme nous avons l’hypothese queU ⊆ S\{s}, pourv ∈ U , e(v) = 0. Rappelonsf [., .] est un preflot, cad pourw ∈ S \ {s}, f (S, w) ≥ 0. En particuliere(u) = 0, unecontradiction. C.Q.F.D.

Lemme 1.21. A chaque instant de l’execution de PREFLOTGENERIQUE(G), h[u] ≤ 2×|S|−1 pour tous les som-metsu ∈ S.

Preuve. Les valeurs constantesh[s] et h[t] verifient lapropriete.

Soienth1, . . . , hn = h les valeurs successives de lafonction de hauteur dans l’execution de l’algorithme etu ∈ S \ {s, t}. Par exemple, ces valeurs sont celles ob-tenues apreselevation. Siu ne deborde pas deh1 a hn,alorsh1(u) = . . . = hn(u) = 0, ce qui verifie aussi lapropriete. Sinon, soithl la derniere valeur de la fonctionou u deborde. On distingue deux cas.Cas 1 :l = n.Commeu deborde, d’apres le lemme 1.20, il existe unchemin simple deu verss dansGf ou f est la valeur dupreflot a ce moment. Soitp = 〈v0, . . . , vk〉 avecv0 = u,vk = s etk ≤ |S| − 1 (p est simple). Pour0 ≤ i ≤ k− 1,(vi, vi+1) ∈ Af et donch[vi] ≤ h[vi+1] + 1. Ainsi h[u] ≤h[s] + k ≤ 2× |S| − 1.Cas 2 :l < n.

34

Page 35: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

L’operation juste apreshl est une poussee, car uneelevationne modifie pas l’ensemble des sommets qui debordent.Pour j ≥ l + 1, hl+1(u) = hj(u). Commeu deborde,d’apres le lemme 1.20, il existe un chemin simple deu

verss dansGf ou f est la valeur du preflot a ce moment.Soit p = 〈v0, . . . , vk〉 avecv0 = u, vk = s et k ≤

|S|−1 (p est simple). Pour0 ≤ i ≤ k−1, (vi, vi+1) ∈ Af

et donchl[vi] ≤ hl[vi+1] + 1. Ainsi hl[u] ≤ hl[s] + k ≤2× |S| − 1. Par consequenth[u] ≤ 2× |S| − 1. C.Q.F.D.

Corollaire 1.22. A chaque instant de l’execution de PREFLOTGENERIQUE(G), le nombre d’elevation par sommetest au plusegala 2× |S| − 1.

Nombre d’elevation total inferieura2×|S|2 (seuls lesnoeuds deS \ {s, t} peuventetreeleves).

Lemme 1.23. A chaque instant de l’execution de PREFLOTGENERIQUE(G), le nombre de poussees saturantes vautau plus2× |S| × |A|.

Preuve.Pouru, v ∈ S, on considere les poussees deuversv et aussi celles dev versu. Si de telles pousseesexistent, alors soit(u, v) ∈ A, soit (v, u) ∈ A.

Si on effectue une poussee saturante deu versv, (u, v)

disparaıt deAf et pour qu’il y revienne, il faut au prealableeffectuer une poussee dev versu.

35

Page 36: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Si par exemple, une poussee saturante a eu lieu deuvers v, alorsh[u] = h[v] + 1 et si on fait ensuite unepoussee dev versu alorsh[v] = h[u] + 1 : entre deuxpoussees saturantes sur(u, v), h[v] augmente au moinsde 2. De meme, entre deux poussees saturantes sur(v, u),h[u] augmente au moins de 2.

Soit I la sequence d’entiersh[u] + h[v] entre deuxpoussees saturantes sur(u, v) ou (v, u). A la premierepousseeh[u] + h[v] ≥ 1. A la derniere pousseeh[u] +

h[v] ≤ 4×|S|−3 (= 2× (2×|S|−1)−1). Comme entredeux poussees saturantes,h[u] + h[v] augmente de 2, lenombre de poussees saturantes entreu etv est bornee par2×|S|− 1. Pour l’ensemble des arcs, on obtient alors auplus2× |S| × |A| poussees saturantes. C.Q.F.D.

Lemme 1.24. A chaque instant de l’execution de PREFLOTGENERIQUE(G), le nombre de poussees non saturantesvaut au plus4× |S|2(|S| + |A|).Preuve.Fonction potentiel (X ens. des sommets debordants) :

Φ =∑v∈X

h[v].

1. ELEVER(u) fait croıtre Φ au plus de2 × |S| (bornesuperieure des hauteurs) ;

2. une poussee saturante deu versv fait croıtre Φ auplus de2× |S| si e[u] 6= cf [u, v] ;

36

Page 37: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

3. une poussee saturante deu vers v fait decroıtre Φ

d’au moins 11 si e[u] = cf [u, v] : u ne deborde pluseth[v] + 1 = h[u] ;

4. une poussee non saturante deu versv fait decroıtreΦ d’au moins 1 :u ne deborde plus eth[v]+1 = h[u].

(une poussee deu versv fait toujours deborderv.)Quantite totale d’augmentations :

(2×|S|)×2×|S|2+(2×|S|)×2×|S|×|A| = 4×|S|2(|S|+|A|).

La quantite totale de diminution est bornee par4×|S|2(|S|+|A|) et donc il ne peut y avoir plus de4× |S|2(|S|+ |A|)poussees non saturantes (la valeur initiale deΦ est 0).C.Q.F.D.

Theoreme 1.25. L’execution de PREFLOT GENERIQUE(G)

termine et appliqueO(|S|2×|A|) operationselementaires.

Corollaire 1.26. Il existe une implementation de l’algo-rithme de preflot generique qui s’execute en tempsO(|S|2×|A|).

Recapitulatif :

1. |S| ≤ 2× |A| ;2. poussees non saturantes :4× |S|2(|S| + |A|),1exactement de 1 sih[v] = 0 ou siv ne deborde pas avant la poussee.

37

Page 38: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

3. poussees saturantes :2× |S| × |A|,4. elevations :2× |S|2.POUSSER(u, v) execute en temps constant &ELEVER(u)

enO(|S|). Il faut verifier que les conditions d’applica-tions de ces operations n’induisent pas un cout supplementaire.Preuve.En exercice. C.Q.F.D.

38

Page 39: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

2 NP-completude

Quelques rappels juste utiles pour justifier l’interet desalgorithmes d’approximation.

2.1 Temps polynomial

Probleme de decision :L ⊆ Σ∗ (un langage).

Presentation differente :

entree : x ∈ Σ∗

sortie : 1 six ∈ L, 0 sinon.

Modeles de calcul :– Machine de Turing (cf. le cours de calculabilite) ;– RAM.

Definition 2.1. (DTIME(f)) Soit f : N → N et L ⊆ Σ∗.L appartienta la classe DTIME(f) s’il existe une machinedeterministe et une constantec qui sur toute entreex delongueurn, resout le probleme en au plusc × f (n) pasde calcul.

P =⋃k>0

DTIME(n 7→ nk).

39

Page 40: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

2.2 Temps polynomial avec machines non deterministes

NTIME(f) defini comme DTIME(f) mais avec des ma-chines non-deterministes.

NP =⋃k>0

NDTIME(n 7→ nk).

Lemme 2.1. P⊆ NP.

Definition 2.2. (relation polynomiale) SoitΣ un alpha-bet. Une relation binaireR ⊆ Σ∗ × Σ∗ est une relationpolynomiale si pourx, y ∈ Σ∗ :

(I) Decider siR(x, y) peutetre verifie en temps polyno-mial en|x| + |y|.

(II) Il existe un polynomep tel que siR(x, y) alors|y| ≤p(|x|).

Une autre caracterisation de NP :

Definition 2.3. (NP)L ∈ NP ssi il existe une relation po-lynomialeR telle queL = {x : il existe un y tel que R(x, y)}.

Chaquex ∈ L a un certificaty verifiable en temps po-lynomial.

SAT :

40

Page 41: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

entree : un ensembleX de clauses propositionnelles

sortie : 1 siX est satisfaisable, 0 sinon.

SiX contient les variables propositionnellesp1, . . . , pn

et X est satisfaisable, alors le certificat est une valua-tion {p1, . . . , pn} → {Vrai, Faux}, representable par unesuite den bits.

3-SAT : restriction de SAT aux clauses ayant exactement3 litteraux.

CYCLE-HAM :

entree : un graphe non orienteG = (S, A) ;(en fait sa representation sous forme de chaıne) ;

sortie : 1 siG possede un cycle Hamiltonien, 0 sinon.

Un cycle Hamiltonien est un cycle qui passe une seulefois par chaque sommet deG. SiG possede un cycle Ha-miltonien, alors le certificat est une sequence de sommetsv1, . . . , vn telle que

– {vi, vi+1} ∈ A pouri = 1, . . . , n− 1,– {vn, v1} ∈ A,– S = {v1, . . . , vn} et lesvi sont distincts.

Lemme 2.2. SAT, 3-SAT, et CYCLE-HAM sont dans NP.

Exercice 2.1. Montrer l’equivalence des definitions deNP.

41

Page 42: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Definition 2.4. (reduction polynomiale) SoientL ⊆ Σ∗

etL′ ⊆ Σ′∗. L se reduit polynomialementaL′ s’il existe

f : Σ∗ → Σ′∗ telle que

– x ∈ L ssif (x) ∈ L′ pourx ∈ Σ∗,– f est calculable par une machine de Turing en temps

polynomial.

Definition 2.5. L est NP-complet siL est dans NP et toutprobleme de NP peut se reduire polynomialementaL.

La NP-durete signifie queL est au moins aussi dur quen’importe quel probleme de NP.

Theoreme 2.3. SAT, 3-SAT, et CYCLE-HAM sont NP-complets.

On ne connait pas de probleme NP-dur pouvantetreresolu par un algorithme deterministe en temps

polynomial (peu probable que cela existe).

2.3 Problemes NP-complets

Methode pour demontrer qu’un langage est NP-complet :

1. Montrer queL ∈ NP.

2. Choisir un langageL′ NP-complet connu (la NP-durete suffit en fait).

3. Trouver une fonctionf : Σ′∗ → Σ∗.

42

Page 43: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

4. Montrer quex ∈ L′ ssif (x) ∈ L.

5. Demontrer quef se calcule en temps polynomial(espace logarithmique).

2.3.1 Le probleme de la clique

CLIQUE :

entree : un graphe non orienteG etk ≥ 0 (unaire)

sortie : 1 siG a une clique de taillek, 0 sinon.

CLIQUE comme un langage :

CLIQUE = {〈G, k〉 : G contient une clique de taille k}.Theoreme 2.4. Le probleme de la clique est NP-complet.

Preuve.CLIQUE est dans NP en prenant comme certifi-cat la clique de cardinalmin(k, |S|).Pour montrer que CLIQUE est NP-difficile, on reduit 3-SAT a CLIQUE en temps polynomial. SoitX = C1 ∧· · ·∧Ck une instance de 3-SAT (chaqueCi est une clausede la formeli1 ∨ li2 ∨ li3). On construit l’instance suivante〈G, k〉 de CLIQUE :

– G = (S, A) avecS l’ensemble

{〈lij, i〉 : 1 ≤ i ≤ k, 1 ≤ j ≤ 3}.

– {lij, li′

j′} ∈ A ssii 6= i′ et lij 6= li′

j′.

[CLR94, Figure 36.12].

43

Page 44: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

G peut facilementetre construit en temps polynomialen|X|.

On peut monter queX = C1∧. . .∧Ck est satisfaisablessiG a une clique de taillek. C.Q.F.D.

Dans la suite, seule la NP-durete est interessante.

Exercice 2.2. Montrer que CLIQUE demeure dans NP sik est code en binaire.

2.3.2 Le probleme de la couverture de sommets

Couverture de sommets :

entree : un graphe non orienteG = (S, A), un entierk ;

sortie : 1 s’il existe S ′ ⊆ S tel que |S ′| = k et pour{u, v} ∈ A, {u, v} ∩ S ′ 6= ∅, 0 sinon.

Theoreme 2.5. Le probleme de la couverture de som-mets est NP-complet.

Preuve.Pour montrer que la couverture de sommets estNP-difficile, on reduit CLIQUEa ce probleme en tempspolynomial. Soit〈G, k〉 une instance de CLIQUE (G graphenon oriente). On construit l’instance suivante〈G′, k′〉 dela couverture de sommets :

– G′ = (S, A′) graphe complement deG, cadA′ = {{u, v} : {u, v} 6∈ A, u 6= v} ;

44

Page 45: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

– k′ = |S| − k.〈G′, k′〉 peut se calculer en temps polynomial en la taillede〈G, k〉.

Montronsa present queG a une clique de taillek ssiG′ a une couverture de sommets de taillek′ (laisse enexercice). C.Q.F.D.

2.4 Le probleme du voyageur de commerce

PVC :

entree : un graphe completG = (S, A), c : A→ N, k ;

sortie : 1 si G possede une tournee de cout au plusegalak, 0 sinon.

Tournee : cycle hamiltonien.

Theoreme 2.6. Le probleme du voyageur de commerceest NP-complet.

Seule la NP-durete est interessante.Preuve.Pour montrer que PVC est NP-difficile, on reduitCYCLE-HAM a PVC en temps polynomial. SoitG =

(S, A) une instance de CYCLE-HAM (G graphe non oriente).On construit l’instance suivante de PVC :

– G′ = (S ′, A′) avecS ′ = S et A′ = {{u, v} : u 6=v ∈ S ′}(graphe complet) ;

45

Page 46: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

– c : A′ → N avecc(u, v) = 1 si {i, j} 6∈ A, c(u, v) = 0 sinon.

On peut montrer queG′ a une tournee de cout au plusegal a 0 ssiG possede un cycle Hamiltonien. De plus,〈G′, c′, 0〉 peut se calculer en temps polynomial en la tailledeG. C.Q.F.D.

2.5 Traiter la NP-completude

On ne connaıt pas d’algorithmes deterministes non ex-ponentiels en temps pour les problemes NP-complets.

2.5.1 Sous-problemes

Restreindre la classe d’instances :– pour ne s’interesser qu’aux instances rencontrees en

pratique par exemple,– pour determiner les limites de la NP-durete.

Lemme 2.7. 2-SAT est dans P.

Preuve. Soit X = {l11 ∨ l12, . . . , ln1 ∨ ln2} un ensemble

de 2-clauses. On construit le graphe oriente G = (S, A)

suivant :– S est l’ensemble des litteraux construitsa partir des

variables propositionnelles deX.– si l ∨ l′ ∈ X alors(¬l, l′) et (¬l′, l) sont dansA.

46

Page 47: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

On peut montrer queX n’est pas satisfaisable ssi il existeun circuit contenant un litteral et son complement (laisseen exercice). C.Q.F.D.

Par contre, la restriction de PVC avec des couts dans{0, 1} demeure NP-difficile.

2.5.2 Algorithmes pseudo-polynomiaux

Definition 2.6. (algorithme pseudo-polynomial) Un al-gorithme pour un probleme est appele pseudo-polynomialsi son temps d’execution est polynomial dans la taille del’entree et dans la taille de la representation unaire duplus grand nombre qui apparaıt dans l’entree.

Somme de sous-ensemble :

entree : un ensemble fini d’entiersE et un butt ∈ N ;

sortie : 1 s’il existe E ′ ⊆ E tel que(Σx∈E′x) = t, 0sinon.

Theoreme 2.8. Le probleme “Somme de sous-ensemble”est NP-complet et admet un algorithme pseudo-polynomial.

L’algorithme pseudo-polynomial utilise les conceptsde la programmation dynamique.

47

Page 48: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Definition 2.7. (NP-complet au sens fort) Un problemeest NP-complet au sens fort, s’il reste NP-complet memesi le plus grand nombre qui apparaıt dans l’instance estpolynomial par rapporta la taille de l’entree.

Programmation entiere :

entree : une matricek×n notee A, un vecteur de dimen-sionk note b (a coefficients dansZ) ;

sortie : 1, s’il existe des entiers positifsx1, . . . , xn telsqueAx ≥ b, 0 sinon.

Theoreme 2.9. Le probleme “Programmation entiere” estNP-complet au sens fort.

La preuve de NP-durete reduit 3-SATa Programma-tion entiere et seuls les coefficients 1, 0, et -1 sont uti-lises.

Idem pour PVC.

2.5.3 Methodes probabilistes

Algorithmes Monte-Carlo :– temps d’execution polynomial dans tous les cas ;– un resultat faux peutetre produit avec une probabi-

lit e strictement inferieurea 1.

48

Page 49: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

En iterant ce type d’algorithmes, on peut se ramenera une probabilite aussi proche de 0 que l’on veut (cf. laclasse de complexiteRP).

Algorithmes de type Las-Vegas :– temps d’execution polynomial en moyenne ;– reponse exacte.

(cf. la classe de complexiteZPP (= RP∩ co-RP)). Com-plexite en moyenne plutot que complexite dans le piredes cas (mais les preuves sont plus dures que dans le piredes cas).

Du point de vue de la complexite, on considere desmachines de Turing non deterministes dont les modesd’acceptation sont differents des classes non probabilistes.Introduction de nouvelles classes de complexite : RP,ZPP, PP, BPP, . . .

2.5.4 Complexite parametree

Couverture de sommets resoluble en tempsO(p(n)k)

ou n est la taille de l’entree etp(.) est un polynome.

Ensemble dominant :

entree : un graphe non orienteG = (S, A), un entierk ;

49

Page 50: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

sortie : 1 s’il existe S ′ ⊆ S tel que |S ′| = k et pouru ∈ S, soit u ∈ S ′, soit u a un voisin dansS ′, 0sinon.

Theoreme 2.10. Ensemble dominant est un probleme NP-complet.

Ensemble dominant resoluble en tempsO(p(n)k) ou n

est la taille de l’entree etp(.) est un polynome.

Peut-oneviter d’avoirk en exposant ?

Par exemple, existe-t-il un algorithme en tempsO(f (k)×p(n)) ou p(.) est un polynome ?

Amelioration sensible en pratique sik varie peu (oune prend que quelques valeurs).

Theoreme 2.11. Il existe un algorithme pour couverturede sommets en tempsO((53

40)k × k2 + (k × n)).

Il est peu probable qu’il existe un algorithme enO(f (k)×p(n)) pour le probleme de l’ensemble dominant, d’apresun resultat de la theorie de la complexite parametree (la“W[2]-completude” de la version parametree du probleme).

Complexite parametree : branche de la theorie de lacomplexite qui distingue des parametres dans les ins-

50

Page 51: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

tances d’un probleme et qui analyse les couts algorithmesen tenant compte de cette distinction.

2.5.5 Algorithmes d’approximations

Definition 2.8. (probleme d’optimisation) Un problemed’optimisation est une structureP = 〈L1, L2, R, val, but〉tel que :

– L1 ⊆ Σ∗, ensemble d’instances ;– L2 ⊆ Σ∗, ensemble de solutions ;– R ⊆ L1 × L2 (relier les solutions aux instances),

(x, y) ∈ R : y est une solution dex ;– val : R→ D (D = N, Q, R, . . .) ;– but ∈ {max, min}.

Exemple 2.12. CLIQUE :– L1 : codages des graphes non orientes ;– L2 : codages des ensembles de sommets dans un

graphe ;– R : cliques de graphes ;– val : R→ N, cardinalite de la clique ;– but = max.

Terminologie :– max : objectif.

51

Page 52: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

– min : cout.

Etant donne un probleme d’optimisationP , on peutdefinir plusieurs problemes :

– Probleme de decision :

entree : x ∈ Σ∗, k ∈ D ;

sortie : 1 s’il existe(x, y) ∈ R avecval(x, y) ≥ k

si but = max [resp. avecval(x, y) ≤ k si but =

min], 0 sinon.

– Probleme de recherche :

entree : x ∈ Σ∗, k ∈ D ;

sortie : y s’il existe (x, y) ∈ R avecval(x, y) ≥ k

si but = max [resp. avecval(x, y) ≤ k si but =

min], 0 sinon.

– Probleme d’optimisation :

entree : x ∈ Σ∗ ;

sortie : but{val(x, y) : (x, y) ∈ R}.– Probleme d’optimisation constructif :

entree : x ∈ Σ∗ ;

sortie : y′ tel que(x, y′) ∈ R etval(x, y′) = but{val(x, y) :

(x, y) ∈ R}.

52

Page 53: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Les problemes sont par ordre croissant de difficulte, enparticulier sival(x, y) se calcule en temps polynomial en|x| + |y|.

Lemme 2.13. SoitP = 〈L1, L2, R, val, but〉 tel queD =

N, et but{val(x, y) : (x, y) ∈ R} ≤ 2p(|x|) pour toutx, ou p(.) est un polynome. Le probleme d’optimisationpeutetre resolu en temps polynomial ssi le probleme dedecision peutetre resolu en temps polynomial.

Preuve.De facon immediate, si le probleme d’optimisa-tion peutetre resolu en temps polynomial alors le problemede decision peutetre resolu en temps polynomial. Unseul appela l’algorithme du probleme d’optimisation resoudle probleme de decision.

Reciproquement, en utilisant une simple dichotomie,le probleme d’optimisation peutetre resolu avecp(|x|)appelsa l’algorithme du probleme de decision. C.Q.F.D.

53

Page 54: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

3 Algorithmes d’approximation

On considere des problemes d’optimisation construc-tifs de la forme :

entree : x ∈ Σ∗ ;

sortie : y′ tel que(x, y′) ∈ R etval(x, y′) = but{val(x, y) :

(x, y) ∈ R}.ou toutes les valeurs sont dansN.

3.1 Bornes de performance pour les algorithmes d’approxima-tion

Definition 3.1. (borneρ(n)) Un algorithme pour un problemed’optimisation constructif a une borneρ(n) si pour touteentreex de taillen, la solution produitey verifie

max(C

C∗,C∗

C) ≤ ρ(n),

ou C = val(x, y) etC∗ = but{val(x, y′) : (x, y′) ∈ R}.Les deux rapports dans la definition permettent de trai-

ter les casbut = min et but = max.Il peut etre quelquefois plus commode de travailler

avec une erreur relative.

Definition 3.2. (erreur relativeε(n)) Un algorithme pourun probleme d’optimisation constructif a une erreur re-lative ε(n) si pour toute entreex de taillen, la solution

54

Page 55: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

produitey verifie

|C − C∗|max(C, C∗)

≤ ε(n),

ou C = val(x, y) etC∗ = but{val(x, y′) : (x, y′) ∈ R}.

Le maximum dans le denominateur permet de traiterles casbut = min et but = max.

Lemme 3.1. Si on poseε(n) = max|x|=n|C−C∗|

C∗ etρ(n) =

max|x|=nmax( CC∗ ,

C∗

C ), alorsε(n) ≤ ρ(n)− 1.

Definition 3.3. (schema d’approximation polynomial) Unprobleme d’optimisationP a un schema d’approxima-tion polynomial si pour toute constanteε > 0, il existeun algorithme (en temps) polynomial pourP ayant uneerreur relativeε.

On peut esperer encore un peu mieux :

Definition 3.4. (schema d’approximation entierement po-lynomial) Un probleme d’optimisationP a un schemad’approximation entierement polynomial si pour touteconstanteε > 0, il existe un algorithme pourP poly-nomial en1

ε et en la taille de l’entree ayant une erreurrelativeε.

Le temps d’execution peutetre par exemple de l’ordrede 1

ε3× n2.

55

Page 56: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

3.2 Techniques de conception des algorithmes d’approxima-tion

– methode gloutonne (heuristique simple mais pas detres bonne qualite),

– programmation dynamique,– programmation lineaire (on arrondit les solutions),– recherche locale,– algorithmes probabilistes.

3.3 Le probleme de la couverture de sommet

Le probleme d’optimisation constructif associe au problemede couverture de sommets consistea rechercher une cou-verture de sommet ayant un nombre mimimal de som-mets.

COUVERTURE-SOMMET-APPROCHEE(G)

1. C ← ∅ ;(C : couverture courante)

2. A′ ← A[G] ;

3. TANT QUEA′ 6= ∅FAIRESoit{u, v} une arete arbitraire deA′.C ← C ∪ {u, v}.Supprimer deA′ toutes les aretes incidentes soita u

soit av.

56

Page 57: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

4. RETOURNERC.

Temps d’execution enO(|A|) (avec une structure dedonnees adequate) et COUVERTURE-SOMMET-APPROCHEE(G)

retourne une couverture de sommets deG.

Theoreme 3.2. COUVERTURE-SOMMET-APPROCHEEpossedeune borne de 2.

Preuve. Soit E l’ensemble courant des aretes choisiesdansA′ ayant donne lieua une augmentation deC.Deux aretes quelconques deE n’ont pas de sommetscommuns.La valeur courante deC verifie |C| = 2× |E|. En parti-culier |Cfin| = 2× |Efin|.Toute couverture deG, et en particulier une couvertureminimaleC∗, doit contenir au moins un sommet par aretedeEfin. Ainsi |C∗| ≥ |Efin|.Par consequent le cardinal de COUVERTURE-SOMMET-APPROCHEE(G) est au plus2× |C∗|. C.Q.F.D.

57

Page 58: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

3.4 Le probleme du voyageur de commerce

3.4.1 Le probleme avec inegalite triangulaire

Definition 3.5. (cout) Soit G = (S, A) un graphe nonoriente complet muni d’une fonction de cout c : A→ N.PourE = e1 · · · en ∈ A∗, c(E) = Σc(ei).

Inegalite triangulaire : pouru, v, w ∈ S,

c(u, w) ≤ c(u, v) + c(v, w).

Condition naturelle pour de nombreux graphes. Ons’interesse ici aux instances de PVC verifiant l’inegalitetriangulaire.

Quelques rappels :

1. un arbre couvrantT pourG = (S, A) graphe connexenon oriente est un sous-ensemble deA formant unarbre couvrant tous les sommets deS.

2. algorithme de Prim calculant un arbre couvrant depoids minimal en tempsO(|S|2) avec le graphe representepar une matrice d’adjacence.

TOURNEE-PVC-APPROCHEE(G, c)

1. choisir un sommetr ∈ S[G] (la racine) ;

58

Page 59: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

2. construire un arbre couvrant de poids minimalT pourG a partir de la raciner (a l’aide de PRIM-ACM(G, c, r)) ;

3. soitL la liste des sommets visites lors d’un parcoursprefixe deT ;

4. RETOURNER le cycle hamiltonienH qui visite lessommets dans l’ordre deL.

Temps de calcul enO(|S|2).Derouler l’algorithme sur [CLR94, Figure 37.2].

59

Page 60: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Theoreme 3.3. TOURNEE-PVC-APPROCHEEpossede uneborne de 2 pour les instances du probleme du voyageurde commerce verifiant l’inegalite triangulaire.

Preuve.SoitH∗ une tournee optimale etH la tournee re-tournee par TOURNEE-PVC-APPROCHEE(G, c). Nous al-lons montrer quec(H) ≤ 2× c(H∗).

En enlevant une aretea H∗, on obtient un arbre cou-vrant T ∗ de poids inferieura c(H∗) (puisque l’on a en-leve une arete). Donc pour tout arbre couvrant de poidsminimalT ′ pourG,

c(T ′) ≤ c(T ∗) ≤ c(H∗).

En particulierc(T ) ≤ c(H∗) pour l’arbre calcule dansTOURNEE-PVC-APPROCHEE(G, c).

Soit PP un parcours en profondeur deT qui liste lessommets des qu’ils sont visites pour la premiere fois etegalement quand ils sonta nouveau traverses apres la vi-site d’un sous-arbre.

PP visite exactement 2 fois chaque arete et doncc(PP ) =

2× c(T ). Ainsi c(PP ) ≤ 2× c(H∗).CependantPP n’est pas une tournee. SoitH la tournee

obtenuea partir dePP qui consistea ne garder que lapremiere occurrence de chaque sommet. Cela corresponda un parcours prefixe deT . Comme l’inegalite triangu-laire est verifiee,c(H) ≤ c(PP ).

60

Page 61: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

Par consequent,c(H) ≤ 2× c(H∗). C.Q.F.D.

3.4.2 Le probleme general

Dans le cas general (sans la condition de l’inegalitetriangulaire), l’existence d’une borne est improbable (amoins que P = NP).

Theoreme 3.4. Si P 6= NP etρ ≥ 1, il n’existe aucun al-gorithme d’approximation en temps polynomial de borneρ pour le probleme general PVC.

Preuve.Supposons par l’absurde qu’un algorithme d’ap-proximation AA pour PVC en temps polynomial existepour unρ ≥ 1. Sans perte de generalite, supposonsρ en-tier (cela permet de definir c avec des valeurs entieres).

Nous allons montrer comment resoudre CYCLE-HAMen temps polynomial en utilisant AA. Comme CYCLE-HAM est NP-complet, alors cela induit que P = NP.

Soit G = (S, A) une instance de CYCLE-HAM (Ggraphe non oriente). SoitG′ = (S, A′) et c : S × S → Nune instance de PVC definie de la facon suivante :

– A′ = {{u, v} : u, v ∈ S, u 6= v} (completude deG′) ;

– c(u, v) = 1 si {u, v} ∈ A, c(u, v) = ρ × |S| + 1

sinon.

61

Page 62: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

G′ etc peuventetre facilement obtenus en temps polyno-mial en|G|.

Si G possede un chemin Hamiltonien, alorsG′ a unetournee de cout |S|.

Si G ne possede pas de chemin Hamiltonien, alors unetournee deG′ doit utiliser une arete qui n’est pas dansAet donc le cout de cette tournee est au moins

(ρ× |S| + 1) + (|S| − 1) > ρ× |S|.

Ainsi G possede un chemin Hamiltonien ssiG′ a unetournee de cout |S|.

Si G possede un chemin Hamiltonien, alors AA re-tourne obligatoirement la tournee de cout |S| gracea laborneρ et a l’ecart entre|S| et ρ × |S| + 1. Si G nepossede pas de chemin Hamiltonien, alors AA retourneune tournee de cout superieureaρ×|S|. Ainsi AA decideCYCLE-HAM en temps polynomial. C.Q.F.D.

Exercice 3.1. [CLR94, Exercice 37.2-1]. NP-completudeavec inegalite triangulaire.

Exercice 3.2. [CLR94, Exercice 37.2-2]. Heuristique dupoint le plus proche.

62

Page 63: Algorithmique Magist`ere STIC 2002/2003 Notes de cours S. Demri

References

[CLR94] Th. Cormen, Ch. Leiserson, and R. Rivest.Introduction a l’algorithmique.Dunod, 1994.

[Gar00] B. Garcia. Recherche operationnelle, 2000. Notes de cours accessibles sur leweb.

63