• Aucun résultat trouvé

M1Info-OptimisationetRechercheOp´erationnelle Cours2-AlgorithmesProbabilistes

N/A
N/A
Protected

Academic year: 2022

Partager "M1Info-OptimisationetRechercheOp´erationnelle Cours2-AlgorithmesProbabilistes"

Copied!
47
0
0

Texte intégral

(1)

Cours 2 - Algorithmes Probabilistes

Coupe Minimum

Semestre Automne 2021-2022 - Universit´e Claude Bernard Lyon 1 Christophe Crespelle

[email protected]

*Merci a A. Parreau et E. Duchene pour le materiel pedagogique ayant servi de base a ces slides.

(2)

• Algos probabilistes :

font des choix de maniere aleatoire

Rq : algo deterministes font aussi des choix !

2/23

(3)

• Algos probabilistes :

font des choix de maniere aleatoire

Rq : algo deterministes font aussi des choix !

Aleatoire= quelconque ! ! !

(4)

• Algos probabilistes :

font des choix de maniere aleatoire

Rq : algo deterministes font aussi des choix !

Aleatoire= quelconque ! ! !

souvent : aleatoirementuniformement

pas toujours, par ex. : choix aleatoire d’un sommet proportionnellement au degre

2/23

(5)

• Algos probabilistes :

font des choix de maniere aleatoire

Rq : algo deterministes font aussi des choix !

Aleatoire= quelconque ! ! !

souvent : aleatoirementuniformement

pas toujours, par ex. : choix aleatoire d’un sommet proportionnellement au degre

• Qu’est-ce qu’on perd ?

→ on obtient pas toujours l’optimum

(6)

• Algos probabilistes :

font des choix de maniere aleatoire

Rq : algo deterministes font aussi des choix !

Aleatoire= quelconque ! ! !

souvent : aleatoirementuniformement

pas toujours, par ex. : choix aleatoire d’un sommet proportionnellement au degre

• Qu’est-ce qu’on perd ?

→ on obtient pas toujours l’optimum

• Qu’est-ce qu’on gagne ?

→ la complexite de l’algo baisse

par exemple : exponentielpolynomial

ici :O(n3m2)O(n4logn)

2/23

(7)

• Algos probabilistes :

font des choix de maniere aleatoire

Rq : algo deterministes font aussi des choix !

Aleatoire= quelconque ! ! !

souvent : aleatoirementuniformement

pas toujours, par ex. : choix aleatoire d’un sommet proportionnellement au degre

• Qu’est-ce qu’on perd ?

→ on obtient pas toujours l’optimum

• Qu’est-ce qu’on gagne ?

→ la complexite de l’algo baisse

par exemple : exponentielpolynomial

ici :O(n3m2)O(n4logn)

• Pourquoi ca marche ?

tout depend de la probabilite d’obtenir l’optimum → pas trop faible

(8)

• Entr´ee :un multigraphe non oriente (aretes multiples possibles pour un couple de sommet)

3/23

(9)

• Entr´ee :un multigraphe non oriente (aretes multiples possibles pour un couple de sommet)

• Sortie :une coupe (U,U) deG (=bipartition de V(G)) ayant le nombre minimum d’aretes qui traversent

(10)

• Entr´ee :un multigraphe non oriente (aretes multiples possibles pour un couple de sommet)

• Sortie :une coupe (U,U) deG (=bipartition de V(G)) ayant le nombre minimum d’aretes qui traversent

Ex. 1 :

a

b c

d

e

3/23

(11)

• Entr´ee :un multigraphe non oriente (aretes multiples possibles pour un couple de sommet)

• Sortie :une coupe (U,U) deG (=bipartition de V(G)) ayant le nombre minimum d’aretes qui traversent

Differences avec precedemment :

• ni puits ni source

• graphe non oriente (cas particulier de graphe oriente)

• aretes multiples (equiv. capacites entieres)

(12)

• Entr´ee :un multigraphe non oriente (aretes multiples possibles pour un couple de sommet)

• Sortie :une coupe (U,U) deG (=bipartition de V(G)) ayant le nombre minimum d’aretes qui traversent

Ex. 2 :

5/23

(13)

• Entr´ee :un multigraphe non oriente (aretes multiples possibles pour un couple de sommet)

• Sortie :une coupe (U,U) deG (=bipartition de V(G)) ayant le nombre minimum d’aretes qui traversent

Ex. 3 :

a

b

c

d e

f g

h i

(14)

• Solution ?

7/23

(15)

• Solution ?

n(n−1)/2 fois l’algo d’EK, avec toutes les paires {source,puits} possibles

(16)

• Solution ?

n(n−1)/2 fois l’algo d’EK, avec toutes les paires {source,puits} possibles

• Complexite ?

7/23

(17)

• Solution ?

n(n−1)/2 fois l’algo d’EK, avec toutes les paires {source,puits} possibles

• Complexite ? O(n3m2)

(O(n3m) avec le meilleur algo connu pour le flot max, qui est en O(nm))

(18)

• Solution ?

n(n−1)/2 fois l’algo d’EK, avec toutes les paires {source,puits} possibles

• Complexite ? O(n3m2)

