A Számítástudomány alapjai

Hasonló dokumentumok
A Számítógépek felépítése, mőködési módjai. A Számítógépek hardverelemei

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

Deníciók és tételek a beugró vizsgára

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Turing-gép május 31. Turing-gép 1. 1

Automaták mint elfogadók (akceptorok)

NP-teljesség röviden

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Logika és számításelmélet. 10. előadás

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

Számításelmélet. Második előadás

Algoritmuselmélet 12. előadás

A számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete

Számítógép és programozás 2

Számításelmélet. Will június 13. A kiszámíthatóság fogalma és a Church-Turing tézis

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Az informatika elméleti alapjai 2 elővizsga december 19.

Számítógép és programozás 2

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Chomsky-féle hierarchia

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

Chomsky-féle hierarchia

Véges automaták, reguláris nyelvek

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

Algoritmuselmélet 18. előadás

Formális nyelvek - 9.

A Turing-gép. Formális nyelvek III.

Automaták és formális nyelvek

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz VIII. Friedl Katalin BME SZIT március 18.

Formális nyelvek Második, javított kiadás

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT augusztus 16.

Felismerhető nyelvek zártsági tulajdonságai II... slide #30. Véges nemdeterminisztikus automata... slide #21

ZH feladatok megoldásai

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1

Logika és számításelmélet. 7. előadás

Logika és számításelmélet. 12. előadás

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Osztatlan informatikatanár szakmai zárószigorlat tételsor (témakörök szerint felsorolva) Érvényes 2018 decembertől

Formális nyelvek - 5.

KOVÁCS BÉLA, MATEMATIKA I.

Tesztkérdések az ALGORITMUSELMÉLET tárgyból, 2001/ félév

Államvizsga kérdések a matematikus szakon, 2001.

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Logika és számításelmélet. 7. előadás

6. előadás A reguláris nyelvek jellemzése 2.

Bevezetés az informatikába

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Formális Nyelvek - 1. Előadás

Dicsőségtabló Beadós programozási feladatok

Bevezetés az informatikába

Bevezetés az algebrába az egész számok

Alap fatranszformátorok II

Algebra es sz amelm elet 3 el oad as Nevezetes sz amelm eleti probl em ak Waldhauser Tam as 2014 oszi f el ev

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

ALGEBRAI KIFEJEZÉSEK, EGYENLETEK

Matematika alapjai; Feladatok

7. előadás Környezetfüggetlen nyelvtanok

5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1.

Kvantum-számítógépek, univerzalitás és véges csoportok

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

Modern irányzatok a bonyolultságelméletben: éles korlátok és dichotómia tételek

Kaposi Ambrus. Informatikai Kar. Pannonhalmi Bencés Gimnázium november 24.

Logika és számításelmélet. 11. előadás


Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

MintaFeladatok 1.ZH Megoldások

Programozás alapjai (ANSI C)

Leképezések. Leképezések tulajdonságai. Számosságok.

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

1. Az informatika alapjai (vezetője: Dr. Dömösi Pál, DSc, egyetemi tanár) Kredit

A SZÁMÍTÁSTUDOMÁNY ALAPJAI

Diszkrét matematika 2. estis képzés

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Logika és számításelmélet

Formális nyelvek és automaták

Csempe átíró nyelvtanok

ALGEBRAI NYELV- ÉS KÓDELMÉLET. Babcsányi István

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

MintaFeladatok 1.ZH Megoldások

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2)

Shor kvantum-algoritmusa diszkrét logaritmusra

Atomataelmélet: A Rabin Scott-automata

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)

Szekvenciális hálózatok és automaták

Algoritmusok bonyolultsága

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Norma Determináns, inverz Kondíciószám Direkt és inverz hibák Lin. egyenletrendszerek A Gauss-módszer. Lineáris algebra numerikus módszerei

MATEMATIKA EMELT SZINTŰ SZÓBELI VIZSGA TÉMAKÖREI (TÉTELEK) 2012

Átírás:

Mechatronika, Optika és Gépészeti Informatika Tanszék A Számítástudomány alapjai Szemelvények az Elméleti Számítástudomány területéről

