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

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

A Számítástudomány alapjai

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

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

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

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:

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Algoritmusok bonyolultsága

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

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:

Algoritmuselmélet 12. 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.

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

NP-teljesség röviden

Formális nyelvek - 9.

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

Automaták mint elfogadók (akceptorok)

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

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

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Mesterséges Intelligencia MI

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

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

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

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

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

Keresések Gregorics Tibor Mesterséges intelligencia

angolul: greedy algorithms, románul: algoritmi greedy

Mesterséges Intelligencia MI

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

Diszkrét Irányítások tervezése. Heurisztika Dr. Bécsi Tamás

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

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

Programozási módszertan. Mohó algoritmusok

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

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

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.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

A félév során előkerülő témakörök

Kereső algoritmusok a diszkrét optimalizálás problémájához

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

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

Totális Unimodularitás és LP dualitás. Tapolcai János

Bevezetés az informatikába

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

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Gépi tanulás Gregorics Tibor Mesterséges intelligencia

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Dr. Schuster György február / 32

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

2. Visszalépéses keresés

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

Számítógépes döntéstámogatás. Genetikus algoritmusok

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

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Algoritmizálás, adatmodellezés tanítása 8. előadás

Általános algoritmustervezési módszerek

Nagyordó, Omega, Theta, Kisordó

Nem-lineáris programozási feladatok

Kereső algoritmusok a diszkrét optimalizálás problémájához

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

Mesterséges intelligencia. Gregorics Tibor people.inf.elte.hu/gt/mi

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

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

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

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

Az optimális megoldást adó algoritmusok

Visszalépéses keresés

A rész (30 pont) A.1. Vajon mit csinál? (5 pont) A generál(n) algoritmus egy n természetes számot dolgoz fel (0 < n < 100).

értékel függvény: rátermettségi függvény (tness function)

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

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

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

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

2. Visszalépéses stratégia

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Algoritmuselmélet 18. előadás

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!

Approximációs algoritmusok

Algoritmusok bonyolultsága

Intelligens Rendszerek Elmélete IRE 4/32/1

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Evolúciós algoritmusok

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

Bevezetés az informatikába

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

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

Adatszerkezetek 7a. Dr. IványiPéter

HÁLÓZATSZERŰEN MŰKÖDŐ LOGISZTIKÁVAL INTEGRÁLT TERMELÉSÜTEMEZÉS MEGOLDÁSA GENETIKUS ALGORITMUS ALKALMAZÁSÁVAL. OLÁH Béla

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Megerősítéses tanulás 7. előadás

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

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

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Átírás:

Számítógép és programozás 2 8. Előadás Megoldhatóság, hatékonyság http://digitus.itk.ppke.hu/~flugi/

Elméleti áttekintés a SzámProg 1 tárgyból Algoritmikus eldönthetőség kérdése Bizonyíthatóság kérdése, Gödel Terminálási probléma (Turing) Chomsky nyelvosztályok Eldönthetőségi probléma a nyelvosztályokban Rekurzívan és parciálisan rekurzívan eldönhető problémák

Eldönthetőség, kiszámíthatóság Létezik-e algoritmus (egyszer leírt végleges megoldás minden esetre) egy adott specifikációhoz? Eldönthető: Döntsd el egy egész számról, hogy páros-e! Add meg egy véges sorozat legnagyobb elemét! Vannak nem eldönthető kérdések!

Terminálási probléma Nem készíthető program, amely bármely programot elemezve eldönti, hogy végtelen ciklusba kerül-e. Az állítás bizonyítása meglehetősen hasonlít Gödel tételére, illetve Cantor bizonyítására Indirekt bizonyítás: tegyük fel, hogy a terminálási probléma kiszámítható, és van is egy függvényünk, TERM(P,A), ami P függvényről eldönti, hogy A adattal terminál-e.

Terminálási probléma Tehát TERM(P,A) = {igaz, hamis} Ahogy Gödelnél, a programok és az adatok egyaránt megszámozhatóak, így használhatjuk azt az esetet, hogy TERM(x,x) Legyen G(A) { if(term(a,a)) while(1); else return hamis; }..és legyen az A paraméter G számértéke! Ez ellentmondás.