(O(n3m) avec le meilleur algo connu pour le flot max, qui est en O(nm))

• Algo probabiliste :

On va faire un algo probabiliste enO(n4logn) (le meilleur algo proba est enO(n2log3n))

7/23

(19)

• Solution ?

n(n−1)/2 fois l’algo d’EK, avec toutes les paires {source,puits} possibles

• Complexite ? O(n3m2)

(O(n3m) avec le meilleur algo connu pour le flot max, qui est en O(nm))

• Algo probabiliste :

On va faire un algo probabiliste enO(n4logn) (le meilleur algo proba est enO(n2log3n))

et en plus d’une simplicite deconcertante !

(20)

• Algo probabiliste ⇒ deux executions ne donnent pas le meme resultat !

• On l’execute plusieurs (= beaucoup de) fois et on garde la meilleure solution

8/23

(21)

• Algo probabiliste ⇒ deux executions ne donnent pas le meme resultat !

• On l’execute plusieurs (= beaucoup de) fois et on garde la meilleure solution

• Deux questions :

Quelle est la proba d’obtenir une solution optimale ?

Il faut faire combien d’essais ?

(22)

• Algo probabiliste ⇒ deux executions ne donnent pas le meme resultat !

• On l’execute plusieurs (= beaucoup de) fois et on garde la meilleure solution

• Deux questions :

Quelle est la proba d’obtenir une solution optimale ?

Il faut faire combien d’essais ?

On veut proba1 lorsque la taille de l’entree+ (Waouh !)

8/23

(23)

• Algo probabiliste ⇒ deux executions ne donnent pas le meme resultat !

• On l’execute plusieurs (= beaucoup de) fois et on garde la meilleure solution

• Deux questions :

Quelle est la proba d’obtenir une solution optimale ?

Il faut faire combien d’essais ?

On veut proba1 lorsque la taille de l’entree+ (Waouh !)

... en fait, ca suffit que la proba soit une constante.

(24)

9/23

(25)

D´efinition (contraction d’arete)

SoitG = (V,E) un multigraphe sans boucle etuv une arete deG. Le raphe contracte deG selon l’arete uv, noteG/uv, est defini par G/uv = (V\ {u},E\ {{ux |x ∈N(u)}}∪{{vx |ux ∈E et x�=v}}).

(26)

Algorithme 1 :Algorithme Contraction Aleatoire

1 pourtout v ∈V faire

2 S(v)←{v}

3 fin

4 tant que|V|>2 faire

5 choisir une areteuv de G uniformement aleatoirement;

6 G ←G/uv;

7 S(v)←S(v)∪S(u);

8 fin

9 retournerla coupe (S(x),S(y)) ; (ou{x,y}=V)

11/23

(27)

a

b

c

d

e f

(28)

• l’algo fait toujoursn−2 contractions, pour finir avec un graphe a 2 sommets

• on note k la taille d’une coupe minimum deG

• onfixe une coupe minimum C = (X,Y) deG et on calcule la proba que l’algo retourne la coupeC

• Rq. : l’algo retourneC ssi il ne contracte aucune arete traversant C

13/23

(29)

a

b c

d

e

f

g

h

C

(30)

• A la premiere contraction, la proba p de choisir une arete ne traversant pas C est p= 1−mk.

• on note Ej l’evenement suivant : ”a la jeme iteration de la boucle principale, l’arete uv selectionnee ne traverse pas C”

• on calcule la proba pj =Pr[Ej|j−1

i=1

Ei]

• Gj le graphe avant l’iteration j, dans l’evenement

j−1 i=1

Ei

15/23

(31)

• Gj a exactementn−j + 1 sommets et la coupe minimum de Gj a taillek

a

b c

d

e

f

g

h

C

(32)

• Gj a exactementn−j + 1 sommets et la coupe minimum de Gj a taillek

• ainsi, le degre minimum dans Gj est au moins k, et donc Gj a au moinsk(n−j+ 1)/2 aretes.

17/23

(33)

• Gj a exactementn−j + 1 sommets et la coupe minimum de Gj a taillek

• ainsi, le degre minimum dans Gj est au moins k, et donc Gj a au moinsk(n−j+ 1)/2 aretes.

• on obtient 1−pj =Pr[Ej|

j1 i=1

Ei]≤k/(k(n−j+ 1)/2) = 2/(n−j + 1)

(34)

• Gj a exactementn−j + 1 sommets et la coupe minimum de Gj a taillek

• ainsi, le degre minimum dans Gj est au moins k, et donc Gj a au moinsk(n−j+ 1)/2 aretes.

• on obtient 1−pj =Pr[Ej|

j1 i=1

Ei]≤k/(k(n−j+ 1)/2) = 2/(n−j + 1)

• d’oupj ≥1−2/(n−j + 1) = (n−j−1)/(n−j+ 1)

17/23

(35)

• commePr[A∩B] =Pr[A|B]×Pr[B], on obtient p =Pr[n−2

j=1

Ej] =n−2

j=1

pj

(36)

• commePr[A∩B] =Pr[A|B]×Pr[B], on obtient p =Pr[n−2

j=1

Ej] =n−2

