Számításelmélet Számítástudomány alapjai JPTE ősz Kilián Imre H-7683 Gyűrűfű Cseresznyéskert tel: ( ritkán használható)

Slides:



Advertisements
Hasonló előadás
Számítástudomány alapjai
Advertisements

Melyik agyféltekéje domináns? – teszt Pillantson a pörgő lányra! Merre forog? Az óramutató járásának megfelelően vagy azzal ellentétesen ?  Ha úgy.
1 Számítógép Hálózatok A hálózatok kialakulása, alapfogalmak Készítette: Csökmei István Péter ( CsIP ) Szegedi Tudományegyetem Természettudományi Kar levelező.
1 Az önértékelés mint projekt 6. előadás 1 2 Az előadás tartalmi elemei  A projekt fogalma  A projektek elemei  A projekt szervezete  Projektfázisok.
Informatikai rendszerek általános jellemzői 1.Hierarchikus felépítés Rendszer → alrendszer->... → egyedi komponens 2.Az elemi komponensek halmaza absztrakciófüggő.
Forrás: Reiter István C_Sharp programozás lépésről lépésre (frissített tartalommal )
Nemzeti Audiovizuális Archívum
Fájlkezelés.
Nagyméretű állományok küldése
Valószínűségi kísérletek
Számítástudomány alapjai
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
Programstruktúrák.
A Repülésbiztonsági Kockázat
Komplex természettudomány 9.évfolyam
Végeselemes modellezés matematikai alapjai
Program utasítássorozat
Scilab programozás alapjai
Adatok importálása, rendezése és szűrése
Balaton Marcell Balázs
PHP - függvények.
Az integrált áramkörök (IC-k) típusai és tervezése
Észlelés és egyéni döntéshozatal, tanulás
Mesterséges intelligencia
A mozgóképi közlésmód sajátosságai
T.R. Adatbázis-kezelés - Alapfogalmak Adatbázis:
A Hazug paradoxona Minden krétai hazudik. (Mondta egy krétai.)
 : a forgásszög az x tengelytől pozitív forgásirányában felmért szög
Algoritmusok és Adatszerkezetek I.
Newcomb-paradoxon Előttünk van két doboz, A és B. Ezekbe egy nagyon megbízható jövendőmondó helyezett el pénzt, amihez úgy juthatunk, ha mind a két dobozt.
Számításelmélet 1.
Kijelentéslogikai igazság (tautológia):
Adatbázis-kezelés (PL/SQL)
Ez a címdia 1. szövegdoboza
2. Bevezetés A programozásba
VB ADATTÍPUSOK.
Számításelmélet 4.
Közigazgatási alapvizsga a Probono rendszerben
Business Mathematics
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Az én házi feladatom volt:
Teljes visszalépéses elemzés
Nyílt nap Iskola neve Dátum.
STRUKTURÁLT SERVEZETEK: funkció, teljesítmény és megbízhatóság
CONTROLLING ÉS TELJESÍTMÉNYMENEDZSMENT DEBRECENI EGYETEM
AVL fák.
Szoftverrobotok vs biorobotok Bemutatkozik Albert, a vállalati robot
Informatikai gyakorlatok 11. évfolyam
Környezeti Kontrolling
Új pályainformációs eszközök - filmek
A csoportok tanulása, mint a szervezeti tanulás alapja
2. A KVANTUMMECHANIKA AXIÓMÁI
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Matematikai Analízis elemei
A számítógép története
A szállítási probléma.
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
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.
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Fraktálok.
Szöveges adatok tárolása
Áramlástan mérés beszámoló előadás
Bevezetés Tematika Számonkérés Irodalom
Mesterséges intelligencia
Algoritmusok.
Hagyományos megjelenítés
Atomok kvantumelmélete
Hipotéziselmélet Adatelemzés.
Előadás másolata:

Számításelmélet Számítástudomány alapjai JPTE ősz Kilián Imre H-7683 Gyűrűfű Cseresznyéskert tel: ( ritkán használható)

Bonyolultságelmélet Complexity Theory Mi mennyi?-re bonyolult? Hogyan mérhető? Minőség  Mennyiség? –Számítási modellek –Eldönthetőség –Erőforrásigény (Idő és tár) –Nemdeterminizmus és párhuzamosság –Információbonyolultság –Döntési fák –Kommunikációs bonyolultság –Kriptográfia

