You are on page 1of 12

Kiegeszto anyag az Algoritmuselmelet targyhoz

III.
(a RonyaiIvanyosSzabo: Algoritmusok konyv melle)

Friedl Katalin
BME SZIT
friedl@cs.bme.hu
2008. j
unius 9.

A bonyolults
agelm
elet alapjai: a P
es az NP oszt
aly
Egy algoritmust (elmeleti szempontbol) hatekonynak mondunk, ha lepesszama
felulr
ol becsulhet
o a bemenet hosszanak egy polinomjaval, azaz ha f (n) jeloli
az algoritmus maxim alis kepesszamat az n hossz u bemeneteken, akkor f (n) =
O(nk ) teljes ul valamilyen k pozitv konstansra. Termeszetesen, ha a kime-
net mondjuk exponenci alis hossz u, akkor az algoritmus nem lehet polinom
lepessz
amu. Ez a helyzet peldaul ha az x pozitv egesz bementbol a 2x szamot
akarjuk kisz amolni, hiszen a bemenet hossza, azaz, az x lerasahoz sz ukseges
bitek sz ama dlog(x + 1)e, mg a kimenet hossza x + 1 bit. Azonban elofordulhat,
hogy b ar a kimenet r ovid (1 bit), megsem ismert a feladatra hatekony algorit-
mus. (S ot olyan is el
ofordul, hogy egyaltalan nincs is algoritmus, de most ezzel
az ut obbi esettel nem foglalkozunk majd az MSc kepzesben.)
Mostantol csak olyan tpus u feladatokkal fogunk foglalkozni, amelyekre a
v alasz 1 bit, ezek az u
gynevezett eld ontesi problemak. Ilyenek peldaul, hogy
egy pozitv egesz sz
am prmszam-e,
egy gr
afban van-e Hamilton-kor,
egy gr
af ket adott s es t pontja kozott vezet-e u
t.
1. Definci
o. Egy eld
ontesi problem
ahoz tartoz
o nyelv azoknak a bemeneteknek
a halmaza, amelyekre a valasz igen. A lehetseges bemeneteket (amik teh
at vagy
beletartoznak L-be vagy nem), szavaknak hvjuk.
Az el
oz
o peld
akb
ol az al
abbi nyelveket kapjuk
prm nyelv, ami a prmszamokbol all,
prm= {m > 0 : m prmszam}
(Itt a szavak a bitsorozatok, amikre, mint kettes szamrendszerben felrt
sz
amokra tekintunk.)

1
H a Hamilton-k ort tartalmazo grafokbol allo nyelv,
H= {G : G ir anytatlan graf, van benne Hamilton-kor}
(Itt a szavak bitsorozatok, ha a szo hossza n2 , akkor ezt mint egy n n
matrixot tekintj
uk, a graf pedig az a graf, aminek ez a szomszedossagi
matrixa.)
u
t az olyan grafok nyelve, amiben van s es t kozott u t,
t = {(G, s, t) : G ir
u anytatlan graf , s, t a G cs
ucsai, G-ben vezet s-bol t-be u
t}
2. Defincio. Jel
olje P azoknak a nyelveknek a halmaz at, amelyekhez van olyan
algoritmus, ami minden x bemenetre eld onti, hogy x a nyelvbe tartozik vagy
ama O(|x|k ) valamely k pozitv sz
sem, es az algoritmus lepessz amra. (Itt |x| az
x bemenet hossz at jel
oli, k f
uggetlen x-t
ol.)
Ezt ugy is mondjuk, hogy van a nyelvet polinom idoben felismero (eldonto)
algoritmus.
Az eloz
o peld
akat vizsg
alva konnyen latszik, hogy u t P, mert egy szelessegi
bejar
assal a nyelvbe tartozas eldontheto es ez egy polinom ideju algoritmus. Az
is igaz, hogy prm P, de ez nem t ul egyszer u, sokaig megoldatlan kerdes volt.
A H nyelvr ol nem ismert, hogy P-ben van-e, azaz, hogy van-e ra polinom idoben
mukodo algoritmus (bizonyos specialis grafosztalyok eseten van ilyen).
3. Definci
o. Jel
olje NP azoknak az L nyelveknek a halmaz
at, amelyekre tel-
jes
ul a k
ovetkez gy, hogy Lp P
o: van olyan k > 0 konstans es Lp nyelv u
valamint
x L y, |y| = O(|x|k ) es (x, y) Lp .
Ez azt jelenti, hogy ha x L, akkor van egy polinom hossz u bizonytek (ez az
y), amire az (x, y) p utt polinom idoben igazolja, hogy x L. Az y-t az x
ar egy
tanuj
anak vagy sugasnak is szoktak hvni. Ha viszont x 6 L, akkor nem lehet
ilyen ,,polinom id
oben meggyozo bizonytek.
1. Megjegyz es. Az NP a nemdeterminisztikus polinom ido r ovidtese, es azt
fejezi ki, hogy a definci
oban szereplo y-t nem feltetlen
ul tudjuk hatekonyan meg-
tal
alni. Az NP-be tartoz ashoz azonban elegend o, hogy a tanu letezik amennyiben
x L es ha megkapjuk y-t, akkor gyorsan tudjuk ellen orizni, hogy ez val oban j o
tanu. Ezert is szok
as sugasnak hvni, mert eleg, ha valaki s
ug nek unk egy y sz ot
(ut
ana a helyesseget m ar magunk is tudjuk polinom id oben ellen orizni).

