Avantage des algorithmes probabilistes
Simplicité
Performance
Exemple 1.
Comparer un algorithme déterministe ou probabiliste pour le
problème :
Entrée : un tableau Ade nbooléens, dont au moins 75%
valent VRAI.
Sortie : itel que A[i]vaut VRAI.
2014-10-22
Modèle probabiliste: Algorithmes et Complexité
Introduction.
Avantage des algorithmes probabilistes
Soit p<25%la proportion de FAUX :
•Det :
for i=1..n do { if A[i] return i ; }
•Probabiliste (LV) en temps borné = Kessais :
for t=1..K do { i= rand(1,n) ; if A[i] return i ; }
return ECHEC ; // avec Probabilité d’échec = 1
pK=1
4K,
Pour K=5, prob(échec) <103.Pourk=200, prob(échec) <10120.
•Probabiliste en temps non borné
while(1) { i= rand() ; if A[i] return i ; }
Temps moyen = 1
k=1kpk1(1p)=(1p)1
k=1kpk1.
Or
F(t)=1
k=1ktk1=1
k=1d
dttk=d
dt1
k=1tk=d
dt
1
1t1=1
(1t)2.
Donc Temps moyen = 1
1p=4
3.
Introduction.
Las Vegas, Monte-Carlo, Atlantic City.
Exemple 2 : multiplication avec table erronée
On sait calculer correctement toute addition, mais pour les
multiplications, on utilise Tune table avec au moins 90%de
données correctes. 56789
525 30 35 40 45
630 36 42 48 52
735 42 49 56 63
840 48 56 64 72
945 52 63 72 81
Comment calculer correctement a⇥b(i.e. T[a,b])?
Algorithme probabiliste :
Soit nr(resp. nc)lenombredelignes(resp.colonnes);
soit ial’indice ligne de aet ibl’indice colonne de b.
1choisir au hasard iu2{0,...,nr1}et iv2{0,...,nc1};
2Lire m1=T[ia+iu,ib+iv],m2=T[ia+iu,iv],
m3=T[iu,ib+iv],m4=T[iu,iv];
3retourner r=m1m2m3+m4.
// soit (a+u)(b+v)(a+u)vu(b+v)+uv,ieab
Modèle probabiliste: Algorithmes et Complexité