Bonyolultságelmélet Complexity Theory Hopcroft-Ullman: Introduction to Automata Theory, Language and Computation, AddisonWesley Papadimitru: Számítási bonyolultság, Novodat Lovász-Gács: Computational Complexity (Postscript fájl, 1994.) Bach Iván: Formális nyelvek. Typotex 2001.

Alapfogalmak Ábécé:  véges szimbólumhalmaz. Szavak, mondatok: az ábécé betűiből képzett véges sorozatok. Nyelv: L az ábécé betűiből képezhető összes véges sorozat egy részhalmaza. Az L nyelv szavai, mondatai: az L elemei Üres szó:  Üres nyelv:  (de!!  ≠{  })  i : a betűiből alkotott, pontosan i hosszú szavak  * = i=1 U  L i Összes szó:  * |w  * | vagyis a || operátor: egy w szó hossza Nyelv: L  * abc szerinti/alfabetikus/lexikografikus rendezés Z,Z + egész számok, pozitív egészek R,R + valós számok, pozitív valósak Q,Q + racionális számok, pozitív racionálisak

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: n 2 /2-3n = Θ(n 2 ) Azaz: 0<=c1*n 2 <=n 2 /2-3n<=c2*n 2 | /n 2 0<=c1<=1/2-3/n<=c2 Válasszuk n-t szabadon meg… Pl:n>n0=7 c2=0,5 c1=0

