Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

P és NP teljes problémák

Hasonló előadás


Az előadások a következő témára: "P és NP teljes problémák"— Előadás másolata:

1 P és NP teljes problémák
P (polinomiális időigényű) algoritmusok: O(nk) Nem minden problémára létezik P, vagy ennél jobb megoldás: léteznek NP problémák/algoritmusok léteznek olyan problémák, amelyekre nem létezik algoritmus (pl. a Turing gép megállási problémája) Az NP-teljes problémaosztály egy elméleti kutatási terület. Sejtés: P¹NP. Egyetlen NP-teljes problémára nem adtak P algoritmust Ha csak egyetlen NP problémára létezne P algoritmus, akkor mindegyikre létezne

2 Polinomiális idő A polinomiális problémákat jól kezelhetőknek tartjuk. Miért? A gyakorlatban igen kevés olyan algoritmus van, amely (nk) arányosságában k nagy lenne. Igen sok számítási modellre igaz, hogy egy probléma az egyikben P, akkor a másikban is. (pl. RandomAccessMachine Turing gép) A P osztály zárt (pl. összeadásra, szorzásra, kompozícióra)

3 Absztrakt problémák (algoritmus)
Q absztrakt probléma: kétváltozós reláció Q(I,O), ahol I a probléma eseteinek (bemeneteinek), O a megoldásainak halmaza. Pl: LegrövÚt([G[V,E],u,v],<u,…,v>), ami egy gráfból és két csúcsából előállítja az összekötő legrövidebb utat Az NP-teljesség vizsgálatakor csak döntési problémákkal foglalkozunk, vagyis Q(I), ami az I esethalmazt a {0,1} halmazba képezi le. Optimalizálási problémák: visszavezetjük döntési problémára. Pl. LegrövÚt([G[V,E],u,v,k])

4 Kódolás, P problémaosztály
Egy absztrakt S halmaz kódolása egy leképezés S-ből a bináris sorozatokba. Konkrét probléma: olyan probléma, amelynek esetei bináris számsorozatok Egy algoritmus egy konkrét problémát O(T(n)) idő alatt megold, ha a megoldás bármely n hosszúságú i esetre O(T(n)) lépést igényel. Egy probléma polinom időben megoldható, ha létezik olyan algoritmus, hogy valamilyen k szám mellett O(nk) időben megoldja. A P problémaosztály alatt a polinomiális időben megoldható problémák osztályát értjük.

5 A futási idő FÜGG a kódolástól.
Unáris kódolás hossza a bináris kódolás hosszával exponenciális arányban van. Tfh. Q(k), és T(Q,k)=Q(k). Unáris kódolás esetén: k=w, T(Q)=Q(w) a bemenet hosszával (w) lineárisan arányos. Bináris kódolás esetén: w=ln(k), T(Q,w)= Q(2k) Egy f:{0,1}*{0.1}* függvény polinom időben kiszámítható, ha létezik olyan polinomiális algoritmus, amely xÎ{0,1}* bemenetre f-et adja kimenetként. Egy e1 és e2 kódolás polinomiálisan kapcsoltak, ha léteznek olyan f12, ill f21 polinomiálisan kiszámítható függvények, hogy e1(i)= f21(e2(i)) és e2(i)= f12(e1(i)).

6 Tétel: Ha Q egy absztrakt döntési probléma, I esethalmazzal, melynek e2 és e2 kódolásai. Ilyenkor e1(Q)ÎP  e2(Q)ÎP Biz: Tfh. e1(Q) O(nk) időben megoldható, és e1(i)= f21(e2(i)) O(nc) időben kiszámítható. e2(Q) megoldásához először e1(i)-t kiszámítjuk, majd lefuttatjuk az e1(Q) algoritmust. Az átkódolás O(nc) lépés, ami az eredmény hosszára is felső korlát. A teljes futási idő=O(|e1(i)|k)=O(nck)

