Algoritmuselmélet
NP-teljes problémák
Katona Gyula Y.
Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem
13. el ˝oadás
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 1 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒
x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et,
eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y?
=⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √
Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Karp-redukció
Mikor nem lényegesen nehezebb egyX probléma egyY problémánál?
HaY felhasználásával meg lehet oldaniX-et is.
=⇒X visszavezethet ˝o aY 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 ˝oben 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 algoritmusunkY eldöntésére =⇒x ∈X-re kiszámítjuk f(x)-et, eldöntjükf(x)∈Y? =⇒tudjuk, hogyx ∈X igaz-e. √ Ha tudnánk, hogyX nehéz, és tudjuk, hogyX ≺Y
=⇒Y is nehéz lenne.
HaY könny ˝u, ésX nem lényegesen nehezebb nála, akkorX is könny ˝u.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 2 / 27
Irányított Hamilton-kör probléma (IH)
Tétel IH≺H.
Bizonyítás.
G= (V,E)egy irányított gráf→G0 = (V0,E0)irányítatlan gráf
hogy G0 gyorsan megépíthet ˝o és
G-ben∃irányított Hamilton-kör↔G0-ben∃irányítatlan Hamilton-kör. V0 = {vbe,v∗,vki |v ∈V},
E0 = {(vbe,v∗),(v∗,vki)|v ∈V} ∪ {(uki,vbe)|u→v ∈E}.
u v ube u∗ uki vbe v∗ vki
v(G) =n,e(G) =e =⇒v(G0) =3n,e(G0) =2n+e =⇒O(n+e) lépésben megkapható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 3 / 27
Irányított Hamilton-kör probléma (IH)
Tétel IH≺H.
Bizonyítás.
G= (V,E)egy irányított gráf→G0 = (V0,E0)irányítatlan gráf hogy G0 gyorsan megépíthet ˝o és
G-ben∃irányított Hamilton-kör↔G0-ben∃irányítatlan Hamilton-kör. V0 = {vbe,v∗,vki |v ∈V},
E0 = {(vbe,v∗),(v∗,vki)|v ∈V} ∪ {(uki,vbe)|u→v ∈E}.
u v ube u∗ uki vbe v∗ vki
v(G) =n,e(G) =e =⇒v(G0) =3n,e(G0) =2n+e =⇒O(n+e) lépésben megkapható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 3 / 27
Irányított Hamilton-kör probléma (IH)
Tétel IH≺H.
Bizonyítás.
G= (V,E)egy irányított gráf→G0 = (V0,E0)irányítatlan gráf hogy G0 gyorsan megépíthet ˝o és
G-ben∃irányított Hamilton-kör↔G0-ben∃irányítatlan Hamilton-kör.
V0 = {vbe,v∗,vki |v ∈V},
E0 = {(vbe,v∗),(v∗,vki)|v ∈V} ∪ {(uki,vbe)|u→v ∈E}.
u v ube u∗ uki vbe v∗ vki
v(G) =n,e(G) =e =⇒v(G0) =3n,e(G0) =2n+e =⇒O(n+e) lépésben megkapható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 3 / 27
Irányított Hamilton-kör probléma (IH)
Tétel IH≺H.
Bizonyítás.
G= (V,E)egy irányított gráf→G0 = (V0,E0)irányítatlan gráf hogy G0 gyorsan megépíthet ˝o és
G-ben∃irányított Hamilton-kör↔G0-ben∃irányítatlan Hamilton-kör.
V0 = {vbe,v∗,vki |v ∈V},
E0 = {(vbe,v∗),(v∗,vki)|v ∈V} ∪ {(uki,vbe)|u→v ∈E}.
u v ube u∗ uki vbe v∗ vki
v(G) =n,e(G) =e =⇒v(G0) =3n,e(G0) =2n+e =⇒O(n+e) lépésben megkapható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 3 / 27
Irányított Hamilton-kör probléma (IH)
Tétel IH≺H.
Bizonyítás.
G= (V,E)egy irányított gráf→G0 = (V0,E0)irányítatlan gráf hogy G0 gyorsan megépíthet ˝o és
G-ben∃irányított Hamilton-kör↔G0-ben∃irányítatlan Hamilton-kör.
V0 = {vbe,v∗,vki |v ∈V},
E0 = {(vbe,v∗),(v∗,vki)|v ∈V} ∪ {(uki,vbe)|u→v ∈E}.
u v ube u∗ uki vbe v∗ vki
v(G) =n,e(G) =e =⇒v(G0) =3n,e(G0) =2n+e =⇒O(n+e) lépésben megkapható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 3 / 27
Irányított Hamilton-kör probléma (IH)
Tétel IH≺H.
Bizonyítás.
G= (V,E)egy irányított gráf→G0 = (V0,E0)irányítatlan gráf hogy G0 gyorsan megépíthet ˝o és
G-ben∃irányított Hamilton-kör↔G0-ben∃irányítatlan Hamilton-kör.
V0 = {vbe,v∗,vki |v ∈V},
E0 = {(vbe,v∗),(v∗,vki)|v ∈V} ∪ {(uki,vbe)|u→v ∈E}.
u v ube u∗ uki vbe v∗ vki
v(G) =n,e(G) =e =⇒v(G0) =3n,e(G0) =2n+e =⇒O(n+e) lépésben megkapható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 3 / 27
Bizonyítás.
G-beliF irányított Hamilton-körének megfelelG0 egyF0 Hamilton-köre.
u v ube u∗ uki vbe v∗ vki
AzF egyu →v éle−→azF0-ben azu∗−uki−vbe−v∗ út.
EzértG∈IH =⇒G0 ∈H
HaG0-ben van egyF0 ⊆E0 Hamilton-kör =⇒egyu∗-ból indulva egy uki felé lépjünk el ˝oször
=⇒csaku∗−uki−vbe−v∗ alakú lehet utána =⇒ez az út megfelel G-ben egy u -> v élnek. Ezt tovább folytatva Hamilton-kört kapunk G-ben.
EzértG0 ∈H =⇒G∈IH.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 4 / 27
Bizonyítás.
G-beliF irányított Hamilton-körének megfelelG0 egyF0 Hamilton-köre.
u v ube u∗ uki vbe v∗ vki
AzF egyu →v éle−→azF0-ben azu∗−uki−vbe−v∗ út.
EzértG∈IH =⇒G0 ∈H
HaG0-ben van egyF0 ⊆E0 Hamilton-kör =⇒egyu∗-ból indulva egy uki felé lépjünk el ˝oször
=⇒csaku∗−uki−vbe−v∗ alakú lehet utána =⇒ez az út megfelel G-ben egy u -> v élnek. Ezt tovább folytatva Hamilton-kört kapunk G-ben.
EzértG0 ∈H =⇒G∈IH.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 4 / 27
Bizonyítás.
G-beliF irányított Hamilton-körének megfelelG0 egyF0 Hamilton-köre.
u v ube u∗ uki vbe v∗ vki
AzF egyu →v éle−→azF0-ben azu∗−uki−vbe−v∗ út.
EzértG∈IH =⇒G0 ∈H
HaG0-ben van egyF0 ⊆E0 Hamilton-kör =⇒egyu∗-ból indulva egy uki felé lépjünk el ˝oször
=⇒csaku∗−uki−vbe−v∗ alakú lehet utána =⇒ez az út megfelel G-ben egy u -> v élnek. Ezt tovább folytatva Hamilton-kört kapunk G-ben.
EzértG0 ∈H =⇒G∈IH.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 4 / 27
Bizonyítás.
G-beliF irányított Hamilton-körének megfelelG0 egyF0 Hamilton-köre.
u v ube u∗ uki vbe v∗ vki
AzF egyu →v éle−→azF0-ben azu∗−uki−vbe−v∗ út.
EzértG∈IH =⇒G0 ∈H
HaG0-ben van egyF0 ⊆E0 Hamilton-kör =⇒egyu∗-ból indulva egy uki felé lépjünk el ˝oször
=⇒csaku∗−uki−vbe−v∗ alakú lehet utána =⇒ez az út megfelel G-ben egy u -> v élnek.
Ezt tovább folytatva Hamilton-kört kapunk G-ben.
EzértG0 ∈H =⇒G∈IH.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 4 / 27
Bizonyítás.
G-beliF irányított Hamilton-körének megfelelG0 egyF0 Hamilton-köre.
u v ube u∗ uki vbe v∗ vki
AzF egyu →v éle−→azF0-ben azu∗−uki−vbe−v∗ út.
EzértG∈IH =⇒G0 ∈H
HaG0-ben van egyF0 ⊆E0 Hamilton-kör =⇒egyu∗-ból indulva egy uki felé lépjünk el ˝oször
=⇒csaku∗−uki−vbe−v∗ alakú lehet utána =⇒ez az út megfelel G-ben egy u -> v élnek. Ezt tovább folytatva Hamilton-kört kapunk G-ben.
EzértG0 ∈H =⇒G∈IH.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 4 / 27
Bizonyítás.
G-beliF irányított Hamilton-körének megfelelG0 egyF0 Hamilton-köre.
u v ube u∗ uki vbe v∗ vki
AzF egyu →v éle−→azF0-ben azu∗−uki−vbe−v∗ út.
EzértG∈IH =⇒G0 ∈H
HaG0-ben van egyF0 ⊆E0 Hamilton-kör =⇒egyu∗-ból indulva egy uki felé lépjünk el ˝oször
=⇒csaku∗−uki−vbe−v∗ alakú lehet utána =⇒ez az út megfelel G-ben egy u -> v élnek. Ezt tovább folytatva Hamilton-kört kapunk G-ben.
EzértG0∈H =⇒G∈IH.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 4 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható. x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható. x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható. x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható. x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható. x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható. x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható.
x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható.
x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
A Karp-redukció tulajdonságai
Tétel
1. Ha X ≺Y és Y ∈P, akkor X ∈P.
2. Ha X ≺Y és Y ∈NPakkor 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 .
Bizonyítás.
Legyen f az X Karp-redukciója Y -re, ahol f c1nk id ˝oben számolható.
x egy bemenet, melyr ˝ol szeretnénk eldönteni, hogy x ∈X teljesül-e, n az x hossza.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 5 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et
→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk. Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk.
Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk. Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk. Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk. Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk. Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk. Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk. Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
1.: Kiszámítjuk f(x)-et→id ˝oigénye≤c1nk =⇒ |f(x)| ≤c1nk. Y felismer ˝o algoritmusával c2|f(x)|l id ˝oben eldöntjük, hogy f(x)∈Y igaz-e.
→id ˝oigénye≤c2(c1nk)l
x ∈X ⇔f(x)∈Y =⇒összid ˝o O(nkl) √
2.: Az f(x)∈Y tény egy t tanúja jó x ∈X tanújának is, és az Y -hoz tartozóT tanúsító algoritmus egykis módosítássaljó lesz az X tanúsító algoritmusának is.
T0 az(x,t)bemenetre el ˝oször kiszámítja f(x)-et, majd az(f(x),t) párra alkalmazzaT-t.
Ha az eredményIGEN, akkor legyenT0eredménye isIGEN, különben pedigNEM.
|t|=O(|f(x)|c) =⇒ |t|=O(nkc)
T0 lépésszáma, haT lépésszáma O((|y|+|t|)l):
O(nk) +O((|f(x)|+|t|)l) =O(nk) +O(|f(x)|cl) =O(nkcl).
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 6 / 27
Bizonyítás.
3.: X-nek egy Karp-redukciójaY-ra egyben egy Karp-redukcióX-r ˝ol Y-re, hiszenx ∈X ⇐⇒ f(x)∈Y ugyanaz, mintx ∈/ X ⇐⇒ f(x)∈/ Y
4.: ⇐=2.,3. 5.: ⇐=2.,4.
6.: Legyenf azX ≺Y függvénye, amiO(nk)id ˝oben számolható ésg azY ≺Z függvénye, amiO(nl)id ˝oben számolható.
AzX ≺Z függvényeg(f(x))lesz, amiO((nk)l) =O(nkl)id ˝oben számolható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 7 / 27
Bizonyítás.
3.: X-nek egy Karp-redukciójaY-ra egyben egy Karp-redukcióX-r ˝ol Y-re, hiszenx ∈X ⇐⇒ f(x)∈Y ugyanaz, mintx ∈/ X ⇐⇒ f(x)∈/ Y 4.: ⇐=2.,3.
5.: ⇐=2.,4.
6.: Legyenf azX ≺Y függvénye, amiO(nk)id ˝oben számolható ésg azY ≺Z függvénye, amiO(nl)id ˝oben számolható.
AzX ≺Z függvényeg(f(x))lesz, amiO((nk)l) =O(nkl)id ˝oben számolható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 7 / 27
Bizonyítás.
3.: X-nek egy Karp-redukciójaY-ra egyben egy Karp-redukcióX-r ˝ol Y-re, hiszenx ∈X ⇐⇒ f(x)∈Y ugyanaz, mintx ∈/ X ⇐⇒ f(x)∈/ Y 4.: ⇐=2.,3.
5.: ⇐=2.,4.
6.: Legyenf azX ≺Y függvénye, amiO(nk)id ˝oben számolható ésg azY ≺Z függvénye, amiO(nl)id ˝oben számolható.
AzX ≺Z függvényeg(f(x))lesz, amiO((nk)l) =O(nkl)id ˝oben számolható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 7 / 27
Bizonyítás.
3.: X-nek egy Karp-redukciójaY-ra egyben egy Karp-redukcióX-r ˝ol Y-re, hiszenx ∈X ⇐⇒ f(x)∈Y ugyanaz, mintx ∈/ X ⇐⇒ f(x)∈/ Y 4.: ⇐=2.,3.
5.: ⇐=2.,4.
6.: Legyenf azX ≺Y függvénye, amiO(nk)id ˝oben számolható ésg azY ≺Z függvénye, amiO(nl)id ˝oben számolható.
AzX ≺Z függvényeg(f(x))lesz, amiO((nk)l) =O(nkl)id ˝oben számolható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 7 / 27
Bizonyítás.
3.: X-nek egy Karp-redukciójaY-ra egyben egy Karp-redukcióX-r ˝ol Y-re, hiszenx ∈X ⇐⇒ f(x)∈Y ugyanaz, mintx ∈/ X ⇐⇒ f(x)∈/ Y 4.: ⇐=2.,3.
5.: ⇐=2.,4.
6.: Legyenf azX ≺Y függvénye, amiO(nk)id ˝oben számolható ésg azY ≺Z függvénye, amiO(nl)id ˝oben számolható.
AzX ≺Z függvényeg(f(x))lesz, amiO((nk)l) =O(nkl)id ˝oben számolható.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 7 / 27
NP-teljes problémák
Definíció
Az X eldöntési problémaNP-nehéz, ha tetsz ˝oleges(azaz minden) X0 ∈NPprobléma esetén létezik X0 ≺X Karp-redukció.
Az X eldöntési problémaNP-teljes, ha X ∈NPés X NP-nehéz.
EgyNP-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, hogyP-beli (coNP-beli), akkor ugyanez igaz lenne mindenNP-beli problémára.
Van-e NP-teljes probléma?
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 8 / 27
NP-teljes problémák
Definíció
Az X eldöntési problémaNP-nehéz, ha tetsz ˝oleges(azaz minden) X0 ∈NPprobléma esetén létezik X0 ≺X Karp-redukció.
Az X eldöntési problémaNP-teljes, ha X ∈NPés X NP-nehéz.
EgyNP-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, hogyP-beli (coNP-beli), akkor ugyanez igaz lenne mindenNP-beli problémára.
Van-e NP-teljes probléma?
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 8 / 27
NP-teljes problémák
Definíció
Az X eldöntési problémaNP-nehéz, ha tetsz ˝oleges(azaz minden) X0 ∈NPprobléma esetén létezik X0 ≺X Karp-redukció.
Az X eldöntési problémaNP-teljes, ha X ∈NPés X NP-nehéz.
EgyNP-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, hogyP-beli (coNP-beli), akkor ugyanez igaz lenne mindenNP-beli problémára.
Van-e NP-teljes probléma?
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 8 / 27
Boole-formulák
Definíció
Az f :{0,1}n→ {0,1}függvényeket n-változósBoole-függvényeknek vagyBoole-formuláknakhívjuk.
Tétel
Minden Boole-függvény felírható az x1, . . . ,xnBoole-változók, az
∧,∨,¬logikai m ˝uveletek és zárójelek segítségével.
Pl. Boole-formula:
Φ = (x1∨ ¬x2∨x5)∧((¬x3∨x2∨(x6∧x1))∧ ¬(x5∨x6))
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 9 / 27
Boole-formulák
Definíció
Az f :{0,1}n→ {0,1}függvényeket n-változósBoole-függvényeknek vagyBoole-formuláknakhívjuk.
Tétel
Minden Boole-függvény felírható az x1, . . . ,xnBoole-változók, az
∧,∨,¬logikai m ˝uveletek és zárójelek segítségével.
Pl. Boole-formula:
Φ = (x1∨ ¬x2∨x5)∧((¬x3∨x2∨(x6∧x1))∧ ¬(x5∨x6))
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 9 / 27
Boole-formulák
Definíció
Az f :{0,1}n→ {0,1}függvényeket n-változósBoole-függvényeknek vagyBoole-formuláknakhívjuk.
Tétel
Minden Boole-függvény felírható az x1, . . . ,xnBoole-változók, az
∧,∨,¬logikai m ˝uveletek és zárójelek segítségével.
Pl. Boole-formula:
Φ = (x1∨ ¬x2∨x5)∧((¬x3∨x2∨(x6∧x1))∧ ¬(x5∨x6))
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 9 / 27
Boole-formulák
Definíció
Az f :{0,1}n→ {0,1}függvényeket n-változósBoole-függvényeknek vagyBoole-formuláknakhívjuk.
Tétel
Minden Boole-függvény felírható az x1, . . . ,xnBoole-változók, az
∧,∨,¬logikai m ˝uveletek és zárójelek segítségével.
Pl. Boole-formula:
Φ = (x1∨ ¬x2∨x5)∧((¬x3∨x2∨(x6∧x1))∧ ¬(x5∨x6))
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 9 / 27
Boole-formulák
Definíció
Egy Boole-formula kielégíthet ˝o, ha lehet úgy értékeket adni a változóinak, hogy a függvény értéke 1 legyen.
Pl. Φ(x1,x2) = (x1∨x2)∧(¬x1∨ ¬x2)kielégíthet ˝o, mert hax1=1 és x2=0, akkorΦ(x1,x2) =1
De pl. (x1∧ ¬x1)nyilván nem kielégíthet ˝o.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 10 / 27
Boole-formulák
Definíció
Egy Boole-formula kielégíthet ˝o, ha lehet úgy értékeket adni a változóinak, hogy a függvény értéke 1 legyen.
Pl. Φ(x1,x2) = (x1∨x2)∧(¬x1∨ ¬x2)kielégíthet ˝o, mert hax1=1 és x2=0, akkorΦ(x1,x2) =1
De pl. (x1∧ ¬x1)nyilván nem kielégíthet ˝o.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 10 / 27
Boole-formulák
Definíció
Egy Boole-formula kielégíthet ˝o, ha lehet úgy értékeket adni a változóinak, hogy a függvény értéke 1 legyen.
Pl. Φ(x1,x2) = (x1∨x2)∧(¬x1∨ ¬x2)kielégíthet ˝o, mert hax1=1 és x2=0, akkorΦ(x1,x2) =1
De pl. (x1∧ ¬x1)nyilván nem kielégíthet ˝o.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 10 / 27
Cook–Levin-tétel
Van-e NP-teljes probléma?
Definíció
SATprobléma:
Bemenet: ΦBoole-fomula Kérdés: Kielégíthet ˝o-eΦ?
Tétel (S. A. Cook, L. Levin, 1971) ASAT problémaNP-teljes.
Bizonyítás elég bonyolult.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 11 / 27
Cook–Levin-tétel
Van-e NP-teljes probléma?
Definíció
SATprobléma:
Bemenet:ΦBoole-fomula Kérdés: Kielégíthet ˝o-eΦ?
Tétel (S. A. Cook, L. Levin, 1971) ASAT problémaNP-teljes.
Bizonyítás elég bonyolult.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 11 / 27
Cook–Levin-tétel
Van-e NP-teljes probléma?
Definíció
SATprobléma:
Bemenet:ΦBoole-fomula Kérdés: Kielégíthet ˝o-eΦ?
Tétel (S. A. Cook, L. Levin, 1971) ASAT problémaNP-teljes.
Bizonyítás elég bonyolult.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 11 / 27
Cook–Levin-tétel
Van-e NP-teljes probléma?
Definíció
SATprobléma:
Bemenet:ΦBoole-fomula Kérdés: Kielégíthet ˝o-eΦ?
Tétel (S. A. Cook, L. Levin, 1971) ASAT problémaNP-teljes.
Bizonyítás elég bonyolult.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 11 / 27
További NP-teljes feladatok
Tétel
Ha az X problémaNP-teljes, Y ∈NPés X ≺Y , akkor Y isNP-teljes.
Bizonyítás.
Láttuk, hogy a Karp-redukció tranzitív.
=⇒HaX ≺Y ésZ ≺X teljesül∀Z ∈NPproblémára.
=⇒Z ≺Y teljesül∀Z ∈NPproblémára.
=⇒Y ∈NP-nehéz.
MivelY ∈NPis =⇒Y ∈NP-teljes.
Nem kell mármindenNP-beli problémát azY-ra redukálni; elég ezt megtenniegyetlenNP-teljesX problémával.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 12 / 27
További NP-teljes feladatok
Tétel
Ha az X problémaNP-teljes, Y ∈NPés X ≺Y , akkor Y isNP-teljes.
Bizonyítás.
Láttuk, hogy a Karp-redukció tranzitív.
=⇒HaX ≺Y ésZ ≺X teljesül∀Z ∈NPproblémára.
=⇒Z ≺Y teljesül∀Z ∈NPproblémára.
=⇒Y ∈NP-nehéz.
MivelY ∈NPis =⇒Y ∈NP-teljes.
Nem kell mármindenNP-beli problémát azY-ra redukálni; elég ezt megtenniegyetlenNP-teljesX problémával.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 12 / 27
További NP-teljes feladatok
Tétel
Ha az X problémaNP-teljes, Y ∈NPés X ≺Y , akkor Y isNP-teljes.
Bizonyítás.
Láttuk, hogy a Karp-redukció tranzitív.
=⇒HaX ≺Y ésZ ≺X teljesül∀Z ∈NPproblémára.
=⇒Z ≺Y teljesül∀Z ∈NPproblémára.
=⇒Y ∈NP-nehéz.
MivelY ∈NPis =⇒Y ∈NP-teljes.
Nem kell mármindenNP-beli problémát azY-ra redukálni; elég ezt megtenniegyetlenNP-teljesX problémával.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 12 / 27
További NP-teljes feladatok
Tétel
Ha az X problémaNP-teljes, Y ∈NPés X ≺Y , akkor Y isNP-teljes.
Bizonyítás.
Láttuk, hogy a Karp-redukció tranzitív.
=⇒HaX ≺Y ésZ ≺X teljesül∀Z ∈NPproblémára.
=⇒Z ≺Y teljesül∀Z ∈NPproblémára.
=⇒Y ∈NP-nehéz.
MivelY ∈NPis =⇒Y ∈NP-teljes.
Nem kell mármindenNP-beli problémát azY-ra redukálni; elég ezt megtenniegyetlenNP-teljesX problémával.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 12 / 27
További NP-teljes feladatok
Tétel
Ha az X problémaNP-teljes, Y ∈NPés X ≺Y , akkor Y isNP-teljes.
Bizonyítás.
Láttuk, hogy a Karp-redukció tranzitív.
=⇒HaX ≺Y ésZ ≺X teljesül∀Z ∈NPproblémára.
=⇒Z ≺Y teljesül∀Z ∈NPproblémára.
=⇒Y ∈NP-nehéz.
MivelY ∈NPis =⇒Y ∈NP-teljes.
Nem kell mármindenNP-beli problémát azY-ra redukálni; elég ezt megtenniegyetlenNP-teljesX problémával.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 12 / 27
További NP-teljes feladatok
Tétel
Ha az X problémaNP-teljes, Y ∈NPés X ≺Y , akkor Y isNP-teljes.
Bizonyítás.
Láttuk, hogy a Karp-redukció tranzitív.
=⇒HaX ≺Y ésZ ≺X teljesül∀Z ∈NPproblémára.
=⇒Z ≺Y teljesül∀Z ∈NPproblémára.
=⇒Y ∈NP-nehéz.
MivelY ∈NPis =⇒Y ∈NP-teljes.
Nem kell mármindenNP-beli problémát azY-ra redukálni; elég ezt megtenniegyetlenNP-teljesX problémával.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 12 / 27
További NP-teljes feladatok
Tétel
Ha az X problémaNP-teljes, Y ∈NPés X ≺Y , akkor Y isNP-teljes.
Bizonyítás.
Láttuk, hogy a Karp-redukció tranzitív.
=⇒HaX ≺Y ésZ ≺X teljesül∀Z ∈NPproblémára.
=⇒Z ≺Y teljesül∀Z ∈NPproblémára.
=⇒Y ∈NP-nehéz.
MivelY ∈NPis =⇒Y ∈NP-teljes.
Nem kell mármindenNP-beli problémát azY-ra redukálni; elég ezt megtenniegyetlenNP-teljesX problémával.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 12 / 27
A 3-SZÍN probléma
Tétel
A3SZÍNproblémaNP-teljes.
Bizonyítás.
Már láttuk, hogy∈NP, belátható, hogySAT≺3SZÍN.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 13 / 27
A 3-SZÍN probléma
Tétel
A3SZÍNproblémaNP-teljes.
Bizonyítás.
Már láttuk, hogy∈NP, belátható, hogySAT≺3SZÍN.
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 13 / 27
Maximális méret ˝u független pontrendszer gráfokban
MAXFTLEN
Bemenet:Ggráf,k ∈Z+.
Kérdés: Van-eG-nekk elem ˝u független csúcshalmaza?
Tétel
AMAXFTLNnyelvNP-teljes.
Bizonyítás.
MAXFTLEN∈NP: tanú egy k -elem ˝u S ⊆V(G)független csúcshalmaz. √
Megadunk egy 3SZÍN ≺MAXFTLEN Karp-redukciót: G→(G0,k0) G∈3SZÍN⇔(G0,k0)∈MAXFTLEN
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 14 / 27
Maximális méret ˝u független pontrendszer gráfokban
MAXFTLEN
Bemenet:Ggráf,k ∈Z+.
Kérdés: Van-eG-nekk elem ˝u független csúcshalmaza?
Tétel
AMAXFTLNnyelvNP-teljes.
Bizonyítás.
MAXFTLEN∈NP: tanú egy k -elem ˝u S ⊆V(G)független csúcshalmaz. √
Megadunk egy 3SZÍN ≺MAXFTLEN Karp-redukciót: G→(G0,k0) G∈3SZÍN⇔(G0,k0)∈MAXFTLEN
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 14 / 27
Bizonyítás.
G0 megadása: VegyükGhárom másolatát (G(1),G(2),G(3)), minden csúcs három példányát összekötjük.
G(1) G(2) G(3)
|V(G0)|=3|V(G)|és
|E(G0)|=3|V(G)|+3|E(G)|, legyenk0=|V(G)|.
HaGszínezhet ˝o 3 színnel =⇒G0is =⇒
a piros pontok halmazaG0-ben független és|V(G)|van bel ˝olük. √ HaG0-ben van|V(G)|független, akkor legyenS egy ilyen ponthalmaz G’-ben.
=⇒MindenG-belix pontnak pontosan 1 példányát tartalmazzaS.
=⇒Azx pont legyensárga/piros/zöld, ha ez a példányG(1)-ben / G(2)-ben /G(3)-ban van. =⇒ez jó színezésG-ben. √
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 15 / 27
Bizonyítás.
G0 megadása: VegyükGhárom másolatát (G(1),G(2),G(3)), minden csúcs három példányát összekötjük.
G(1) G(2) G(3)
|V(G0)|=3|V(G)|és
|E(G0)|=3|V(G)|+3|E(G)|, legyenk0=|V(G)|.
HaGszínezhet ˝o 3 színnel =⇒G0is =⇒
a piros pontok halmazaG0-ben független és|V(G)|van bel ˝olük. √ HaG0-ben van|V(G)|független, akkor legyenS egy ilyen ponthalmaz G’-ben.
=⇒MindenG-belix pontnak pontosan 1 példányát tartalmazzaS.
=⇒Azx pont legyensárga/piros/zöld, ha ez a példányG(1)-ben / G(2)-ben /G(3)-ban van. =⇒ez jó színezésG-ben. √
Katona Gyula Y. (BME SZIT) Algoritmuselmélet 13. el ˝oadás 15 / 27