O jelölés Aszimptotikus 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és Aszimptotikus 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és Aszimptotikus é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)) akkor f(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….

Példa Mutassuk meg, hogy an 2 +bn+c=Θ(n 2 )

Számítási modellek Mi a számítógép? Mi az algoritmus? „…mechanikusan kiszámítható matematikai eljárás…”  Church tézis Matematikai gép: O=F(I) O,I  * (stringek) Turing gép (1936)… Random Access Machine (RAM) Véges automata – Sejtautomata Def: Szimuláció: M1 gép szimulálja M2-t, ha M1 ugyanazon bemenő stringekre ugyanazokat a kimenő stringeket állítja elő, mint M2

Véges automaták Reguláris nyelvek felismerésére Csak olvasófej van és véges vezérlés. Memória nincs. M=(Q, , ,q 0, F), ahol… Q az állapotok véges halmaza  A szalagábécé q 0  Q: kitüntetett kiinduló állapot F  Q: elfogadó állapotok halmaza  Q   Q, az automata mozgási szabályai

Véges automaták működése Automataállapot, v. konfiguráció: K=, ahol: q: az automata belső állapota w: a bemenő szalag tartalma… k i  k j az automata egy lépése akkor következik be, ha k i = és k j =, valamint létezik  q j mozgási szabály. k i  *k j q i -ből w j bemenő szalag első (j-i) karakterének elolvasásával q j -be véges számú (j-i) lépéssel jut el Az automata egy w szót akkor fogad el, ha:  *, ahol q  F

Diszkusszió Véges automaták ábrázolása: gráf, melynek csomópontjai az állapotoknak felelnek meg, élei a beolvasott karakterekkel vannak címkézve. Pl: Felismert nyelv: a i b j c k Megadható-e két  q 1, ill.  q 2 szabály? Nemdeterminisztikus automata… Mi van akkor, ha k=, de nincs  q1 szabály? Nem teljes automata… a abc bc

Példák Adjunk meg véges automatát, amely betűvel kezdődő, betűvel vagy számmal folytatódó szimbólumokat ismer fel. Adjunk meg véges automatát, amely egész számokat és egyszerű tizedes törteket ismer fel. Adjunk meg véges automatát, amely csak a betűvel kezdődő, betűvel vagy számmal folytatódó szimbólumokat nem ismer fel.

Turing gép és megállási problémája Turing Szalag-író/olvasófej-véges vezérlőmű T=(Q, , , ,q 0,F), ahol –Q: véges állapothalmaz  : kezdő ábécé, véges szimbólumhalmaz  : a szalag ábécéje,   :mozgási szabályok -q 0 :kiindulási állapot -F  Q: elfogadó állapotok halmaza -Mozgási szabályok: Qx   Qx(  -º)x{l,r}, ahol º az üres szimbólum. (az állapot és az elolvasott szimbólum függvényében átmegy egy új állapotba, visszaír valamit és jobbra vagy balra elmozdul) -Esetleg: több szalag, esetleg több lépés 

Példák Adjunk meg olyan Turing gépet, amely a ‘wcw’ nyelvet elemzi, ahol w=(aub)*. Adjunk meg olyan Turing gépet, amely a bemenő szót átmásolja Adjunk meg olyan Turing gépet, amely az x 1,…,x n sorozatból előállítja az x 1,…,x n sorozatot. Hogyan lehet Turing géppel karaktert beszúrni? Hogyan lehet fog-t (két függvény szuperpozícióját kiszámítani)?

Church-tézis: minden, ami algoritmusokkal megvalósítható, az T-géppel kiszámítható Eljáráshívás: T1 hívja T2-t. Egyesítsük az állapotaikat. Induljon a T1, hívás: olyan szabály, ami a T2-t indítja, Befejezés: T2 végállapotai után térjen valahová T1-be vissza Beszúrás: T állapothalmaza legyen képes egy szimbólum eltárolására. A szalagra férjen még egy jelölő is. Jelöljük meg a helyet. Cseréljük ki a tároltat a szalagon levővel. Lépjünk jobbra. Ha üres szimbólumot olvasunk, akkor visszatekerünk a jelölőig; ha nem, akkor a cserétől újrakezdjük a ciklust.

A T-gép megáll, ha nincs a helyzetnek (állapot-szalag) megfelelő szabály. Elfogadja a bemeneti nyelvet, ha elfogadó állapotban áll meg. Elutasítja, ha nem elfogadó állapotban áll meg, vagy végtelen ciklusba esik. Neumann-elv: program-adat ekvivalencia T-gép képes egy (másik) T-gépet szimulálni úgy, hogy induláskor a szalagján van a (másik) gép leírása. (kb. 60 mozgási szabály elég hozzá).  Univerzális T-gép A T-gép egyenértékű egy kettős veremautomatával. Számítógép: Random Access Machine egyenértékű a T-géppel Egy T-gép által elfogadott bemenetek egy nyelvet alkotnak Tétel: A T-gépek a Chomsky 0 osztályú (legszabadabb) nyelvek elemzésére képesek

A megállási probléma Megállapítható-e, hogy mikor esik a T-gép végtelen ciklusba? Módszer: univerzális T- gépnek odaadjuk a T-gép(ek) leírását bemenetként… Odaadhatjuk-e univerzális T-gépnek a saját leírását bemenetként? Odaadhatjuk-e egyes T-gépeknek a saját leírásukat bemenetként? Mi történik?  lesz olyan, amelyik elfogadja/elutasítja/ciklusba esik Legyen: L1 azon T-gép leírások nyelve, amelyek sajátmagukat elfogadják, L2 pedig azoké, amelyek sajátmagukat elutasítják

Az univerzális T-gépet egészítsük ki egy a leírást megkettőző (gép+adat) előkészítő algoritmussal. Ez a T-gép éppen az L1 nyelvet fogja elfogadni. Készíthetünk-e olyan T-gépet, amely az L2 nyelvet fogadja el?  Nem Tfh. létezik ilyen (a saját leírását elutasító gépeket elfogadó) gép. Mit csinál ez a gép a saját leírásával?  Ha elfogadja, akkor a saját leírását elutasítónak kell lennie, vagyis el kellene utasítania  Ha elutasítja, akkor a specifikáció miatt el kellene fogadnia  Nincs az L2 nyelvet elfogadó T-gép. Az L2 nyelv nem írható le generatív módon

Eldönthető-e minden T-gépre és minden bemenetre, hogy a T-gép megáll-e?  Nem. Tfh. igen. Ekkor szerkeszthető lenne olyan T- gép, ami minden (gépleírást és bemenet párt) elfogad, ha a gép a bemenetre ciklusba esne, és elutasít vagy ciklusba esik, ha a gép az adatra megállna. Mit tenne a gép a saját megkettőzött leírására?  elfogadná? (akkor, ha ciklusba kellene esnie)  ellentmondás  elutasítaná vagy ciklusba esne? (akkor a specifikácó miatt meg kellene állnia…  ellentmondás  nem dönthető el minden gépre és bemenetre, hogy a gép megáll-e  Léteznek nem eldönthető problémák…