7 Formális nyelvek Ábécé: S véges szimbólumhalmaz.
Szavak: az ábécé betűiből képzett véges sorozatok. Nyelv: L az ábécé betűiből képezhető összes véges sorozat egy részhalmaza. Üres szó: e Üres nyelv: Æ Összes szó: S* Műveletek nyelvekkel: egyesítés U, metszet Ç, különbség \ komplementer ~L= S* \L konkatenáció L1L2, hatványozás Lk Lezárt (Kleene-star): L*=ULUL2U…ULkU…

8 Formális nyelvek eldöntése
QL(i), ahol iÎS* elemzőalgoritmus, ha minden iÎL esetén 1 (elfogadó) eredményt, ellenkezőleg 0 (elutasító) eredményt ad. Azt mondjuk, hogy QL eldönti az L nyelvet. (Elképzelhető, hogy Q sem elfogadó, sem elutasító eredményt nem ad, hanem végtelen ciklusba esik) Egy Q algoritmus polinom időben elfogadja az L nyelvet, ha bármely n hosszúságú xÎL szót O(nk) időben elfogad. Egy Q algoritmus polinom időben el is dönti az L nyelvet, ha bármely n hosszúságú xÎS* szót O(nk) időben elfogad vagy elutasít. Egy L nyelv polinom időben elfogadható/eldönthető, ha létezik Q algoritmus, ami polinom időben elfogadja/eldönti.

9 Alternatív definíció: P={L:L polinom időben eldönthető}
Tétel: P={L:L polinom időben elfogadható} Biz: 1. Az eldöntő algoritmusok részhalmazai az elfogadóknak. 2. Azt kell belátnunk, hogy minden polinom időben elfogadó A algoritmushoz konstruálható egy polinom időben eldöntő A’ algoritmus is. Ha A L-t T=nk idő alatt elfogadja, akkor A’ L-t legfeljebb T=cnk idő el is dönti. Számlálja az A’ algoritmus a lépéseket, elfogadás/elutasítás esetén állítson be egy jelzőt, és legkésőbb nk idő után állítsa le a futást. Ezután vizsgálja meg, hogy el lett-e a nyelv fogadva/elutasítva vagy meg lett-e szakítva. Ha meg lett szakítva, akkor A’ utasítsa el a szót. Megjegyzés: a bizonyítás nem konstruktív…

10 Dodekaéder Hamilton köre

11 A Hamilton probléma Egy gráf Hamilton körén egy olyan kört értünk, ami minden egyes csúcspontot érint. Az ilyen kört tartalmazó gráfok hamiltoniak. Egy gráf Hamilton gráf-e: HAM={<G>: G Hamilton gráf} HAM nyelvre naiv eldöntő algoritmus: vesszük a G gráf csúcsainak összes permutációját, és ellenőrizzük, hogy (Hamilton) kör-e. Ha n=|G|, a csúcsok száma (csúcsmátrix) m=W(SQR(n)), a permutációk száma=m!, a futási idő: W(m!)=W(SQR(m)!)=W(2SQR(m))  a futásidő legalább exponenciális… Bebizonyítható, hogy a Hamilton probléma NP teljes…

12 Ellenőrző algoritmusok
Tfh. A feladat egy adott G gráf egy P útjáról eldönteni, hogy Hamilton kör-e. ellenőrizzük, hogy a P tényleg a G csúcspontjainak egy permutációja, és a pontok tényleg szomszédosak-e. Az időigénye bizonyíthatóan: O(n2). Def: Ellenőrző algoritmus: olyan kétbemenetű A(x,y) algoritmus, amely kiegészül egy további paraméterrel, a tanúval. A bizonyítja az x szót, ha létezik olyan y tanú, hogy A(x,y)=1. L={xÎ{0,1}*:$yÎ{0,1}* A(x,y)=1} Pl: HAM(G)={G: $p:p G útja, p Hamilton kör}

