Documente Academic
Documente Profesional
Documente Cultură
PA 2015/2016
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
1 / 37
Outline
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
2 / 37
Problem
a rezolvat
a de un algoritm
Plan
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
3 / 37
Problem
a rezolvat
a de un algoritm
Problema computationala
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
4 / 37
Problem
a rezolvat
a de un algoritm
Domeniul problemei:
consideram secvente a = (a0 , . . . , an1 ) de numere ntregi
segment a[i..j]: (ai , . . . , aj ), unde i j
daca i > j, a[i..j] este secventa vida
lungimea unui segment a[i..j] este j + 1 i
platou este un segment cu toate elementele egale
Input: O secventa a = (a0 , . . . , an1 ) de numere ntregi de lungime n
ordonata crescator.
Output: Lungimea celui mai lung platou.
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
5 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
6 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
7 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
8 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
9 / 37
Problem
a rezolvat
a de un algoritm
Algoritmul PlatouAlg
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
10 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
11 / 37
Problem
a rezolvat
a de un algoritm
Complexitatea algoritmilor
PA 2015/2016
12 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
13 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
14 / 37
Problem
a rezolvat
a de un algoritm
Problema de decizie
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
15 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
16 / 37
Problem
a rezolvat
a de un algoritm
Program universal
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
17 / 37
Problem
a rezolvat
a de un algoritm
Problema opririi:
Instance: O configuratie hA, 0 i, unde A este un algoritm si 0 codificarea
unei intrari pentru A.
Question: Executia care pleaca din configuratia initiala hA, 0 i este finita?
Teorema
Nu exista un algoritm care sa rezolve Problema opririi.
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
18 / 37
Problem
a rezolvat
a de un algoritm
Complexitatea algoritmilor
PA 2015/2016
19 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
20 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
21 / 37
Problem
a rezolvat
a de un algoritm
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
22 / 37
Plan
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
23 / 37
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
24 / 37
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
25 / 37
Plan
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
26 / 37
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
27 / 37
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
28 / 37
Complexitatea spatiu
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
29 / 37
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
30 / 37
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
31 / 37
// l is a linear list
s = emptySet;
forall x in a
// a is a set
if (x % 2 == 0) s = s U singletonSet(x);
Apel de functii (algoritmi):
se estimeaza dimensiunea argumentelor n functie de dimensiunea
instantei n
se utilizeaza complexitatea n cazul cel nefavorabil a algoritmului
apelat, calculata cu dimensiunea argumentelor estimata
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
32 / 37
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
33 / 37
Exemplul 1
input:
output:
n, (a0 , .(
. . , an1 ), z numere ntregi.
min{i | ai = z} dac
a {i | ai = z} =
6 ,
poz =
1
altfel.
i = 0;
while (a[i] != z) and (i < n-1)
i = i+1;
if (a[i] == z) poz = i;
else poz = -1;
Discutia pe tabla.
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
34 / 37
Exemplul 2
input:
output:
max = a[0];
for (i = 1; i < n; i++)
if (a[i] > max)
max = a[i];
Discutia pe tabla.
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
35 / 37
Exemplul 3
input:
output:
Complexitatea algoritmilor
PA 2015/2016
36 / 37
Exemplul 4
input:
output:
istg = 0;
idr = n - 1;
while (istg <= idr ) {
imed = (istg + idr) / 2;
if (a[imed] == z)
return imed
else if (a[imed] > z)
idr = imed-1;
else
istg = imed + 1;
}
return -1
Discutia pe tabla.
S
t. Ciob
ac
a, D. Lucanu (FII - UAIC)
Complexitatea algoritmilor
PA 2015/2016
37 / 37