100 likes | 204 Views
Függvények aszimptotikus viselkedése: A Θ jelölés. Hatékonyságfüggvények értékkészlete/értelmezési tartománya: egész számok Függvényhalmazt határoz meg: „=„ itt halmazhoz tartozás Adott f(n) függvényhez akkor mondjuk, hogy Θ(g(n)) = f(n), ha Léteznek n0, c1, c2 állandók, hogy n>n0 esetén
E N D
Függvények aszimptotikus viselkedése:A Θ jelölés • Hatékonyságfüggvények értékkészlete/értelmezési tartománya: egész számok • Függvényhalmazt határoz meg: „=„ itt halmazhoz tartozás • Adott f(n) függvényhez akkor mondjuk, hogy Θ(g(n)) = f(n), ha • Léteznek n0, c1, c2 állandók, hogy • n>n0 esetén • 0<=c1*g(n)<=f(n)<=c2*g(n) • (aszimptotikusan korlátok közé szorítható)
Az alacsonyabb rendű tagok elhagyhatók • A legmagasabb rendű tag együtthatója elhagyható • Bizonyítás gondolatmenete: az ilyen módon leegyszerűsített függvényhez meghatározható a n0 küszöbérték, és a c1, c2 aszimptotikus alsó és felső korlátok úgy, hogy 0<= c1*g(n)<=f(n)<=c2*g(n) teljesüljön
Pl: n2/2-3n = Θ(n2) • Azaz: 0<=c1*n2<=n2/2-3n<=c2*n2 | /n2 • 0<=c1<=1/2-3/n<=c2 • Válasszuk n-t szabadon meg… • 0<=1/2-3/n • n>n0=7 • c2>=1/2-3/7=1/14 • c1<=1/14
O jelölésAszimptotikus felső korlát • Adott f(n) függvényhez akkor mondjuk, hogy O(g(n)) = f(n), ha • Léteznek n0, c állandók, hogy • n>n0 esetén • 0<=f(n)<=c*g(n) • (aszimptotikusan felső korlát alá szorítható) • Legrosszabb érték becslésére használják
Ω jelölésAszimptotikus alsó korlát • Adott f(n) függvényhez akkor mondjuk, hogy Ω(g(n)) = f(n), ha • Léteznek n0, c állandók, hogy • n>n0 esetén • 0<=c*g(n) <=f(n)
Tétel • f(n) és g(n)-re: f(n) = Θ(g(n)) akkor és csak akkor, ha • f(n) = O(g(n)) és • f(n) = Ω(g(n)) • Bizonyítás: házifeladat
o jelölés (kis ordó) Aszimptotikus éles!! felső korlát • Adott f(n) függvényhez akkor mondjuk, hogy o(g(n)) = f(n), ha • Bármely c állandóra • Létezik n0 állandó, hogy • n>n0 esetén • 0<=f(n)<=c*g(n) • Másik definíció: az f(n) a g(n)-hez képest jelentéktelenné válik, vagyis • lim(n∞)f(n)/g(n) = 0
ω jelölésAszimptotikus éles!! alsó korlát • Adott f(n) függvényhez akkor mondjuk, hogy ω(g(n)) = f(n), ha • Bármely c állandóra • Létezik n0 állandó, hogy • n>n0 esetén • 0<=c*g(n) <=f(n) • Másik definíció: f(n) a g(n)-hez képest tetszőlegesen nagy lehet, vagyis • lim(n∞)f(n)/g(n) = ∞
Tulajdonságok (bizonyítás nélkül) • Tranzitivitás, vagyis (O-ra, o-ra, Ω-ra, és ω-ra is!!):f(n) = Θ(g(n)) és g(n) = Θ(h(n)) akkorf(n) = Θ(h(n)) • Reflexivitás: (O-ra és Ω-ra is!) • f(n) = Θ(f(n)) • 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))
Vigyázat! Párhuzam! • 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 • Bár hasonlít a valós számok fölött értelmezett függvényekre, a Trichotómia NEM IGAZ!! • Vagyis előfordulhat, hogy két függvényre. f(n)-re és g(n)-re • sem f(n) = Θ(g(n)) • sem f(n) = o(g(n)) • sem f(n) = ω(g(n)) nem teljesül….