Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.



Hasonló dokumentumok
Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Bonyolultságelmélet gyakorlat 06 Gráfos visszavezetések II.

Logika és számításelmélet. 11. előadás

Bonyolultságelmélet. Monday 10 th October, 2016, 17:44

Algoritmusok bonyolultsága

NP-teljesség röviden

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Tesztkérdések az ALGORITMUSELMÉLET tárgyból, 2001/ félév

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Bevezetés a bonyolultságelméletbe gyakorlatok I. A(0, y) := y + 1 y 0 A(x, 0) := A(x 1, 1) x 1 A(x, y) := A(x 1, A(x, y 1)) x, y 1

A számítástudomány alapjai

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Sali Attila Budapest Műszaki és Gazdaságtudományi Egyetem. I. B. 137/b március 16.

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

3. gyakorlat Dinamikus programozás

Logika és számításelmélet

Számításelmélet 2 - El adás jegyzet

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Logika és számításelmélet. 12. előadás

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmuselmélet 18. előadás

Diszkrét matematika 2. estis képzés

Algoritmusok bonyolultsága

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

Deníciók és tételek a beugró vizsgára

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz VIII. Friedl Katalin BME SZIT március 18.

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT augusztus 16.

P, NP, NP-C, NP-hard, UP, RP, NC, RNC

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Csima Judit október 24.

Közösségek keresése nagy gráfokban

Modern irányzatok a bonyolultságelméletben: éles korlátok és dichotómia tételek

Algoritmuselmélet ZH április 8.

Diszkrét matematika 2. estis képzés

Az informatika elméleti alapjai 2 elővizsga december 19.

Diszkrét matematika 2.C szakirány

Algoritmuselmélet 11. előadás

Gráfalgoritmusok ismétlés ősz

Feladatok, amelyek gráfokkal oldhatók meg 1) A königsbergi hidak problémája (Euler-féle probléma) a

Algoritmuselmélet zárthelyi (BSc képzés) április 24.

Diszkrét matematika 2.

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára

Adatbázisok elmélete 12. előadás

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára

Szemidenit optimalizálás és az S-lemma

Feladatok. 7. Tíz rabló a kincseit egy több lakattal lezárható ládában gyűjti. Az egyes lakatokat egy-egy

Gráfelmélet jegyzet 2. előadás

Ramsey-féle problémák

Approximációs algoritmusok

Algoritmuselmélet 12. előadás

Logika és számításelmélet. 10. előadás

AZONOSSÁGOK 0-EGYSZERŰ FÉLCSOPORTOKBAN

Diszkrét matematika 2. estis képzés

Diszkrét matematika 2.C szakirány

Gráfok csúcsszínezései

Diszkrét matematika 2.C szakirány

Algoritmuselmélet (BMEVISZA213) feladatgyűjtemény

KOVÁCS BÉLA, MATEMATIKA I.

Csercsik Dávid ITK PPKE. Csercsik Dávid (ITK PPKE) Játékelmélet és hálózati alkalmazásai 1. ea 1 / 55

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Gráfelméleti alapfogalmak

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Diszkrét matematika 2.

Diszkrét matematika 2.

Chomsky-féle hierarchia

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Általános algoritmustervezési módszerek

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Diszkrét matematika 1. estis képzés

Diszkrét matematika 2.C szakirány

Algoritmuselmélet 7. előadás

Polinomosztás. Összeállította: Bogya Norbert. Diszkrét matematika I.gyakorlat

KOMBINATORIKA ElŐADÁS Matematika BSc hallgatók számára. Klikkek gráfokban-1. Definíció. Egy G gráfban egy K V(G) csúcshalmazt klikknek nevezünk, ha K

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

KÖZELÍTŐ ALGORITMUSOK

Véges automaták, reguláris nyelvek

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

1. tétel - Gráfok alapfogalmai

1/50. Teljes indukció 1. Back Close

Diszkrét matematika 2.C szakirány

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

Számítógép és programozás 2

Gráfelméleti feladatok programozóknak

Nemkonvex kvadratikus egyenlőtlenségrendszerek pontos dualitással

ELTE IK Esti képzés tavaszi félév. Tartalom

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

SzA II. gyakorlat, szeptember 18.

Számítógép hálózatok, osztott rendszerek 2009

BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Átírás:

Algoritmuselmélet NP-teljes problémák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 12. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 1 / 22 Karp-redukció Mikor nem lényegesen nehezebb egy Y probléma egy X problémánál? = Ha Y felhasználásával meg lehet oldani X-et is. = X visszavezethető a Y problémára. Definíció Legyen X és Y két eldöntési probléma. Az X Karp-redukciója (polinomiális visszavezetése) az Y problémára egy olyan polinom időben számolható f függvény, amely X minden lehetséges bemenetéhez hozzárendeli Y egy lehetséges bemenetét úgy, hogy x X f (x) Y. Jelölés: X Y ha X-nek van Karp-redukciója Y -re. Ha tehát van algoritmusunk Y eldöntésére = x X-re kiszámítjuk f (x)-et eldöntjük f (x) Y? = tudjuk, hogy x X igaz-e Ha tudnánk, hogy X nehéz és tudjuk, hogy X Y = Y is nehéz lenne Ha Y könnyű lenne, és X nem lényegesen nehezebb nála, akkor X is könnyű. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 2 / 22