Chomsky nyelvosztályok Példa nyelvtanra: S asb ab generálja az {ab, aabb, aaabbb,..} nyelvet, mert Minden ilyen szó generálható: n-1-szer az első, és egyszer a második szabály alkalmazásával Csak ilyen szó generálható, mert minden szabály garantálja, hogy ugyanannyi a és b karakter kerül a szóba, és az a-k mindig a közepe elé, a b-k a közepe mögé A kérdés: eldönthető-e tetszőleges szóról, hogy generálja-e a nyelvtan?

big O notation, Ordo O(f(n)) jelölés: egy algoritmust jellemez, hogy a futásidejét hogyan lehet becsülni az adat egy paramétere alapján maximumkeresés: O(n) maximumkiválasztásos rendezés: O(n 2 ) quicksort: O(log 2 n) Most futásidő mellett memóriaigényre is használni fogjuk

Chomsky nyelvosztályok A szóprobléma eldönthetősége és hatékonysága a szabálykészlettől függ: L3: A a ab L2: A u L1: uav uwv L0: u v ahol A N, a T, u,v,w {N T}* L3 lineárisan eldönthető, L2 köbösen, L1 exponenciálisan, L0 sehogy.

Eldönthető, felsorolható L0 felsorolható: A szabályok szisztematikus felhasználásával kapott szavak kötött sorrendben keletkeznek, idővel bármely szó megjelenik így L0 nem eldönthető: ha arra várunk, hogy egy szó kijön-e a szisztematikus szabályalkalmazásból, nem terminálunk, ha a válasz nemleges. L1 eldönthető: a szó csak egyre hosszabb lehet, ami terminálási feltételre ad lehetőséget

Nyelvosztályok összefoglalva Chomsky nyelvosztályok L3, reguláris: lineáris időben eldönthető a szóprobléma L2, környezetfüggetlen: köbös időben eldönthető a szóprobléma L1, hosszúságot nem csökkentő szabályok: exponenciális időben eldönthető a szóprobléma L0, tetszőleges szabályok: parciálisan rekurzív, csak akkor ad választ az algoritmus, ha a szóprobléma megoldása az igaz

Rekurzívan felsorolható, rekurzívan eldönthető Church, Turing, Kleene, Gödel tételei alapvetően rekurzív függvényekre épültek Miért fontos a rekurzív függvény a számítástudományban? Mert könnyű kiértékelni algoritmikusan Az így készült program helyessége könnyebben bizonyítható

Rekurzív függvény kiértékelése max n (S) = S[n], ha S[n] > max n-1 (S) max n-1 (S) különben A ciklusmag a tételben: if (S[n] > max) {max = S[n];} else {max=max;} Nyilvánvaló az egyezés, látható, hogy mechanikusan építhető ciklus olyan rekurzív függvényre, amely csak az előző értékre hivatkozik

Kiszámíthatóság összefoglalás Rekurzív függvényekkel felírt problémákat könnyen algoritmizáljuk Church-Turing Tézis: Amit ki lehet számolni valahogy, azt rekurzív függvénnyel is ki lehet számolni Azaz: amit ki lehet számolni valahogy, azt algoritmussal is ki lehet számolni Van, amit nem lehet kiszámolni egyáltalán, pl. terminálási probléma.

Döntési probléma Minden feladat, aminek a kimenete egyetlen logikai érték Példák: szóprobléma prímszám-e terminálási probléma Sok feladat átfogalmazható döntési feladatra, de van, ami nem, pl. optimalizálási feladatok

Keresési/optimalizálási feladatok Az algoritmus bemenete egy halmaz (leírása) Kimenete egy elem a halmazból, amire teljesül a feltétel (optimalizálásnál egy szélsőértéke a célfüggvénynek) Példák: rendezések: melyik az a permutáció, amelyikre igaz a rendezettség Rubik kocka kirakásához szükséges lépéssorozat minimális?

P vs NP A döntés folyamata szerint a megoldó algoritmus P, ha determinisztikus és polinomiális időben végez NP, ha nemdeterminisztikus, és polinomiális időben választ adhat Kitérő: nemdeterminisztikus algoritmus előre nem megadott lépések, véletlenszerű választások, a lehetőségek között ha van kedvező, akkor a lehetőség miatt a megoldás útjának ez tekinthető pl. nemdeterminisztikus automata és a szóprobléma

