1 / 25

A digitális számítás elmélete

A digitális számítás elmélete. F üggvények asszimptotikus összehasonlítása Algoritmusok (TG-ek) idő és tárigénye A P osztály Tár-idő tétel. Hogyan értelmezzük algoritmusok hatékomyságát?.

starr
Download Presentation

A digitális számítás elmélete

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A digitális számítás elmélete Függvények asszimptotikus összehasonlítása Algoritmusok (TG-ek) idő és tárigénye A P osztály Tár-idő tétel

  2. Hogyan értelmezzük algoritmusok hatékomyságát? • Eldönthető nyelv (feladat) felismerésére van-e praktikusan használható algoritmus?Milyen fajta feladatok vannak?Eldöntendő kérdés Prímszám-e az adott szám? Van-e …? – nyelvbe tartozásHozzárendelés lnko, rendezés, Hamilton-kör keresés – fv kiszámításOptimalizálás utazó ügynök – hozzárendelések sorozata • Egy problémára (pl. szám prím voltának eldöntése, lexikografikus sorbarendezés, utazó ügynök) adott algoritmusokat hogyan értékeljük, hasonlítsuk össze?

  3. Algoritmusok összehasonlítása • Időigény (lépésszám) illetve tárigény szerinti összehasonlítás • A feladat nagyságának (a megadás hosszának) függvényében, a nagy feladatokra koncentrálva (asszimptotikus viselkedés) • A legrosszabb esetet tekintve (worst case) • Azonos fajta TG-pel és be és kimeneti reprezentációval megvalósított algoritmusok (ezt majd még pontosítjuk)

  4. Algoritmusok összehasonlítása Pl: T. fel hogy a gép 1012 művelet/sec sebességű. A és B algoritmusthasonlítjuk össze. időigény 1 perc alatt 1 óra alatt A 3000 n5 n= 114 n= 260 B 2n n= 45 n= 52

  5. A ’nagy ordó’ jelölés függvények asszimptotikus viselkedésének jellemzésére Def: f, g: NR+ függvények. f(n)= O(g(n)), ha találhatókc és n0 pozitív egészek, hogy f(n)  c g(n) ha n  n0. Azt mondjuk, hogy g(n) asszimptotikus felső korlátja f(n)-nek. Pl: f(n) g(n) 6n3+ 3000 n2+10100 n3 n100+ 2n 2n log n + n n log2 n + log3 n log n nem számít az alap

  6. TG időkorlátja Jelölés: Egy adott M TG esetén: TM(n) jelöli M maximális lépésszámát (számolási idejét) az n hosszúságú bemenetek esetén. SM(n) jelöli az M által maximálisan elolvasott munkaszalag jelek számát n hosszúságú bemenetek esetén. Megj: Ha M nem áll meg valamely n hosszú bemenetre, akkor TM(n) végtelen. Ekkor SM(n)-t is végtelennek tekintjük. Definíció: Legyen t: NN függvény olyan, hogy t(n)  n minden n-re. Az M TG t(n) időkorlátos, ha az n hosszú bemenetek esetén legfeljebb t(n) lépést tesz meg, azaz TM(n)  t(n) . Definíció: TIME(t(n))= L I L felismerhető egy O(t(n)) időkorlátos M TG-pel..

  7. TG tárkorlátja Definíció: Legyen s: NN függvény olyan, hogy s(n)  log2n minden n-re. Az M TG s(n) tárkorlátos, ha az n hosszú bemenetek esetén legfeljebb s(n) db cellát használ a munkaszalagon, azaz SM(n)  s(n) . Definíció: SPACE(s(n))= L I L felismerhető egy O(s(n)) tárkorlátos M TG-pel..

  8. TG időkorlátja Pl: L = 0k1kk0.Egy L-et eldöntő TG: • Keres0 jelet 1 után, ha van elutasít, ha nincs, visszamegy a szalag elejére. • Ha van még 0 és 1 a szalagon, ismételd:Menj a szalag elejére, és húzd át a legelső 0-t és 1-t. • Ha maradt áthuzatlan 0 vagy 1, elutasít, különben elfogad. Megj: van gyorsabb algoritmus (gyakorlaton)

  9. A P osztály Pl: TIME(n) a lineáris időben felismerhető nyelvek osztálya. TIME(n2) a négyzetes időben felismerhető nyelvek osztálya. Definíció: P = k 1TIME(nk) a polinom időben egyszalagos TG-pel eldönthető nyelvek osztálya. 1. Megj: Valamely, az alappal ekvivalens speciális TG modellt használva, ha az polinom időben szimulálható alap TG-pel, akkor P invariáns arra nézve, hogy az alap vagy a speciális TG-et használjuk számítási modellként. 2. Megj: P a praktikusan számítógéppel megoldható problémáknak felel meg. Általában találunk P-beli problémákra gyors (négyzetes, köbös,...) algoritmust

  10. Pédák P-beli problémákra Ismert polinomiális algoritmus az alábbi problémákra: PATH = <G,s,t>G irányított gráf, és van benne irányított út s-ből t-be. RELRPIME = <x,y>x és y relatív prímek. GRAPH-2-COLOR = G G gráf csúcsai kiszinezhetők 2 színnel. EULER-CYCLE = G G gráfban van Euler kör.PRIME = xx prím.2002-es eredmény!

  11. Pédák mindmáig nem P-beli problémákra Nem sikerült eddig polinomiális algoritmus találni pl. az alábbi problémákra: HAMILTON-CYCLE = G G gráfban van Hamilton kör. GRAPH-3-COLOR = G G gráf csúcsai kiszínezhetők 3 színnel.

  12. A P osztály Tétel: Ha az L nyelv nlog n –nél rövidebb időben nem ismerhető fel, akkor L  P. Biz: Indirekten, tegyük fel hogyL P. Ekkor van olyan k>0, hogy L  TIME(nk). Ez azt jelenti, hogy található olyan c és n0 konstansok, hogy T(n)  c nk ha n  n0. Ebből következik, hogy nlog n  c nk., ami nem igaz, így az ind. feltevésünk sem az.

  13. TG-ek szimulációjának idő és tárigénye Láttuk, hogy speciális TG-ek (többszalagos, RAM, ... nemdeterminisztikus) szimulálhatók alap TG-pel. Ehhez több idő illetve tár kell, mennyivel? Mi az egyszerűbb gépeken a hatékonyságromlás mértéke? Tétel: Az N k-szalagos TG-hez van olyan egyszalagos M TG, hogy L(M) = L(N), és TM(n)  2 TN(n)2 SM(n)  SN(n)+ n Biz: nem részletezzük, a korábbi konstrukcióhoz hasonló

  14. TG-ek szimulációjának idő és tárigénye Tétel: Az N TG-hez van olyan többszalagos M TG, hogy egy alkalmas n0számon túl a) tetszőleges e> 0 eseténTM(n)  n(1+ e), ha TN(n) = O(n) b) tetszőleges c > 0 eseténTM(n) c TN(n), ha lim TN(n)/n =  Biz: nem részletezzük. Megj: A fenti tétel magyarázza, hogy miért tekinthettünk el a konstans szorzótól az időigény definiálásakor.

  15. Tár-idő tétel Tétel: Ha L  SPACE(s(n)), akkor van olyan L-től függő c konstans, hogy L  TIME(cs(n)), . Biz: Legyen M egy bs(n) tárkorlátos, L-et felismerő TG, mely külön munkaszalagon dolgozik. M egy konfigurációját, K az jellemzi, hogy: • mi van a munkaszalagon éppen (max. S(n) cella), és hol áll ott a fej • az input szalagon (összesen n jel) hol áll a fej • mi a gép pillanatnyi állapota A konfigurációk számára, #K-ra felső becslés: |Q| |G|S(n) (n+1) S(n) Mivel S(n)  log2n, d = 22|G| választással #K c1 dS(n) = t Ha t-nél több ideig fut M, akkor végtelen ciklusba került biztosan.

  16. Tár-idő tétel Most adjuk meg az N gépet. N tartalmazza M két példányát, melyet M1és M2 jelöl. Ezeket használva, N működése, x inputtal: • M1-et elindítjuk az x inputtal, és minden egyes lépés után felfüggesztjük a futását. M1 éppen a k –dik lépésnél tart.Ha ez a lépés elfogadó vagy elutasító, akkor N megáll, és elfogadja ill, elutasítja x-et. Különben 2-re lépünk. • M2-et elindítjuk az x inputtal, és futtatjuk legfeljebb a k–dik lépésig. Ha ekkor egy j <k lépés során az M2 gép konfigurációja megegyezik az M1 gép konfigurációjával, akkor végtelen ciklus állt elő. Ekkor N megáll, elutasítja x-et. Különben M1-et továbbléptetve 1-re ugrik.

  17. Tár-idő tétel Az új N gép által használ erőforrások becslése. k  t, a j, k indexek karbantartásának idejét és a konfigurációk összehasonlításának idejét is beszámolva: TN(n) O(t2) = O((d S(n))2) = O((d S(n))2) = O((d bs(n))2) = O((d 2b)s(n)) Tehát c = d 2b választással teljesül a tétel.

  18. Nyelvosztályok komplementere Jelölés: L I feletti nyelv esetén LC = I*\L az L komplementere. Def:L nyelvosztály esetén coL= L LC L az nyelvosztály komplementere. Tétel: • co(coL) =L • Ha A B nyelvosztályok, akkor co A  co B. Biz: a) (LC)C= L alapján. b) L  co A LC A  LC B  L  co B

  19. Tár-idő tételek komplemens nyelvosztályokra Tétel:TIME(t(n))= coTIME(t(n)), azaz L  TIME(t(n)) akkor és csak akkor, ha LC TIME(t(n)) . Biz: Az L-et eldöntő M TG-ben az elfogadó és elutasító állapotokat felcserélve, egy azonos futásidejű, LC-t eldöntő TG-et kapunk, tehát LC TIME(t(n)) , azaz coTIME(t(n)) TIME(t(n)). Másrészt TIME(t(n)) =co( coTIME(t(n))) coTIME(t(n)). Tehát TIME(t(n)) =coTIME(t(n)).

  20. Tár-idő tételek komplemens nyelvosztályokra Tétel: SPACE(s(n))= coSPACE(s(n)), azaz L  SPACE(s(n)) akkor és csak akkor, ha LC SPACE(s(n)). Biz: Legyen L  SPACE(s(n)). A tár-idő tételbeli N gép minden inputra megáll, O(s(n)) tárkorlátos. Ebben felcserélve az elfogadó és elutasító állapotokat, adódik hogy LC SPACE(s(n)), azaz coSPACE(s(n))  SPACE(s(n)). A másik irány mint előbb.

  21. Nevezetes nyelvosztályok Definíció: EXPTIME = k 1TIME(2nk) az exponenciális időben felismerhető nyelvek osztálya. Definíció: PSPACE = k 1SPACE(nk) a polinom tárban felismerhető nyelvek osztálya. Tétel: P PSPACE  EXPTIME Biz: Ha M TG t(n) időkorlátos, akkot t(n) tárkorlátos is (lépésenként max. egy jelet ír a munkaszalagra). Tehát TIME(nk)  SPACE(nk), és így P = k 1TIME(nk) k 1SPACE(nk) = PSPACE

  22. Nevezetes nyelvosztályok Ha L  PSPACE, akkor valamely k-ra L  SPACE(nk) A tár-idő tétel szerint ekkor van alkalmas c > 0 hogyL  TIME(cnk)  TIME(2dnk)  TIME(2nk+1)  EXPTIME Tétel: EXPTIME  R (=Rekurzív nyelvek osztálya) Biz:  következik EXPTIME időkorlátosságából. A valódi tartalmazáshoz mutatunk egy L nyelvet, mely rekurzív, de nem EXPTIME–beli,

  23. Nevezetes nyelvosztályok L =  w0, 1*, az Mw gép létezik, és legfeljebb 22|w| lépésben elutasítja w-t, ahol |w| a szó hossza. • L-nek végtelen sok eleme van, mivel egy Mw–t kibővíthetünk a kiinduló helyzetből soha nem elérhető állapotokkal. Egy ilyen y leírás esetén Myéppen úgy fog működni, mint Mw , tehát az időkorlátja is azonos. • Megmutatjuk, hogy L semmilyen n-re nincs benne TIME(22n-1)-ban. Ez elég is, mivel EXPTIME  TIME(22n-1).

  24. Nevezetes nyelvosztályok Indirekte feltesszük, hogy L felismerhető c22n-1 időkorlátos M TG-pel. Legyen n0 olyan szám, hogy n  n0 esetén c22n-1< 22n Legyen w egy n0 –nál hosszabb szó, melyre Mw létezik és úgy viselkedik mint M. Most megmutatjuk, hogy mind w  L, mind a w L feltételezés ellentmondásra vezet. Ha w  L, akkor Mw elfogadja w-t c22n-1< 22n lépésben, de ekkor L def. szerint w L Ha w  L, akkor Mw nem fogadja el w-t c22n-1< 22n lépésben, de megáll, ezért elutasítja w-t, amiből w  L következne.

  25. Irodalom Rónyai-Ivanyos-Szabó: Algoritmusok, 246-255 oldalak Segédanyagok:

More Related