Irányított Hamilton-kör probléma IH H. G = (V, E) egy irányított gráf G = (V, E ) irányítatlan gráf hogy G gyorsan megépíthető és G-ben irányított Hamilton-kör G -ben irányítatlan Hamilton-kör. V = {v be, v, v ki v V }, E = {(v be, v ), (v, v ki ) v V } {(u ki, v be ) u v E}. u v u be u v be v u ki v ki v(g) = n, e(g) = e = v(g ) = 3n, e(g ) = 2n + e = (n + e) c lépésben megkapható. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 3 / 22 G-beli F irányított Hamilton-körének = G egy F Hamilton-köre u v u be u v be v u ki v ki Az F egy u v éle = az F -ben az u u ki v be v út = G IH = G H Ha G -ben van egy F E Hamilton-kör = egy u -ból indulva egy u ki felé lépjünk először = csak u u ki v be v alakú lehet utána = stb. = Ha G H akkor G IH. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 4 / 22

A Karp-redukció tulajdonságai 1. Ha X Y és Y P, akkor X P. 2. Ha X Y és Y NP akkor X NP. 3. Ha X Y, akkor X Y 4. Ha X Y és Y conp, akkor X conp. 5. Ha X Y és Y NP conp, akkor X NP conp. 6. Ha X Y és Y Z, akkor X Z. Legyen f az X Karp-redukciója Y -re, ahol f c 1 n k időben számolható. x egy bemenet, melyről szeretnénk eldönteni, hogy x X teljesül-e, n az x hossza. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 5 / 22 1.: Kiszámítjuk f (x)-et = időigénye c 1 n k = f (x) c 1 n k Y felismerő algoritmusával c 2 f (x) l időben eldöntjük, hogy f (x) Y igaz-e = időigénye c 2 (c 1 n k ) l x X f (x) Y = összidő O(n kl ) 2.: Az f (x) Y tény egy t tanúja jó x X tanújának is, és az Y -hoz tartozó T tanusító algoritmus egy kis módosítással jó lesz az X tanusító algoritmusának is T az (x, t) bemenetre először kiszámítja f (x)-et, majd az (f (x), t) párra alkalmazza T -t. Ha az eredmény IGEN, akkor legyen T eredménye is IGEN, különben pedig NEM. t f (x) c = t O(n kc ) T lépésszáma, ha T lépésszáma O(m l ): O(n k ) + O((n kc ) l ) = O(n kcl ) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 6 / 22

3.: Mint 1., hiszen x bemenetre x X f (x) Y. 4.: = 2.,3. 5.: = 2.,4. 6.: Legyen f az X Y függvénye, ami O(x k ) időben számolható és g az Y Z függvénye, ami O(x l ) időben számolható. Az X Z függvénye g(f (x)) lesz, ami O((x k ) l ) = O(x kl ) időben számolható. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 7 / 22 NP-teljes problémák Definíció Az X eldöntési probléma NP-nehéz, ha tetszőleges (azaz minden) X NP probléma esetén létezik X X Karp-redukció. Az X eldöntési probléma NP-teljes, ha X NP és X NP-nehéz. Egy NP-teljes probléma tehát legalább olyan nehéz, mint bármely más NP-beli probléma. Ha egy ilyen problémáról kiderülne, hogy P-beli (conp-beli), akkor ugyanez igaz lenne minden NP-beli problémára. Van-e NP-teljes probléma? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 8 / 22

Boole-formulák Definíció Az f : {0, 1} n {0, 1} függvényeket n-változós Boole-függvényeknek vagy Boole-formuláknak hívjuk. Minden Boole-függvény felírható az x 1,..., x n Boole-változók, az,, logikai műveletek és zárójelek segítségével. Pl. Boole-formula: Φ = (x 1 x 2 x 5 ) (( x 3 x 2 (x 6 x 1 )) (x 5 x 6 )) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 9 / 22 Boole-formulák Definíció Egy Boole-formula kielégíthető, ha lehet úgy értékeket adni a változónak, hogy a függvény értéke 1 legyen. Pl. Φ(x 1, x 2 ) = (x 1 x 2 ) ( x 1 x 2 ) kielégíthető, mert ha x 1 = 1 és x 2 = 0, akkor Φ(x 1, x 2 ) = 1 De pl. (x 1 x 1 ) nyilván nem kielégíthető. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 10 / 22

Cook Levin-tétel Van-e NP-teljes probléma? Definíció SAT probléma: Bemenet: Φ Boole-fomula Kérdés: Kielégíthető-e Φ? (S. A. Cook, L. Levin, 1971) A SAT probléma NP-teljes. Bizonyítás elég bonyolult. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 11 / 22 További NP-teljes feladatok Ha az X probléma NP-teljes, Y NP és X Y, akkor Y is NP-teljes. Láttuk, hogy a Karp-redukció tranzitív. = Ha X Y és Z X teljesül Z NP-teljes problémára = Z Y teljesül Z NP-teljes problémára Nem kell már minden NP-beli problémát az Y -re redukálni; elég ezt megtenni egyetlen NP-teljes X problémával. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 12 / 22