j=1

pj

• ainsi la proba d’obtenir la coupe minimum C par l’algo est p ≥ n−2

n ×n−3

n−1 ×n−4

n−2× · · · ×3 5 ×2

4 ×1

3 = 2

n(n−1)

18/23

(37)

• commePr[A∩B] =Pr[A|B]×Pr[B], on obtient p =Pr[n−2

j=1

Ej] =n−2

j=1

pj

• ainsi la proba d’obtenir la coupe minimum C par l’algo est p ≥ n−2

n ×n−3

n−1 ×n−4

n−2× · · · ×3 5 ×2

4 ×1

3 = 2

n(n−1)

• on fait maintenant t iterations de l’algo de contraction, chacune ayant une proba de succes p

(38)

• commePr[A∩B] =Pr[A|B]×Pr[B], on obtient p =Pr[n−2

j=1

Ej] =n−2

j=1

pj

• ainsi la proba d’obtenir la coupe minimum C par l’algo est p ≥ n−2

n ×n−3

n−1 ×n−4

n−2× · · · ×3 5 ×2

4 ×1

3 = 2

n(n−1)

• on fait maintenant t iterations de l’algo de contraction, chacune ayant une proba de succes p

• Comment choisir t pour avoir une proba constante de trouver la coupe C dans au moins une des t iterations ?

18/23

(39)

• la proba de ne trouverC dans aucune dest executions est pechec = (1−p)t

(40)

• la proba de ne trouverC dans aucune dest executions est pechec = (1−p)t

• maths ⇒ (1−p)1p ≤1/e

19/23

(41)

• la proba de ne trouverC dans aucune dest executions est pechec = (1−p)t

• maths ⇒ (1−p)1p ≤1/e

• en faisant t = 1p executions de l’algo, on obtient pechec ≤1/e =cte

(42)

• la proba de ne trouverC dans aucune dest executions est pechec = (1−p)t

• maths ⇒ (1−p)1p ≤1/e

• en faisant t = 1p executions de l’algo, on obtient pechec ≤1/e =cte

• pour avoirpechec →0, on peut faire par exemple t= logpn executions de l’algo et on obtient pechec ≤(1/e)logn= 1/n

19/23

(43)

• la proba de ne trouverC dans aucune dest executions est pechec = (1−p)t

• maths ⇒ (1−p)1p ≤1/e

• en faisant t = 1p executions de l’algo, on obtient pechec ≤1/e =cte

• pour avoirpechec →0, on peut faire par exemple t= logpn executions de l’algo et on obtient pechec ≤(1/e)logn= 1/n

• c’est a dire que la proba de trouver une coupe minimum C fixee apres n(n1) log2 n executions de l’algo contraction est au moins 1−n1 →1 quandn →+∞

(44)

• soit f(n) la complexite de l’algo de contraction, la complexite totale de l’algo proba pour coupe minimum est

O(f(n)·n2logn)

• Complexite de Contraction ?

boucle principale :O(n) fois

ligne 5 :O(1)

ligne 6 :O(n)

ligne 7 :O(n)

complexite totale : O(n2)

20/23

(45)

• Algo avec proba de succesp ≥1−1n et complexiteO(n4logn)

• rien n’empeche de :

ne faire quet = n(n−1)2 executions :p11e et complexite O(n4)

fairet = log 1000n(n−1)2 executions :p110001 et complexiteO(n4) (la cte=log 1000 est cachee dans leO(.))

fairet=n·n(n−1)2 executions :p1e1n et complexiteO(n5)

(46)

Questions subsidiaires :

• Mq il y a au plusO(n2) coupe minimum dans un graphe

• Mq il peut y avoirΩ(2n) s,t-coupe minimum dans un graphe

22/23

(47)

⇒C’est celle qu’on adoptera pour le TP.

Références

Documents relatifs

Les sommets pourront ˆetre rang´es dans un vecteur ou liste; le num´ero d’ordre du sommet... Ecrire une fonction ou une proc´edure qui prend en entr´ee les nombres ´ d et N et

Définir une fonction chemins qui pour un couple de sommets (i, j) affiche tous les chemins allant du sommet i au

Le premier résultat facilement accessible est celui des types de faces possibles, en lien avec le degré d'un sommet. Pour des raisons relativement évidentes, dans un

La solu- tion que nous proposons est de repr´esenter chaque entr´ee de la grammaire par un couple form´e d’une part d’une structure syntaxique sp´ecifique au formalisme et,

Le premier résultat facilement accessible est celui des types de faces possibles, en lien avec le degré d'un sommet. Pour des raisons relativement évidentes, dans un polyèdre

pour un couple de mots ; les étiquettes du nœud non terminal pour un couple de segments ; la catégorie des étiquettes (i.e. verbe ! syntagme verbal) pour un mot traduit par un

A chaque fois qu’un processus ouvre un nouveau fichier, le syst` eme cr´ ee une nouvelle entr´ ee dans la table des descripteurs du processus, ainsi qu’une nouvelle entr´ ee dans

1) Choix multiples : Plusieurs réponses sont possibles.. /3. 3) Qu’est-ce que le principe de