Documente Academic
Documente Profesional
Documente Cultură
Dorel Lucanu
Faculty of Computer Science
Alexandru Ioan Cuza University, Iasi, Romania
dlucanu@info.uaic.ro
PA 2014/2015
Complexitatea medie
PA 2014/2015
1 / 44
Outline
k-mediana
Complexitatea medie
PA 2014/2015
2 / 44
Plan
k-mediana
Complexitatea medie
PA 2014/2015
3 / 44
Motivatie
Complexitatea medie
PA 2014/2015
4 / 44
Sursa: http://hyperphysics.phy-astr.gsu.edu/hbase/math/dice.html
pi = P(V = xi ) - probabilitatea cu P
care V ia valoare xi
Media variabilei aleatorii: M(V ) = i xi pi
D. Lucanu (FII - UAIC)
Complexitatea medie
PA 2014/2015
5 / 44
M(V ) = 7
D. Lucanu (FII - UAIC)
Complexitatea medie
PA 2014/2015
6 / 44
Definitie
Pentru a putea calcula comportarea n medie este necesar sa privim
marimea TA (p) ca fiind o variabila aleatorie:
o experienta = executia algoritmului pentru o instanta p,
valoarea experientei = durata executiei algoritmului pentru instanta
p) si sa precizam legea de repartitie a acestei variabile aleatorie.
Apoi, comportarea n medie se calculeaza ca fiind media acestei variabile
aleatoare (consideram numai cazul timpului de executie):
TAmed (n) = M({TA (p) | p P g (p) = n})
Daca multimea valorilor variabilei aleatoare TA (p) = {x0 , x1 , . . . } este
finita sau numarabila si probabilitatea ca TA (p) = xi este pi , atunci media
variabilei aleatorie TA (timpul mediu de executie) este:
X
TAmed (n) =
xi pi
i
D. Lucanu (FII - UAIC)
Complexitatea medie
PA 2014/2015
7 / 44
Exemplu
Complexitatea medie
PA 2014/2015
8 / 44
Algoritm pentru P1
Complexitatea medie
PA 2014/2015
9 / 44
D. Lucanu
n
P
n1
P
q
q
(3i + 2) + ( + (1 q)) (3n + 2)
n
i=1
i=1 n
3nq
3q
= 3n
+
+2
2
2
3n
7
(FII - UAIC)
Complexitatea medie
PA 2014/2015
med
TAmed (n)
pi xi =
10 / 44
Quicksort determinist
Plan
k-mediana
Complexitatea medie
PA 2014/2015
11 / 44
Quicksort determinist
Quicksort: descriere
Este proiectat pe paradigma divide-et-impera.
Se considera o multime peste care este definita o relatie de ordine liniara
<.
Algoritmul Quicksort
Intrare: S = {a0 , . . . , an1 }
Iesire: o secventa cu elementele ai n ordine crescatoare
1
calculeaza
S< = {ai | ai < x} S= = {ai | ai = x} S> = {ai | ai > x}
Complexitatea medie
PA 2014/2015
12 / 44
Quicksort determinist
Quicksort: partitionarea
Presupunem ca S este memorata ntr-un tablou a.
Se determinarea prin interschimbari a unui indice k cu proprietatile:
p k q si a[k] = x;
i : p i k = a[i] a[k];
j : k < j q = a[k] a[j];
Partitionarea tabloului se face prin interschimbari care mentin invariante
proprietati asemanatoare cu cele de mai sus. Se considera doua variabile
index: i cu care se parcurge tabloul de la stanga la dreapta si j cu care se
parcurge tabloul de la dreapta la stanga. Initial se ia i = p + 1 si j = q.
Proprietatile mentinute invariante n timpul procesului de partitionare sunt:
i 0 : p i 0 < i = a[i 0 ] x
(1)
j 0 : j < j 0 q = a[j 0 ] x
(2)
si
D. Lucanu (FII - UAIC)
Complexitatea medie
PA 2014/2015
13 / 44
Quicksort determinist
Quicksort: partitionarea
Operatiile de mai sus sunt repetate pana cand i devine mai mare decat j.
Considerand k = i 1 si interschimband a[p] cu a[k] obtinem
partitionarea dorita a tabloului.
Complexitatea medie
PA 2014/2015
14 / 44
Quicksort determinist
Complexitatea medie
a[i] a[k] si j :
PA 2014/2015
15 / 44
Quicksort determinist
Quicksort: algoritm
Dupa sortarea recursiva a subtablourilor a[p..k 1] si a[k + 1..q] se
observa ca tabloul este sortat deja. Astfel partea de asamblare a solutiilor
este vida.
@input: a = (a[p], . . . , a[q])
@output: elementele secventei a n ordine cresc
atoare
qsort(a, p, q) {
if (p < q) {
partitioneaza(a, p, q, k)
qSort(a, p, k)
qSort(a, k+1, q)
}
}
Complexitatea medie
PA 2014/2015
16 / 44
Quicksort determinist
Complexitatea medie
PA 2014/2015
17 / 44
Quicksort determinist
n
(n 1) + 1 P (T med (i 1) + T med (n i)) , daca n 1
med
n i=1
T
(n) =
1
, daca n = 0
Teorema
Complexitatea medie a algoritmului QuickSort este O(n log2 n).
D. Lucanu (FII - UAIC)
Complexitatea medie
PA 2014/2015
18 / 44
Plan
k-mediana
Complexitatea medie
PA 2014/2015
19 / 44
Agoritmi nedeterministi
Plan
k-mediana
Complexitatea medie
PA 2014/2015
20 / 44
Agoritmi nedeterministi
Definitie
Activitatea unui algoritm nedeterminist se desfasoara n doua etape: ntr-o prima
etapa se ghiceste o anumita structura S si n etapa a doua se verifica daca S
satisface o conditia de rezolvare a problemei. Putem adauga puteri magice de
ghicire unui limbaj de programare adaugandu-i o functie de forma:
random(N) care ntoarce un numar aleatoriu din multimea
{0, 1, . . . , n 1}.
Pentru a sti daca verificarea s-a terminat cu succes sau nu adauga si doua
instructiuni de terminare:
success care semnaleaza terminarea verificarii (si a a algoritmului) cu
succes, si
failure care semnaleaza terminarea verificarii (si a a algoritmului) fara
succes.
Aceasta definitie a algoritmilor nedeterministi este strans legata de rezolvarea
problemelor de decizie. Reamintim ca, n general, orice problema poate fi redusa
la rezolvarea unei probleme de decizie.
D. Lucanu (FII - UAIC)
Complexitatea medie
PA 2014/2015
21 / 44
Agoritmi nedeterministi
Complexitatea medie
PA 2014/2015
22 / 44
Agoritmi nedeterministi
exp() {
return
}
x[0] = random(2);
x[1] = random(2);
x[2] = random(2);
if (exp() == 1) success;
else failure;
Complexitatea medie
PA 2014/2015
23 / 44
Agoritmi nedeterministi
}
{ .Map }" -cSEED="1212"
Complexitatea medie
PA 2014/2015
24 / 44
Algoritmi probabilisti
Plan
k-mediana
Complexitatea medie
PA 2014/2015
25 / 44
Algoritmi probabilisti
Definitii
Exista doua puncte de vedere:
1. algoritmul probabilist este vazut ca un algoritm nedeterminist
pentru care exista o distributie de probabilitate peste alegerile
nedetermiste
2. algoritmul probabilist este un algoritm care are o intrare
suplimentara ce consta ntr-o secventa de biti aleatorii;
e echivalent cu a spune ca algoritmul probabilist consta n o multime
de algoritmi determinissti din care un algoritm este ales aleatoriu
pentru o intrare data
pentru o intrare x a problemei date, calculele algoritmului probabilist
pot diferi n functie de e secventa
actuala de biti aleatori
Complexitatea medie
PA 2014/2015
26 / 44
Algoritmi probabilisti
Complexitatea medie
PA 2014/2015
27 / 44
Quicksort probabilist
Plan
k-mediana
Complexitatea medie
PA 2014/2015
28 / 44
Quicksort probabilist
Randomized Quicksort
- exemplul canonic pentru algoritmii Las Vegas
Algoritmul RQS
Intrare: S = {a0 , . . . , an1 }
Iesire: elementele ai n ordine crescatoare
1
daca n = 1 ntoarce a0 ,
calculeaza
S< = {ai | ai < ak }
S= = {ai | ai = ak }
S> = {ai | ai > ak }
Complexitatea medie
PA 2014/2015
29 / 44
Quicksort probabilist
Complexitatea medie
PA 2014/2015
30 / 44
Quicksort probabilist
2
(probabilitatea ca arank(i) sau arank(j) sa fie ales pivot)
j i +1
n1 X
X
pij =
i=0 j>i
n1 X
X
i=0 j>i
n1 X
n
X
2
j i +1
2
k
i=0 k=1
n X
n
X
=2
i=1 k=1
n
X
= 2n
k=1
D. Lucanu (FII - UAIC)
1
k
1
k
Complexitatea medie
PA 2014/2015
31 / 44
Quicksort probabilist
Teorema
Numarul mediu de comparatii ntr-o executie al algoritmului RQS este cel
mult 2nHn = O(n log n).
Complexitatea medie
PA 2014/2015
32 / 44
k-mediana
Plan
k-mediana
Complexitatea medie
PA 2014/2015
33 / 44
k-mediana
k-mediana: definitie
Definitie
Fie S o lista cu n elemente dintr-o multime univers total ordonata.
k-mediana este cel de-al k-lea element din lista sortata a elementelor din
S. In alte cuvinte, k-mediana este un element x {a[0], . . . , a[n 1]} cu
proprietatile |{i | 0 i < n a[i] < x}| < k si
|{i | 0 i < n a[i] x}| k (daca toate lelementele din S sunt
distincte, atunci avem egalitate n ultima relatie).
Complexitatea medie
PA 2014/2015
34 / 44
k-mediana
Complexitatea medie
PA 2014/2015
35 / 44
k-mediana
k-mediana: problema
Complexitatea medie
PA 2014/2015
36 / 44
k-mediana
Complexitatea medie
PA 2014/2015
37 / 44
k-mediana
Complexitatea medie
PA 2014/2015
38 / 44
k-mediana
Complexitatea medie
PA 2014/2015
39 / 44
k-mediana
k-mediana: analiza
Complexitatea medie
PA 2014/2015
40 / 44
k-mediana
k
n
2
n1
3n 6
4(n 1)
k
n
k=(n+1)/2
k
n
2
n1
3n 1
4n
La limit
a se obtine n ambele cazuri
3
4
n
2
+ 1, . . . , n 1, cu probabilitatea
2
n1
. Rezult
a media egal
a cu
3
4
,k =
1
n
k
n
,k =
n+1
2
, . . . , n 1, cu probabilitatea
2
n1
. Rezult
a media egal
a cu
3
4
Complexitatea medie
PA 2014/2015
41 / 44
k-mediana
Complexitatea medie
PA 2014/2015
42 / 44
k-mediana
grupeaza tabloul n
fiecarei grupe;
Complexitatea medie
PA 2014/2015
43 / 44
k-mediana
Complexitatea medie
PA 2014/2015
44 / 44