P
eld
ak
H NP, mert egy G H grafhoz jo tan u a graf cs
ucsainak egy, a
Hamilton-k or menten valo felsorolasa. Mivel ez a tan u a graf cs
ucsait
sorolja fel, ezert val oban polinom hossz u lesz. Az Lp nyelv az olyan
(G, v1 , . . . , vn ) bemenetekbol all, ahol G egy iranytatlan graf, v1 , . . . , vn
pedig a G cs ucsainak egy olyan permutacioja, amire fennall, hogy {v1 , v2 },
{v2 , v3 }, . . ., {vn1 , vn }, {vn , v1 } mindegyike ele a grafnak. Vilagos, hogy
ha adott a G gr af es a v1 , . . . , vn sorrend, akkor valoban polinom idoben
ellenorizhet o, hogy a (G, v1 , . . . , vn ) bemenet benne van Lp nyelvben.

2
Legyen o
sszetett= {m > 0 : m egesz, de nem prmszam}.
K
onnyu l sszetett NP, mert legyen
atni, hogy o
Lp = {(m, d) : 1 < d < m, d osztoja m-nek}.
ul, hogy Lp P, egy m osszetett szamhoz jo tan
Erre teljes u az m-nek
egy val
odi d oszt
oja. Ennek hossza legfeljebb annyi, mint m hossza, azaz
k = 1.
Legyen 3szn = {G : G egy iranytatlan egyszer u graf, aminek csucsai
ok 3 sznnel }.
kisznezhet
Itt j
o tan
u lesz a graf cs
ucsainak egy 3 sznnel sznezese, ami, ha n cs
ucsa
van a grafnak, akkor lerhato n darab 1 es 3 kozotti szammal,
Lp = {(G, c1 , . . . , cn ) : 1 ci 3 egy jo sznezese G cs
ucsainak}.
Ekkor Lp P.
o. Egy L nyelv L komplementere azokb
4. Definci ol a szavakb
ol
all, amik nin-
csenek L-ben, azaz L = {x : x 6 L}.

Altal
aban azt tetelezz
uk fel, hogy a szavak a veges hossz
u bitsorozatok, ilyenkor
L pontosan azokb ol a bitsorozatokbol all, amelyek nincsenek L-ben.
5. Definci
o. Jel
olje co NP az NP-beli nyelvek komplementereibol
all
o halmazt,
azaz co NP = {L : L NP}.
A definci
o miatt, mg az NP nyelvek eseteben a defincio szerint a nyelvbe
tartoz
asra van polinom hossz u, polinom idoben ellenorizheto bizonytek, a co NP
nyelveknel arra van r
ovid bizonytek, ha valami nem tartozik a nyelvbe.
t
1. All as. P NP es P co NP.
Bizonytas: Ha L P, akkor valaszthatjuk az Lp nyelvet L-nek es y legyen
az u
res sz o (azaz ilyenkor nincs szukseg
unk arra, hogy megsejts unk egy bi-
zonytekot, polinom id
oben el fel tudjuk ismerni magat az L nyelvet is). 

A szamt
astudom any talan legfontosabb (es legnepszer
ubb) nyitott kerdese,
hogy vajon P es NP megegyezik vagy nem. Ha P NP valodi tartalmazas, akkor
ez azt jelentene, hogy vannak olyan kerdesek, amikre van rovid (polinom hossz u)
bizonytek, de ezt a bizonytekot nem lehet polinom idoben megtalalni, azaz
egy jo valasz ellenorzese algoritmikusan lehet lenyegesen egyszer ubb, mint egy
j
o valasz megtal al
asa (ami koznapi logikaval eleg hihetonek tunik). Mint latni
fogjuk, sok nevezetes problema bonyolultsaga m ulik ezen a kerdesen. Ennek
is kosz
onhet o, hogy az ezredfordulon a Clay Mathematics Institute 6 masik
?
matematikai problem aval egyutt a P = co NP problemara is 1 millio dollaros
djat t
uzott ki (l
asd www.claymath.org/millennium/ ).
Ahhoz, hogy jobban megerthess uk ezt a problemat, tovabbi fogalmakra lesz
szukseg. Nyelvek bonyolultsaganak osszehasonltasara szolgal a polinomialis
visszavezetes, vagy m as neven Karp-redukcio.

3
6. Defincio. Legyen L1 es L2 ket nyelv. Az L1 nyelv Karp-redukcioja (poli-
nomialis visszavezetese) az L2 nyelvre egy olyan polinom id oben sz
amolhat
o f
f
uggveny, ami minden sz ohoz egy sz
ot rendel, es teljes
ul r
a, hogy

x L1 f (x) L2 .