13 Az NP bonyolultsági osztály
NP: Nondeterministic Polinomial Time (eredetileg a nem-determinizmussal összefüggésben definiálták) Az NP bonyolultsági osztály azon nyelvek halmaza, melyek polinomiális algoritmussal bizonyíthatók. Def: LÎNP$A(X,Y) kétbemenetű algoritmus és c konstans úgy, hogy L={xÎ{0,1}*:$yÎ{0,1}*,|y|=O(|x|c), A(x,y)=1} Ekkor azt mondjuk, hogy A polinom időben bizonyítja L-t. Állítás: HAMÎNP vagyis NP nem üres… Állítás: Ha LÎPLÎNP. (ha van olyan algoritmus, ami eldönti L-t, akkor van olyan is, ami bizonyítja). Biz: Tfh. A eldönti. Legyen A’, ami bizonyítja olyan, hogy A=A’, de a második paramétert figyelmen kívül hagyja…

14 Az NP bonyolultsági osztály
P és NP viszonya kutatási téma Sejtés: P és NP különböznek. P-ben a gyorsan megoldható, NP-ben a gyorsan bizonyítható problémák vannak. (könnyebb egy megoldás helyességét ellenőrizni, mint a megoldást megtalálni) Def: komplementer LÎcoNPha ~LÎNP Megoldatlan kérdés: NP=coNP? Vagyis zárt-e az NP osztály a komplemensképzésre?

15 Visszavezethetőség Sejtés: P<>NP, mert léteznek NP-teljes problémák. Állítás: Ha csak egyetlen NP-beli probléma megoldható lenne polinomiális időben, akkor valamennyi NP probléma megoldható lenne polinomiális időben. Visszavezethetőség: egy Q probléma visszavezethető Q’-re, ha bármely x esete „átfogalmazható” olyan x’ esetté, hogy Q’ x’ esetének megoldásából következik Q x esetének is a megoldhatósága. (Q-t nem nehezebb megoldani, mint Q’-t)

16 Polinomiális visszavezethetőség
Def: Azt mondjuk, hogy egy L1 nyelv polinomiálisan visszavezethető az L2 nyelvre (L1<=pL2), ha létezik f:{0,1}*{0.1}* polinom időben kiszámítható függvény, melyre melyre minden xÎ{0,1}* esetén xÎL1f(x)ÎL2 f függvény: visszavezető függvény Az f-et kiszámító polinomiális algoritmus: visszavezető algoritmus Lemma: Ha L1, L2Í{0,1}* és L1<=pL2, és L2ÎP  L1ÎP. Biz: Legyen A2 az a polinomiális algoritmus, ami eldönti L2-t. Legyen F az f: L1L2 algoritmus. Legyen A1: xÎ{0,1}*-ből F segítségével kiszámítja f(x)-et, majd A2 eldönti, hogy f(x)ÎL2. A1 polinomiális, hiszen F és A2 is az.  Ha L1<=pL2, akkor L1 legfeljebb egy polinomszor nehezebb L2-nél…

17 NP teljes nyelvek Def: LÍ{0,1}* NP-teljes, (jelölés:NPC) ha 1. LÎNP, és 2. Minden L’ÎNP-re L’<=pL Def: Ha egy nyelvre csak 2. teljesül, akkor NP-nehéznek nevezzük Tétel: Ha létezik polinomiális időben megoldható NP-teljes probléma, akkor P=NP. Vagyis: ha NP-ben létezik polinomiálisan nem megoldható probléma, akkor egyetlen NP-teljes probléma sem polinomiális. Biz: Tfh. LÎPUNPC. Ekkor bármely L’ÎNP esetén L’<=pL. Mivel LÎP  L’ÎP…

18 Sejtés: P, NP és NPC problémaosztályok viszonya


Letölteni ppt "P és NP teljes problémák"

Hasonló előadás


Google Hirdetések