You are on page 1of 11

Operációkutatás I.

13. előadás

E.-Nagy Marianna
Operációkutatás és Aktuáriustudományok Tanszék

2023/24 őszi félév


Algoritmusok komplexitása
Asszimptotikus viselkedés – nagyságrend

Legyen f : N → R és g : N → R⊕ függvények.
f ∈ O(g), ha létezik c > 0 konstans és n0 ∈ N küszöbindex:
|f (n)| ≤ cg(n) ∀ n ≥ n0 /felső korlát/

f ∈ o(g), ha minden c > 0 konstanshoz létezik n0 ∈ N:


|f (n)| ≤ cg(n) ∀ n ≥ n0

f ∈ Ω(g), ha létezik c > 0 konstans és n0 ∈ N küszöbindex:


|f (n)| ≥ cg(n) ∀ n ≥ n0 /alsó korlát/

f ∈ Θ(g), ha f ∈ O(g) és f ∈ Ω(g)

Megj: Szokás f = O(g) jelölést is használni.

Gyorsasági sorrend:
n
log n ≪ n ≪ n log n ≪ n2 ≪ n3 ≪ 2n ≪ 3n ≪ n! ≪ nn ≪ 22
Feladat mérete

= feladat dimenziói & bemenő adatok kódolási mérete


k egész szám kódolási mérete (bit hossza): size(k) ≡ ⌈log2 (k + 1)⌉ + 1
logaritmus alapja lényegtelen – csak egy szorzótényező

Az A ∈ Nm×n , b ∈ Nm , c ∈ Nn adatokkal adott LP kódolási mérete:

L = size(A) + size(b) + size(c)


X X X
= size(aij ) + size(bi ) + size(cj )
i,j i j
≥ mn
Algoritmus lépésszáma

Minden egyszerűbb műveletet (összehasonlítás, ill. aritmetikai


műveletek) egy lépésnek tekintünk.
Nem foglalkozunk az adatok tárolásával, mozgatásával.
Tekintsünk egy P problémát, és ennek példányait: p1 , p2 , . . .
Legyen E egy eljárás, ami meg tudja oldani P minden pi példányát,
mégpedig ℓE (pi ) lépésben.
Maximális lépésszám (legrosszabb eset):

HE (h) = max{ℓE (p) : size(p) = h, p a P egy példánya}

Átlagos lépésszámot is szoktak vizsgálni.

Hatékony algoritmus ∼ polinom idejű algoritmus


Fontos még: megoldás során ne keletkezzenek “túl nagy” számok
memóriaszükséglet is “megfelelően” korlátozott legyen

; P-beli feladatok
Komplexitási osztályok

döntési feladatok – a válasz igen vagy nem


optimalizálási feladatok ; döntési feladat

P – polinom időben megoldható feladatok


N P (nondeterministic polynomial time)
igen válasz esetén van polinom időben ellenőrizhető tanú
co-N P – a feladat komplementere N P-beli
nem válasz esetén van polinom időben ellenőrizhető tanú
N P-nehéz – legalább olyan nehéz, mint tetszőleges N P-beli feladat
N P-teljes – N P-nehéz és N P-beli
T
P ⊆ NP co-N P
Elfogadott vélekedés: P =
̸ NP
Polinom idejű visszavezetés – Karp redukció

Definíció
Legyen X és Y két eldöntési probléma. Az X 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 visszavezethető Y -ra.

Ekkor ha X nehéz, akkor Y is nehéz, illetve


ha Y könnyű, akkor X is könnyű.
Tehát ha csak egyetlen N P-teljes feladatról kiderülne, hogy P-beli, akkor az
összes az lenne.
Polinom idejű visszavezetés tulajdonságai

Ha X ≺ Y és Y ∈ P, akkor X ∈ P.
Ha X ≺ Y és Y ∈ N P, akkor X ∈ N P.
Ha X ≺ Y , akkor X ≺ Y
Ha X ≺ Y és Y ∈ co-N P, akkor X ∈ co-N P.
Ha X ≺ Y és Y ∈ N P ∩ co-N P, akkor X ∈ N P ∩ co-N P.
Ha X ≺ Y és Y ≺ Z , akkor X ≺ Z .
Néhány példa

P-beli feladat:
nemnegatív súlyú legrövidebb út keresése
nemszinguláris lineáris egyenletrendszer megoldása
LP feladat

N P-beli feladat:
Van-e Hamilton kör a gráfban?

co-N P-beli feladat:


Prím-e az adott szám?

N P-teljes feladat:
0-1 egészértékű programozási feladat megoldhatósága
Van-e NP teljes feladat

Konjunktív normál forma:


logikai változók
és negáltjainak (¬)
összegéből (∨)
szorzatából (∧)
képezett kifejezés.

Tétel
A konjunktív normál forma kielégíthetősége (SAT) N P-teljes feladat.
Példa visszavezetésre

[Van-e m elemű független ponthalmaz a gráfban?] ≺ SAT

Számozzuk meg a gráf m elemű független ponthalmazának elemeit:


1, . . . , m.
Legyen Lij =1, ha a gráf i pontja a ponthalmaz j. pontja. Ekkor
L1j ∨ · · · ∨ Lnj ∀ j = 1, . . . , m
L̄ij ∨ L̄rj ∀j = 1, . . . , m, 1 ≤ i ≤ r ≤ n
L̄ij ∨ L̄is ∀1 ≤ i ≤ n, 1 ≤ j ≤ s ≤ m
L̄ij ∨ L̄rs ∀(i, r ) ∈ E , 1 ≤ j ≤ s ≤ m
tényezők szorzata legyen a vizsgált konjunktív normál formánk.

You might also like