Sunteți pe pagina 1din 40

Algoritmi si calculabilitate

lecture #1

Cluj-Napoca

Rodica Potolea
1 martie 2018
Agenda
• Probleme administrative
• Continut curs (despre ce este/nu este
vorba aici)
• Complexitate (recapitulare?)

8-Mar-18 Rodica Potolea, CS, UTCN 2


Administrative stuff
• Rodica Potolea
• Professor, Computer Science Department
• Room C09
• Rodica.Potolea@cs.utcluj.ro

8-Mar-18 Rodica Potolea, CS, UTCN 3


Structura curs
• Curs (joi, 18-20, sala E15)
• Slides and/or blackboard
• Theorems + (informal) Proves
• Analysis
• Pseudocode
• Discussions
• Q&As
• Seminar (joi, 20-22, la 2 saptamani o data sala E15)
• Saptamanal, ~de la jumatatea semestrului (saptamana 7 +/- 1).
• Analiza problematici, prezentare cu analiza si discutii.
• Inscriere la curs, politica FIFO.
• Studiu individual literatura – cari/articole
• subiecte/teme alese individual & decise impreuna din zona:
• NPC
• aproximare
• probleme “duale” …

8-Mar-18 Rodica Potolea, CS, UTCN 4


Evaluare
• FE – closed books&notes 80%
• Subiecte acoperitoare
• Partial la alegere
• Viziune/intelegere personala
• Exemplificari/justificari/discutii si NU
reproducere teorie preluata
• Prezentare seminar + discutii 20%
• Intereseaza intelegerea/calitatea continutului si
a prezentarii/aplicabilitatea/exemplele/felul in
care audienta recepteaza continutul
8-Mar-18 Rodica Potolea, CS, UTCN 5
Syllabus

