P és NP teljes problémák

Slides:



Advertisements
Hasonló előadás
A digitális számítás elmélete
Advertisements

Események formális leírása, műveletek
Készítette: Kosztyán Zsolt Tibor
Kiszámíthatóság, rekurzív függvények
Kódelmélet.
A digitális számítás elmélete
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Készítette: Major Máté
Lambda kalkulus.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Programozási alapismeretek 5. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 5.2/  Programozási tételek.
Kötelező alapkérdések
Prímtesztelés Témavezető: Kátai Imre Komputeralgebra Tanszék Nagy Gábor:
Dominó probléma (emlékeztető)‏
Euklidészi gyűrűk Definíció.
Algebrai struktúrák 1.
Csoport részcsoport invariáns faktorcsoport részcsoport
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Programozási alapismeretek 5. előadás. ELTE 2/  Programozási tételek – a lényeglényeg  Sorozatszámítás Sorozatszámítás.
Halmazok, relációk, függvények
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Programozó matematikus szak 2003/2004-es tanév II. félév
A digitális számítás elmélete
A digitális számítás elmélete
A digitális számítás elmélete
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Év eleji információk Előadó: Hosszú Ferenc II. em Konzultáció: Szerda 9:50 – 10:35 II. em
Differenciál számítás
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
5. VÉGTELEN HALMAZOK 5.1 Kiválasztási axióma
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
1. Univerzális nyelő Csúcsmátrixos ábrázolás esetén a legtöbb gráfalgoritmus futási ideje O(n2) azonban van kivétel. Egy irányított gráf egy csúcsa univerzális.
A számfogalom bővítése
Számítástudomány alapjai
Véges értékű függvények
Halmazelmélet és matematikai logika
A digitális számítás elmélete
Algoritmusok bonyolultsága és kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium 2004 szeptember Algoritmusok bonyolultsága és kommunikációs.
Algoritmusok bonyolultsága Gáspár Merse Előd Györgyi Géza féle statisztikus fizika szeminárium 2004.
Halmazok Tanítás.
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
Előadó: Nagy Sára Mesterséges intelligencia Kereső rendszerek.
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Lineáris algebra.
Osztott adatbázisok.  Gyors ismétlés: teljes redukáló  Teljes redukáló költsége  Természetes összekapcsolások vetítése  Természetes összekapcsolások.
Dodekaéder Hamilton köre
A folytonosság Digitális tananyag.
előadások, konzultációk
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Készítette: Mátyás István agrár mérnöktanár szakos hallgató,
Halmazok Érettségi követelmények:
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Algoritmusok és adatszerkezetek
1 Megerősítéses tanulás 4. előadás Szita István, Lőrincz András.
Számításelmélet 2. Algoritmus-fogalom Turing-gép Alan M. Turing – 1937 II. világháború, Enigma MI, Turing-teszt Kleene – Rekurzív függvények (1936) Church.
Kontinuum modellek 1.  Bevezetés a kontinuum modellekbe  Numerikus számolás alapjai.
Mediánok és rendezett minták
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
IV. konzultáció Analízis Differenciálszámítás II.
Elméleti probléma: vajon minden következtetés helyességét el tudjuk dönteni analitikus fával (véges sok lépésben)? Ha megengedünk végtelen sok premisszás.
Algebrai struktúrák 1.
1.3 Relációk Def. (rendezett pár) (a1 , a2) := {{a1} , {a1 , a2 }} .
Számításelmélet 7.
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Adatbázisrendszerek elméleti alapjai 9. előadás
Algoritmusok és Adatszerkezetek I.
Algoritmus készítés.
Absztrakt problémák Q  I  S, az absztrakt probléma kétváltozós reláció az esetek (I) és a megoldások (S) halmazán Példa: legrövidebb út Eset: gráf és.
Algoritmusok és Adatszerkezetek I.
Előadás másolata:

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

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)

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])

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.

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)).

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)

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…

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.

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…

Dodekaéder Hamilton köre

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…

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}

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…

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?

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)

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…

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…

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