Fogalmak: Számítástechnika Realizáció, technológia Elméleti számítástudomány Matematikai elméleti tudományág Kurt Gödel (1906-1978) egy cseh származású (Brünn) amerikai matematikus volt, többek között logikával foglalkozott. Híres "eldönthetetlenségi elmélete" - mely szerint minden szigorúan logikus matematikai rendszerben vannak olyan állítások, amelyeknek az igaz vagy hamis volta nem igazolható a rendszer axiómái alapján. Alonzo Church (1903-1995.) amerikai matematikus és logikus, a számítástudomány (computer science) egyik megalapozója. (lambda-kalkulus, számítási modellek) Alan Mathison Turing (1912-1954) brit matematikus, a modern számítógép-tudomány egyik atyja. (Turing gép, megállási probléma)

Turing koncepciója, a Turing gép megfogalmazása Külső adat és tárolóterület: végtelen szalag, amelynek egymás után cellái vannak, amelyek vagy üresek, vagy jelöltek. A gép egyszerre egy cellával foglalkozik (Az író/olvasó feje egy cellán áll). A szalagon tud jobbra-balra lépni, tud jelet olvasni, törölni és írni. A bevitel, a számítás és a kivitel minden konkrét esetben véges marad, ezen túl a szalag üres.(0) A gép belső állapotait számozzuk meg 0,1,2,... A gép működését megadja egy explicit helyettesítési táblázat. Állapot, bemenet --> Állapot, kimenet, fejmozgás Church - Turing tézis Ha egy algoritmus elég mechanikus és világos, akkor bizonyára található olyan Turing-gép, amely azt végrehajtja. A Turing gép definiálja mindazt, amit matematikailag algoritmikus eljárás alatt értünk. Minden más algoritmikus eljárást végrehajtó rendszer ekvivalens valamely Turing-géppel.

Automata elmélet Pl.: determinisztikus véges állapotú automata (DFA deterministic finite state machine) T: 0 1 S1 S2 S1 S2 S1 S2 A: S1 S2 Igen Nem M automata bemenete: 0,1-ből álló string Feladata, meghatározni, hogy a bemeneti stringben páros számú 0 karakter van-e. M = (S, Σ, T, s, A), ahol Σ = {0, 1}, S = {S 1, S 2 }, s = S 1, A = {S 1 }, és A T átmeneti függvényt a következő állapot átmeneti tábla határozza meg:

Turing gép Minden digitális számítógép őse A C 9 E Író-olvasó fej Belső állapottér (regiszterek) Turing gép megállási problémája: Nem tudjuk, hogy adott programmal megáll-e! Van-e arra bizonyítási módszerünk, hogy egy eljárás biztosan algoritmus-e? NINCS!! Központi vezérlő egység Verem automata, Véges utasításkészlet

Formális nyelvek Nyelvtanok levezetési szabályokkal nyelveket generálnak. A nyelv elemei a mondatok. Formális nyelvtan: G = (N, Σ, P, S), ahol N: grammatikai szimbólumok Σ: ábécé P: levezetési szabályok S: mondatszimbólum L nyelv a Σ* részhalmaza (L Σ ) w jelsorozat mondata az L nyelvnek, ha w L

Formális nyelvek, példa G =({S, B, C}, {a, b, c},p,s) ahol: P= {S asbc, S abc, CB BC, bb bb, bc bc, cc cc} A nyelv egy mondata például: S asbc aabcbc aabbcc aabbcc aabbcc aabbcc sikertelen levezetés, pl: S asbc aabcbc aabcbc? L(G) = {a i b i c i i>0}

Nyelvek és automaták A levezetési szabályok összetettsége alapján különböző nyelvosztályok definiálhatók Minden nyelvosztályhoz egy automata típus tartozik 3. nyelvosztály: reguláris nyelvek; véges automata 2. nyelvosztály: környezetfüggetlen nyelvek; verem automata 1. nyelvosztály: környezetfüggő nyelv; lineárisan korlátos automata 0. nyelvosztály: tetszőleges típusú levezetési szabály; Turing gép

Eljárások, algoritmusok Eleme-e egy adott jelsorozat a nyelvtanával meghatározott nyelvnek, generálható-e a szóban forgó jelsorozat az adott nyelvtannal? Műveletsorozattal, lépések egymásutánjával választ kapunk-e a kérdésre? Algoritmus: a választ véges számú lépés után mindenképpen megkapjuk Eljárás, procedúra: nem garantálhato, hogy véges lépésben, tehát valaha is választ kapjunk kérdésünkre Pl. egész együtthatós egyenlet, polinóm gyökei: sorban behelyettesítjük a racionális számokat. Elsőfokú esetben algoritmus (racionális megoldás), másodfokú esetben eljárás (lehet, hogy sohasem kapunk eredményt) -> algoritmikusan eldönthetetlen A tartalmazás kérdése algoritmikusan eldönthetetlen