P vs NP P részhalmaza NP-nek Az, hogy P =?= NP, jelenleg nyitott kérdés Sokak szerint a válasz nem, de nincs bizonyítva NP-teljes problémák: olyan problémák, amikre létezik ismert NP megoldás, és egymásra levezethetőek O(n) időben vagyis, ha egyikről kiderül, hogy P, akkor a többi is.

Híres NP-teljes problémák Hamilton kör léte Utazó ügynök probléma Pakolási probléma Részösszeg probléma Izomorfizmus gráfokban Gráf színezés (több mint 3000 másik) Sudoku, aknakereső, stb

NP-teljes problémák Pozitív: megoldhatóak Negatív: lassan, általános esetben Sok esetben felismerhető egy-egy speciális eset, amivel könnyen választható egyszerűbb megoldás tipikusan gyakran a rejtvényújság Sudoku rejtvényei lineáris időben megfejthetőek pakolási probléma és a váltópénz minimális darabszáma is jó példa: a váltópénz címleteit szándékosan úgy választják meg, hogy a lineáris idejű megoldás optimális legyen

NP-teljes problémák Máskor a megoldás minőségével szembeni követelményeket enyhítik Pakolási probléma operációs rendszer munkafolyamatain a memóriában mindig az igényelt memóriánál legkevésbé nagyobb helyet adni: O(n) nem optimális, de nem sokkal rosszabb Heurisztika: gyakorlati tapasztalatból adódó, feltételezésekre építő elem az algoritmusban

A keresési feladat megoldása Legyen a lehetséges megoldások halmaza M ciklus { X legyen egy tetszőleges eleme M-nek } amíg X nem megoldás Kicsit lassú Viszont minden keresési feladat őse A keresési feladatok csak abban különböznek, hogy milyen stratégia szerint vizsgálnak meg egy elemet előbb, vagy később

Ingyen leves tétel Nincs ingyen leves: nincs mindenre jó keresési stratégia Tetszőleges, egyébként egy részterületen kiváló keresési stratégiához létezik olyan másik részterület, ahol nem jó P(A talál n lépésben) = P(B talál n lépésben) Más szavakkal: az adott részterület sajátságainak kihasználása nélkül pont olyan hatékony minden algoritmus (pl. az előző is)

Az ingyen leves tétel következménye Egy használható keresési-optimalizálási megoldásnak rendelkeznie kell ismerettel a problémáról Heurisztika Tanulás reprezentáció

Genetikus algoritmus Van egy fit(x) függvényünk, ami a feladat célfüggvénye legyen P egy részhalmaz M-ből ciklus amíg nem vagyunk elégedettek P legjobbjával P elemei közül a nagyobb fit() értékűekhez hasonlókat szaporítunk, az alacsonyabbakat töröljük néhány elemet P-ben véletlenszerűen megváltoztatunk ciklus vége

Genetikus algoritmus Mit használunk ki? A fit függvény adott A hasonló szaporítása reprezentációját már heurisztikusan választhatjuk A mutációt is heurisztikusan választhatjuk A múltbeli ismereteinket használjuk, körről körre az eddigi jó megoldásokat megtartjuk feltételezzük, hogy a legjobb megoldáshoz vezető úton jobb és jobb megoldásokon keresztül megyünk a választott heurisztikákkal

Genetikus algoritmus példa Hegymászás: adott egy hegy, aminek nem tudjuk hol a csúcsa, de azt tudjuk, hogy nincs másik lokális maximumpont szaporításnál a szülő(k) környékén véletlenszerűen választhatunk így garantálva van, hogy a mindenkori legmagasabban levő példány van legközelebb az optimumhoz Nagyon ritkán ilyen könnyű a feladat erre más megoldások, kiegészítések: maximális meredekség (gradiens), szimulált hűtés

Összefoglalás A keresési és döntési feladatokat három osztályba sorolhatjuk: megoldhatatlan lassan megoldható (pl. NP-teljes) polinomiális időben megoldható Az NP-teljes problémák kezelése a brute force mellett heurisztikus megközelítések enyhített feltételek

Utazó ügynök probléma