Szathmáry László Halász Gábor Függvények aszimptotikus …halasz/Adatszerk-PTI-2017/... ·...
Transcript of Szathmáry László Halász Gábor Függvények aszimptotikus …halasz/Adatszerk-PTI-2017/... ·...
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.1
2. eloadásFüggvények aszimptotikusviselkedéseValamint további egyszeru algoritmusok
Adatszerkezetek és algoritmusok eloadás2019. február 12.
Kósa Márk, Pánovics János,Szathmáry László és Halász Gábor
Debreceni EgyetemInformatikai Kar
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.2
Általános tudnivalókAjánlott irodalom:
• Thomas H. Cormen, Charles E. Leiserson, Ronald L.Rivest, Clifford Stein:Új algoritmusok, Scolar Informatika, 2003.
• Donald E. Knuth: A számítógépprogramozás muvészete1. (Alapveto algoritmusok), Muszaki Könyvkiadó, 1994.
• Donald E. Knuth: A számítógépprogramozás muvészete3. (Keresés és rendezés), Muszaki Könyvkiadó, 1994.
• Seymour Lipschutz: Adatszerkezetek,Panem-McGraw-Hill, Budapest, 1993.
• Rónyai Lajos, Ivanyos Gábor, Szabó Réka: Algoritmusok,Typotex, Budapest, 2008.
Félév teljesítésének feltételei:
• Gyakorlati aláírás• 2 ZH
• Írásbeli vizsga, aminek az értékelésébe ...
További részletek:http://hallg.inf.unideb.hu/~halasz
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.3
Függvények növekedéseAszimptotikus jelölések
Az elozoekben megállapítottuk, hogy a beszúró rendezés futásiideje a legrosszabb esetben T (n) = Θ
(n2).
Most pontosan definiáljuk, hogy mit jelent ez a jelölés.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.3
Függvények növekedéseAszimptotikus jelölések
A Θ jelölés (aszimptotikus éles korlát) definíciója:Egy adott g(n) függvény esetén Θ(g(n))-nel jelöljük a függvé-nyeknek azt a halmazát, amelyre
Θ (g (n)) =
f (n) : létezik c1, c2 és n0 pozitív állandó, hogy0 ≤ c1 · g(n) ≤ f (n) ≤ c2 · g(n)teljesül minden n≥n0 esetén
T (n) = Θ
(n2) ≡ T (n) ∈ Θ
(n2)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.3
Függvények növekedéseAszimptotikus jelölések
Az O jelölés (aszimptotikus felso korlát) definíciója:Egy adott g(n) függvény esetén O(g(n))-nel („nagy ordó” g(n))jelöljük a függvényeknek azt a halmazát, amelyre
O (g (n)) =
f (n) : létezik c és n0 pozitív állandó, hogy0 ≤ f (n) ≤ c · g(n)teljesül minden n≥n0 esetén
T (n) = O
(n2) ≡ T (n) ∈ O
(n2)
T (n) = Θ(n2) =⇒ T (n) ∈ O
(n2)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.3
Függvények növekedéseAszimptotikus jelölések
Az Ω jelölés (aszimptotikus alsó korlát) definíciója:Egy adott g(n) függvény esetén Ω(g(n))-nel jelöljük a függvé-nyeknek azt a halmazát, amelyre
Ω (g (n)) =
f (n) : létezik c és n0 pozitív állandó, hogy0 ≤ c · g(n)≤f (n)teljesül minden n≥n0 esetén
T (n) = Ω
(n2) ≡ T (n) ∈ Ω
(n2)
T (n) = Θ(n2) =⇒ T (n) ∈ Ω
(n2)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.4
Függvények növekedéseKorábban azt mondtuk, a T (n) = a · n2 + b · n + c függvényre,hogy aszimptotikusan csak az n2 tagja a fontos:
T (n) = Θ(n2)
Most megnézhetjük, igaz-e ez?Ehhez találnunk kell olyan pozitív c1-et, c2-ot és n0-át, amivel
c1 · n2 ≤ a · n2 + b · n + c ≤ c2 · n2 amikor n ≥ n0.
Ehhez elobb osszuk el az egyenlotlenséget n2-tel (n>0):
c1 ≤ a + b/n + c/n2 ≤ c2
majd vegyük észre, hogy a középso kifejezés elég nagy nesetén jól közelítheto a-val, vagyis bármely c1 és c2 esetén,amelyekre teljesül, hogy
0 < c1 < a < c2, (csak akkor van esélyünk, ha 0 < a)
már csak annyi a dolgunk, hogy megfelelo pozitív n0-tkeressünk. Pl. amivel:
(|b|+ |c|) /n0 ≤ min (c2 − a, a− c1)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.4
Függvények növekedéseKorábban azt mondtuk, a T (n) = a · n2 + b · n + c függvényre,hogy aszimptotikusan csak az n2 tagja a fontos:
T (n) = Θ(n2)
Most megnézhetjük, igaz-e ez?Ehhez találnunk kell olyan pozitív c1-et, c2-ot és n0-át, amivel
c1 · n2 ≤ a · n2 + b · n + c ≤ c2 · n2 amikor n ≥ n0.
Ehhez elobb osszuk el az egyenlotlenséget n2-tel (n>0):
c1 ≤ a + b/n + c/n2 ≤ c2
majd vegyük észre, hogy a középso kifejezés elég nagy nesetén jól közelítheto a-val, vagyis bármely c1 és c2 esetén,amelyekre teljesül, hogy
0 < c1 < a < c2, (csak akkor van esélyünk, ha 0 < a)
már csak annyi a dolgunk, hogy megfelelo pozitív n0-tkeressünk. Pl. amivel:
(|b|+ |c|) /n0 ≤ min (c2 − a, a− c1)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.4
Függvények növekedéseKorábban azt mondtuk, a T (n) = a · n2 + b · n + c függvényre,hogy aszimptotikusan csak az n2 tagja a fontos:
T (n) = Θ(n2)
Most megnézhetjük, igaz-e ez?Ehhez találnunk kell olyan pozitív c1-et, c2-ot és n0-át, amivel
c1 · n2 ≤ a · n2 + b · n + c ≤ c2 · n2 amikor n ≥ n0.
Ehhez elobb osszuk el az egyenlotlenséget n2-tel (n>0):
c1 ≤ a + b/n + c/n2 ≤ c2
majd vegyük észre, hogy a középso kifejezés elég nagy nesetén jól közelítheto a-val, vagyis bármely c1 és c2 esetén,amelyekre teljesül, hogy
0 < c1 < a < c2, (csak akkor van esélyünk, ha 0 < a)
már csak annyi a dolgunk, hogy megfelelo pozitív n0-tkeressünk. Pl. amivel:
(|b|+ |c|) /n0 ≤ min (c2 − a, a− c1)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.5
Függvények növekedése
Hasonlóan lehet belátni, hogy bármely
Pd (n) =d∑
i=0
ai · ni
polinom esetén (ha ad > 0) igaz, hogy
Pd (n) = Θ(nd)
Speciálisan, konstans függvények esetén írhatjuk, hogy bennevannak a Θ
(n0)
függvényhalmazban.
• Ehelyett –kicsit pontatlanul– azt szoktuk mondani, hogybenne vannak a Θ (1) halmazban.
• Valójában gyakran használják a Θ (1) jelölést akárállandóra, akár egy adott változóra nézve konstansfüggvényre is.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.6
Függvények növekedése
Theorem
Bármely két f (n) és g (n) függvény esetén
f (n) = Θ (g (n))
akkor és csak akkor, ha
f (n) = O (g (n)) és f (n) = Ω (g (n)) .
A gyakorlatban ezt a tételt általában arra használjuk, hogy azaszimptotikusan éles korlát létét mutassuk meg azaszimptotikus alsó és felso korlátok felhasználásával.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.7
Aszimptotikus jelölések képletekbenHa az aszimptotikus jelölés egyedül van az egyenlet jobboldalán, mint
n = O(n2)
esetén, akkor úgy definiáltuk az egyenloségjelet, mint ahalmazhoz tartozás jelét:
n ∈ O(n2)
Általában azonban, egy képletben eloforduló aszimptotikusjelölést úgy tekintünk, mint egy olyan ismeretlen függvényjelölését, amit nem is akarunk megnevezni. Pl. a
2n2 + 3n + 1 = 2n2 + Θ (n)
képlet azt jelenti, hogy
2n2 + 3n + 1 = 2n2 + f (n)
ahol f (n) ∈ Θ (n)
Ebben az esetben f (n) = 3n + 1, ami tényleg benne vanΘ (n)-ben.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.8
Aszimptotikus jelölések képletekben
Ekképpen használva, az aszimptotikus jelölés segít a képletboleltávolítani a lényegtelen részleteket.Pl. amikor rekurzívan kifejeztük az összefésülo rendezéslegrosszabb futási idejét:
T (n) = 2T(n
2
)+ Θ (n) .
Ha csak T (n) aszimptotikus viselkedése érdekel minket, akkornincs értelme minden alacsonyabb rendu tagot pontosanmegadni;mindet beleértjük abba a névtelen függvénybe, amit a Θ(n)taggal jelölünk.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.9
Aszimptotikus jelölések képletekbenBizonyos esetekben aszimptotikus jelölés elofordulhat azegyenlet bal oldalán is, mint például
2n2 + Θ(n) = Θ(n2).
Ezeket az egyenleteket a következo szabály szerintértelmezzük:• Mindegy, hogy miképpen választjuk meg az egyenlet bal
oldalán lévo ismeretlen függvényt,• van mód arra, hogy a jobb oldali ismeretlen függvényt úgy
válasszuk meg,• hogy az egyenloség igaz legyen.
Így példánk jelentése az, hogy tetszoleges f (n) ∈ Θ(n)függvényhez létezik g(n) ∈ Θ(n2) úgy, hogy
2n2 + f (n) = g(n) minden n-re.
Más szóval az egyenlet jobb oldala durvábban, kevésbépontosan írja le a függvényt, mint az egyenlet bal oldala.Egy még összetettebb példa:
2n2 + 3n + 1 = 2n2 + Θ(n)
= Θ(n2)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.10
Aszimptotikusan nem éles korlátok
Az O-jelölés által adott felso korlát aszimptotikusan
• vagy éles(2n2 = O(n2
),
• vagy nem(2n = O(n2
).
Amikor hangsúlyozni szeretnénk, hogy az adott felso korlátnem éles, akkor a o-jelölést használjuk („kis ordó”):
o (g (n)) =
f (n) : tetszoleges c > 0-hoz található n0 > 0, hogy0 ≤ f (n) < c · g(n)teljesül minden n≥n0 esetén
Vagy (nemnegatív aszimptotikus viselkedés mellett még):
limn→∞
f (n)
g(n)= 0
Fenti függvényekre:
• 2n = O(n2) és 2n = o(n2), ill.• 2n2 = O(n2) de 2n2 6= o(n2).
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.11
Aszimptotikusan nem éles korlátokHasonlóképpen, az Ω-jelölés által adott alsó korlát isaszimptotikusan
• vagy éles (2n = Ω(n),• vagy nem
(2n2 = Ω(n
).
Amikor hangsúlyozni szeretnénk, hogy az adott alsó korlát neméles, akkor a ω-jelölést használjuk („kis omega”):
ω (g (n)) =
f (n) : tetszoleges c > 0-hoz található n0 > 0, hogy0≤c · g(n) < f (n)teljesül minden n≥n0 esetén
Vagy (nemnegatív aszimptotikus viselkedés mellett még):
limn→∞
f (n)
g(n)=∞
Fenti függvényekre:
• 2n2 = Ω(n) és 2n2 = ω(n), ill.• 2n = Ω(n) de 2n 6= ω(n).
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.12
Függvények összehasonlításaSzámos – valós számokra vonatkozó – összefüggésalkalmazható aszimptotikus összehasonlításokra is.A továbbiakban tegyük fel, hogy f (n) és g(n) aszimptotikusanpozitív.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.12
Függvények összehasonlításaSzámos – valós számokra vonatkozó – összefüggésalkalmazható aszimptotikus összehasonlításokra is.A továbbiakban tegyük fel, hogy f (n) és g(n) aszimptotikusanpozitív.
Tranzitivitás:
ha f (n) = Θ (g (n)) és g (n) = Θ (h (n)) , akkor f (n) = Θ (h (n))
ha f (n) = O (g (n)) és g (n) = O (h (n)) , akkor f (n) = O (h (n))
ha f (n) = Ω (g (n)) és g (n) = Ω (h (n)) , akkor f (n) = Ω (h (n))
ha f (n) = o (g (n)) és g (n) = o (h (n)) , akkor f (n) = o (h (n))
ha f (n) = ω (g (n)) és g (n) = ω (h (n)) , akkor f (n) = ω (h (n))
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.12
Függvények összehasonlításaSzámos – valós számokra vonatkozó – összefüggésalkalmazható aszimptotikus összehasonlításokra is.A továbbiakban tegyük fel, hogy f (n) és g(n) aszimptotikusanpozitív.
Reflexivitás:
f (n) = Θ (f (n))
f (n) = O (f (n))
f (n) = Ω (f (n))
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.12
Függvények összehasonlításaSzámos – valós számokra vonatkozó – összefüggésalkalmazható aszimptotikus összehasonlításokra is.A továbbiakban tegyük fel, hogy f (n) és g(n) aszimptotikusanpozitív.
Szimmetria:
f (n) = Θ (g (n)) akkor és csak akkor, ha g (n) = Θ (f (n))
Felcserélt szimmetria:
f (n) = O (g (n)) akkor és csak akkor, ha g (n) = Ω (f (n))
f (n) = o (g (n)) akkor és csak akkor, ha g (n) = ω (f (n))
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.12
Függvények összehasonlításaSzámos – valós számokra vonatkozó – összefüggésalkalmazható aszimptotikus összehasonlításokra is.A továbbiakban tegyük fel, hogy f (n) és g(n) aszimptotikusanpozitív.
Mivel ezek a tulajdonságok érvényesek az aszimptotikus jelölé-sekre, ezért párhuzamot vonhatunk két függvény, f és g, vala-mint két valós szám, a és b összehasonlítása között:
f (n) = O (g (n)) ≈ a ≤ b
f (n) = Ω (g (n)) ≈ a ≥ b
f (n) = Θ (g (n)) ≈ a = b
f (n) = o (g (n)) ≈ a < b
f (n) = ω (g (n)) ≈ a > b
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.12
Függvények összehasonlításaSzámos – valós számokra vonatkozó – összefüggésalkalmazható aszimptotikus összehasonlításokra is.A továbbiakban tegyük fel, hogy f (n) és g(n) aszimptotikusanpozitív.
Vigyázat, a valós számok alábbi tulajdonsága már nem vihetoát a függvények aszimptotikus viselkedésére:
Trichotómia: Bármely két valós a és b szám esetén az alábbitulajdonságok közül pontosan egy teljesül:
• a < b• a = b• a > b
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.12
Függvények összehasonlításaSzámos – valós számokra vonatkozó – összefüggésalkalmazható aszimptotikus összehasonlításokra is.A továbbiakban tegyük fel, hogy f (n) és g(n) aszimptotikusanpozitív.
Vigyázat, a valós számok alábbi tulajdonsága már nem vihetoát a függvények aszimptotikus viselkedésére:
Trichotómia: Bármely két valós a és b szám esetén az alábbitulajdonságok közül pontosan egy teljesül:
• a < b• a = b• a > b
Pl. az f (n) = n + n10 sin2 n függvényre igazak a következok:• f (n) = Ω(n) és f (n) = ω(1)
• f (n) = O(n10) és f (n) = o(n11)
• de f (n) nem hasonítható semelyik Pd = nd függvénnyel,ha d = 2, 3, · · · , 9
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.13
Szokásos jelölések és alapfüggvényekMonotonitás
Az f (n) függvényre azt mondjuk, hogymonoton növekedo, ham < n =⇒ f (m) ≤ f (n)
monoton csökkeno, ham < n =⇒ f (m) ≥ f (n)
szigorúan monoton növekedo, ham < n =⇒ f (m) < f (n)
szigorúan monoton csökkeno, ham < n =⇒ f (m) > f (n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.14
Szokásos jelölések és alapfüggvényekEgészrész függvények
Alsó egészrész, bxc: olyan egész, amire x ≥ bxc > x − 1Felso egészrész, dxe: olyan egész, amire x ≤ dxe < x + 1Minden n egész számra:⌊n
2
⌋+⌈n
2
⌉= n,
és minden valós x ≥ 0 értékre és m, n > 0 egészre⌊⌊ xm
⌋n
⌋=⌊ x
m · n
⌋⌈⌈ x
m
⌉n
⌉=⌈ x
m · n
⌉mn≥⌊m
n
⌋≥ m − (n − 1)
n=
mn− n − 1
nmn≤⌈m
n
⌉≤ m + (n − 1)
n=
mn
+n − 1
n
Mindkét egészrész függvény monoton növekedo.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.14
Szokásos jelölések és alapfüggvényekEgészrész függvények
Alsó egészrész, bxc: olyan egész, amire x ≥ bxc > x − 1Felso egészrész, dxe: olyan egész, amire x ≤ dxe < x + 1Minden n egész számra:⌊n
2
⌋+⌈n
2
⌉= n,
és minden valós x ≥ 0 értékre és m, n > 0 egészre⌊⌊ xm
⌋n
⌋=⌊ x
m · n
⌋⌈⌈ x
m
⌉n
⌉=⌈ x
m · n
⌉mn≥⌊m
n
⌋≥ m − (n − 1)
n=
mn− n − 1
nmn≤⌈m
n
⌉≤ m + (n − 1)
n=
mn
+n − 1
n
Mindkét egészrész függvény monoton növekedo.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.15
Szokásos jelölések és alapfüggvényekOsztási maradék
Tetszoleges egész a és pozitív egész n egész esetén jelöljea mod n az a szám n-nel vett osztási maradékát, vagyis
a mod n = a− n ·⌊a
n
⌋Hasznos lesz, ha arra is definiálunk egy külön jelölést, hogy aza és b egészek n-nel vett osztási maradéka megegyezik. Ha(a mod n) = (b mod n), akkor ezt úgy jelöljük, hogy
a ≡ b ( mod n) ,
és azt mondjuk, hogy a és b kongruens modulo n.Ha a és b nem ekvivalens modulo n, akkor erre az
a 6≡ b ( mod n)
jelölést használjuk.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.16
Szokásos jelölések és alapfüggvényekPolinomok
Adott d pozitív egész számra az n változó d-edfokú polinomjánegy
Pd (n) =d∑
i=0
ai · ni
alakú függvényt értünk, ahol az a0,a1, ...,ad állandók apolinom együtthatói, és ad 6= 0.
• Egy polinom aszimptotikusan pozitív akkor és csak akkor,ha ad > 0.
• Az aszimptotikusan pozitív d-edfokú Pd (n) polinomrateljesül, hogy Pd (n) = Θ
(nd).
• Minden valós a ≥ 0 állandó esetén na monoton növekedo,• minden valós a ≤ 0 állandó esetén na monoton csökkeno.• Az f (n) függvény polinomiálisan korlátos, ha f (n) = nO(1) ,
ami ekvivalens azzal, hogy f (n) = O(nk ) valamely kállandóra.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.17
Szokásos jelölések és alapfüggvényekHatványok
A következo azonosságok teljesülnek minden a 6= 0, m, n valósszámra:
a0 = 1 a1 = 1 a−1 = 1/a
(am)n
= am·n (am)n
= (an)m an · am = an+m
Ha a ≥ 1, akkor az n változótól függo an függvény monotonnövekvo.A polinomok és hatványok növekedése a következoképpenhasonlítható össze.Minden a > 1 és b valós állandó esetén
limn→∞
nb
an = 0
amibolnb = o (an)
Azaz minden exponenciális függvény, amelynek alapjanagyobb 1-nél, gyorsabban növekszik, mint bármely polinomfüggvény.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.18
Szokásos jelölések és alapfüggvényekHatványok
A természetes logaritmus alapját e (= 2,71828 . . .) jelöli.Minden valós x-re
ex = 1 + x +x2
2!+
x3
3!+ · · · =
∞∑i=0
x i
i!
e = limn→∞
(1 +
1n
)n
ex ≥ 1 + x egyenloség csak, ha x = 0
1 + x ≤ ex ≤ 1 + x + x2 ha |x | ≤ 1
ex = 1 + x + Θ(x2) ha x → 0
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.19
Szokásos jelölések és alapfüggvényekLogaritmusok
A következo jelöléseket fogjuk használni:
lg n = log2 n (kettes alapú logaritmus)ln n = loge n (természetes alapú logaritmus)
lgk n = (lg n)k (hatványozás)lg lg n = lg (lg n) (kompozíció)
lg n + k ≡ (lg n) + k
b > 1 és n > 0 esetén a logb n függvény sz. m. növekvo.Minden valós a > 0, b > 0, c > 0, x > −1 és n számra igaz:
a = blogb a logc (a · b) = logc a + logc b logb an = n · logb a
logb a=logc alogc b
logb1a
= − logb a logb a =1
loga b
alogb c = c logb a x1 + x
≤ ln (1 + x) ≤ x
ahol a logaritmus alapja soha nem 1.
Ha |x | ≤ 1,akkor: ln (1 + x) = x − x2
2 + x3
3 −x4
4 + x5
5 − . . .
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.20
Szokásos jelölések és alapfüggvényekPolilogaritmikusan korlátos függvények
Korábban láttuk, hogy
limn→∞
nb
an = 0
Írjuk ezt most át a következo módon: n→ lg n ill. a→ 2a
limn→∞
(lg n)b
(2a)lg n = limn→∞
lgb nna = 0
innen pedig, bármely a > 0-ra
lgb n = o (na)
Azaz minden pozitív polinomfüggvény gyorsabban no, mintbármelyik polilogaritmikus függvény.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.21
Szokásos jelölések és alapfüggvényekFaktoriálisok
n ≥ 0 egészekre definiáljuk a faktoriális fogalmát:
n! =
1, ha n = 0,n · (n − 1)!, ha n > 0.
Egy „durva” korlát: n! ≤ nn.Ennél sokkal jobb közelítés a Stirling-formula:
n! =√
2πn(n
e
)n(
1 + Θ
(1n
))A Stirling-formula alapján belátható még, hogy
n! = o (nn)
n! = ω (2n)
lg (n!) = Θ (n lg n) .
Ezeken túlmenoen igaz még, hogy
n! =√
2πn(n
e
)neαn
ahol1
12n + 1< αn <
112n
.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.22
Szokásos jelölések és alapfüggvényekIterált függvények
Az f (n) függvény i-edik iterált függvényének definíciója(i ≥ 0 egész):
f (i) (n) =
n, ha i = 0,f(f (i−1) (n)
), ha i > 0.
Pl. f (n) = 2n esetén f (i)(n) = 2in.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.23
Szokásos jelölések és alapfüggvényekFibonacci-számok
A Fibonacci-számokat az alábbi rekurzió definiálja:
F0 = 0F1 = 1Fi = Fi−1 + Fi−2 ha i > 1
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, . . . .A Fibonacci-számok kapcsolatban vannak az aranymetszés φarányával és annak φ konjugáltjával:
φ =1 +√
52
= 1.61803 . . .
φ =1−√
52
= −0.61803 . . .
Nevezetesen:Fi =
φi − φi√
5
Mivel∣∣∣φ∣∣∣ < 1, ezért
∣∣∣φ∣∣∣ /√5 < 1/√
5 < 1/2, így Fi
meghatározható, mint aφi/√
5-höz legközelebbi egész szám.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.24
Rekurzívan megadott függvények aszimptotikus viselkedése
Amint azt már korábban megemlítettük, ha egy algoritmusönmagát hívja többször egymás után, akkor futási idejegyakran jellemezheto rekurzióval.Például az ÖSSZEFÉSÜLO-RENDEZÉS T (n) legrosszabb futásiidejére azt írtuk, hogy
T (n) =
Θ (1) ha n = 1
2 · T (n/2) + Θ (n) egyébként
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.25
Rekurzívan megadott függvények aszimptotikus viselkedéseEz a fejezet három módszert mutat az ehhez hasonló rekurziókmegoldására – azaz arra, hogyan kaphatunk aszimptotikus Θvagy O korlátokat a megoldásra.• A helyettesíto módszernél
• megsejtünk egy korlátot,• majd teljes indukcióval igazoljuk sejtésünk helyességét.
• A rekurziós fa módszerben• a rekurzív képlet alapján felépítünk egy fát, melyben egy
adott szinten lévo csúcsok a rekurzió adott mélységébenfellépo költségeknek felelnek meg;
• a rekurziót ezután az összegek becslésére szolgálómódszerekkel oldjuk meg.
• A mester módszer az alábbi alakú rekurzív egyenletekrealkalmazható , ha a ≥ 1 és b > 1:
T (n) = a · T(n
b
)+ f (n)
• Ehhez a módszerhez három esetet kell megjegyezni, de haezt egyszer megtesszük, utána már könnyedén tudunkaszimptotikus korlátot megadni sok egyszeru rekurzívképletre vonatkozóan.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.25
Rekurzívan megadott függvények aszimptotikus viselkedéseEz a fejezet három módszert mutat az ehhez hasonló rekurziókmegoldására – azaz arra, hogyan kaphatunk aszimptotikus Θvagy O korlátokat a megoldásra.• A helyettesíto módszernél
• megsejtünk egy korlátot,• majd teljes indukcióval igazoljuk sejtésünk helyességét.
• A rekurziós fa módszerben• a rekurzív képlet alapján felépítünk egy fát, melyben egy
adott szinten lévo csúcsok a rekurzió adott mélységébenfellépo költségeknek felelnek meg;
• a rekurziót ezután az összegek becslésére szolgálómódszerekkel oldjuk meg.
• A mester módszer az alábbi alakú rekurzív egyenletekrealkalmazható , ha a ≥ 1 és b > 1:
T (n) = a · T(n
b
)+ f (n)
• Ehhez a módszerhez három esetet kell megjegyezni, de haezt egyszer megtesszük, utána már könnyedén tudunkaszimptotikus korlátot megadni sok egyszeru rekurzívképletre vonatkozóan.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.25
Rekurzívan megadott függvények aszimptotikus viselkedéseEz a fejezet három módszert mutat az ehhez hasonló rekurziókmegoldására – azaz arra, hogyan kaphatunk aszimptotikus Θvagy O korlátokat a megoldásra.• A helyettesíto módszernél
• megsejtünk egy korlátot,• majd teljes indukcióval igazoljuk sejtésünk helyességét.
• A rekurziós fa módszerben• a rekurzív képlet alapján felépítünk egy fát, melyben egy
adott szinten lévo csúcsok a rekurzió adott mélységébenfellépo költségeknek felelnek meg;
• a rekurziót ezután az összegek becslésére szolgálómódszerekkel oldjuk meg.
• A mester módszer az alábbi alakú rekurzív egyenletekrealkalmazható , ha a ≥ 1 és b > 1:
T (n) = a · T(n
b
)+ f (n)
• Ehhez a módszerhez három esetet kell megjegyezni, de haezt egyszer megtesszük, utána már könnyedén tudunkaszimptotikus korlátot megadni sok egyszeru rekurzívképletre vonatkozóan.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.25
Rekurzívan megadott függvények aszimptotikus viselkedéseEz a fejezet három módszert mutat az ehhez hasonló rekurziókmegoldására – azaz arra, hogyan kaphatunk aszimptotikus Θvagy O korlátokat a megoldásra.• A helyettesíto módszernél
• megsejtünk egy korlátot,• majd teljes indukcióval igazoljuk sejtésünk helyességét.
• A rekurziós fa módszerben• a rekurzív képlet alapján felépítünk egy fát, melyben egy
adott szinten lévo csúcsok a rekurzió adott mélységébenfellépo költségeknek felelnek meg;
• a rekurziót ezután az összegek becslésére szolgálómódszerekkel oldjuk meg.
• A mester módszer az alábbi alakú rekurzív egyenletekrealkalmazható , ha a ≥ 1 és b > 1:
T (n) = a · T(n
b
)+ f (n)
• Ehhez a módszerhez három esetet kell megjegyezni, de haezt egyszer megtesszük, utána már könnyedén tudunkaszimptotikus korlátot megadni sok egyszeru rekurzívképletre vonatkozóan.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.26
Technikai részletek
A gyakorlatban a rekurzív problémák megfogalmazása ésmegoldása során bizonyos technikai részleteketelhanyagolunk. Pl.:
• az ÖSSZEFÉSÜLO-RENDEZÉS legrosszabb futási idejétleíró rekurzió valójában
T (n) =
Θ (1) ha n = 1
T(⌊ n
2
⌋)+ T
(⌈ n2
⌉)+ Θ (n) egyébként
• A kezdeti feltételek a részleteknek egy másik olyanjellegzetes csoportját alkotják, amelyet általábanelhanyagolunk.
• Mivel az algoritmus futási ideje állandó méretu bemenetesetén állandó, és így gyakran teljesül, hogy T (n) = Θ(1).Ezért ezt gyakran ki sem írjuk:
T (n) = 2 ∗ T (n/2) + Θ(n)
Ezek a részletek többnyire nem befolyásolják a megoldásaszimptotikus viselkedését ...
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.27
A helyettesíto módszer
A rekurziók helyettesíto módszerrel való megoldása kétlépésbol áll:
1 Sejtsük meg a megoldást.2 Teljes indukcióval határozzuk meg az állandókat és
igazoljuk a megoldás helyességét.
Az elnevezés onnan ered, hogy a helyesnek vélt megoldást bekell helyettesíteni a függvénybe, miközben az indukciósfeltevést kisebb értékekre alkalmazzuk. Ez hatékony módszer,de nyilvánvalóan csak akkor alkalmazható, ha a helyes válaszkönnyen megsejtheto.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.28
A helyettesíto módszer
A helyettesíto módszer rekurzióval megadott függvény felsovagy alsó korlátjának a meghatározására is használható.Határozzuk meg a
T (n) = 2T(⌊n
2
⌋)+ n
rekurzív képlettel jellemzett függvény egy felso korlátját!
• Sejtésünk az, hogy a megoldás: T (n) = O(n lg n).• Módszerünk az, hogy bebizonyítjuk, megfeleloen
választott c > 0 állandóra T (n) ≤ cn lg n.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.29
A helyettesíto módszer
T (n) = 2T(⌊n
2
⌋)+ n
• Eloször is feltesszük, hogy ezzel a korláttal k0 ≤ k < n-reérvényes az egyenlotlenség, azaz T (k) ≤ c bkc lg(bkc).
• Ezt a rekurzív egyenletbe helyettesítve kapjuk, hogy(kihasználjuk, hogy: n/2 < n)
T (n) = 2T(⌊n
2
⌋)+ n ≤ 2c
⌊n2
⌋lg(⌊n
2
⌋) + n ≤ cn lg
n2
+ n
= cn lg n − cn lg 2 + n = cn lg n − cn + n ≤ cn lg nha c ≥ 1
• Most már csak n = 1-re kellene belátnunk azegyenlotlenséget. Csakhogy:
c · 1 · lg 1 = 0 T (1)
• A megoldás: T (n) = O(n lg n)-hez elég az egyenlotlenségetvalamely n0 után megkövetelni.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.30
A helyettesíto módszer
Sajnos, nincs általános szabály a megoldás megsejtésére.A jó sejtés kitalálásához
• gyakorlatra, és néha• találékonyságra van szükség.
Szerencsére azonban van néhány heurisztikus módszer, amelysegít kitalálni a jó sejtést.Segíthet pl. a rekurziós fa módszer használata is.Az is segíthet, ha hasonlóságot fedezünk fel már ismert ésmegoldott rekurzióhoz:
T (n) = 2T(⌊n
2
⌋+ 17
)+ 3n
esetén pl. azonnal gondolnunk kell a
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.30
A helyettesíto módszer
Sajnos, nincs általános szabály a megoldás megsejtésére.A jó sejtés kitalálásához
• gyakorlatra, és néha• találékonyságra van szükség.
Szerencsére azonban van néhány heurisztikus módszer, amelysegít kitalálni a jó sejtést.Segíthet pl. a rekurziós fa módszer használata is.Az is segíthet, ha hasonlóságot fedezünk fel már ismert ésmegoldott rekurzióhoz:
T (n) = 2T(⌊n
2
⌋+ 17
)+ 3n
esetén pl. azonnal gondolnunk kell a
T (n) = O(n lg n)
lehetoségre.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.31
A helyettesíto módszerFinomságok
Tekintsük a következo rekurzív egyenletet:
T (n) = 2T (n/2) + 1.
Erre az esetre „mindenki” elso gondolata:T (n) = O(n).Próbáljuk meg bizonyítani:
• Tegyük fel, hogy 1 ≤ k < n esetén teljesül: T (k) ≤ c · k .• Számoljuk ki T (n) értékét:
T (n) = 2T (n/2) + 1 ≤ 2 · c · n/2 + 1 = c · n + 1 c · n
• Hogyan tovább?• Tegyük fel, hogy T (k) ≤ c · k − b• Számoljuk ki T (n) értékét:
T (n) = 2T (n/2)+1 ≤ 2·(c·n/2−b)+1 = c·n−2b+1 ≤ c·n−b,
legalábbis meg tudjuk b-t úgy választani, hogy teljesüljön azegyenlotlenség.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.31
A helyettesíto módszerFinomságok
Tekintsük a következo rekurzív egyenletet:
T (n) = 2T (n/2) + 1.
Erre az esetre „mindenki” elso gondolata:T (n) = O(n).Próbáljuk meg bizonyítani:
• Tegyük fel, hogy 1 ≤ k < n esetén teljesül: T (k) ≤ c · k .• Számoljuk ki T (n) értékét:
T (n) = 2T (n/2) + 1 ≤ 2 · c · n/2 + 1 = c · n + 1 c · n
• Hogyan tovább?• Tegyük fel, hogy T (k) ≤ c · k − b• Számoljuk ki T (n) értékét:
T (n) = 2T (n/2)+1 ≤ 2·(c·n/2−b)+1 = c·n−2b+1 ≤ c·n−b,
legalábbis meg tudjuk b-t úgy választani, hogy teljesüljön azegyenlotlenség.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.31
A helyettesíto módszerFinomságok
Tekintsük a következo rekurzív egyenletet:
T (n) = 2T (n/2) + 1.
Erre az esetre „mindenki” elso gondolata:T (n) = O(n).Próbáljuk meg bizonyítani:
• Tegyük fel, hogy 1 ≤ k < n esetén teljesül: T (k) ≤ c · k .• Számoljuk ki T (n) értékét:
T (n) = 2T (n/2) + 1 ≤ 2 · c · n/2 + 1 = c · n + 1 c · n
• Hogyan tovább?• Tegyük fel, hogy T (k) ≤ c · k − b• Számoljuk ki T (n) értékét:
T (n) = 2T (n/2)+1 ≤ 2·(c·n/2−b)+1 = c·n−2b+1 ≤ c·n−b,
legalábbis meg tudjuk b-t úgy választani, hogy teljesüljön azegyenlotlenség.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.32
A helyettesíto módszerBuktatók
• Rekurzió:T (n) = 2T (n/2) + n
• sejtés: kis k egészekre teljesül, hogy
T (k) ≤ c · (k)
• bizonyítás:
T (n) = 2T (n/2) + n ≤ 2 · c · (n/2) + n = c · n + n ∈ O(n)
Hol a hiba?
• Nem bizonyítottuk az indukciós feltevés pontos alakját:
T (n) ≤ c · n
ill. máshonnan közelítve:
c · n + n ∈ O(n) ; T (n) ∈ O(n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.32
A helyettesíto módszerBuktatók
• Rekurzió:T (n) = 2T (n/2) + n
• sejtés: kis k egészekre teljesül, hogy
T (k) ≤ c · (k)
• bizonyítás:
T (n) = 2T (n/2) + n ≤ 2 · c · (n/2) + n = c · n + n ∈ O(n)
Hol a hiba?
• Nem bizonyítottuk az indukciós feltevés pontos alakját:
T (n) ≤ c · n
ill. máshonnan közelítve:
c · n + n ∈ O(n) ; T (n) ∈ O(n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.33
A helyettesíto módszerÚj változó bevezetése
• LegyenT (n) = 2T (
√n) + lg n.
• ???• Vezessük be az m = lg n új változót! Ekkor:
T (2m) = 2T (2m/2) + m.
• Írjuk fel az S(m) = T (2m) függvényre vonatkozó rekurziósformulát:
S(m) = 2S(m/2) + m
Ismeros valahonnan?• Megoldás:
S(m) = O(m lg m)
ill.
T (n) = T (2m) = S(m) = O(m lg m) = O(lg n lg(2) n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.33
A helyettesíto módszerÚj változó bevezetése
• LegyenT (n) = 2T (
√n) + lg n.
• ???• Vezessük be az m = lg n új változót! Ekkor:
T (2m) = 2T (2m/2) + m.
• Írjuk fel az S(m) = T (2m) függvényre vonatkozó rekurziósformulát:
S(m) = 2S(m/2) + m
Ismeros valahonnan?• Megoldás:
S(m) = O(m lg m)
ill.
T (n) = T (2m) = S(m) = O(m lg m) = O(lg n lg(2) n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.33
A helyettesíto módszerÚj változó bevezetése
• LegyenT (n) = 2T (
√n) + lg n.
• ???• Vezessük be az m = lg n új változót! Ekkor:
T (2m) = 2T (2m/2) + m.
• Írjuk fel az S(m) = T (2m) függvényre vonatkozó rekurziósformulát:
S(m) = 2S(m/2) + m
Ismeros valahonnan?• Megoldás:
S(m) = O(m lg m)
ill.
T (n) = T (2m) = S(m) = O(m lg m) = O(lg n lg(2) n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.34
A rekurziós fa módszerEgyszer már használtuk is a módszert.
• Az ÖSSZEFÉSÜLO-RENDEZÉS futási idejénekszámolására.
A rekurziós fa minden egyes csúcsa egy részfeladatnak felelmeg:
• a függvény kiértékelésekor végrehajtódó minden rekurzióshíváshoz tartozik egy csúcs.
• Szintenként összegezzük a csúcsok költségét,• majd az így kapott szintenkénti költségeket összegezzük,
hogy megkapjuk a teljes költséget.
Oszd-meg-és-uralkodj elvet használó algoritmusokelemzésénél a rekurziós fa nagyon kényelmes eszköznekbizonyul.A rekurziós fa módszert leginkább egy jó sejtés megtalálásáraérdemes használni, amit aztán a helyettesíto módszerrelellenorzünk.
• Ilyenkor elegendo a számolást „nagyvonalúan” elvégezni.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.35
A rekurziós fa módszerSejtés keresése
• Példaként nézzük meg aT (n) = 3T (⌊ n
4
⌋) + Θ(n2)rekurziót!
• A T (n) = 3T (n/4) + cn2 egyenletbol az alábbi fát kapjuk:
• Majd végül ...
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.36
A rekurziós fa módszerSejtés keresése
T (n) =
log4 n−1∑i=0
(3
16
)i
cn2 + Θ(nlog4 3) =1−
( 316
)log4 n
1− 316
cn2 + Θ(nlog4 3)
<1
1− 316
cn2 + Θ(nlog4 3) =1613
cn2 + Θ(nlog4 3)
T (n) = O(n2)(
3log4 n =(4log4 3)log4 n
=(4log4 n)log4 3
= nlog4 3)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.37
A rekurziós fa módszerBizonyítás a helyettesíto módszerrel
• Ha kis k egészekre már igaz, hogy
T (k) ≤ d · k2
akkor
T (n) = 3T(⌊n
4
⌋)+ Θ(n2) ≤ 3T
(⌊n4
⌋)+ cn2 ≤ 3d
(⌊n4
⌋)2+ cn2
≤ 3d(n
4
)2+ cn2 =
316
dn2 + cn2 ≤ dn2
amennyiben teljesül, hogy: d ≥ 1613
c(⇐⇒ c ≤ 13
16d)
amibol már következik, hogy T (n) = O(n2)
• Mivel T (n) = 3T(⌊ n
4
⌋)+ Θ(n2),
nyilvánvalóanT (n) = Ω(n2),• és így T (n) = Θ(n2).
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.38
A rekurziós fa módszerEgy picit bonyolultabb példa
• Tekintsük az alábbi rekurziót:
T (n) = T (n/3) + T (2n/3) + O(n)
• A megfelelo rekurziós fa
n→ 23 n→
( 23
)2n→ . . .→ 1,
innen( 2
3
)kn = 1, azaz n =
( 32
)k(„túloztunk”)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.38
A rekurziós fa módszerEgy picit bonyolultabb példa
• Tekintsük az alábbi rekurziót:
T (n) = T (n/3) + T (2n/3) + O(n)
• A megfelelo rekurziós fa
n→ 23 n→
( 23
)2n→ . . .→ 1,
innen( 2
3
)kn = 1, azaz n =
( 32
)k(„túloztunk”)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.39
A rekurziós fa módszerSejtés alapján helyettesíto módszer
• Induljunk ki a feltételezésbol, hogy kis k egészekrealkalmas d-vel: T (k) ≤ d · k lg k
T (n) = T (n/3) + T (2n/3) + O(n) ≤ T (n/3) + T (2n/3) + cn
≤ dn3
lgn3
+ d2n3
lg2n3
+ cn
= dn3
(lg n − lg 3) + d2n3
(lg n − lg
32
)+ cn
= dn lg n − d(
n3
lg 3 +2n3
lg 3− 2n3
lg 2)
+ cn
= dn lg n − dn(
lg 3− 23
)+ cn
= dn lg n −(
d(
lg 3− 23
)− c)
n ≤ dn lg n
amennyiben: d(
lg 3− 23
)> c
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.40
Mester módszer
• A mester módszer receptet ad a
T (n) = aT(n
b
)+ f (n)
alakú rekurzív egyenletek megoldására, ahol• a ≥ 1 és• b > 1 állandók,• és az f (n) aszimptotikusa pozitív függvény.
• Szemléletesen, egy rekurzív eljárás az eredeti problémát• felosztja a darab, egyenként n/b méretu részproblémára,• a felosztás és az összevonás együttesen f (n) lépésben
valósul meg.• Belátható, hogy amennyiben n/b helyére (valamelyik)
egészrészét írjuk(⌊ n
b
⌋vagy
⌈ nb
⌉),
• az nem érinti a „lényeget”
• A mester módszer alkalmazásához három esetet kellmegjegyezni, ezután sok rekurzív egyenlet megoldásakönnyen, sok esetben papír és ceruza nélkül,meghatározható.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.41
Mester módszer
Theorem (Mester tétel)
Legyenek a ≥ 1, b > 1 állandók, f (n) egy függvény, T (n) pedig anemnegatív egészeken a
T (n) = aT(n
b
)+ f (n)
rekurzív egyenlettel definiált függvény, ahol n/b jelentheti akáraz bn/bc egészrészt, akár az dn/be egészrészt. Ekkor:
1 Ha f (n) = O(nlogb a−ε), egy ε > 0 állandóval, akkor
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−→T (n) = Θ(nlogb a).
2 Ha f (n) = Θ(nlogb a), akkor
−−−−−−−−−−−−−−−−−→T (n) = Θ(nlogb a lg n
)(= Θ (f (n) lg n)).
3 Ha f (n) = Ω(nlogb a+ε
)és a · f (n/b) ≤ c · f (n) valamely ε > 0
és c < 1 állandóra és elég nagy n-re, akkor−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−→T (n) = Θ (f (n)).
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.42
Mester módszer használata1. eset
Ha f (n) = O(nlogb a−ε), egy ε > 0 állandóval, akkor
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−→T (n) = Θ(nlogb a).
• T (n) = 9T (n/3) + n
• a = 9, b = 3 és f (n) = n
• nlogb a = nlog3 9 = n2
• f (n) = O(nlog3 9−ε), ha 0 < ε ≤ 1
• =⇒ T (n) = Θ(n2)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.43
Mester módszer használata2. eset
Ha f (n) = Θ(nlogb a), akkor
−−−−−−−−−−−−−−−−−−−−−→T (n) = Θ(nlogb a lg n
)(= Θ (f (n) lg n)).
• T (n) = T (2n/3) + 1
• a = 1, b = 3/2 és f (n) = n
• nlogb a = nlog3/2 1 = n0
• f (n) = O(nlog3/2 1),
• =⇒ T (n) = Θ(nlog3/2 1 lg n) = Θ(lg n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.44
Mester módszer használata3. eset
Ha f (n) = Ω(nlogb a+ε
)és a · f (n/b) ≤ c · f (n) valamely ε > 0 és
c < 1 állandóra és elég nagy n-re, akkor
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−→T (n) = Θ (f (n)).
• T (n) = 3T (n/4) + n lg n
• a = 3, b = 4 és f (n) = n lg n
• nlogb a = nlog4 3 = O(n0.793) (log4 3 < 0.793)
• f (n) = Ω(nlog4 3+ε),ha 0 < ε < 0.2
• Már csak azt kell megmutatnunk nagy n-ekre, hogy:a · f (n/b) ≤ c · f (n)
• a · f (n/b) = 3(n/4) ln(n/4) ≤ (3/4)n lg n = 0.75 · f (n)
• =⇒ T (n) = Θ(f (n)) = Θ(n ln n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.45
Mester módszer használataAmikor egyik eset sem muködik
• T (n) = 2T( n
2
)+ n lg n
• a = 2, b = 2 és f (n) = n lg n
• nlogb a = nlog2 2 = n
• f (n) = Ω(nlogb a) =⇒ csak a 3. eset jöhet szóba,• de nincs olyan ε > 0, amivel teljesülne, hogy
f (n) = Ω(nlogb a+ε)
• f (n) „nagyobb” ugyan nlogb a-nél, de nem „polinomiálisannagyobb”.
• =⇒ Nem használható a mester tétel.
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.46
Keresés rendezett adatok közöttLineáris keresés
function LINEÁRIS-KERES(A, érték)1 i← 12 while i ≤ méret(A) és A[i] < érték do3 i← i + 14 end while5 if i > méret(A) vagy A[i] > érték then6 KIVÉTEL "nincs ilyen értéku elem"7 else8 return i9 end if
end procedure
Legrosszabb eset: while ciklus tesztelése lefut n + 1-szer.
T (n) = Θ(n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.46
Keresés rendezett adatok közöttLineáris keresés
function LINEÁRIS-KERES(A, érték)1 i← 12 while i ≤ méret(A) és A[i] < érték do3 i← i + 14 end while5 if i > méret(A) vagy A[i] > érték then6 KIVÉTEL "nincs ilyen értéku elem"7 else8 return i9 end if
end procedure
Legrosszabb eset: while ciklus tesztelése lefut n + 1-szer.
T (n) = Θ(n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.47
Keresés rendezett adatok közöttBináris keresés
function BINÁRIS_KERES(A, érték,alsó,felso)1 if alsó > felso then2 KIVÉTEL "nincs ilyen értéku elem"3 end if4 középso← b(alsó + felso) / 2c5 if A[középso] = érték then6 return középso7 else if A[középso] > érték then8 return BINÁRIS_KERES(A, érték, alsó, középso – 1)9 else
10 return BINÁRIS_KERES(A, érték, középso + 1, felso)11 end if
end function• T (n) = T (n/2) + 1 −−−→ talán használható a mester tétel
• a = 1, b = 2 és f (n) = 1• nlogb a = nlog2 1 = n0 = 1• f (n) = Θ(nlog2 1) −−−−−−−−−−−−−−−−−−−−−−−−−−→ 2. estet
• =⇒ T (n) = Θ(nlog2 1 ln n) = Θ(ln n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.47
Keresés rendezett adatok közöttBináris keresés
function BINÁRIS_KERES(A, érték,alsó,felso)1 if alsó > felso then2 KIVÉTEL "nincs ilyen értéku elem"3 end if4 középso← b(alsó + felso) / 2c5 if A[középso] = érték then6 return középso7 else if A[középso] > érték then8 return BINÁRIS_KERES(A, érték, alsó, középso – 1)9 else
10 return BINÁRIS_KERES(A, érték, középso + 1, felso)11 end if
end function• T (n) = T (n/2) + 1 −−−→ talán használható a mester tétel
• a = 1, b = 2 és f (n) = 1• nlogb a = nlog2 1 = n0 = 1• f (n) = Θ(nlog2 1) −−−−−−−−−−−−−−−−−−−−−−−−−−→ 2. estet
• =⇒ T (n) = Θ(nlog2 1 ln n) = Θ(ln n)
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.48
Beszúró rendezés
procedure BESZÚRÓ-RENDEZÉS(A)1 for j← 2 to méret(A) do2 kulcs← A[j]3 i← j – 14 while i ≥ 1 és A[i] > kulcs do5 A[i + 1]← A[i]6 i← i – 17 end while8 A[i + 1]← kulcs9 end for
end procedure
• Vegyük észre: a while ciklus lineáris keresést használkulcs helyének meghatározására az A „elejében”.
• Lehetne ezt bináris keresésre cserélni?
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.48
Beszúró rendezés
procedure BESZÚRÓ-RENDEZÉS(A)1 for j← 2 to méret(A) do2 kulcs← A[j]3 i← j – 14 while i ≥ 1 és A[i] > kulcs do5 A[i + 1]← A[i]6 i← i – 17 end while8 A[i + 1]← kulcs9 end for
end procedure
• Vegyük észre: a while ciklus lineáris keresést használkulcs helyének meghatározására az A „elejében”.
• Lehetne ezt bináris keresésre cserélni?
Függvényekaszimptotikusviselkedése
Kósa MárkPánovics János
Szathmáry LászlóHalász Gábor
FüggvényeknövekedéseFüggvények aszimptotikusviselkedése
Aszimptotikus jelölésekképletekben
Aszimptotikusan nem éleskorlátok
Függvényekösszehasonlítása
Alapfüggvények
Rekurzívan megadottfüggvényekA helyettesíto módszer
Finomságok
Buktatók
Új változó bevezetése
A rekurziós fa módszer
Sejtés keresése
Bizonyítás a helyettesítomódszerrel
Mester módszer
A tétel
Amikor muködik
Amikor nem muködik
„Levezetés”
2.48
Beszúró rendezés
procedure BESZÚRÓ-RENDEZÉS(A)1 for j← 2 to méret(A) do2 kulcs← A[j]3 i← j – 14 while i ≥ 1 és A[i] > kulcs do5 A[i + 1]← A[i]6 i← i – 17 end while8 A[i + 1]← kulcs9 end for
end procedure
• Vegyük észre: a while ciklus lineáris keresést használkulcs helyének meghatározására az A „elejében”.
• Lehetne ezt bináris keresésre cserélni?