olese: L1 L2 .
A jel

A jel
oles arra utal, hogy, mint majd mindjart latni fogjuk, az L2 nyelv
algoritmikusan legal
abb olyan nehez, mint az L1 .
t
2. All as. Ha L2 P es L1 L2 , akkor L1 P.

Bizonytas: A feltetel szerint van egy polinomialis A algoritmus, ami tetszoleges


z sz
or onti, hogy z L2 vagy z 6 L2 . Legyen x egy szo, amirol azt akarjuk
ol eld
tudni, hogy L1 -be tartozik-e. Erre egy jo algoritmus, ha elobb kiszamoljuk
ana erre alkalmazzuk A-t. Mivel x L1 f (x) L2 , ezert az
f (x)-et es ut
?
altal az f (x) L2 kerdesre adott valasz megegyezik az altalunk keresett
A
?
v alasszal az x L1 kerdesre. Az eljaras lepesszama: f (x) kiszamolasa O(|x|k )
lepes valamely k-ra, es ezert f (x) hosszara igaz, hogy |f (x)| = O(|x|k ). Az
f (x) bemeneten A lepessz ama O(|f (x)|` ) valamely `-re mert A polinom idej u
at a lepesszam osszesen O(|x|k ) + O(|f (x)|` ) = O(|x|k` ), ami
algoritmus, gy teh
val oban polinomja a bemenet |x| hosszanak. 
t
3. All as. Ha L2 NP es L1 L2 , akkor L1 NP.

Bizonytas: Jel olje L2p P azt a polinom idoben felismerheto nyelvet, amit
az NP definci ojabol L2 -re kapunk es legyen f a Karp-redukcio. Ekkor L1p =
{(x, y) : (f (x), y) L2p } jo lesz L1 -hez, hiszen egyreszt

x L1 f (x) L2 y (f (x), y) L2p y (x, y) L1p ,

masreszt pedig y polinom hossz u x hosszahoz kepest, amit az elozohoz ha-


sonloan l
athatunk: y polinom hossz u f (x) hosszahoz kepest, mert y az f (x)-nek
tanuja. Tov abba f (x) polinom hossz u az |x|-hez kepest, mert f polinom idoben
sz
amolhat at |y| polinomialis |x|-ben.
o, teh
Az kell meg, hogy L1p P, de ez kovetkezik abbol, hogy (x, y)-bol (f (x), y)
polinom id oben szamolhat o es a Karp-redukcio defincioja szerint L2p P. 

t
4. All as. Ha L1 L2 , akkor L1 L2 .

Bizonyt
as: Vegyuk eszre, hogy ha f egy L1 L2 Karp-redukcio, akkor ugyanez
uggveny egyben egy L1 L2 Karp-redukcio is, hiszen x L1 f (x) L2
a f
ugyanazt jelenti, mint x 6 L1 f (x) 6 L2 . 
t
5. All as. Ha L2 co NP es L1 L2 , akkor L1 co NP.

4
as: Mivel L1 L2 , ezert az elozo alltas szerint L1 L2 is teljes
Bizonyt ul.
o szerint Li co NP pontosan akkor, ha Li NP. A feltetel szerint
A definci
L2 NP, teh at a 3. as miatt L1 NP, azaz L1 co NP
allt 
t
6. All as. Ha L1 L2 es L2 L3 , akkor L1 L3 , azaz a rel
aci
o tranzitv.

Bizonyt
as: Legyen f az els o es g a masodik Karp-redukcio f
uggvenye. Ekkor
g(f (x)) egy L1 L3 Karp-redukcio. Ehhez azt kell csak meggondolni, hogy
ha |f (x)| = O(|x|k ) es |g(z)| = O(|z|` ), akkor |g(f (x))| = O(|x|k` ), ami |x|-nek
polinomja es x L1 f (x) L2 g(f (x)) L3 . 

o. Egy L nyelv NP-nehez, ha minden L0 NP nyelvre teljes


7. Definci ul, hogy
0
L L.

o. Egy L nyelv NP-teljes, ha az L nyelv NP-nehez es L NP.


8. Definci

Szemleletesen egy NP-nehez nyelv legalabb olyan nehez mint barmelyik NP-
beli nyelv (de lehet sokkal nehezebb is), mg az NP-teljes nyelvek az NP osztaly
legnehezebb nyelvei, hisz maguk is NP-ben vannak, es legalabb olyan nehezek,
mint b armely NP-beli nyelv.
?
A P = NP kerdes eld ontesehez elegendo lenne egy NP-teljes nyelvrol meg-
mutatni, hogy P-ben van, hiszen ha az L nyelv NP-teljes, akkor minden L0 NP
ul, hogy L0 L, es ha ugyanekkor L P is igaz, akkor a 2. alltas
nyelvre teljes
ertelmeben L0 P minden L0 NP nyelvre.
Ezert a h
atralev
o reszben NP-teljes nyelvekkel foglalkozunk. Tortenetileg az
els
o NP-teljessegi bizonytast Stephen Cook es Leonid Levin egymastol f ugget-
len
ul, nagyjabol egy idoben, a 70-es evek elejen adta. Az ebben szereplo nyelv
bizonyos fajta logikai fomul akrol szol. A kesobbiekben azutan az NP-teljes nyel-
vek szama gyorsan n ott, m ar a 70-es evek vegen megtoltottek egy egesz konyvet.
Ha m ar van legalabb egy NP-teljes nyelv unk, akkor a tovabbi NP-teljessegi
bizonyt
asok a kovetket o sema szerint keszthetoek:
atjuk, hogy L NP
1. Bel
oleges NP-teljes L0 nyelvre megmutatjuk, hogy L0 L.
2. Egy tetsz
Ez a sema a Karp-redukci o tranzitivitasa (6. alltas) miatt m
ukodik, hiszen az
oja szerint minden L00 NP nyelvre L00 L0 es gy L0 L-
NP-teljesseg definci
b ovetkezik, hogy L00 L is teljes
ol k ul minden L00 NP nyelvre.
Kiindulasi nyelvkent bizonytas nelkul fogadjuk el, hogy a mar korabban
l
atott 3szn NP-teljes. (Mint mar emltett uk, nem ez volt az elso bizonytottan
NP-teljes nyelv, de nek unk jo kezdopont lesz.)

1. T
etel. A 3szn nyelv NP-teljes.

2. Megjegyz es. A hasonl oan definialt 2szn nyelvre 2szn P, hiszen az, hogy
egy graf sznezhet
o-e 2 sznnel egyszeruen ellen orizhet
o (pl. szelessegi bej
ar
assal
kisznezhetok a csucsok ket sznnel, ha egy
altalan van ilyen sznezes).

5
A 3szn nyelv nehezsegenek felhasznalasal mar be tudjuk bizonyjtani mas
nyelvekr ol, hogy NP-teljesek. Eloszor azt szeretnenk megmutatni, hogy grafban
a legnagyobb f uggetlen ponthalmaz meretenek meghatarozasa is algoritmikusan
nehez feladat. Ehhez elobb ezt at kell fordtani egy eldontesi problemava. Tech-
nikai okok miatt ezt u gy celszer
u csinalni, hogy az eldontesi problemaban nem
a maximum ertekere kerdezunk ra, hanem arra, hogy van-e eleg nagy f uggetlen
ponthalmaz. Legyen

maxftl = {(G, k) : G egy graf, amiben van k darab f


uggetlen pont}.

2. Tetel. Ha lenne egy A polinom idej u algoritmus, ami felismeri a maxftl


nyelvet, akkor polinom idoben meg is lehet hat
arozni egy adott gr
afban a ma-
xim
alis f
uggetlen ponthalmaz meretet.

Bizonyt as: Ha az n pont u G grafban keres unk maximalis f


uggetlen ponthal-
mazt, akkor alkalmazzuk A-t eloszor a (G, dn/2e) parra. Ha a valasz ,,nem,
azaz nincs dn/2e f uggetlen pont, akkor probalkozzunk a (G, dn/4e) parral. Ellen-
kez o esetben pedig, a (G, d3n/4e) parral. Hasonloan folytatva binaris keresessel
meghat arozhatjuk azt a legnagyob k erteket, amire (G, k) maxftl. Az eljaras
sor an az A algoritmus alkalmazasainak szama (log n) es mindegyik polinom
lepesig tart, teh
at
osszesen is polinom ideju algoritmust kapunk. 

3. Megjegyz es. Ha nem csak a meretet akarjuk meghat


arozni, hanem meg is
akarunk tal
alni egy legnagyobb f
uggetlen ponthalmazt G-ben, az is megoldhat
o
lenne polinom idoben az A algoritmus felhaszn
al
as
aval.

Most megmutatjuk, hogy a maxftl nyelv felismerese valoszn


uleg nehez.
3. T
etel. A maxftl nyelv NP-teljes.
Bizonytas: maxftl NP, hiszen k olyan pontja a grafnak, ami kozott nem
megy el megfelel o tan u arra, hogy (G, k) maxftl.
Az NP-teljesseghez mutatunk egy 3szn maxftl Karp-redukciot. Ehhez
egy olyan polinom id oben szamolhato f uggvenyt kell megadni, ami minden G
gr
afhoz hozz arendel egy (H, k) part u gy, hogy G 3szn (H, k) maxftl.
Jel
olje a G gr af pontjait v1 , . . . , vn . A H-nak 3n darab pontja lesz, legyenek
ezek a1 , . . . , an , b1 , . . . , bn , c1 , . . . , cn . Ha G-ben van el vi es vj kozott, akkor
menjen el az ai es aj , a bi es bj , valamint a ci es cj pontok kozott is (azaz
vett
unk 3 peld anyt a G gr afbol). Ezeken fel ul meg minden 1 i n indexre
h
uzzuk be mindh arom elet az ai , bi es ci pontok kozott (azaz egy G-beli pont
mindh arom peld anya k oz
ott), k pedig legyen n. Vilagos, hogy ez a konstrukcio
adott G-re polinom id oben megvalosthato, hiszen a H-nak haromszor annyi
pontja lesz mint G-nek, eleinek szama 3e + 3n, ahol e jeloli G eleinek szamat.
El
obb bel atjuk, hogy ha G 3szn, akkor a H grafban van n f uggetlen pont:
tekintsuk a G gr af egy 3 sznnel valo sznezeset. A H-ban vegy uk azt a ponthal-
mazt, ami az ai -k k oz ul azokat tartalmazza, amik a sznezes elso sznosztalyaba
tartozo pontoknak felelnek meg, a bi -k koz ul a masodik sznosztalyba tartozo

6
pontok megfelel oit, a ci -k k
ozul pedig a harmadik sznosztaly megfeleloit. Ek-
kor minden i-re az ai , bi , ci cs ucsok koz ul pontosan egyet valasztottunk, tehat
osszesen n darabot. Ezek a kivalasztott cs
ucsok f
uggetlenek H-ban, mert a
kivalasztott ai -k G-ben f uggetlenek (hiszen azonos szn ure voltak sznezve G-
ben) es ugyanez igaz a bi -kre illetve a ci -kre is. Tovabba, mivel egy G-beli
pontnak csak egy peld anya van benne, ezert a kivalasztott a, b es c pontok
kozott sincsenek elek. Igy tehat (H, n) maxftl.
Meg azt kell megmutatni, hogy ha (H, n) maxftl, akkor G 3szn.
A H gr af egy F f uggetlen ponthalmaza minden i-re az ai , bi , ci pontok koz ul
csak egyet tartalmazhat. Mivel n pont van F -ben, ezert minden i-re az ai , bi , ci
pontok egyiket tartalmaznia is kell. Az F pontjaibol az a tpus uak az eredeti
G-nek egy f uggetlen ponthalmazat adjak, es ugyanez igaz a b, illetve a c tpus u
pontokra is. Egy H-beli n meret u f
uggetlen ponthalmazbol az alabbi modon
lehet a G gr af egy 3 sznnel valo sznezeset megkapni: A f uggetlen ponthalmazba
eso a tpusu pontok G-beli megfeleloit sznezz uk az elso sznnel, a b tpus
u pontok
megfelel oit a masodik sznnel, a c tpus u pontok megfeleloit a harmadik sznnel.
Ezzel G pontjainak megadtuk egy 3 sznnel valo sznezeset, tehat G 3szn. 
4. Megjegyz es. Ha a nyelvet u gy definialtuk volna, hogy olyan (G, k) parokbol
all, melyekre a G-beli maxim
alis f
uggetlen ponthalmaz merete pontosan k, ak-
kor azzal a nehezseggel nezt
unk volna szembe, hogy nem vil agos mi lenne egy jo
tanu a nyelvbe tartoz
asra. Ebben az esetben k pont megad asa nem eleg, mert bar
azt tudjuk polinom id oben ellen orizni, hogy az adott k pont val oban egy fugget-
len halmazt alkot, de mi garant alja azt, hogy ennel t
obb pontbol
all
o f
uggetlen
ponthalmaz nincs a gr afban?
A maxftl nyelvhez hasonloan definialhatjuk a legnagyobb teljes reszgrafhoz
tartoz
o nyelvet,
maxklikk = {(G, k) : G egy graf, amiben van k pont
u teljes reszgraf}.
Erre is hasonl
oak igazak, mint a maxftl nyelvre.
4. Tetel. Ha lenne egy A polinom idej u algoritmus, ami felismeri a maxklikk
nyelvet, akkor polinom id oben meg is lehetne hatarozni egy adott grafban egy
maxim alis meret
u teljes reszgr
af pontjainak szam
at.
Bizonyt
as: A bizonyt as itt is hasonloan megy, a legnagyobb klikk merete az A
algoritmus segtsegevel binaris keresessel meghatarozhato. 
5. T
etel. A maxklikk nyelv NP-teljes.
Bizonytas: Az vil agos, hogy maxklikk NP, mert az a k pont, amik altal
fesztett reszgraf egy teljes k pont u graf, polinom meret
u es polinom idoben
ellenorizhet o tanu.
Az NP-teljesseg bizonyt asahoz mutatunk egy maxftl maxklikk Karp-
redukci ot. Legyen f (G, k) = (G, k), ahol G a G graf komplementeret jeloli. Ez
egy, a gr af mereteben polinom idoben szamolhato fuggveny es nyilvan
(G, k) maxftl (G, k) maxklikk.

7

Tov
abbi NP-teljes nyelvek (bizonytas nelk
ul)

H = {G : G ir
anytatlan grafban van Hamilton-kor}

Hu
t = {G : G ir
anytatlan grafban van Hamilton-
ut}

s-tHu
t = {(G, s, t) : G iranytatlan grafban van olyan Hamilton-ut,
aminek vegpontjai s es t}

6. T
etel. A re fizo nyelv NP-teljes, ahol
szgra

fizo = {(G1 , G2 ) : G0 G2 , G0 ' G1 },


szgra
re

(azaz a G2 gr
afnak van a G1 gr
affal izomorf reszgr
afja).

Bizonytas: Az NP-beliseget mutatja, ha tan ukent megadjuk, hogy a G1 me-


lyik csucs
anak a G2 melyik cs ucsa kell, hogy megfeleljen. Ez a tan u a bemenet
hosszaban (azaz a ket gr af megadasanak hosszaban) polinomialis, es polinom
id
oben lehet ellen orizni, hogy ez valoban a G1 es G2 egy reszgrafja kozotti izo-
morfimus. (Nem elegend o csak a G1 -nek megfelelo cs ucsok halmazat megadni,
mert izomorfizmus tal al
asa a tudomany mai allasa szerint neheznek latszik, ld.
a tetel ut
ani megjegyzest. Viszont azt ellenorizni, hogy a cs ucsok kozott adott
megfeleltetes j
o-e nem all masbol, mint hogy minden pontparra ellenorizz uk,
hogy ha G1 -ben van k ozottuk el, akkor G2 -ben is.)
Az NP-teljesseg bizonyt asahoz mutassuk meg hogy van H re szgra fizo
Karp-redukci o. Ehhez definialjuk azt a f uggvenyt, ami minden n pont u G
gr
afhoz a (C, G) part rendeli, ahol C egy n pont u kor. Ez a f
uggveny kiszamolhato
polinom id oben. Mivel G-ben pontosan akkor van Hamilton-kor, ha van benne
C-vel izomorf reszgr af, ezert G H (C, G) re szgrafizo. 
A H nyelv helyett haszn alhattuk volna peldaul a maxklikk nyelvet is.

5. Megjegyz
es. A hasonl
onak t
un
o

fizo = {(G1 , G2 ) : G1 ' G2 }


gra

nyelvre igaz, hogy NP-ben van, de nem ismert, hogy NP-teljes-e, vagy hogy
esetleg van-e r
a polinom idej
u algoritmus.

Nehany fontos, nem gr


afokrol szolo NP-teljes eldontesi feldat (bizonytas
nelk
ul)

3DH: Vegy unk h


arom azonos meret u veges halmazt, |A| = |B| = |C|,
es tekints
unk neh
any olyan harom elem u halmazt, melyek mindharom
halmazbol egy-egy elemet tartalmaznak. Kerdes, hogy kivalaszthato-e
ezekb
ol a 3 elem gy, hogy az A B C alaphalmaz
u halmazokbol nehany u
minden eleme pontosan egy kivalasztott halmazban legyen benne.

8
A nyelv form
alis ler
asa:

3DH = {(A, B, C; F1 , F2 , , Fn ) : |A| = |B| = |C|, Fi A B C,


I {1, 2, . . . , n}, az Fj halmazok (j I) az A B C
minden elemet pontosan egyszer fedik le}.

X3C: Itt egyetlen A veges alaphalmaz van, es ennek adottak bizonyos 3


elemu reszhalmazai. Az eldontesi feladat itt is az, hogy ezekbol nehanyat
ki tudunk-e valasztani u
gy, hogy A minden eleme pontosan egy kivalasztott
halmazban legyen benne.

X3C = {(A; F1 , F2 , . . . , Fn ) : I {1, 2, . . . , n}, jI Fj = A


es j I-re az Fj halmazok diszjunktak}.

RH (reszhalmaz osszeg): A dontesi feladat: adottak s1 , s2 , . . . , sn pozitv


egesz sz
amok, es meg egy b pozitv egesz szam is. Kerdes, hogy az si -k
k
ozul kiv
alaszthato-e nehany u
gy, hogy osszeg
uk epp b-vel legyen egyenlo.
A megfelel
o nyelv:

RH = {(s1 , s2 , . . . , sn ; b) : si , b > 0 egeszek ,


X
I {1, 2, . . . , n}, sj = b}.
jI

partcio : A d
ontesi feladatban adottak s1 , s2 , . . . , sn pozitv egesz szamok.
A kerdes, hogy ket reszre oszthatoak-e u
gy, hogy a ket resz osszege azonos
legyen, azaz van-e olyan I {1, 2, . . . , n}, melyre
X X
sj = sj ,
jI j6I

teh
at

= {(s1 , s2 , . . . , sn ) : si > 0 egeszek ,


partcio
X X
I {1, 2, . . . , n}, sj = sj }.
jI j6I

ha tizsak: Adottak az s1 , s2 , . . . , sn es v1 , v2 , . . . , vn pozitv egesz szamok,


valamint Pb, k pozitv eg eszek. Kerdes, hogy van-e olyan I {1, 2, . . . , n},
P
melyre jI sj b es jI vj k. Kevesbe formalisan: van n targy, az
i-ediknek si a s ulya es vi az erteke. Tovabba van egy hatizsakunk, aminek
teherbr
asa b. Kerdes, hogy ki tudunk-e valasztani u gy nehany targyat,
hogy osszessegeben ne lepjuk t ul a hatizsak teherbrasat, de legalabb k
erteket elpakoljunk. (Az eredeti valtozatban ez egy maximalizalasi feladat,
adott b sulykorl athoz hatarozzuk meg a leheto legnagyobb osszerteket, ami
elpakolhat o a fenti ennek az eldontesi valtozata.)

9
la
dapakola s: Adott n targy, az i-edik merete 0 < si 1 racionalis
sz
am. Kerdes, hogy belepakolhato-e az osszes targy k darab ladaba akkor,
ha minden l ad
aba legfeljebb 1 osszmeretnyi targyat tehet unk.
Pn
EP (azaz egesz ertek
u programozas): Tekints uk a j=1 aij xj bi , xj 0
egyenl
otlensegrendszert, ahol aij , bi adott egesz szamok. Kerdes, hogy ha
adottak meg a cj (1 j n) egesz szamok is, akkor mennyi lesz a
P n
j=1 cj xj maxim alis erteke, ha minden xj egesz szam kell legyen. Az EP
ennek a maximaliz al
asi feladatnak az eldontesi valtozata.
6. Megjegyz es. A hasonl
oan defini
alhat
o 2DH nyelv eseteben 2 elem u halma-
zok szerepelnek. Ezek felfoghatok egy paros gr
af eleinek, es ilyen szemlelettel
a nyelv pontosan azokat a p aros gr
afokat tartalmazza, melyekben van teljes
p
arost at 2DH P (magyar m
as, teh odszer).
7. Megjegyz es. Az eloz
oh
oz hasonl o gondolatmenettel lathat
o, hogy X2C azok-
bol a grafokbol
all, amikben van teljes parost
as. Ismert, hogy a teljes p
arost
as
letezese eld
ontheto polinom id at X2C P.
oben, gy teh
8. Megjegyz es. Ha az utols o (EP) problem anal nem kotj
uk ki, hogy minden
xj egesz sz
am kell legyen, akkor kapjuk a linearis programozas (r oviden LP)
feladatot. Az ehhez tartoz o eldontesi feladat a Posztalyban van (es van r
a t
obb,
a gyakorlatban is hatekonyan m ukodo programcsomag). Viszont, ha megk ove-
telj
uk, hogy a megold as egesz legyen, akkor m ar a feladat NP-teljes lesz. Ez
ut
obbi teny nem meglep o, mivel a kor abban felsorolt nyelvek mindegyike megfo-
galmazhat o egesz programoz as feladatkent is.

Feladatok
1. Jelolje L1 az ir
anytatlan osszefuggo grafokbol allo nyelvet es L2 a Hamil-
ton-k ort tartalmaz o grafokbol allo nyelvet. Lehetseges-e, hogy L1 L2 ,
illetve hogy L2 L1 ?

Megold as: Az, hogy egy graf osszef uggo-e, polinom idoben eldontheto
(pl. egy szelessegi vagy melysegi bejarassal), tehat L1 P. Tudjuk, hogy
az L2 nyelv NP-teljes (L2 =H). Mivel P NP, ezert az NP-teljesseg
oja miatt L1 L2 .
definci
Masreszt viszont, ha letezik az L2 L1 Karp-redukcio, akkor a 2. alltas
miatt L2 P, es gy P = NP. Nem kizart, hogy ez igaz legyen, de a
?
tudom any mai all
asa szerint nem ismert, hogy P = NP.
2. Igazolja, hogy ha a 3szn nyelv benne van co NP-ben, akkor NP = co NP.

Megold as: Tudjuk, hogy a 3szn nyelv NP-teljes, tehat minden L NP


nyelv visszavezethet o ra, azaz L 3szn. A feltetel szerint 3szn co NP,
es ezert az 5. as miatt L co NP, amibol NP co NP kovetkezik.
allt
Masreszt, ha L co NP, akkor L NP, tehat L 3szn. A felteves
szerint 3szn co NP, ezert az 5. alltas miatt L co NP, azaz L NP.

10
3. Ismert, hogy a skgr
afokbol allo nyelv P-ben van. Legyen

skmaxklikk = {(G, k) | G egy skgraf, amiben van k pont


u klikk }

Mutassa meg, hogy ez a nyelv NP-teljes, vagy mutassa meg, hogy a nyelv
P-ben van.

Megold as: Tudjuk, hogy egy skgrafban nem lehet 4-nel tobb pontu teljes
reszgr
af, hiszen K5 nem rajzolhato skba. Ekkor viszont a nyelvbe tartozas
az alabbi m odon eld
ontheto:
Ellen
orizz
uk, hogy az adott graf skgraf-e, ha nem, akkor keszen va-
gyunk (ezt a feladat szovege szerint meg tudjuk tenni polinom idoben);
Ha k > 4, akkor a valasz ,,nem, es keszen vagyunk;
Ha k 4, akkor ellenorizz uk a graf pontjainak az osszes k elem u
reszhalmaz at. Amennyiben talalunk kozott uk olyat, amin a graf teljes,
akkor a v alasz ,,igen, egyebkent pedig ,,nem. Mivel egy n pont u grafbol
kevesebb mint nk n4 felekeppen tudunk k 4 pontot kivalasztani, es
egy v alaszt
as ellenorzese O(k 2 ) = O(42 ) = O(1) lepes, az algoritmusnak
ez a resze is polinomi alis.
4. P-beli vagy NP-teljes az alabbi nyelv?

L = {(G, k) : G graf, amiben van legalabb k el


u kor}

Megold as: Bel atjuk, hogy NP-teljes. Az NP-belisegre tan u egy ilyen
kor, melyr
ol ellenorizn
unk kell, hogy tenyleg kor-e G-ben es hogy tenyleg
legalabb k ele van. Mindketto megteheto polinom idoben.
Ezut an megadunk egy H L visszavezetest. Egy tetszoleges G grafhoz
rendeljuk hozz a az f (G) = (G, n) part, ahol n a G pontjainak szama.
Ekkor G H f (G) = (G, n) L. Mivel f polinom idoben szamolhato,
ezert ez egy j
o Karp-redukcio.
5. P-beli vagy NP-teljes az alabbi nyelv?

L = {G : G graf cs
ucsai kisznezhetoek 4 sznnel}

Megold as: Megmutatjuk, hogy az L nyelv NP-teljes. Az NP-belisegre


tanu egy 4 sznnel valo sznezes, aminek lerasa polinom hossz u, az el-
lenorzes sor
an pedig csak azt kell megvizsgalni, hogy az elek vagpontjai
kul
onb oz uek-e. Az NP-teljesseghez megadunk egy 3szn 4szn
o szn
visszavezetest. Egy tetszoleges G grafbol keszts uk el azt a G0 grafot,
amit u gy kapunk, hogy egy u j x pontot hozzavesz unk a grafhoz, es ezt
az x pontot minden regivel osszekotj uk. Ez a konstrukcio polinom idoben
vegrehajthat o. Vil agos, hogy ha G 3szn, akkor G0 4szn. A masik
ir
anyhoz tegy uk fel, hogy G0 kisznezheto 4 sznnel. Ekkor az x pont szne

11
egyetlen masik pont sznezesere sem hasznalhato, hiszen x minden mas
ponttal otve. Ez azt jelenti, hogy a G0 graf tobbi resze (ami az
ossze van k
eredeti G-vel izomorf) 3 sznnel van kisznezve, tehat G 3szn.

6. Az L nyelv alljon azokbol a G grafokbol, melyeknek csucsai kisznezhetoek


3 sznnel u
gy, hogy az egyik sznt csak egyszer hasznaljuk. P-beli vagy NP-
teljes ez a nyelv?

Megold as: Megmutatjuk, hogy ez a nyelv P-ben van. Egy graf akkor es
csak akkor rendelkezik a kvant tulajdonsaggal, ha van egy olyan pontja,
amit elhagyva p aros grafot kapunk. Ezt viszont tudjuk polinom idoben
ellen
orizni, mert annak eldontesere, hogy egy graf paros graf-e, van poli-
nom idej u algoritmus (egy szelessegi bejaras menten osztjuk a pontokat
ket oszt
alya, ha ellentmondasra jutunk, akkor a graf nem paros), es ezt
kell minden egyes pont elhagyasa utan a maradek grafra vegrehajtani.

7. Egy hivatal u j ep
uletbe fog koltozni. Az epulet minden emeleten ugyan-
akkora ter ulet hasznalhato fel irodak kialaktasara. Minden reszleg meg-
mondta, hogy osszesen mekkora irodater uletre tart igenyt. Azt akarjuk
eldonteni, hogy meg lehet-e oldani a koltozest u gy, hogy egyetlen reszleg
se legyen kettevagva, azaz egy reszleg teljes egeszeben egy emeleten legyen
(de egy emeletre ker ulhet tobb reszleg is). Igazolja, hogy a problemahoz
kapcsolodo nyelv P-ben van, vagy azt, hogy a nyelv NP-teljes.

Megold
as: Jel
olje a kerdeses nyelvet L.

L = {(a1 , a2 , . . . , an ; b; k) : ai , b, k > 0 egeszek, az


ai sz
amok beoszthatok k diszjunk csoportba u
gy, hogy a
minde csoportban az elemek osszege b}

Itt ai jel
oli az i-edik reszleg igenyet, k az ep
ulet szintjeinek szamat b pedig
az egy szinten haszn alhato ter ulet nagysagat.
Ez a nyelv nyilv an NP-ben van, hiszen egy beosztas lehet a tan u, ami-
nek helyesseget polinom idoben ellenorizni tudjuk (es persze a hossza is
polinomi
alis).
L Karp-redukcio.
Megmutatjuk, hogy van partcio
Legyen (s1 , s2 , . . . , sn ) a partcio feladat egy lehetseges bemenete. Ennek
feleltess
P u k meg azt a feladatot, amikor a hivatal ep uleteben 2 szint van,
b = ( si )/2 es az i-edik reszleg helyigenye ai = si . Ezzel a megfeleltetessel
(s1 , s2 , . . . , sn ) partcio a koltozes megoldhato. Tehat az L nyelvre
visszavezethet o egy NP-teljes nyelv, es L NP, ezert L maga is NP-teljes.

12

You might also like