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 két pontja Megoldás: csúcsok sorozata. (üres, ha nincs út) (egy esethez több megoldás is tartozhat) Döntési probléma: a megoldás “igen” vagy “nem” (1 vagy 0) Példa: van-e k-nál rövidebb út a két pont között Optimalizálási problémák -> Döntési problémák (optimum<t? igen, nem) (ha a döntési probléma nehéz, akkor az optimum probléma is az) 2019.08.01. 0:44:39 ADAT-13
Absztrakt problémák Kódolás: Az S absztrakt objektumhalmaz ködolása egy e leképezés a bináris sorozatokba. Pl: ASCII kód betűkre, összetett objektum esetén az összetevők kódkombinációja Konkrét probléma: esetei a bináris sorozatok Absztrakt probléma – kódolás – konkrét probléma Q(i) {0;1} e:I {0;1}* e(i) esetre is Q(i) a megoldás e(Q) 2019.08.01. 0:44:39 ADAT-13
Absztrakt problémák Algoritmus konkrét problémát O(T(n)) idő alatt megold: bármely n hosszú i esetre a megoldás O(T(n)) lépést igényel. Polinom időben megoldható a probléma: Létezik algoritmus, ami O(nk) alatt megoldja valamely k-ra P bonyolultsági osztály: a polinom időben megoldható konkrét problémák halmaza 2019.08.01. 0:44:39 ADAT-13
Absztrakt problémák Terjesszük ki a polinomiális idejűek definícióját az absztrakt problémákra kódolás felhasználásával. (ne legyen függés a konkrét kódolástól) Az f: {0,1}* {0,1}* függvény polinom időben kiszámítható, ha létezik olyan A polinomiális algoritmus, amely minden x {0,1}* bemenetre f(x)-et adja eredményül. Az e1 és e2 kódolások polinomiálisan kapcsoltak, ha létezik olyan f12 és f21 polinom időben kiszámítható függvény, hogy minden i I esetén f12(e1(i))=e2(i) és f21(e2(i))=e1(i). Lemma: Legyen Q absztrakt döntési probléma az I esethalmazzal és legyenek e1, e2 I-nek polinomiálisan kapcsolt kódolásai. Ekkor: e1(Q) P e2(Q) P 2019.08.01. 0:44:39 ADAT-13
Formális nyelvi megközelítés Ábécé: véges szimbólumhalmaz Szavak:ábécé elemeiből képzett véges sorozatok. (üres szó jele ()) Nyelv: szimbólumaiból készített szavak halmaza (Üres nyelv jele()) * az összes lehetséges szó halmaza beleértve az üres szót is. Műveletek a nyelveken: unió, metszet, komplemens (*-L), konkatenáció (két nyelv szavait egymás után írjuk) Nyelv lezártja (Kleene csillag) L*={} L L2 L3… A Q döntési probléma esethalmaza lehet * , ahol ={0,1}. Ekkor Q tekinthető, mint egy L nyelv felett, ahol L={x * : Q(x)=1} Az A algoritmus elfogadja az x {0,1}* szót, ha A(x)=1 és elutasítja, ha A(x)=0. A elfogadja az L nyelvet, ha minden szavát elfogadja A eldönti az L nyelvet, ha x L esetén A(x)=1 és x L esetén A(x)=0 2019.08.01. 0:44:39 ADAT-13
Formális nyelvi megközelítés A polinom időben elfogadja az L-et, ha minden n hosszú szavát a nyelvnek O(nk) időben elfogad valamely k-ra. A polinom időben eldönti az L-et, ha minden n hosszú szavát a nyelvnek O(nk) időben elfogad, vagy elutasít valamely k-ra. Az L nyelv polinom időben elfogadható vagy elutasítható, ha létezik algoritmus, amely polinom időben elfogadja vagy elutasítja. Tétel: P={L: L polinom időben elfogadható} 2019.08.01. 0:44:39 ADAT-13
Polinomiális ellenőrzés Az ellenőrző algoritmusnak két bemenete van: az x eset és az y tanú. Az ellenörző algoritmus bizonyítja az x szót, ha létezik y tanú, hogy A(x,y)=1 Az ellenörző algoritmus bizonyítja az L nyelvet, ha annak mind szavát bizonyítja, és amit bizonyít, az a nyelvnek szava. L={x {0;1}*: y {0;1}*, A(x,y)=1} 2019.08.01. 0:44:39 ADAT-13
NP bonyolultsági osztály NP bonyolultsági osztály: nyelvosztály, mely polinomiális algoritmussal bizonyítható L NP-hez tartozik, ha létezik olyan kétbemenetű polinomiális algoritmus és c konstans, hogy minden x szavához létezik y tanú, hogy y hossza O(x c) és A(x,y)=1 P NP fennáll P=NP ? Fennáll-e? co-NP azon nyelvek halmaza, melyekre fennáll, hogy L komplementere NP-hez tartozik. L NP C(L) NP ??? Nem világos? P ( NP co-NP) fennáll. Az egyenlőség nem ismert. 2019.08.01. 0:44:39 ADAT-13
Lehetséges relációk NP=co-NP P=NP=co-NP P NP co-NP co-NP 2019.08.01. 0:44:39 ADAT-13
Karp redukció és NP teljes problémák Az L1 nyelv polinomiálisan visszavezethető L2-re (L1 p L2) Ha létezik f: {0;1}* x{0;1}* polinomiális időben kiszámítható fóggvény amelyre minden x {0;1}* esetén x L1 f(x) L2 Lemma: Ha L1 , L2 {0;1}* , L1 p L2 és L2 P, akkor L1 P NPC (NP teljes nyelv): L {0;1}* L NP, Minden L’ NP-re L’ p L Tétel: Ha létezik polinomiális időben megoldható NP teljes probléma, akkor P=NP. 2019.08.01. 0:44:39 ADAT-13
NP teljes problémákra példák Klikk probléma Minimális lefedő csúcshalmaz Részletösszeg probléma Hamilton kör Utazó ügynök SAT (Cook-Levin tétel, 1971) 2019.08.01. 0:44:39 ADAT-13