• Complexitate (lecture#1)
• Timp polinomial, P si NP
• NP completitudine
• Reductibilitate
• Demonstrare NP-comp&Probleme NP-comp
• Reducere NP-comp
• Aplicatii NP-comp
• Aproximari si heuristici
• Strategii fundamentale de proiectare algoritmi
• Masina Turing
• Exemple
8-Mar-18 Rodica Potolea, CS, UTCN 6
Bibliografie
• Cormen, Thomas, Charles Leiserson, Ronald Rivest, and Clifford Stein.
Introduction to Algorithms. 2nd ed. Cambridge, MA: MIT Press, 2001.
ISBN: 9780262032933; 3rd edition available.
• Papadimitriou, C. H. Computational Complexity. 1st ed. Boston:
Addison Wesley Publishing Company, 1994. ISBN: 0201530821.
• Sipser, M. Introduction to the Theory of Computation. 1st ed. Florence,
KY: Thomson/Brooks Cole, 1996. ISBN: 053494728X.
• Articole pe tema NPC, aproximare, probleme duale

8-Mar-18 Rodica Potolea, CS, UTCN 7


Complexitate
• Parametri de evaluat
• Timp de calcul
• Memorie utilizata
• Timp de comunicare
• Cazuri de considerat
• caz = exprimare a structurii datelor de intrare pt a se efectua un nr
min/max/mediu de operatii. Cazul depinde de algoritmul care implementeaza
problema si chiar de implementare
• Favorabil
• Defavorabil
• Mediu
• ACEEASI problema poate avea caz fav/defav diferite pt diferiti algoritmi!!!
• Cum se exprima eficienta algoritmilor
• Evaluare timp de executie
• Expresie timp = f(sec)?
• Nerelevant; depinde de masina pe care ruleaza algoritmul
• t=f(n), n=dimensiunea datelor de intrare
8-Mar-18 Rodica Potolea, CS, UTCN 8
Complexitate
• Cum se compara algoritmii intre ei (masura
relativa)
• Expresiile t(n) ale functiilor care exprima timpul de
executie
• Intereseaza doar comportamentul asimtotic (i.e.
termenul cu cea mai rapida crestere – restul
termenilor aditivi, si constantele multiplicative se
ignora)
• Ex: t1(n)= 3n2+3n+5 si t2(n)= 2n3 + 100n2
+25n+1000 se considera doar t1(n)= 3n2 si t2(n)=
2n3 si de fapt doar t1(n)=n2 si t2(n)=n3
• Eficienta are grade de comparatie (mai
eficient, mai putin eficient)

8-Mar-18 Rodica Potolea, CS, UTCN 9


Complexitate – cont.
• Cum se realizeaza o exprimare absoluta a eficientei?
• Comparatia cu o marime absoluta
• Raportarea timpului de executie al algoritmului la marimea absoluta
a problemei
• Marimi care se evalueaza
• Pt algoritmi O() (big Oh function)
• Pt probleme Ω()
• Algoritmi optimali
• Ω() = O()
• Cazul pt evaluarea O() in estimarea performantei absolute este cel
mai defavorabil (worst)
• Un algoritm este optimal daca timpul de executie in cazul cel mai
defavorabil este de acelasi ordin de marime (of the same order of
magnitude) cu functia Ω a problemei de rezolvat

8-Mar-18 Rodica Potolea, CS, UTCN 10


Complexitate – cont.
• Optimalitatea se raporteaza la o marime
absoluta (Ω – relatie cu problema de rezolvat)
• Optimalitatea NU are grade de comparatie
(i.e. un alg. fie este fie nu este optimal; NU EXISTA
MAI OPTIMAL, MAI PUTIN OPTIMAL!)
• Optimalitatea = raportarea la cazul cel mai
defavorabil (wost case) a ordinului de marime
(justificare)
• Intereseaza comportamentul asimptotic
• O() <= Ω adevarat pt multi algoritmi in caz favorabil sau
chiar caz mediu
• Ex: Sortarea are Ω(n lgn), si multi algoritmi de soratare
(metode directe chiar) au O(1) caz fav si O(n) caz mediu
• Intereseaza comportamentul algoritmului la limita

8-Mar-18 Rodica Potolea, CS, UTCN 11


Complexitate – cont.
• Interpretare O(1): timp constant (independent de
dimensiunea datelor de intrare)
• Comportament asimptotic:
• Pt A1 t(n)= 3n2+3n+5 =>O(n2)
• Pt A2 t(n)= 2n3 + 100n2 +25n+1000 =>O(n3)
• Pt val “reale” (i.e. val n mici in practica) se intampla
ca 100n2 > 3n3 si deci, putem alege A2!
100n2 = 3n3 :3n2 => 100/3=n
Deci pt val mai mici decat 33, termenul 2 creste mai
repede!
Obs: Totdeauna trebuie analizat algoritmul in contextul
problemei/datelor concrete!

8-Mar-18 Rodica Potolea, CS, UTCN 12


Complexitate – cont.
• ftia domina (la lim)
f1(n) domina pe f2(n)
nn n!
n! an, a>1
an bn, a>b
an nb, a>1
logan logb,n b>a>1
logan 1, a>1
• Val ale Ω() pt probleme
• cautare (el dat) Ω(logn)
• Selectie (el cu o proprietate data) Ω(n)
• sortare Ω(n·logn)

8-Mar-18 Rodica Potolea, CS, UTCN 13


Complexitate – cont.

• Timp de executie paralel


• Computation time
• Communication time (data transfer, partial results
transfer, information communication)
• Computation time
• As the number of processors involved increases,
the computation time decreases
• Communication time
• Quite the opposite!!!

8-Mar-18 Rodica Potolea, CS, UTCN 14


Complexitate – cont.

T Diagrama timp de executie

8-Mar-18 Rodica Potolea, CS, UTCN 15


Complexitate – cont.
• Ω caracterizeaza problema, limita inferioara
• O caracterizeaza algoritmul, limita superioara
• Ω = O caz defavorabil + memorie suplimentara
O(1) => algoritm optimal
• Q: Dandu-se o problema, care este cresterea
dimensiunii maximale a datelor de intrare ce poate
fi rezolvata pe un sistem de calcul a carui
performanta (in termeni de viteza de procesare)
creste de v ori? (i.e. cresterea dimensiunii maxime a problemei rezolvabile ca
o functie de cresterea vitezei masinii)

• Cum diferitele clase de algoritmi influenteaza


performantele?
8-Mar-18 Rodica Potolea, CS, UTCN 16
Complexitate – cont.

• Ce tipuri (clase) de algoritmi sunt “interesante” (de


luat in considerare)?
• Fie 2 clase de algoritmi:
• Alg1: polinomial
• Alg2: exponential
• Presupunem constructia unui nou sistem hardwarea
carui viteza de executie creste de V ori
• Q? Cum se modifica dimensiunea maxima a
problemei ce poate fi rezolvata pe masina noua in
termenii dimensiunii maximale pe masina veche si
cresterii de viteza? i.e. n2=f(V,n)

8-Mar-18 Rodica Potolea, CS, UTCN 17


Complexitate – cont.
Alg1: O(nk)
Oper. Timp
M1(veche): nk T
M2(noua): nk T/V
Vnk T
(n2)k= Vnk=(v1/k n)k
Deci, n2= v1/k n
Efect favorabil! Viteza creste de V ori,
dimensiunea de v1/k ori.
8-Mar-18 Rodica Potolea, CS, UTCN 18
Complexitate – cont.
Alg2: O(2n)
Oper. Time
M1(veche): 2n T
M2(noua): 2n T/V
V2n T
(2) n2 = V 2 n =2 lgV + n
Deci n2= n + lgV
Efect defavorabil! Viteza creste de V ori,
dimensiunea cu lgV.
8-Mar-18 Rodica Potolea, CS, UTCN 19
Complexitate – cont.
Viteza noii masi nin termeni ai vechii masini: V2=V ·V1
Alg1: O(nk): n2= v1/k ·n
Alg2: O(2n): n2= n + lgV
Concluzie trista: Indiferent de cate ori crestem vineza masinii, dimesiunea
maxima pentru care se poate rezolva o problema exponentiala creste
cu o constanta aditiva!!!
Solutii?
descompunem problema pe subdomenii;
de ex: 2n : 2n/2 2n/2 = 2 n/2+1
Practic dubleaza dimensiunea de intrare acceptabila. DAR Nu e
posibil totdeauna
solutii aproximative: totdeauna posibil

8-Mar-18 Rodica Potolea, CS, UTCN 20


Complexitate – cont.
• Evaluare alg. Divide et impera
divide_et_impera(n, I, O)
if n<=n0
then metoda_directa(n, I, O)
else divide(n, I1,I2,…,In)
divide_et_impera(n/b,I1,O1) //a apeluri rec.
divide_et_impera(n/b,I2,O2)

divide_et_impera(n/b,In,On)
combina(O1,O2,…,On,O)

8-Mar-18 Rodica Potolea, CS, UTCN 21


Complexitate – cont.
• Ipoteza: f(n) = timpul in afara apelurilor recursive
(div&comb)
• f(n)= nc
t0 daca n<n0

• t(n)= 
at(n/b)+f(n) daca n>=n0

8-Mar-18 Rodica Potolea, CS, UTCN 22


Complexitate – cont.
Arbore de executie
nc
(n/b)c (n/b)c … (n/b)c => a (n/b)c
… (n/b2)c (n/b2)c … (n/b2)c … => a2(n/b2)c

t(n) = nc+ a (n/b)c+ a2(n/b2)c+…
= nc[1+a/bc+(a/bc)2+…(a/bc)logbn-1]
Progresie geometrica: primul termen =1
ratia = a/bc
nr. termeni = logbn

8-Mar-18 Rodica Potolea, CS, UTCN 23


Complexitate – cont.

t(n)= nc[ (a/bc)logbn -1]/[a/bc-1]


Termenul cu crestere asimptotica nc (a/bc)logbn
Cazuri:
1. a<bc => O(nc)
2. a=bc => O(nc·logbn )
3. a>bc => O(?)

8-Mar-18 Rodica Potolea, CS, UTCN 24


Complexitate – cont.

t(n)= nc[ (a/bc)logbn -1]/[a/bc-1] caz 3 a>bc


Termenul cu crestere asimptotica nc (a/bc)logbn
Q?: O(nc (a/bc)logbn)=O(n)
daca da, =?
n =nc (a/bc)logbn : nc
n-c =(a/bc)logbn logb
(-c) logb n = logb n ·logb (a/bc) : logbn
(-c) = logb a-c +c
 = logb a

8-Mar-18 Rodica Potolea, CS, UTCN 25


Complexitate – cont.
Concluzie: daca f(n)= nc
1. a<bc => O(nc)
2. a=bc => O(nc·logbn )
3. a>bc => O(nlogb a) !! Independent de c

Obs: b trebuie sa fie factor de demultiplicare (b>1)


descompunerea sa se realizeze in partitii!
In general fie divide fie combina este O(1)
Ex: qsort combina =implicit (sort insitu)
mergesort divide O(1): se ia mijlocul

8-Mar-18 Rodica Potolea, CS, UTCN 26


Complexitate – cont.
• Cazuri particulare:
1. c=1 => f(n)=n
O(n) daca a<b

t(n)= O(n·logbn ) daca a=b


 O(nlogb a) daca a>b
Ex: qsort a=b=2=>O(n·log2n)=O(n·logn)
Este qsort optimal? Justificare!

8-Mar-18 Rodica Potolea, CS, UTCN 27


Complexitate – cont.
• Cazuri particulare:
2. c=0 => f(n)=ct
Q? Exista astfel de alg? Semnificatia, exemple
N/A daca a<bo  a<1!

t(n)= O(logbn ) daca a<bo  a=1


 O(nlogb a) daca a<bo  a>1
Ex: a=1, b=2 cautarea in BST => O(logn)
a=2, b=2 traversare arbori=> O(n)

8-Mar-18 Rodica Potolea, CS, UTCN 28


NP
• Remember functii O, Ω
• Ω caracterizeaza problema, limita inferioara
• O caracterizeaza algoritmul, limita
superioara
• Ω = O caz defavorabil=> algoritm optimal
• Cresterea dimensiunii maxime a problemei
rezolvabile cu cresterea vitezei masinii:
• n2= k*n1 O(nk)
• n2= k+n1 O(2n) !si k are valoare FOARTE mica (lgV)!

8-Mar-18 Rodica Potolea, CS, UTCN 29


NP - continuare
• Notiuni de baza din teoria NP-completitudinii
• Problema NP: demonstratie a inaccesibilitatii
• Algoritmi de aproximare
• Nr. mare de probleme aparent accesibile sunt
NP-complete!

8-Mar-18 Rodica Potolea, CS, UTCN 30


P
• Accesibile: motivatie
• O(nk) k are valori mici/rezonbabile in practica
• Dimensiunea maxim accesibila corelata direct si
proportional cu viteza (cresterea vitezei masinii de V ori
conduce la o crestere multiplicativa a dimensiunii maxim
solvabile: n2= v1/k *n1
• Problema rezolvabila intr-un model de calcul este
rezolvabila in orice alt model (vezi mai tarziu Masina
Turing)
• Proprietati de inchidere pt ca multimea polinoamelor
este o multime inchisa
8-Mar-18 Rodica Potolea, CS, UTCN 31
Problema abstracta
• Q – problema abstracta
• De optim
• De decizie
• Notatii:
• I=multimea instantelor problemei Q
• S=multimea solutiilor problemei Q
• Ex: Drum-Minim in G=(V,E)
• Justificare: Se da G, kR+, u,vV, ?|d(u,v)|<=k
i=<G,k,u,v> instanta a problemei, atunci
Drum-Minim(i)=1 daca |d(u,v)|<=k
Drum-Minim(i)=0 daca ~|d(u,v)|<=k

8-Mar-18 Rodica Potolea, CS, UTCN 32


Problema abstracta - continuare
• Decizie: solutie asteapta raspuns de tip Da/Nu
• Q:I->S, S={da, nu}, sau S={0, 1}
• Orice problema de optim poate fi transformata intr-o
problema de decizie;
• Ex: Drum optim in graf
• Optim=drum min de la u, v  V.
• Decizie=u, v  V, kN/R,  drum in G de lungime max k?
• iI, Drum (i)=1 (da),  drum de lungime k
Drum (i)=0 (nu), ~ drum de lungime k
• Deci, problema de decizie asociata problemei de optim e
caracterizata un param suplimentar de tip prag
• G, u, v  V, k R+, <G, u, v, k>
8-Mar-18 Rodica Potolea, CS, UTCN 33
Problema abstracta - continuare
• Optim: solutia optima a problemei (o valoare care
trebuie minimizata sau maximizata)
• Pentru a aplica teoria NP-completitudinii,
problema de optim trebuie transformata in una de
decizie
• In NP-comp analizam probleme de decizie, dar asta
nu reprezinta o limitare (vezi in continuare)
• Metodologie: impunerea unei limite valorii de
optimizat (inf pt. max ^ sup pt min)
• Ex: Drum-Minim devine Drum prin impunerea unui k
maxim!
8-Mar-18 Rodica Potolea, CS, UTCN 34
Problema abstracta - continuare
• NP-completitudine
• Restrictia doar la rezolvarea problemelor de
decizie NU reprezinta o limitare
• Solutie “rapida” problema de optim => solutie
“rapida” la o problema de decizie
corespunzatoare (impunerea limitei valorii de
optimizat chiar valoarea regasita de solutia
optima)
• Invers? Relevanta la NP completitudine?
• Relatia (echivalenta) intre propozitia
conditionala si contapozitiva
8-Mar-18 Rodica Potolea, CS, UTCN 35
Logica - remember
• Propozitie conditionala: P -> Q
• Propozitie reciproca: Q -> P
• Propozitie inversa: ~P ->~Q
• Propozitie contrapozitiva: ~Q ->~P
Propozitii echivalente logic:
conditionala cu contrapozitiva
reciproca cu inversa
Daca A atunci B  Daca Nu B antunci Nu A.

8-Mar-18 Rodica Potolea, CS, UTCN 36


Echivalenta propozitie conditionala/
contrapozitiva
• Propozitie conditionala:• Contrapozitiva:
P->Q ~Q->~P
P Q P->Q P Q ~P ~Q ~Q->~P

1 1 1 1 1 0 0 1
1 0 0 1 0 0 1 0
0 1 1 0 1 1 0 1
0 0 1 0 0 1 1 1

P= Problema de optim
Q= Problema de decizie asociata
8-Mar-18 Rodica Potolea, CS, UTCN 37
Problema abstracta - continuare
• Daca o problema de decizie este greu de
rezolvat (nu poate fi rezolvata polinomial),
atunci problema de optim corespunzatoare
este greu de rezolvat!
• Deci, desi NP-completitudinea se limiteaza la
domeniul problemelor de decizie, acest
aspect NU reprezinta o limitare in realitate.
• Daca NICI macar decizia nu o pot lua
polinomial …
8-Mar-18 Rodica Potolea, CS, UTCN 38
De retinut
Problema Optim  P => Problema Decizie  P
Problema Decizie  NP => Problema Optim  NP
?Daca Problema Decizie P? =>? Problema OptimP
Nu putem afirma
Problema Optim  NP
Nu putem afirma

8-Mar-18 Rodica Potolea, CS, UTCN 39


Agenda
• Complexitate
• Timp polinomial, P si NP
• NP completitudine
• Reductibilitate
• Demonstrare NP-comp&Probleme NP-comp
• Reducere NP-comp
• Masina Turing
• Aplicatii NP-comp si aproximari
• Exemple

8-Mar-18 Rodica Potolea, CS, UTCN 40

S-ar putea să vă placă și