Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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.

Hasonló előadás


Az előadások a következő témára: "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."— Előadás másolata:

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ésPrímszám-e az adott szám? Van-e …? – nyelvbe tartozás Hozzárendelés lnko, rendezés, Hamilton-kör keresés – fv kiszámítás Optimalizá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 1.Időigény (lépésszám) illetve tárigény szerinti összehasonlítás 2.A feladat nagyságának (a megadás hosszának) függvényében, a nagy feladatokra koncentrálva (asszimptotikus viselkedés)  legrosszabb esetet tekintve (worst case) 4.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 algoritmust hasonlítjuk össze. időigény 1 perc alatt1 óra alatt A 3000 n 5 n= 114 n= 260 B 2 n 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ók c és n 0 pozitív egészek, hogy f(n)  c g(n) ha n  n 0. Azt mondjuk, hogy g(n) asszimptotikus felső korlátja f(n)-nek. Pl:f(n)g(n) 6n n n 3 n n 2 n log n + n n log 2 n + log 3 nlog n nem számít az alap

6 TG időkorlátja Jelölés: Egy adott M TG esetén: T M (n) jelöli M maximális lépésszámát (számolási idejét) az n hosszúságú bemenetek esetén. S M (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 T M (n) végtelen. Ekkor S M (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 T M (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)  log 2 n 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 S M (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 =  0 k 1 k  k  0 . Egy L-et eldöntő TG: 1.Keres 0 jelet 1 után, ha van elutasít, ha nincs, visszamegy a szalag elejére. 2.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. 3.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(n 2 ) a négyzetes időben felismerhető nyelvek osztálya. Definíció: P =  k  1 TIME(n k ) 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 irányított gráf, és van benne irányított út s-ből t- be . RELRPIME =   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  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 n log n –nél rövidebb időben nem ismerhető fel, akkor L  P. Biz: Indirekten, tegyük fel hogy L  P. Ekkor van olyan k>0, hogy L  TIME(n k ). Ez azt jelenti, hogy található olyan c és n 0 konstansok, hogy T(n)  c n k ha n  n 0. Ebből következik, hogy n log n  c n k., 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,... nem determinisztikus) 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 T M (n)  2 T N (n) 2 S M (n)  S N (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 n 0 számon túl a) tetszőleges  > 0 esetén T M (n)  n(1+  ), ha T N (n) = O(n) b) tetszőleges c > 0 esetén T M (n)  c T N (n), ha lim T N (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(c s(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| |  | S(n) (n+1) S(n) Mivel S(n)  log 2 n, d = 2 2 |  | választással #K  c 1 d S(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 M 1 és M 2 jelöl. Ezeket használva, N működése, x inputtal: 1.M 1 -et elindítjuk az x inputtal, és minden egyes lépés után felfüggesztjük a futását. M 1 é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. 2.M 2 -et elindítjuk az x inputtal, és futtatjuk legfeljebb a k–dik lépésig. Ha ekkor egy j

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: T N (n)  O(t 2 ) = 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 L C = I*\L az L komplementere. Def: L nyelvosztály esetén co L =  L  L C  L  az nyelvosztály komplementere. Tétel: a)co(co L ) = L b)Ha A  B nyelvosztályok, akkor co A  co B. Biz: a) (L C ) C = L alapján. b) L  co A  L C  A  L C  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 L C  TIME(t(n)). Biz: Az L-et eldöntő M TG-ben az elfogadó és elutasító állapotokat felcserélve, egy azonos futásidejű, L C -t eldöntő TG-et kapunk, tehát L C  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 L C  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 L C  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  1 TIME(2 n k ) az exponenciális időben felismerhető nyelvek osztálya. Definíció: PSPACE =  k  1 SPACE(n k ) 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(n k )  SPACE(n k ), és így P =  k  1 TIME(n k )   k  1 SPACE(n k ) = PSPACE

22 Nevezetes nyelvosztályok Ha L  PSPACE, akkor valamely k-ra L  SPACE(n k ) A tár-idő tétel szerint ekkor van alkalmas c > 0 hogy L  TIME(c n k )  TIME(2 dn k )  TIME(2 n k+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 M w gép létezik, és legfeljebb 2 2 |w| lépésben elutasítja w-t, ahol |w| a szó hossza.  1.L-nek végtelen sok eleme van, mivel egy M w –t kibővíthetünk a kiinduló helyzetből soha nem elérhető állapotokkal. Egy ilyen y leírás esetén M y éppen úgy fog működni, mint M w, tehát az időkorlátja is azonos. 2.Megmutatjuk, hogy L semmilyen n-re nincs benne TIME(2 2 n-1 )- ban. Ez elég is, mivel EXPTIME  TIME(2 2 n-1 ).

24 Nevezetes nyelvosztályok Indirekte feltesszük, hogy L felismerhető c2 2 n-1 időkorlátos M TG-pel. Legyen n 0 olyan szám, hogy n  n 0 esetén c2 2 n-1 < 2 2 n Legyen w egy n 0 –nál hosszabb szó, melyre M w 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 M w elfogadja w-t c2 2 n-1 < 2 2 n lépésben, de ekkor L def. szerint w  L Ha w  L, akkor M w nem fogadja el w-t c2 2 n-1 < 2 2 n 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, oldalak Segédanyagok:


Letölteni ppt "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."

Hasonló előadás


Google Hirdetések