Algoritmus Köznyelvben: Egy véges utasítássorozat (pl. telefonfülke, telefonálás tevékenység) Véges utasítássorozat, amely bármely input esetén véges lépésszám után megáll, eredményt ad. (A végrehajtó automata stabil állapotba kerül.) Kiszámíthatóság Eljárás Algoritmus jelölt Szg. Program írható Emberi szóval megfogalmazott feladat??? NEM minden eljárás algoritmus!! Az Algoritmus fogalmára formális definíciónk nincs! Algoritmus Church - tézise Maga a Turing gép matematikai leírása az algoritmus fogalmának formális definíciója. Minden probléma, amelyre eljárás, procedúra szerkeszthető, Turing-géppel megoldható. -> Az ember azokra és csakis azokra a kérdésekre tud választ adni, amelyekre a Turing-gép is képes.

Példa nem algoritmizálható problémára: (Nem kiszámítható feladat) Dominópélda Dominó (egy példány) Dominó típus (megszámlálhatóan végtelen példány) Dominó készlet (definíciója: 3, 2,4,9,5, 1,6,2,7, 4,5,3,1) Kérdés: A definiált dominókészlettel lefedhető-e a teljes sík: Válasz: IGEN vagy NEM?????

Komplexitás (Algoritmusok bonyolultsága) Komplexitás vizsgálata, ha már tudjuk, hogy az adott problémára létezik algoritmus, azaz a probléma kiszámítható. Idő komplexitás Tárkomplexitás Exponenciális bonyolultság Idő komplexitás (lépésszám) Polinomiális bonyolultság Lineáris bonyolultság Konstans bonyolultság Bemenetek bonyolultsága

Bonyolultságelmélet Probléma osztályok P: a polinomidőben megoldható problémák osztályát reprezentálja a gyakorlatban hatékonyan megoldható problémák osztálya NP: a polinomidőben verifikálható problémák osztályát a lehetséges megoldások polinomidőben előállíthatóak nemdeterminisztikus Turing-géppel, majd determinisztikusan polinomidőben ellenőrizhető az, hogy az előállított lehetséges megoldás valóban megoldás-e A számítástudomány híres megoldatlan kérdése: P NP

Utazó ügynök probléma Az utazó ügynök probléma célja a legkisebb költségű út megtalálása városok között, minden várost pontosan egyszer érintve és visszatérve a kiindulási pontba Az irodalomban a városok közötti költség az Euklideszi távolságon alapul, a probléma szimmetrikus, a költségek konstansok NP-nehéz probléma, azaz ha találnánk egy hatékony algoritmust (mely optimális megoldást nyújt polinom számú lépésben), akkor hatékony algoritmust tudnánk találni más bonyulult NP-beli (nemdeterminisztikus polinom idejű) problémákra A szimmetrikus változat esetén (n-1)!/2 lehetséges út van, az aszimmetrikus esetben pedig (n-1)! Kimerítő keresés nem lehetséges nagy n esetén a gyakorlatban Főbb megoldási módszerek: Vegyes-egész programozás Korlátozás és elágazás módszer Heurisztikus keresések (lokális keresés, szimulált lehűtés, neurális hálózat, genetikus algoritmus, stb.)

Utazó ügynök probléma Megoldás a Berlin 52 tesztproblémára

A másik szobában vagy egy lámpa, amelynek 3 lehetséges állapota van: kék, piros, kikapcsolt A mi szobánkban van két kapcsoló, amelyekkel a lámpa állapotát lehet változtatni. Az állapot a következő diagram alapján változik: Ha az 1-es kapcsolót nyomjuk meg, akkor a lámpa az óramutató járásának megfelelő, ábra szerinti következő állapotba kerül Ha a 2-es kapcsolót nyomjuk meg és a lámpa kék vagy piros állapotban van, akkor az állapot nem fog változni Ha a 2-es kapcsolót nyomjuk meg és a lámpa kikapcsolt állapotban van, akkor a kék állapotba fog kerülni Biztosak szeretnénk lenni abban, hogy a lámpa ki van kapcsolva, de mivel a másik szobában van, ezért nem látjuk, hogy milyen állapotban van. Mi az a legrövidebb kapcsolás-sorozat, amellyel garantálhatjuk, hogy a lámpa kikapcsolt állapotba kerül.