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

Slides:



Advertisements
Hasonló előadás
A digitális számítás elmélete
Advertisements

Készítette: Kosztyán Zsolt Tibor
Nevezetes algoritmusok
Kiszámíthatóság, rekurzív függvények
Optimalizálás célérték kereséssel
Programozási tételek, és „négyzetes” rendezések
Testek egyenes vonalú egyenletesen változó mozgása
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
MI 2003/ A következőkben más megközelítés: nem közvetlenül az eloszlásokból indulunk ki, hanem a diszkriminancia függvényeket keressük. Legegyszerűbb:
INFOÉRA Kombinatorikai algoritmusok (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Prímtesztelés Témavezető: Kátai Imre Komputeralgebra Tanszék Nagy Gábor:
Dominó probléma (emlékeztető)‏
Euklidészi gyűrűk Definíció.
Egy f  R[x] polinom cS -beli helyettesítési értéke
Csoport részcsoport invariáns faktorcsoport részcsoport
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Készítette: Pető László
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Papp Róbert, Blaskovics Viktor, Hantos Norbert
OPERÁCIÓKUTATÁS Kalmár János, 2011 Tartalom Több lineáris célfüggvényes LP Tiszta egészértékű LP.
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
A digitális számítás elmélete
A digitális számítás elmélete
A digitális számítás elmélete
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Év eleji információk Előadó: Hosszú Ferenc II. em Konzultáció: Szerda 9:50 – 10:35 II. em
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
6. SZÁMELMÉLET 6.1. Oszthatóság
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
A számfogalom bővítése
Asszimptotikus viszonyok. Asszimptotikus viszonyok számításánál felhasználható ismeretek: 1.Az asszimptotikus viszonyok reláció-tulajdonságai: A következő.
Számítástudomány alapjai
A digitális számítás elmélete
Algoritmusok bonyolultsága Gáspár Merse Előd Györgyi Géza féle statisztikus fizika szeminárium 2004.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
4. Gyires Béla Informatikai Nap Debreceni Egyetem Informatikai Kar Új eredmények a Chomsky-féle (formális) nyelvtípusokkal kapcsolatban Dr. Nagy Benedek.
Nevezetes algoritmusok Beszúrás Van egy n-1 elemű rendezett tömbünk. Be akarunk szúrni egy n-edik elemet. Egyik lehetőség, hogy végigszaladunk a tömbön,
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
Hernyák Zoltán Programozási Nyelvek II.
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
Lagrange-interpoláció
Készítette: Hanics Anikó. Az algoritmus elve: Kezdetben legyen n db kék fa, azaz a gráf minden csúcsa egy-egy (egy pontból álló) kék fa, és legyen minden.
1 Szélességi Bejárás Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S b a d e f h g c.
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1 Floyd-Warshall-algoritmus Legrövidebb utak keresése.
Dodekaéder Hamilton köre
A HATÁROZOTT INTEGRÁL FOGALMA
Valószínűségszámítás II.
Többdimenziós valószínűségi eloszlások
előadások, konzultációk
T.5. tétel (minimálpolinom egyértelmű létezése)
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
1 Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) - deklaratív lekérdezőnyelvek - elsőrendű logikát használnak - relációs algebra kifejezhető.
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
1 Megerősítéses tanulás 4. előadás Szita István, Lőrincz András.
HÁLÓZAT Maximális folyam, minimális vágás
Nevezetes algoritmusok
Mediánok és rendezett minták
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
P és NP teljes problémák
Elméleti probléma: vajon minden következtetés helyességét el tudjuk dönteni analitikus fával (véges sok lépésben)? Ha megengedünk végtelen sok premisszás.
Számításelmélet 7.
Informatikai gyakorlatok 11. évfolyam
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Absztrakt problémák Q  I  S, az absztrakt probléma kétváltozós reláció az esetek (I) és a megoldások (S) halmazán Példa: legrövidebb út Eset: gráf és.
Előadás másolata:

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? 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á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?

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)

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 alatt 1 óra alatt A 3000 n5 n= 114 n= 260 B 2n n= 45 n= 52

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 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

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..

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..

TG időkorlátja Pl: L = 0k1k  k0. Egy L-et eldöntő TG: Keres 0 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)

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 1 TIME(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

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!

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.

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 hogy L  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.

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 TM(n)  2 TN(n)2 SM(n)  SN(n) + n Biz: nem részletezzük, a korábbi konstrukcióhoz hasonló

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 n0 számon túl a) tetszőleges e > 0 esetén TM(n)  n(1+ e), ha TN(n) = O(n) b) tetszőleges c > 0 esetén TM(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.

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.

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.

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.

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

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)).

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.

Nevezetes nyelvosztályok Definíció: EXPTIME = k 1 TIME(2nk) az exponenciális időben felismerhető nyelvek osztálya. Definíció: PSPACE = k 1 SPACE(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 1 TIME(nk)  k 1 SPACE(nk) = PSPACE

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 hogy L  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,

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).

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.

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