A 3-SZÍN probléma A 3SZÍN probléma NP-teljes. Már láttuk, hogy NP, belátható, hogy SAT 3SZÍN. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 13 / 22 Maximális méretű független pontrendszer gráfokban MAXFTLEN Bemenet: G gráf, k Z + Kérdés: Van-e G-nek k elemű független csúcshalmaza? A MAXFTLN nyelv NP-teljes. MAXFTLEN NP: tanú egy k-elemű S V (G) független csúcshalmaz. Megadunk egy 3SZÍN MAXFTLEN Karp-redukciót, G (G, V (G) ) G 3SZÍN (G, V (G) ) MAXFTLEN Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 14 / 22

V (G ) = 3 V (G) és E(G ) = 3 V (G) + 3 E(G), legyen k = V (G). G (1) G (2) G (2) Ha G színezhető 3 színnel = G is = a piros pontok halmaza G -ben független és V (G) van belőlük. Ha G -ben van V (G) független = legyen egy pont színe olyan, hogy melyik G (i) -ben van. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 15 / 22 Maximális méretű klikk MAXKLIKK Bemenet: G gráf, k Z + Kérdés: Van-e G-ben k pontú teljes részgráf (k-klikk)? A MAXKLIKK nyelv NP-teljes. MAXKLIKK NP: tanú egy k-elemű S V (G) teljes részgráf. Megadunk egy MAXFTLEN MAXKLIKK Karp-redukciót: f (G, k) = (G, k) (független ponthalmaz a komplementerben teljes gráf) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 16 / 22

Részgráf izomorfia probléma RÉSZGÁFIZO Bemenet: G, H gráfok Kérdés: Van-e G-ben H-val izomorf részgáf? A RÉSZGÁFIZO nyelv NP-teljes. RÉSZGÁFIZO NP: tanú egy részgáf és annak izomorfiája H-val Megadunk egy MAXKLIKK RÉSZGÁFIZO Karp-redukciót: f (G, k) = (G, K k ) Ha X NP-nehéz és Y általánosítása X-nek, akkor Y is NP-nehéz. = RÉSZGÁFIZO sepciális esete a MAXKLIKK-nek = NP-teljes. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 17 / 22 Hamilton-kör probléma A H nyelv NP-teljes. Már láttuk, hogy H NP Belátható, hogy SAT H (bonyolult) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 18 / 22

Hamilton-út probléma Az H-ÚT nyelv NP-teljes. H-ÚT NP, mert egy Hamilton-út tanú Belátjuk, hogy H H-ÚT G f(g) v v v G-ben akkor és csak akkor van Hamilton-kör, ha f (G)-ben van Hamilton-út. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 19 / 22 A Hátizsák feladat Hátizsák feladat: Adottak tárgyak s 1,..., s m > 0 súlyai, ezek v 1,..., v m > 0 értékei, valamint a b megengedett maximális összsúly. Tegyük fel, hogy az s i, v i, b számok egészek. A feladat az, hogy találjunk egy olyan I {1,.., m} részhalmazt, melyre i I s i b, és ugyanakkor i I v i a lehető legnagyobb. = HÁT Lemma HÁT NP Bemenet: s 1,..., s m ; v 1..., v m ; b; k Kérdés: Van-e olyan I {1,..., m} melyre i I s i b és i I v i k? Vegyük azt a speciális esetet, amikor s i = v i és b = k = Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 20 / 22

A Részhalmaz összeg probléma RH Bemenet: (s 1,..., s m ; b) Kérdés: Van-e olyan I {1,..., m} melyre i I s i = b? Az RH nyelv NP-teljes. RH NP Belátható, hogy SAT RH Speciális eset = Partíció feladat: ahol a b = 1 2 si PARTÍCIÓ Bemenet: (s 1,..., s m ) Kérdés: Van-e olyan I {1,..., m} melyre i I s i = 1 2 m i=1 s i? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 21 / 22 A Partíció probléma A PARTÍCIÓ probléma NP-teljes. PARTÍCIÓ NP Belátjuk, hogy RH PARTÍCIÓ (RH általánosabb!) Vegyük az RH egy x = (s 1,..., s m ; b) inputját. = Feltehető, hogy b s = m i=1 s i. f (x) = (s 1,..., s m, s + 1 b, b + 1). A számok összege 2s + 2, az utolsó két szám nem lehet egy partíció ugyanazon osztályában, mert az összegük túl nagy: s + 2 > 1 2 (2s + 2). RH-nak van megoldása a megoldáshoz vegyük hozzá (s + 1 b)-t PARTÍCIÓ-nak van megoldása Katona Gyula Y. (BME SZIT) Algoritmuselmélet 12. előadás 22 / 22