Eloadó: Dr. Várterész Magdolna

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Eloadó: Dr. Várterész Magdolna"

Átírás

1 Eloadó: Dr. Várterész Magdolna Tartalomjegyzék: 1. Bevezetés 1.1. A jegyzet megtekintéséhez ajánlott környezet 1.2. Információ a mesterséges intelligencia kurzusról 1.3. Röviden a mesterséges intelligenciáról 2. Problémareprezentációs technikák, megoldáskereső módszerek 2.1. Állapottér-reprezentáció Állapottér Szemléltetése 2.2. Állapottér-reprezentált problémák megoldását kereső módszerek Nem módosítható megoldáskeresők Próba-hiba módszer Hegymászó módszer Módosítható megoldáskeresők Backtrack (visszalépéses) "alap" backtrack Kör kiküszöbölése Úthossz-korlát Optimális megoldás keresése Keresőgráffal megoldást keresők Szélességi és mélységi kereső Optimális kereső Best-first kereső A-algoritmusok "alap" A-algoritmus A * -algoritmus Monoton A-algoritmus B-algoritmus 2.3. Probléma-redukciós reprezentáció Probléma-redukció Szemléltetése 2.4. Probléma-redukcióval leírt feladatok megoldását kereső módszerek Backtrack (visszalépéses) Keresőgráffal megoldást keresők AO algoritmus 3. Kétszemélyes, teljes információjú játékok 3.1. A játékok osztályozása 3.2. A játékok reprezentációja és a reprezentáció szemléltetése 3.3. A stratégia 3.4. Adott állásban a következő lépés kiválasztásának módszerei Mini-max módszer Nega-max módszer Alfa-béta vágás

2 1.3. Röviden a mesterséges intelligenciáról A mesterséges intelligencia kutatások célja olyan feladatok számítógépes megoldása, amelyeket nem tudunk képlettel megoldani. Ezen feladatok megoldásában az ember az intelligenciáját használja konferencia. Itt fogalmazzák meg a célokat, itt nevezik el mesterséges intelligenciának (AI - artificial intelligence). Néhány, a mesterséges intelligenciában használt alapvető technikák és eszközök: mesterséges intelligencia nyelvek (LISP, Prolog (3. félév)) probléma reprezentáció (ezen félév anyaga) ismeret reprezentáció (logikai ismeret reprezentáció (2. félév)) megoldáskereső technikák (ezen félév) következtetési technikák Fogalmak: heurisztika: a heurisztika egy olyan trükk, módszer, ami a nagyméretű reprezentációs gráfot oly módon csökkenti, hogy reményünk van a megoldás megtalálására.

3 2. Problémareprezentációs technikák, megoldáskereso módszerek A problémát ahhoz, hogy kezelni tudjuk, valamilyen módon meg kell adni, le kell írni. Milyen problémákkal fogunk foglalkozni? Olyanokkal, amelyek megoldásához nincs ismert megoldó-algoritmus, képlet. Tapasztalat, tudás segítségével oldjuk meg a problémát. Ezen problémák számítógépes megoldásához keresünk algoritmusokat. Elso feladatunk a probléma leírása, reprezentálása. Háromféle reprezentációs eszköz: 1. Állapottér-reprezentáció 2. Probléma-redukció 3. Logikai alapú (elsorendu nyelvvel) 2.1. Állapottér-reprezentáció Állapottér Legyen adott egy p probléma. A probléma állapottér-reprezentációjának elkészítéséhez meg kell vizsgálni, hogy melyek p világában azok a tulajdonságok, jellemzok, amelyek fontosak számunkra. Tegyük fel, hogy n ³1 ilyen jellemzot találtunk. Minden egyes jellemzo p világát különbözo értékekkel jellemzi (pl.: életkor: 20; szín: fekete; stb.). Ha a világ n különbözo jellemzojét rendre a h 1,...,h n értékek jellemzik, akkor azt mondjuk, hogy a (h 1,...,h n ) érték n-essel azonosított állapotban van p világa. Jelölje az i. jellemzo által felveheto értékek halmazát H i (i = 1,...,n). Ekkor p világának állapotai elemei a H 1... H n halmaznak. Az állapotok halmazát állapottérnek nevezzük, és A-val jelöljük. AÍH 1... H n Lehet, hogy a világunkban a jellemzokhöz tartozó bizonyos értékek egyszerre nem léphetnek fel, tehát az állapottér az értékhalmazok Descartes-szorzatának csupán valamely részhalmaza. Kényszerfeltétel: az a feltétel, ami az állapotteret kijelöli az értékhalmazok Descartesszorzatából jelölése: kf(a),mely igaz, ha a állapot, egyébként hamis Problémafelvetés: A = { a aîh 1... H n és kf(a) } 1. Az állapottér mely állapotában vagyunk kezdetben: kezdoállapot. Ez is egy érték n- es, s kitüntetett szerepe van. k Î A 2. cél, hova akarunk eljutni. cîc Í A célállapotok halmaza a feladat általában: a kezdoállapotból jussunk el a megfelelo célállapotba Megadása kétféleképpen történhet: 1. explicit módon, felsorolással. Egy- vagy többféle állapot is lehet. Több állapot esetén ez nehézkes lehet. Ilyenkor: 2. implicit módon, célfeltételek megadásával: C = { a aîa, cf(a) }

4 3. Ahhoz, hogy eljussunk a célállapotba: meg kell változtatni az állapotot. o Î O o: A A állapottérbol állapottérbe képezo függvény. Az állapot megváltoztatásáért felelos. o: operátor O: operátorok halmaza Természetesen nem minden operátor alkalmazható minden esetben. Meg kell adni a pontos értelmezési tartományt: operátor-alkalmazási elofeltételek. (minden egyes operátorhoz hozzátartoznak) dom(o) = { a aîa, ef o (a) }, ahol ef o (a) azon elofeltétel, mely megmondja, hogy az adott állapoton értelmezheto-e a kérdéses operátor ef o (a) esetén o(a) = a' ÎA Definíció: A p problémát leírtuk állapottér-reprezentációval, ha megadtuk a p = <A,k,C,O> négyest, ahol A: a probléma állapottere, ezt meg kell adni k: kitüntetett kezdoállapot O: a probléma operátorainak halmaza, minden egyes operátornál elofeltételek C: a probléma célállapotainak halmaza p = <A,k,C,O> Mit jelent ennek az implementálása? ilyenkor megadtuk a p probléma állapottér-reprezentációját Több reprezentáció is megadható ugyanarra a feladatra. 1. egyrészt meg kell adni az értékhalmazokba tartozó értékek típusát kényszerfeltételek: az értékhalmazból mely értékek valódi állapotok Boolean függvények: a formális paraméterben vár egy érték n-est, s egy logikai értéket ad vissza (igaz v. hamis) 2. kezdoállapot. Állapot típusú konstans 3. célállapotok. Megadása történhat: a. célfeltételekkel: boolean, kap egy állapotot, s visszaad egy logikai értéket b. konstansokkal 4. operátorok: függvények, eljárások. Kap egy állapotot, s egy új állapotot állít elo. Minden egyes operátorhoz tartozik egy elofeltétel is (boolean típusú függvény). Kezdoállapotból mikor, melyik operátor alkalmazásával tudunk eljutni a célállapotba? Az aîa -ból az a'îa közvetlenül elérheto, ha van olyan oîo: ef o (a) és o(a) = a' Az aîa -ból az a'îa elérheto, ha van olyan a 1,...,a n ÎA (állapotsorozat), hogy a=a 1, a'=a n és a i - bol a i+1 közvetlenül elérheto. (a a kezdoállapot, a' a célállapot, i=1,...,n-1). Ilyenkor van egy operátorsorozat, ami ezt az elérést lehetové teszi: o 1,o 2,...,o n-1 Egy állapottér-reprezentált probléma megoldható, ha a kezdoállapotból elérheto valamelyik célállapot.

5 Mi a megoldása? Az az operátorsorozat, amely ezt az elérést lehetové tette. (De lehet több megoldása is függetlenül attól, hogy hány célállapot van). A feladat lehet egy vagy több megoldás eloállítása. Célunk: minosítés alapján jó megoldás keresése, azaz a megoldások között különbséget teszünk, pl.: költség. Költség: az operátorok alkalmazása költségbe kerülhet. (egy operátor használata egy állapotra ennek van költsége) ez lehet mindig azonos, vagy függhet attól, hogy melyik állapotra alkalmazzuk r(o,a) d > 0 (pozitív alsó korlátja van, aminél a költség nem lehet kisebb) r(o,a) -ban o az operátor, a pedig, hogy milyen állapotban alkalmazható Ha r(o,a) 1, akkor ez az alkalmazott operátorok számát fogja jelölni Az operátoroknál meg kell adni az operátorok költségét (függvénnyel, eljárással megadható). Mi a megoldás költsége? Az operátorsorozat operátorainak költségösszege: A különbözo megoldásokat így össze lehet hasonlítani! Optimális költség: (olcsó), legolcsóbb megoldás keresése. Feladat: megoldást kell eloállítani. Nem tudom megmondani, hogy mikor melyik operátort alkalmazzuk. A megoldást keresni kell. Példák 8-as játék Hanoi tornyai Építokocka játék Utazó ügynök probléma Szemléltetése Legyen a p probléma az <A,k,C,O> állapottér-reprezentációval megadva. Szemléltessük egy gráffal ezt a probléma-leírást a következoképpen: az állapottér állapotait csúcsokkal szemléltetjük, különbözo állapotokat különbözo csúcsokkal. A kitüntetett állapotokat, mint a kezdo- és célállapotokat a csúcsok között is kitüntetjük, a kezdoállapotot szemlélteto csúcsot startcsúcsnak, a célállapotokat szemlélteto csúcsokat terminális csúcsoknak nevezzük.

6 Minden aîa -t szemlélteto n csúcsból irányított élt húzunk az a'îa -t szemlélteto n' csúcsba, ha a-ból közvetlenül elérheto a'. Így egy <N,s,T,E> gráfot kapunk, ahol N a csúcsok halmaza s a start csúcs T a terminális csúcsok halmaza E az élek halmaza Ezt a gráfot a p probléma <A,k,C,O> állapottér-reprezentációjához tartozó állapottérgráfjának vagy reprezentációs gráfjának nevezzük. Fogalmak: irányított utak: megoldható: Pontosan akkor vezet az állapottérgráfban az n csúcsból az n' csúcsba irányított út, ha az n által szemléltetett állapotból az n' által szemléltetett állapot elérheto. van a start csúcsból valamelyik terminálisba vezeto irányított út megoldás: pontosan ez ( ) az irányított út szemlélteti a megoldást költség: r(o,a) Az irányított élekhez rendelhetok költségek, hiszen azok az operátorok alkalmazását szemléltetik irányított út költsége: a benne szereplo élek költségösszege r(n,n') d > 0 Egy probléma megoldásának keresése: a probléma-reprezentációs gráfban fogunk utat keresni a start csúcsból a terminálisba Egy gráfban annál könnyebb keresni, minél egyszerubb annak a felépítése, ill. minél kisebb. Ez többféleképpen is elérheto: 1. csúcsok számának csökkentése ü (állapotok számának csökkentése) ç egy (1) csúcsból kiinduló élek számának ý állapottér-reprezentációval van 2. csökkentése ç kapcsolatban (operátorok ügyes, alkalmas megválasztása) þ 3. fává egyenesítés A reprezentációs gráfban lehet hurok: illetve kör: ezeket kell kiegyenesíteni!

7 Hurok kiegyenesítése: Ugyanazt az állapotot két különbözo csúccsal reprezentáljuk! Gond: no a fa terjedelme! Kör kiegyenesítése: Gond: a kör kiegyenesítése végtelen szerkezettel jár együtt. Mérlegelni kell, hogy a fává egyenesítés megéri-e.

8 Példák (néhány probléma gráfreprezentációja): 1.) 8-as játék: Minden él mellett van egy párhuzamos visszairányuló él. Ilyenkor használhatunk egy irányítás nélküli élet is. Ez egy olyan probléma, ahol a fává egyenesítéssel érdemes élni. Megoldás!!!

9 2.) Utazó ügynök probléma Ez egy fa-gráf, s minden egyes útjának végén (a levél) terminális csúcs. Az utak közül az optimálisat kellene kiválasztani.

10 2.2. Állapottér-reprezentált problémák megoldását kereső módszerek Komponensek: -adatbázis Az állapottérgráf tárban tárolt része. Megoldáskeresésnél nem lesz az egész gráf a tárban, csupán valamilyen, a keresés szempontjából fontos része. -műveletek Segítségükkel módosítjuk az adatbázist. Ilyen műveletek például: a) állapottér-reprezentációs operátorokból származtatott műveletek b) technikai műveletek (pl. visszalépés) -vezérlő A vezérlő irányítja a keresést. Megmondja, hogy a megoldáskeresés során az adatbázis mely részén mikor, melyik művelet hajtódjon végre. Operátorból származtatott művelet választása előtt vizsgálja az operátoralkalmazási előfeltételeket. Figyeli a terminálási feltételek segítségével, hogy befejeződhet-e a keresés (sikeresen, avagy sikertelenül). Ha a terminálási feltételek nem teljesülnek, akkor tovább kell keresni. Ha ezek nem teljesülnek: még nem találtuk meg a megoldást. Ő fogja figyelni is. Osztályozásuk: I. nem-módosítható megoldáskeresők: egy állapotváltozást vissza lehet-e vonni, vagy sem. Ha utólag nem tudjuk magunkat módosítani: nem-módosítható megoldáskeresés (ez a hagyományos programozásra jellemző). Mesterséges intelligenciában inkább módosítható megoldáskeresőket alkalmaznak. II. módosítható megoldáskeresők: a vezérlő által kiválasztott művelet hatása visszavonható a) visszalépéses (backtracking) b) keresőgráffal III. irányítatlan (szisztematikus): IV. heurisztikus: a vezérlő mi alapján választ: - véletlenszerűen - valamilyen általános szisztéma alapján (pl. gráfban fentről le, stb.) Heurisztikus keresésnél a generálás irányításánál helyet hagyunk a tárgyköri ismereteknek is, azokat is felhasználjuk. Jelentősége: megpróbáljuk a keresést a reprezentációs gráfban ott folytatni, ahol a megoldást reméljük (valamilyen becslés alapján) csökken a reprezentációs gráf tárban tárolt részének mérete

11 Keresés iránya: 1. előrehaladó(adatvezérelt): kezdőállapotból célállapotba 2. visszafelé haladó (célvezérelt): visszafelé haladva rekonstruálunk 3. kevert: mindkét irányból elindul, s valahol találkozik Linkek: nem-módosítható megoldáskeresők módosítható megoldáskeresők 1. visszalépéses (backtracking) 2. keresőgráffal

12 Nem módosítható megoldáskeresők Ezen megoldáskeresőknek kisebb a jelentőségük, ritkábban is használják őket. Előnyük viszont az, hogy egyszerűbbek. Csak olyan feladat megoldásánál alkalmazzuk, ahol nem a megoldás a lényeg (azaz a kezdőállapotból a célállapotba vezető operátorsorozat), hanem csupán az, hogy eldöntsük: a feladatnak egyáltalán létezik-e megoldása, vagy egy célfeltételnek eleget tevő állapot előállítása. Komponensek: adatbázis: aktuális állapot műveletek: állapottér-reprezentációs operátorok Az adatbázisra egy művelet alkalmazható: ha az aktuális állapotban teljesülnek a műveletet meghatározó operátor alkalmazási előfeltételei. A művelet hatása az adatbázisra: az aktuális állapotban alkalmazzuk a műveletet meghatározó operátort, és az előállt új állapot lesz az új aktuális állapot. vezérlő: 1. aktuális állapot kezdőállapot (inicializáljuk az adatbázist. Az aktuális állapot legyen először a kezdőállapot) Célállapotot kell előállítani, nem egy operátorsorozatot (hiszen ez már plusz információ lenne). 2. tesztelés. Az aktuális állapot egyenlő célállapot-e? Ha igen: sikeresen befejezhetjük a keresést, előállítottunk egy célállapotot Ha nem: erre az aktuális állapotra van-e alkalmazható művelet? a) ha van: a vezérlő választ egyet, és alkalmazza. Vissza a 2. pontra (tesztelés). b) ha nincs: be kell fejezni a munkát, sikertelen a keresés. Lehet, hogy nincs megoldás, vagy a megoldáskereső rossz irányba ment; de erről nem tudunk többet mondani! A szükséges eljárások: procedure alk (var all: alltip; o: op); procedure valaszt (all: alltip; var o: op; var v: boolean); procedure sikertelen; procedure sikeres (a: alltip); művelet alkalmazása az adatbázison művelet választása felhasználó tájékoztatása a keresés sikertelen befejezéséről megoldás visszaadása

13 Ezek alapján a vezérlő: begin aktall := k; van := true; while van and (not celfelt(aktall)) do begin valaszt(aktall, operator, van); if van then alk(aktall,operator); end; if van then sikeres(aktall) else sikertelen; end. Ugyanazon feladat esetén a választás módjában lehet lényeges eltérés: a) irányítatlanul, szisztematikusan ("próba-hiba" módszer) Pld.: sorrend, s ezeket végignézzük, hogy melyiket tudjuk alkalmazni. A feladattal kapcsolatos tudásunk nincs benne megfogalmazva. Véletlenszerűen választunk: ez a próba-hiba módszer. Ezt könnyű implementálni, kicsi az adatbázis, viszont általános esetben nem garantál semmit. Milyen feladatosztály esetén van reményünk a megoldásra? Csak olyan esetben, ha minden csúcsból elérhető valamelyik cél. Kört nem tartalmazhat, ui. nincs rá garancia (végtelenszer ismételheti). Hurok még lehet benne. b) heurisztikusan ("hegymászó" módszer) Akkor beszélünk heurisztikus megoldáskeresésről, ha megpróbáljuk felhasználni a tudásunkat, tapasztalatunkat. A heurisztika valamilyen mennyiségi, minőségi heurisztika lesz. A heurisztikától függ majd, hogy a megoldást megtaláljuk-e vagy sem. Jó heurisztika esetén lesz majd reményünk a megoldás megtalálására. h(n) a csúcs hány élnyire van a legközelebbi terminálishoz (azaz hány operátor alkalmazására van szükség). Ha ezt tudnánk, akkor ez egy felhasználható tudás lenne. Ezt próbáljuk meg becsülni. h(aktall) h(o 1 (aktall)) alkalmazzuk az összes lehetséges operátort, h(o 2 (aktall)) s utána megnézzük, hogy közelebb kerültünk-e... valamilyen célhoz (vagy legalábbis nem távolabb). h(o n (aktall)) Azt fogjuk alkalmazni, amelyik a legközelebbi célhoz visz közelebb. Ez az ún. hegymászó-módszer. "A csúcshoz közelítünk." Távolodni nem szabad a céltól.

14 Módosítható megoldáskeresők Információ kellene tárolni az információkeresés múltjáról. Ha felismerjük, hogy rossz irányba haladunk, akkor visszalépünk. Módosítható megoldáskeresők osztályozozása: 1. visszalépéses (backtrack) 2. keresőgráffal Visszalépéses (backtrack) Adatbázis: a keresőgráf egy része kerül ide. start-ból induló, aktuális csúcsba vezető aktuális út. Ez az az út amiből véljük, hogy elérjük valamelyik terminális csúcsot. A múltból mi van nyilvántartva: a start-ból milyen módon jutottunk el az aktuális csúcsba. Műveletek: operátorok + visszalépés operátorok: állapottérreprezentációs műveletek visszalépés: technikai művelet Operátor: alkalmazzuk az utolsó csúcson, ezzel új állapot keletkezik. Ezt felfűzzük az aktuális útra (annak hossza 1 élnyivel megnő). Ez lesz az új aktuális csúcs. Az operátor alkalmazása tehát növeli az utat! Visszalépés: töröljük az aktuális csúcsot, és az aktuális csúcs a megelőző csúcs lesz. Vagyis az út rövidebb lesz. Vezérlő: eldönti, hogy az adatbázis melyik részén mikor, melyik műveletet kell végrehajtani (az aktuális csúcsra fog alkalmazni egy műveletet). Mit figyeljen? operátor vagy visszalépés? Ezt kell eldöntenie. Ha operátor: melyiket alkalmazza? terminálási feltételek teljesülése. Előállt-e a megoldás? Figyeli az akt. csúcsot. Ha az teljesíti a célfeltétel(eke)t, akkor kész vagyunk. Az adatbzis tehát egy megoldás. Ha nemterminális a csúcs, akkor ezen az úton remény van-e még a megoldás megtalálására vagy sem? Vagy: érdemes-e még folytatni egyáltalán a keresést? Hogy fog a vezérlő megoldást keresni? a) "alap" backtrack 1. inicializálás. Az út egy csúcsból áll: (start csúcs) Van adatbázis, aktuális út, aktuális csúcs 2. tesztelés. Az aktuális csúcs terminális-e? igen: kész vagyunk nem: tovább tudunk-e lépni? Van-e alkalmazható operátor? igen, van: választunk, alkalmazzuk. Új aktuális csúcs, ismét tesztelés (2. pont) nincs: másik művelet: visszalépés. (vagyis ha az akt. csúcsban nincs alkalmazható operátor)

15 Ha az aktuális csúcsban nincs alkalmazható operátor, akkor meg kell próbálni a megoldást valamilyen másik irányban keresni. A reprezentációs gráfban valamilyen másik irányba kellene lépni. Az adatbázisnak viszont ezt tudnia kell, minden csúcsban nyilván kell tertani, hogy abból a csúcsból mely alkalmazható operátorokat alkalmaztuk, vagy nem alkalmaztuk (ez egy plusz információ). A visszalépés során előállt új aktuális csúcsban egy még nem alkalmazott alkalmazható operátort kell alkalmazni. Van ilyen? igen: alkalmazzuk, folytatjuk a keresést nem: visszalépés a szülőre, s a reprezentációs gráfban egy másik irányba kell próbálkozni. Vagyis: aktuális csúcsban már minden alkalmazható operátort kipróbáltunk, sikertelenül visszalépés. Terminálási feltételek: 1. az aktuális csúcs célcsúcs-e? 2. start csúcsban teljesül a visszalépési feltételünk (vagyis már nincs olyan operátor, amit ne alkalmaztunk volna már sikertelenül) Ekkor nincs megoldás! Ha a reprezentációs gráfunk olyan véges gráf, hogy nem tartalmaz köröket, a visszalépéses megoldáskereső - ha van megoldás - garantáltan előállít egy lehetséges megoldást. Ha nincs megoldás, akkor azt fel lehet ismerni. Eltérés hol lehet? Az operátorok választásában. Ez történhet: szisztematikusan heurisztikusan Heurisztika: tudásunk alapján megbecsülhetjük, hogy a cél milyen távol van. Ezért választhatunk olyat, ami közelebb visz (hasonló a hegymászó módszerhez). Mik a problémák? Olyan reprezentációs gráfok esetén garantálja a megoldást, amelyben nincsenek körök. Ekkor ui. nincs garantálva a megoldás, végtelen ciklus alakulhat ki. (Végtelen sokszor ugyanazt választjuk ki). Ötlet: ne engedjük, hogy egy körön végtelen sokszor végigmenjen, vagy ne is engedjük bezárni ezt a kört: b) kör kiküszöbölése lesz egy újabb visszalépési feltétel: az aktuális csúcs szerepelt-e már az aktuális úton Ha igen: rögtön visszalépés (így nem zárjuk be a kört). Azaz körök nélkül próbáljuk meg megtalálni a megoldást. (Ha van megoldás, akkor van körmentes megoldás is).

16 c) úthossz-korlát Egy másik megoldás az, hogy úthossz-korlátot vezetünk be: l (megoldás) Fává egyenesítünk, végtelen fagráfot állítunk elő. Nem engedjük, hogy az aktuális út hossza meghaladja az úthosszkorlátot. aktuális út hossza úthossz-korlát (ha ez teljesül visszalépés) Viszont ha túl rövidre választjuk az úthossz-korlátot (túl alacsonyan vágjuk el a gráfot) akkor nem találunk megoldást. Ha a start csúcsban áll elő a visszalépési feltétel, akkor: 1. nincs megoldás 2. túl rövidre választottuk az úthossz-korlátot Arról, hogy melyik, nem ad információt! Ez utóbbi (úthossz-korlátos) tartalmazhat kört a megoldásban. Ha körmenteset akarunk, akkor onnan nekünk kell kivágni a kört. Nem feltétlenül véges fa-gráf esetén, ha garantáltan van az úthossz-korlátnál rövidebb megoldás, akkor azt megtalálja. d) optimális megoldás keresése A backtrack alkalmas-e optimális megoldás keresésére? Azaz van költség, s a legkisebb költségű megoldást szeretnénk előállítani. Ez lesz az ág és korlát algoritmus. van egy induló költségkorlát k (megoldás) (felső becslés) Ennél a költségkorlátnál nem költségesebb megoldást keresünk. Csak addig megyünk a reprezentációs gráfban a keresés során, míg a költségkorlátot el nem érjük. Ha találunk egy megoldást, akkor ez lesz az új költségkorlát! (Ez ugye induló költségkorlát) Folytatjuk a megoldáskeresést. Ezt a megoldást elraktározzuk, s úgy tekintjük, mintha nem lett volna megoldás. Ha van újabb megoldás, akkor annak költsége már csak lehet, mint ez. Ismét csere, eltárolás, stb. Így a reprezentációs gráf elég nagy részét nem kell bejárni, egyre kisebb utakat járunk be. Addig folytatjuk, míg a start csúcsból el tudunk valamerre indulni. Mit garantál ez? előállítja az optimális megoldást ha nem talált megoldást, akkor vagy a költségkorlát volt kicsi (az induló), vagy a feladatnak nincs megoldása. CSAK körmentes gráfok esetén működik!

17 Módosítható megoldáskeresők osztályozozása: 1. visszalépéses (backtrack) 2. keresőgráffal Keresőgráffal megoldást keresők Adatbázis: keresőgráf, egy fa. A reprezentációs gráfnak a bejárt részét feszítő fa. Egy csúcspont lehet zárt (az út közbenső csúcsa, rajtuk már továbbhaladtunk), vagy lehet nyílt (az utak végén álló levelek, itt folytathatjuk majd a keresést). Minden csúcsnak pontosan egy szülője lesz nyilvántartva a keresőgráfban (mivel fa). Az éleket visszamutatók segítségével realizáljuk. Így tudunk majd rekonstruálni. (A visszalépéses megoldáskereső csak egy utat tartott számon. Itt több út is számon van tartva, rajtunk múlik, hogy hol folytatjuk). Művelet: kiterjesztés. Levélelemből kivitelezi a továbblépést, Így tudunk majd élnyire továbbmenni. Az összes lehetséges irányba továbbmegyünk majd. (Egy új, nem kiterjesztett csúcsra alkalmazzuk az összes alkalmazható operátort). Vezérlő: melyik nyílt csúcs legyen a következő lépésben kiterjesztve. A kiválasztott nyílt csúcsot tesztelni tudja (célcsúcs, nem célcsúcs), s van egy út visszafelé is. A nyílt csúcsok közül kell választania a megoldáskeresőnek. Nincs megoldás: egyetlenegy nyílt csúcs sincs, amelyen a keresést folytathatnánk. Szisztematikus keresőgráffal keresők: szélességi kereső mélységi kereső optimális kereső Szélességi és mélységi kereső Szisztematikus keresőgráffal keresők A reprezentációs gráf csúcsait oly módon választjuk, hogy az 1. szinten, 2. szinten, stb. lévő csúcsokat vesszük. mélységi szám: g(s)=0 a start csúcsé 0. 0 szintre van a start-tól g(m)=g(n)+1 a szülő mélységi száma + 1, ahol (n,m) E (vagyis él) Egy csúcs előállításakor mindig kiszámítjuk a mélységi számát. Kiterjesztésre melyik csúcsot választjuk ki? szélességi: mindig a legkisebb mélységi számú nyílt csúcs kerül kiterjesztésre mélységi: mindig a legnagyobb mélységi számú nyílt csúcs kerül kiterjesztésre szélességi+mélységi: egy adott csúcshoz vezető melyik út van éppen nyilvántartva? Mindegy, ezért a legelső számontartott utat fogjuk nyilvántartani. 1. adatbázis inicializálása: ö rögzítsük a mélységi 0 ý S 0 (0) nyílt (nyílttá tesszük)

18 számot: visszamutató: 0 ø (azt is tudni kell, hogy az induló keresőgráf egyetlen csúcsa nyílt-e vagy zárt) 2. Van-e nyílt csúcs? nincs: van: be kell fejezni, nem tudjuk folytatni ki kell választani a nyílt csúcsok közül egyet (az alapján, hogy mélységi v. szélességi a keresés) A kiterjesztésre kiválasztott csúcsot teszteljük. Célcsúcs? nem: kiterjesztjük, őt zárttá, gyermekeit nyílttá tesszük. Gyermekek visszamutatnak a szülőre, mélységi szám beírása. Vissza a 2. pontra. sikeres vég, mutatók alapján van egy út igen: vissza Szélességi, mélységi keresésnél nem cél az optimális megoldás kiválasztása: ha több út van az adott csúcsba, akkor tetszőlegesen tartjuk nyilván az egyiket (legegyszerűbb, ha maradunk az elsőnél). Mikor tesztelünk, a tesztelést előrehozhatjuk, mert nem cél az optimális megoldás. Szélességi: tetszőleges reprezentációs gráfban ha van megoldás, akkor a legkevesebb operátor alkalmazásával előállítható valamelyik terminális. Mindig a legkisebb mélységi számú csúcsot teszteljük, terjesztjük ki, ezért a legkisebb hosszúságú megoldást állítjuk elő. Ha nincs a problémának megoldása, akkor azt a nyílt csúcsok elfogyásával felismeri. Mélységi: tetszőleges, véges reprezentációs gráfban ha van megoldás, akkor a mélységi kereső megoldás a terminál. Ha nincs megoldás: felismeri. (Mint látható, nem kell megkövetelni a körmentességet - ellentétben a backtrack-kel). Implementálás: Szélességi esetben a nyílt csúcsokat egy sorban tartjuk nyilván, amelyből pont mélységi szám szerint növekvőleg fognak kijönni. Mélységi esetben: veremben való kezelés. Ezt onnan lehet könnyen megjegyezni, hogy "a sor széles, a verem pedig mély" :-) Ha a reprezentációs gráf fagráf: kiterjesztéskor nem kell figyelni, hogy a gyermekek szerepeltek-e már vagy sem, mert nem szerepelhettek! (ui. fagráf esetén egy elemnek csak 1 szülője lehet, így egy elemet csak 1 irnyból, a szülő felől érhetjük el, s nem kell attól félnünk, hogy már korábban egy másik irányból kiterjesztették).

19 Optimális kereső (a szélességi keresés is egyfajta opimális megoldást adott. Költség: út hossza). r(n,m) d > 0,ahol (n,m) E Minden csúcsnál számon tartjuk az odavezető út költségét. g(s)=0 g(m)=g(n)+r(n,m) g * (n) g(n) g * (n),ahol (n,m) E g(n): szülő költsége, g(n) 0 r(n,m): a szülő és gyermek közti él költsége jelöljük így a start-ból n-be jutás optimális költségét, n N A nyílt csúcsok közül azt fogjuk kiterjesztésre kiválasztani, amelyik eddig a legolcsóbb volt (ott reméljük majd a legolcsóbb megoldást). A legkisebb költségű nyílt csúcsot választjuk ki kiterjesztésre. Ha az új út kisebb költségűnek bizonyul mint a régi, akkor... n m m szerepelt már akeresőgráfban: Ha az új út költsége < régi, akkor átállítjuk a mutatót ill. a költséget (zölddel jelölve) m lehetett nyílt: m lehetett zárt: ekkor átállítjuk a mutatót ill. a költséget (lásd fentebb) már vannak részgráfjai! Az m-ből induló részgráf összes csúcsába is kisebb költséggel juthatnánk el. Gond! DE! Bebizonyítható, hogy ha m zárt, akkor nem található hozzá vezető kisebb költségű út! Mivel m zárt (most ezt feltételezzük), akkor az m-et hamarabb kellett kiterjeszteni, mint n-et, azaz g(m) g(n) g(m) g(n) g(m) < g(n) + r(n,m) Így tehát az előbbi probléma nem fog minket érinteni. Mit garantál az optimális kereső? Tetszőleges reprezentációs gráfban ha van megoldás, akkor az optimális megoldással terminál. Ha nincs megoldás: jelzi. Tesztelés: mikor teszteljük a csúcsokat, hogy terminális-e? Ez időnként előrehozható, például kiterjesztéskor, amikor előállítunk egy csúcsot akkor rögtön tesztelhetjük. Ez viszont csak csak szélességi és mélységi keresésnél működik ilyeténképpen, optimálisnál nem (ott csak kiválasztás után).

20 Heurisztikus keresőgráf Heurisztika: a szisztematikus keresőgráffal keresők a gráf jóval nagyobb részét használják (egy egész fát, míg a korábbiak jóval kisebbet). A heurisztika trükk, egyszerűsítés, mely a nagyméretű reprezentációs gráfban a keresést tudja korlátozni. Csak a gráf azon részét kelljen előállítani, amelyben a megoldást reméljük a tudásunk alapján (míg a szélességi bizonyos mélységig az egészet feltárja). Példa: szélességi keresés esetén: 1 csúcsnak van d gyermeke, s l hosszú a legrövidebb megoldás. Hány csúcsú keresőgráfot állítana ez elő? Vagyis a megoldás mérete a megoldás hosszának exponenciális mérete. Heurisztikával: a nyílt csúcsok közül ha mindig azt terjesztenénk ki, ahol a megoldást reméljük: 1 + d + d d = 1 + l d Ez az ún. perfekt heurisztika. Persze perfekt heurisztikánk NINCS (hiszen ha ismernénk a megoldást, akkor nem kellene keresni)! De ez lenne az ideális. A lényeg: csökkentsük a keresőgráf méretét! Best-first kereső (A legjobb irányban haladó keresés). h(n) n h(n) 0 h(t) = 0 h(n) = becslő függvényérték, ahol n-ből meg tudjuk becsülni a célbajutás optimális költségét, ha t T (vagyis ha terminális csúcsban vagyunk), ha egy csúcsból (n-ből) nem érhető el egyetlen terminális sem, akkor valamilyen nagyon nagy számmal jelöljük A keresőgráfban minden n csúcshoz előállítjuk h(n)-t. Kiterjesztésre kiválasztás: legkisebb heurisztikájú nyílt csúcs (CSAK ezt tárolja: abból a csúcsból kb. milyen hosszú lesz a hátralévő út. A múltról NEM tárol semmit. Míg az optimális kereső: ami ADDIG a legolcsóbb volt, a múltat figyelte. Ez: a jövőt nézi, milyen hosszú lesz még.) Általában az elsőként nyilvántartott utat szoktuk nyilvántartani. Vagyis: ha kiterjesztés során előállítunk egy csúcsot, s szerepelt a keresőgráfban: nem foglalkozunk vele; nem szerepelt: nyílt csúcs lesz, visszamutatóval.

21 1. Adatbázis inicializálása: start csúcs, heurisztika megállapítása, nyílttá tesszük 2. Van-e nyílt csúcs? nincs: nincs megoldás van: kiválasztjuk a legkisebb heurisztikájút, s teszteljük. Célcsúcs? igen: rendben, visszamutatók alapján megvan a megoldás nem: kiterjesztjük. A keresőgráfban még nem szereplő gyermekeit felvesszük a nyílt csúcsok közé, szülőre visszamutatnak, becslés esetükben. A szülőt zárttá tesszük. Nincs minősített megoldáskeresés. A terminálási feltételek előrehozhatók; például kiterjesztéskor gyermekek tesztelése. Mit garantál? tetszőleges véges gráf esetén ha a reprezentációs gráf tartalmaz megoldást, akkor véges sok lépésen belül megoldást állít elő. Ha nincs megoldás: jelzi. Probléma: ha a heurisztika nem elég jó, akkor a keresés biztonságát, a garanciát elveszíthetjük.

22 A-algoritmusok a) "alap" A-algoritmus optimális keresés esetén: g(s) = 0 g(m) = g(n) + k(n,m),ahol (n,m) E, ill. k(n,m) d > 0 best-first: h(m) 0 Ötlet: ötvözzük a kettőt! f(m) = g(m) + h(m) h(t) = 0 h(m) =, ha t T, ha m-ből nem érhető el egyetlen terminális sem ez lesz a kiértékelő függvény, azaz a start-ból m-en keresztül valamilyen terminálisba való jutás becsült költsége Nyilvántartja az m-ig vezető út költségét, ill. az m-ből a t-be vezető út becsült költségét. g * (m) h * (m) f * (m) f * (s) a start-ból m-be jutás optimális költsége g(m) g * (m) m-ből milyen költséggel juthatunk legolcsóbban célba? célbajutás optimális költsége h(m) h * (m),vagyis a becslés közelíti ezt az opt. értéket start-ból m-en keresztül a célbajutás optimális költsége f * (m) = g * (m) + h * (m),elméleti érték, kiszámítani nem tudjuk f(m) f * (m), f * (m) -et szeretnénk közelíteni optimális megoldás költsége start-on keresztül a legolcsóbb célbajutás költsége f * (s) = h * (s) (hiszen g(s) = g * (s) = 0)

23 Működése: ezt az értéket fogjuk származtatni f(n) = g(n) + h(n) g(n) = f(n) - h(n) f(m) = g(m) + h(m) = g(n) + k(n,m) + h(m) = = f(n) - h(n) + k(n,m) + h(m) Kiterjesztésre mindig a legkisebb f(m) -űt kell kiválasztani! Hátra és előre is tekintünk! Összességében a legolcsóbbat terjesztjük ki. Kiterjesztésre kiválasztani: a legkisebb kiértékelőfüggvény-értékű nyílt csúcsot 1. m még nem szerepelt a keresőgráfban m-et felfűzzük a keresőgráfban nyílt csúcsként (n-re visszamutató pointer) f(m) = f(n) - h(n) + k(n,m) + h(m) 2. m szerepelt már a keresőgráfban a) b) m-et feltártuk már, de még nem léptünk tovább (azaz nyílt csúcsként szerepel) Ha találunk hozzá egy kisebb költségű utat, akkor tároljuk azt le. Visszamutató nyíl n-re. Zárt csúcsok problémája: m-ből egyszer már továbbmentünk. Amennyivel csökkent f(m) értéke, annyival kell csökkenteni az egész részgráf csúcsainak a költségét. Fel kell újítani! Zárt csúcsok problémája: 1. járjuk be a rész-keresőgráfot, s frissítsünk. Gond: visszamutatókat használtunk, nem előremutatókat. (Reprezentációs változtatás). 2. bízzuk a dolgot az A-algoritmusra. Az m zárt csúcsból csináljunk nyílt csúcsot, s ekkor ez olyan, mintha a részgráfot még NEM jártuk volna be. Az újrabejáráskor lesz korrekció! megelőzés. Az optimális kereső olyan volt, hogy 3. mikorra egy csúcs zárt lett, akkor már nem található hozzá vezető kisebb költségű út. Vagyis az opt. keresőnél nincs ilyen gond.

24 Az optimális keresés egy speciális A-algoritmus, ahol h(n) = 0, vagyis nem számítunk heurisztikát. Kérdés: heurisztikával rendelkező A-algoritmus esetében működik-e? A válasz: igen, a heurisztikának kell olyannak lennie. A vezérlő működése: 1. az adatbázis inicializálása: start csúcs, nyílttá tesszük kiértékelő-függvény megállapítása 2. van-e nyílt csúcs? nincs: sikertelen a keresés van: kiválasztjuk a legkisebb kiértékelőfüggvényű nyílt csúcsot. Teszteljük: célcsúcs? igen: jó, vége nem: kiterjesztjük. Ha egy gyermeke még nem szerepelt a keresőgráfban: felvesszük, pointer vissza, kiértékelő-függvény kiszámítása a szülő segítségével. Ha szerepelt már: megnézzük, hogy a hozzá vezető új út, vagy a már nyilvántartott (régi) út költsége-e kisebb? Ha az új út költsége (amit az új szülő alapján számítunk) kisebb: akkor van teendő, különben nincs. Ha az új út költsége kisebb: ha ez nyílt, akkor a visszamutatót átállítjuk az új szülőre, s regisztráljuk az új kiértékelő-függvényt. Ha zárt, akkor visszaminősítjük nyílt csúccsá, átírjuk a visszamutatót és a kiértékelőfüggvényt. Az épp kiterjesztett csúcsból zárt csúcs lesz. Elvárások: tetszőleges reprezentációs gráf esetén ha van megoldás: megoldása a terminál véges sok lépésben. Felismeri véges esetben, ha nincs megoldás. Az optimális kereső is ilyesmi tulajdonságokkal bír, az egy speciális A-algoritmus, a szélességi pedig egy speciális optimális keresés. 1. lemma: az A-algoritmus működése során bármely nyílt csúcs véges sok lépés megtétele után kiterjesztésre kerül, hacsak közben az algoritmus terminális csúcs megtalálásával nem terminál. 2. lemma: az A-alg. terminálása előtt mindig van az optimális útnak eleme a nyílt csúcsok között. Állítás: az A-algoritmus megoldással rendelkező reprezentációs gráf esetén véges sok lépésben terminálissal terminál.

25 Bizonyítás (1. lemma): legyen r a keresőgráf egy csúcsa f(r) kiértékelő-függvény (az r csúcsig vezető út költsége + heurisztika) f(r) = g(r) + h(r) g(r) g * (r) A nyilvántartott, r-ig vezető út vagy az optimális, vagy sem, azaz mint az odavezető opt. út. d * (r) g * (r) r-ig vezető optimélis út éleinek a száma optimális út költsége g * (r) d * (r) d összesen d * (r) él van f(r) d * (r) d "r esetén Vegyünk egy tetszőleges nyílt csúcsot: m f(m) f(m) d * (m) d Határozzunk meg ebben a keresőgráfban egy olyan mélységet, amely az ismert adatokból meghatározható! m-be vezető legrövidebb mélység alatti mélység m csúcs felette van a d szintnek legyen r a d-szintnél mélyebben lévő csúcs: d * (r) > d f(r) d * (r) d d * (r) > d ö ý d * (r) d > d d ø tehát f(r) > f(m) d szint felett véges sok csúcsunk van. Véges sok f(m) -nél nyílt csúcsunk van. Nem csak kikerülhetnek nyílt csúcsok, de be is kerülhetnek, DE csak véges sokszor. (Az algoritmus működése során egy csúcs többször is bekerülhet a nyílt csúcsok közé; többször is ki lehet azt választani kiterjesztésre, de csak véges sokszor minden csúcs véges sok lépés után kikerül a nyílt csúcsok közül. biztos, hogy

26 Bizonyítás (2. lemma): A bizonyítás indukcióval történik. Első kiterjesztésre kiválasztás előtt van az optimális útnak eleme (a start csúcs). Vegyünk az optimális utak közül egyet: s = n 1 start csúcs n 2... t = n k utolsó csúcs, terminális Indukciós feltétel: a k. kiterjesztés előtt tegyük fel, hogy ennek az optimális megoldásnak az i. csúcsa eleme a nyílt csúcsok halmazának (n i Nyílt). A (k+1). kiterjesztés előtt mi a helyzet? A k. lépésben kiterjesztéskor pont az n i -t terjesztettük ki. Előállítottuk az összes gyermekét, köztük n i+1 -et. Ha nem szerepelt: felvesszük nyílt csúcsként. Ha szerepelt (zárt csúcsként): akkor más úton már eljutottunk hozzá. Utódjai közül pár benne van a keresőgráfban pár nyílt csúcsként szerepel. Ha nem az n i -t választjuk kiterjesztésre: ő ott marad nyíltként. A kettő következménye: Az A-algoritmus nem garantálja, hogy az optimális megoldással terminál. Ha van megoldás, akkkor megoldással terminál. Bizonyítása: konstruktív módon: Heurisztika: S: 5 Nyílt: Zárt: A: 3 B: 4 S 0 (0+5) T: 0 A S (2+3) B S (3+4) S 0 (0+5) T A (6+0) B S (3+4) A S (2+3) teszt: célcsúcs, kész Holott: a másik út olcsóbb!!! Bebizonyítottuk, hogy az A-algoritmus nem garantálja az optimális megoldást!

27 b) A * -algoritmus Kérdés: A-algoritmussal előállítható-e az optimális megoldás? (az előbb a heurisztika rontotta el) Ha a heurisztikára adunk egy megkötést, akkor "megjavul". ALULRÓL kell becsülni. Minden csúcsban h(n) h * (n) Ekkor garancia lehet az optimális megoldás megtalálására. Ha a heurisztikánk alsó becslésű: A * -algoritmus. A csúcsokbeli heurisztikánk alulról becsüli a hátralévő optimális út költségét. Állítás: az A * -algoritmus optimális megoldás megtalálását garantálja Bizonyítás: optimális megoldás: 0 heurisztika triviális Így a szélességire is beláttuk az állításunkat. 3. lemma: az A * -algoritmus által kiterjesztésre kiválasztott bármely csúcs kiértékelőfüggvénye nem nagyobb (kisebb egyenlő), mint az optimális út tényleges költsége: f(n) f * (s) Bizonyítás (3. lemma): 1. ha nincs megoldás (opt. költség = ), akkor f(n) = f * (n) =,triviális eset 2. ha van megoldás, akkor van optimális megoldás is s = n 0 ö n 1 n 2 ý problémmánk egy aktuális megoldása (opt. megoldása)... t = n k ø Ennek az útnak lesz mindig eleme. Vegyük a legelső olyan elemet, ami a nyílt csúcsok között van: ni. Összes előtte levő: zárt. g(n i ) = g * (n i ) n - legyen ez az a csúcs, amelyet kiválasztottunk kiterjesztésre f(n) f(összes_többi_nyílt_csúcs),azaz f(n) f(n i ) (például) f(n) f(n i ) = g(n i ) + h(n i ) g * (n i ) + h * (n i ) = f * (n i ) = f * (s) g * (n i ) [h(n i ) h * (n i )] (az alsó becslés miatt) Vagyis: f(n) f * (s). Ezt akartuk belátni. Az A * -algoritmus az optimális megoldással terminál, ha van megoldás.

28 c) Monoton A-algoritmus Az A-algoritmusnál a gond: zárt csúcsok. Ugyanazt a csúcsot esetleg többször is ki kell terjeszteni (zárt csúcsok problémája). Optimális kereső: speciális A-algoritmus, ahol a heurisztika 0. De van-e nem azonos nulla heurisztikával rendelkező algoritmus, mely ilyen tulajdonsággal bír? (vagyis ahol nem merül fel a zárt csúcsok problémája) Monoton heurisztika: h(n) h(m) + k(n,m) "(n,m) E esetben Azaz: szülő heurisztikája gyermek heurisztikája + szülőből gyermekbe jutás költsége. Az ilyen tulajdonságú A-algoritmus: monoton A-algoritmus. Monoton heurisztikával rendelkezőa-alg. A * -alg. is egyben. Tétel: Ha h monoton heurisztika, akkor h(n) h * (n) Bizonyítás: a) ha n-ből nem érhető el egyetlen terminális csúcs sem h(n) = h * (n) = b) ha n-ből elérhető valamelyik terminális csúcs n 0,n 1,n 2,...,n l = t h(n 0 ) h(n 1 ) + k(n 0,n 1 ) h(n 1 ) h(n 2 ) + k(n 1,n 2 )... h(n l-1 ) h(n l ) + k(n l-1,n l ) h * (n) (a hátralévő optimális út költsége) h(n 0 ) - h(n l ) h * (n) (a többi páronként 0) h(n) h * (n) (mivel n l terminális csúcs, így heurisztikája 0) A tételt ezzel bebizonyítottuk!

29 Monoton heurisztika esetén bebizonyítható, hogy tetszőleges kiterjesztésre kiválasztott nyílt csúcs olyan, hogy az adott csúcsban a kiértékelő függvényben olyan értékkel számolunk, ami már optimális. Tétel: a monoton heurisztikájú A-algoritmus által kiterjesztésre kiválasztott minden nyílt csúcsra igaz, hogy g(n) = g * (n) Vagyis optimális megoldást állít elő, ill. a zárt csúcsok problémája itt nincs jelen! (hasonlóan mint az optimális keresőknél) Bizonyítás: s = n 0,n 1,...,n l = n optimális út n Nyílt és kiterjesztésre n-et választjuk Indukciós feltevés: t.f.h. még nem találtuk meg a hozzávezető opt. utat: g(n) > g * (n) n i az optimális utunk első nyílt csúcsok közötti eleme f(n i ) = g(n i ) + h(n i ) = g*(n i ) + h(n i ) g*(n i ) + h(n i+1 ) + k(n i,n i+1 ) = g*(n i+1 ) + h(n i+1 ) g*(n i+1 ) + h(n i+2 ) + k(n i+1,n i+2 ) = g*(n i+2 ) + h(n i+2 )... g*(n l ) + h(n l ) Hol is tartunk? f(n i ) g*(n) + h(n) < g(n) + h(n) = f(n) ELLENTMONDÁS! Tehát a zárt csúcsok problémája a monoton A-algoritmusnál nem lép fel! (Ha egy csúcs zárt csúcs lett, akkor azzal már nem kell foglalkozni). a - súly a = 0 a = 1 best-first optimális kereső A keresés során változtathatjuk is ezeket a súlyokat, s áttérhetünk az egyikről a másikra. Ilyen pl. a B-algoritmus! //kövi oldalon olvashatóó

30 Legyen P és Q két A * -algoritmus. Hasonlítsuk össze a kettőt a heurisztika alapján. P jobban informált mint Q, ha h Q (n) < h P (n) h * (n) Egy jobban informált nem használ nagyobb gráfot mint a kevésbé informált. Tétel: Legyen P és Q két A * -algoritmus. Ha P jobban informált, mint Q Q minden olyan csúcsot kiterjeszt, amit P is. Bizonyítás: T.f.h. P kiterjeszt egy n Nyílt csúcsot. Ekkor (lemma 3 segítségével): f P (n) f * (s) n' s n : f P (n') f * (s) mivel P jobban informált, mint Q h Q (n') < h P (n') f Q (n') = g(n') + h Q (n') < g(n') + h P (n') = f P (n') f * (s) B-algoritmus Indulunk az A-algoritmussal, de regisztráljuk az addigi legnagyobb kiértékelő függvényű csúcsot. Addigi L n := f(s) Ha a kiértékelőfüggvény az addigi L n -nál kisebb, akkor opt. keresővel folytatjuk, egyébként meg A * -gal. Ha h(n) h * (n),akkor ugyanazt állítja elő, mint az A * -algoritmus, csak a kiterjesztések száma lecsökken.

31 2.3. Probléma-redukciós reprezentáció Probléma-redukció Nagyon gyakori a feladat egyszerűsítése, részproblémákra bontása. a megoldandó probléma. Ezt valahogy le kell írni. Ez akár az p: állapottérrel is leírható, de most nem az a fontos. Ehhez a problémához hasonló problémákat keresünk. P: probléma-halmaz (ebbe gyűjtjük össze őket) p P e E P ennek a mi problémánk is eleme lesz egy ismert probléma is legyen benne! Ez az egyszerű probléma. e: 1. meg tudjuk oldani, ismerjük a megoldását 2. meg tudjuk mondani, hogy nem megoldható Az induló problémát addig kellene gyúrni, alakítani, míg csupa egyszerű probléma nem állna elő. r R redukciós operátor dom(r) P (egy problémaosztálybeli problémát tud egyszerűsíteni) van előfeltétele is! r: P 2 P P részhalmazainak a halmazába képez tehát r(p) = {p 1,...,p n } részproblémákra bont, egyszerű részekre bont (n 1) <P,p,E,R> ezzel a négyessel tudjuk megadni a probléma probléma-redukciós reprezentációját Def.: P 1 = {p 1,...,p i-1,p i,p i+1,...,p n } P 2 = {p 1,...,p i-1,q 1,q 2,...,q m,p i+1,...,p n } P 1 -ből egy lépésben (közvetlenül) redukálható P 2, ha van: Def: r R: p i dom(r) és r(p i ) = {q 1,...,q m } P 1 P 2 A P' problémahalmazból a P'' redukálható, ha van: P' = P 0,P 1,...,P k = P'' problémahalmaz-sorozat és P i P i+1 (i = 0,1,...,k-1)

32 Mikor megoldható? Ha a kezdőproblémából (mint 1 elemű problémahalmazból) csupa megoldható egyszerű problémát tartalmazó halmazt redukálhatunk. Megoldás: az azt megvalósító r i redukciós operátorsorozat. Megint egy keresési feladattal állunk szemben: egy operátorsorozatot keresünk. Itt is lehet költség, redukciós operátor alkalmazási költsége. Megoldás költsége: a megoldásban szereplő operátorsorozat alkalmazási költségeinek összege Szemléltetése Problémánk probléma-redukciós reprezentációját a <P,p,E,R> négyessel tudjuk megadni. q P n N egy problémát egy csúccsal jelölünk p P s N start-csúcs e E P t T N terminális csúcsok r R r(q) = {q 1,...,q k } k 1 r'(q) = {z 1,z 2,...,z l } 1 csúcsból annyi élköteg indul, ahány redukciós operátort alkalmazunk, s egy élköteg annyi élből áll, ahány részprobléma állt elő. ÉS, AND élköteg VAGY, OR élköteg <G,s,T> hiperút: minden részproblémát egy élkötegben kell megoldani vagy az egyik redukció segítségével bontom részproblémákra, vagy a másikkal és/vagy problémaredukciós (reprezentációs) gráf, ahol: G: gráf s: start csúcs T: terminális csúcs(ok) olyan összefüggő része az és/vagy gráfnak, melyben minden csúcsból legfeljebb 1 ÉS-élköteg indul ki. (Ha 1 ÉS-élköteget 1-nek veszünk, akkor az út fogalmához jutunk). A hiperút a start csúcsból indul, s a levelek: csupa megoldható terminális levelek. A megoldást egy olyan hiperút szemlélteti, mely a start csúcsból indul, s levelei csupa megoldható terminális csúcsok. A megoldáskeresés során egy általánosabb gráfban egy részgráfot keresünk.

33 k(n, {n1,...,nk}) redukciós operátor alkalmazási költsége,ahol K - csúcshalmaz g(n,k) = í æ 0, ha n K è æ c(n), ha n E megoldható k(n,{}) = í è,ha n nem megoldható Tiszta ÉS-VAGY gráf: olyan gráf, amelyben minden csúcsból csak ÉS vagy csak VAGY élkötegek indulnak ki. Például adott a következő ÉS-VAGY gráf: Elérhető, hogy csak ÉS vagy csak VAGY élkötegeket tartalmazzon: Fiktív csúcsokat kell beiktatni. Annyi kell, ahény VAGY élköteg indul ki. Mellette feltüntetve: melyik redukciós operátorral kaptuk. Megoldáskereső módszerek: I. nem-módosítható megoldáskeresők (nem foglalkozunk velük) II. módosítható keresők a. visszalépéses (backtrack) b. keresőgráffal

34 2.4. Probléma-redukcióval leírt feladatok megoldását kereső módszerek Osztályozásuk: I. nem-módosítható megoldáskeresők (nem foglalkozunk velük) II. módosítható keresők a. visszalépéses (backtrack) b. keresőgráffal Backtrack (visszalépéses) állapottér-reprezentáció esetén: adatbázis: start csúcsból induló valamilyen út a reprezentációs gráfban. Aktuális út. Aktuális állapot: az út végi csúcs. Ennek a vizsgálata döntötte el, hogy hogyan tovább. ÉS-VAGY gráf esetén: adatbázis: egy hiperút, a start csúcsból indul. Ebből szeretnénk megoldást készíteni. Aktuális hiperút. Levelei: Csúcsok: az eredeti problémának valamilyen szintű részproblémái. Ha a levelek mind egyszerű megoldható problémák: megoldás: probléma, részprobléma, amit éppen reprezentál Miket tartunk nyilván a csúcsokban? 1. mutató gyermekére, az 1. gyermekére köv. mutató a testvérre szülőre mutató mutató (a visszalépéshez) 2. a még nem alkalmazott (de alkalmazható) redukciós operátorokra valamilyen információ 3. címke (az adott probléma megoldását tartalmazza-e a hiperút vagy sem?) Amikor egy csúcsot előállítunk megnézzük, hogy az egyszerű problémák között szerepelt-e már? Háromféle címkét fogunk alkalmazni: 1. M (megoldható egyszerű probléma) 2. N (nem megoldható egyszerű probléma) 3. F (a többi problémának ez a címkéje, azt jelzi, hogy még folyik a munka) Műveletek: 1. redukciós operátorok 2. visszalépés

35 1. redukciós operátorok: csak F címkéjű levelekre alkalmazható! előállítjuk a részproblémákat, s felfűzzük az akt. hiperútra az adott csúcshoz, mint szülőhöz (szülőnél egy mutató fog az 1. gyermekre mutatni). Szülőnél operátor törlése (mert azt már alkalmaztuk). Gyermekek: megjelenik az adott probléma szülőre visszamutató mutató mindegyiknél köv. mutató a testvérre felcímkézzük F címke esetén: összes alk. red. op. felvétele 2. visszalépés: csak N címkéjű levelekre alkalmazható! Ha a gyermekek közt megjelent egy N címkéjű csúcs, akkor visszalépés: valamilyen más redukcióval kell a hiperutat megoldani. Redukciós operátor hatásának visszavonása: Kitöröljük a szülő gyermekeit: az N címkéjű csúcsban van egy visszamutató a szülőre (1.), ahonnan elérhető az 1. gyermek (2.). Innen van egy mutató a következő testvérre, ezáltal a szülő gyermekeit be tudjuk járni, s ki tudjuk őket törölni. A visszalépés műveletét kell még akkor is alkalmaznunk, amikor az adott csúcsban elfogytak az alkalmazható operátorok. F címkéjű a csúcs, őt kellene redukálni, de már az összes operátor elfogyott: ekkor is visszalépés. A vezérlő: 1. inicializálás: ha a címka F, akkor keresésről van szó

36 2. keresés (pszeudó-kód): 1 van = választflevél(n); //(*) 2 while (van) 3 { 4 op = választredop(n);//(*) 5 if (op!= 0) 6 { 7 GY = alk(n, op); 8 hiperútbővítés(gy, n, op); 9 if (Ncímkéjű(n, m)) visszalép(m); 10 } 11 else visszalép(n); van = választflevél(n); 14 } magyarázat: 1 egy F címkéjű levéllel tér vissza, ha van ilyen 2 addig dolgozunk, míg van F címkéjű csúcs 3 4 a kiválasztott csúcs esetében választunk egy operátort 5 ha van alkalmazható operátor, akkor (7-8-9), különben meg visszalépés 6 7 előállítjuk a csúcs gyermekeit (GY) 8 a gyermekeket felfűzzük: maga a probléma, szülő mutat az 1. gyermekre, gyermekek köv. mutatója a testvérre mutat, gyermekek visszamutatnak a szülőre, felcímkézzük a gyermekeket 9 a szülőtől bejárjuk a gyermekeket, s N címkéjűt keresünk ha találunk (m-ben adja vissza), akkor visszalépés ha az 5-ös pontban nem találtunk alkalmazható operátort, akkor visszalépés keressük a következő F címkéjű csúcsot. 14 Ha a start csúcsból lépünk vissza: sikertelen a megoldáskeresés. Beszélhetünk szisztematikus ill. heurisztikus keresésről. Ezen megoldáskeresők a (*)-gal jelölt két választásban térhetnek el lényeges módon (valasztflevel, valasztredop). Heurisztikus esetben hogyan válasszunk? HA van becslés a megoldás költségére, akkor válasszuk a LEGNEHEZEBBET! A valasztflevel() válassza a legnehezebb problémát!

37 Keresőgráffal megoldást keresők Állapottér-reprezentációs esetben akkor volt meg a megoldás, amikor a tesztelésre kiválasztott csúcs eleget tett a célfeltételnek. Problémaredukciós esetben a terminálás figyelésére bevezetjük a címkemódszert. Háromféle címkét fogunk alkalmazni: 1. M (megoldható egyszerű probléma) 2. N (nem megoldható egyszerű probléma) 3. F (a többi problémának ez a címkéje, azt jelzi, hogy még folyik a munka) Két eljárás: - címkéző (az előbb a visszalépéses módszernél tulajdonképpen egy ilyet használtunk. Amikor az adatbázisba bekerül egy új csúcs, akkor azt címkézzük). - címkemódosító (a címkék módosíthatóak. Ha a címkéző egy F-től különböző címkét ad egy csúcsnak, akkor ennek a szülőre nézve következményei lesznek). ha ő VAGY-gyermek, akkor a szülő is M lesz ekkor még nem tudunk mit mondani! még nem tudunk mit mondani! ha ő ÉS-gyermek és N címkéjű, akkor a szülő is N lesz Ha a csúcsnál egy F-től különböző címke jelenik meg, akkor indul a címkemódosító eljárás a csúcs szülőjére nézve. Ha a start csúcsban M címke jelenik meg: van megoldás, előállt a megoldás Ha a start csúcsban N címke jelenik meg: nem oldható meg Egyedül a start csúcs címkéjét kell tehát figyelni! Ha F: folytatjuk a keresést. Ha M, N: sikeres, sikertelen terminálás. Az adatbázis ebben az esetben egy keresőgráf. Hiperutak, melyek a start csúcsból indulnak. Ezek valamelyikéből remélünk megoldást. ÉS-VAGY fagráfok. A hiperutak közül választunk egyet, másrészt ha kiválasztottuk: ezen a hiperúton a még meg nem oldott problémák közül IS választani kell. Itt is beszélhetünk szisztematikus ill. heurisztikus keresésről. Heurisztikus esetben: melyik hiperúton reméljük a megoldást, ill. azon belül a legnehezebb megoldást választjuk ki. Ha kiválasztottuk: kiterjesztjük. Az összes redukciós operátort alkalmazzuk rá. A leveleket címkézzük, s ha kell módosítjuk a szülőt is. Megoldás: a start csúcs címkéje M-re vált.

38 Az N címkéjű csúcsokból induló hiperútrészleteket töröljük. Az A-algoritmus valamilyen módosítását fogjuk alkalmazni. Ez lesz az: AO-algoritmus Adatbázis: s-ből induló hiperutak (keresés során már felderített hiperutak) csúcsinformáció: maga a probléma 1. gyermekre mutató mutató következő ÉS testvér (új) következő VAGY testvér (új) szülőre mutató mutató kiértékelő-függvény (új) címke információ a redukciós operátorokról Művelet: kiterjesztés művelete (pszeudó-kóddal): while (vanmégredop(n, op)) { GY = alk(n, op); hiperútbővítés(gy, n, op); } címkemódosító(); kiértékelőfüggvénymódosító(); NcímkéjűHiperutakEltávolítása(); Vezérlő: (pszeudó-kóddal): 1. inicializálás: 2. van = választhiperút(h); while (van && (címke(h)!=m)) { választflevél(h, n); kiterjeszt(h, n); van = választhiperút(h); }

39 Kiértékelőfüggvény: æ 0, ha M címkéjű ç, ha N címkéjű f(n) = í ç h(n), ha F címkéjű és n levél è, ha F címkéjű és n nem levél

40 3.1. A játékok osztályozása 3. Kétszemélyes, teljes információjú játékok A játékokat két nagy csoportba tudjuk sorolni: 1. szerencsejátékok (itt minden a véletlen műve, pl.: rulett) 2. stratégiai játékok (a játékos befolyásolhatja a játék kimenetét, pl.: sakk, malom, amőba, üzleti "játékok", harci "játékok") Neumann János maga is foglalkozott ezzel. Harsányi János 1994-ben közgazdasági Nobel-díjat kapott; a játékelmélet az ő nevéhez fűződik. Stratégiai játékok osztályozása: résztvevők száma: 2,3,...,n személyes játékok (néha a véletlent is személynek veszik) véges játékok: olyan stratégiai játékok, amelyben minden állásban véges sok szabályos lépés közül lehet választani, s véges sok lépés után véget ér zérusösszegű: ha nyeremények + veszteségek = 0 (beszélhetünk nem zérusösszegű stratégiai játékokról is) véletlen szerepe: 1. sztochasztikus (pl. bridge) 2. determinisztikus (pl. sakk) teljes információjú: tudom, hogy a másik mit lépett. A játékosok a játékkal kapcsolatos összes információt ismerik, s felváltva lépnek. Leírás: játékszabályok megadása Milyen játékállások fordulhatnak elő, az egyes állásokban milyen szabályos lépések vannak, mik ezeknek az előfeltétele. Célfeltétel: mikor kell befejezni, milyen állásban, s ekkor kit kell győztesnek kikiáltani. A kétszemélyes játékot is le kell írni. Ehhez a következő leírást alkalmazzuk: 3.2. A játékok reprezentációja és a reprezentáció szemléltetése H legyen a játék állásainak a halmaza, {A, B} a két játékos. All = { (h, x) h H, x {A, B} } Kezdőállapot: - ez az állapottér, ahol x azt jelzi, hogy ki következik k = (i, I) Végállapot:,ahol i H kezdőállás, I {A, B} kezdő játékos V = { (h, x) h H végállások, x nyertes v. vesztes } Lépés: megállapodás kérdése, hogy x nyertes vagy vesztes l: H H előfeltétel l (h) az egyes lépésekhez előfeltételek is tartoznak

41 Operátorok: O = { o: (h, x) (h', x') l: h h', előfeltétel l (h) teljesül, h,h' Î H és x' = x ellenfele } A játék állásait egy reprezentációs gráffal tudjuk szemléltetni. A reprezentációs gráf egy játékgráf: Véges játék esetén véges a gráf is. Minden út benne véges. Körök: a játékszabályok ezt általában nem engedik, vagy adnak rá valami korlátozást (a köröket fává egyenesítéssel is fel lehet oldani). A start csúcsból egy levélbe vezető út: egy lehetséges játszma A stratégia Egy játékos számára hogyan lehetne egy teret adni, ami befolyásolná a játék kimenetét? Stratégia. Ez mindig egy (1) játékoshoz tartozik. Minden, a játék során előforduló állapotban amikor ő következik a stratégia megmondja, hogy mit lépjen. A stratégia tehát egy döntés. Jó a stratégia, ha minden állapotra van terv, bármit is lép az ellenfél. Lehetséges hiperutak: a játékos különböző stratégiái. Ahány különböző hiperút, annyi különböző lehetséges stratégia a játékos számára. Gyűjtsük össze a játék során előfordulható összes állapotot: Tegyük fel, hogy például A szeretne nyerni. Ekkor a start állapotnak szerepelnie kell a stratégiában. Menjünk tovább a zölddel jelölt részen. B viszont (az ellenfél) bármit léphet, ezért az ÖSSZES olyan állapotnak is szerepelnie kell a stratégiában amelyet B léphet, hiszen az ellenfél minden válaszlépésére reagálni kell tudni! Ahol A következik lépni: választunk a szabályos lépések közül. VAGY lépések vannak, lehet választani. B lépései ÉS élek. Ha B lép, akkor a stratégiába fel kell venni mindazon állapotokat, ahova B léphet. Át kell alakítani a játékfát az ADOTT játékos alapján ÉS-VAGY gráffá. Ebben kell hiperutakat keresni! Az adott játékosnál VAGY élek lesznek, az ellenfélnél pedig ÉS élek.

42 Hogyan választunk: úgy, hogy a játék kimenetele lehetőleg nyeréssel végződjön, ne veszítsünk. Nyerő stratégia: a stratégiával játszva a másik játékos lépéseitől függetlenül garantáltan nyerünk! Ha a levélelemek mind nyerőállások, akkor a stratégia nyerő. Feladat: a stratégiák közül válasszunk nyerő stratégiát Adott állásban a következő lépés kiválasztásának módszerei Minden kétszemélyes, teljes információjú játék esetén az egyik (és csakis az egyik) játékos számára garantáltan van nyerő stratégia. Ha van, akkor több is lehet. Kérdés: melyik játékos számára lesz? Az állítás csupán azt garantálja, hogy az egyiknek van nyerő stratégiája. Bizonyítása konstruktív módon történik, s ehhez az egész játékfát elő kell állítani: A leveleket megcímkézzük azalapján, hogy ott ki nyert. Ezután visszafelé haladunk (itt középső szint), s megnézzük, hogy ki lép (itt B). Mivel B tud úgy lépni innen, hogy ő nyerjen, ezért B-t írunk be (szürkével jelölve). Mint látható, ez egy B nyerő játék. A start csúcs címkéje határozza meg, hogy kinek van nyerő stratégiája. Ez megkonstruálja a nyerő játékost, s a nyerő stratégiát is. Címkemódszer. A címke jelöli, hogy az adott állásból kinek van nyerő stratégiája. Az előbbi címkemódszerrel akkor van gond, ha túl nagy a játékfa (nem tudjuk előállítani), s így explicit módon nem tudjuk meghatározni hogy ki nyer. Ekkor használjuk a következő módszerek egyikét: Mini-max módszer Nem építjük fel az adott állásban a teljes játékfát (pl. nem tudjuk, mert olyan nagy lenne). Amit tehetünk: néhány lépésre előre kombinálunk. Az adott állásból kiinduló játékfának csak egy részét állítjuk elő. A kialakuló állások (levélelemek) nem végállások, de mégis valahogy minősíteni kellene őket, hogy tudjunk választani. Valamilyen heurisztikára lesz szükség, amely megmondja, hogy az adott játékos számára az adott állás mennyire jó, mennyire ígéretes. Minél jobb az állás, annál nagyobb értéket rendelünk hozzá. Döntetlen: 0 körüli érték. Ha az ellenfél számára jobb: negatív érték. Az azonos szinten lévő levélelemeket kiértékeljük (heurisztika). Az ősöknél ezt vesszük figyelembe, ill. azt, hogy ki következik lépni.

Mesterséges intelligencia 1 előadások

Mesterséges intelligencia 1 előadások VÁRTERÉSZ MAGDA Mesterséges intelligencia 1 előadások 2006/07-es tanév Tartalomjegyzék 1. A problémareprezentáció 4 1.1. Az állapottér-reprezentáció.................................................. 5

Részletesebben

2. Visszalépéses keresés

2. Visszalépéses keresés 2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel

Részletesebben

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

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 007/008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció i stratégiák Szemantikus hálók / Keretrendszerek

Részletesebben

2. Visszalépéses stratégia

2. Visszalépéses stratégia 2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:

Részletesebben

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

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció Gráfkeresési stratégiák Szemantikus hálók

Részletesebben

A mesterséges intelligencia alapjai

A mesterséges intelligencia alapjai A mesterséges intelligencia alapjai Az előadások mellé vetített anyag Várterész Magda A mesterséges intelligencia alapjai: Az előadások mellé vetített anyag Várterész Magda A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046

Részletesebben

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI Mesterséges Intelligencia MI Problémamegoldás kereséssel ha sötétben tapogatózunk Dobrowiecki Tadeusz Eredics Péter, és mások BME I.E. 437, 463-28-99 dobrowiecki@mit.bme.hu, http://www.mit.bme.hu/general/staff/tade

Részletesebben

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK 30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá

Részletesebben

V. Kétszemélyes játékok

V. Kétszemélyes játékok Teljes információjú, véges, zéró összegű kétszemélyes játékok V. Kétszemélyes játékok Két játékos lép felváltva adott szabályok szerint. Mindkét játékos ismeri a maga és az ellenfele összes választási

Részletesebben

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

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363 1/6 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 Az Előadások Témái 46/6 Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció stratégiák Szemantikus hálók

Részletesebben

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia Kétszemélyes játékok Kétszemélyes, teljes információjú, véges, determinisztikus,zéró összegű játékok Két játékos lép felváltva adott szabályok szerint, amíg a játszma véget nem ér. Mindkét játékos ismeri

Részletesebben

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

Kereső algoritmusok a diszkrét optimalizálás problémájához Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások

Részletesebben

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

Algoritmizálás, adatmodellezés tanítása 7. előadás Algoritmizálás, adatmodellezés tanítása 7. előadás Oszd meg és uralkodj! Több részfeladatra bontás, amelyek hasonlóan oldhatók meg, lépései: a triviális eset (amikor nincs rekurzív hívás) felosztás (megadjuk

Részletesebben

Mesterséges intelligencia 2. laborgyakorlat

Mesterséges intelligencia 2. laborgyakorlat Mesterséges intelligencia 2. laborgyakorlat Keresési módszerek A legtöbb feladatot meg lehet határozni keresési feladatként: egy ún. állapottérben, amely tartalmazza az összes lehetséges állapotot fogjuk

Részletesebben

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y. Algoritmuselmélet Mélységi keresés és alkalmazásai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 9. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet

Részletesebben

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

Mesterséges intelligencia. Gregorics Tibor people.inf.elte.hu/gt/mi people.inf.elte.hu/gt/mi Szakirodalom Könyvek Fekete István - - Nagy Sára: Bevezetés a mesterséges intelligenciába, LSI Kiadó, Budapest, 1990, 1999. ELTE-Eötvös Kiadó, Budapest, 2006. Russel, J. S., Norvig,

Részletesebben

Keresések Gregorics Tibor Mesterséges intelligencia

Keresések Gregorics Tibor Mesterséges intelligencia Keresések ADAT := kezdeti érték while terminálási feltétel(adat) loop SELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT) endloop KR vezérlési szintjei vezérlési stratégia általános modellfüggő heurisztikus

Részletesebben

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2

Részletesebben

Modellezés Gregorics Tibor Mesterséges intelligencia

Modellezés Gregorics Tibor Mesterséges intelligencia Modellezés 1. Állapottér-reprezentáció Állapottér: a probléma leírásához szükséges adatok által felvett érték-együttesek (azaz állapotok) halmaza az állapot többnyire egy összetett szerkezetű érték gyakran

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2017. ősz 1. Diszkrét matematika 2.C szakirány 2. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2015. ősz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2015.

Részletesebben

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

Kereső algoritmusok a diszkrét optimalizálás problémájához Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások

Részletesebben

Intelligens Rendszerek Elmélete IRE 4/32/1

Intelligens Rendszerek Elmélete IRE 4/32/1 Intelligens Rendszerek Elmélete 4 IRE 4/32/1 Problémamegoldás kereséssel http://nik.uni-obuda.hu/mobil IRE 4/32/2 Egyszerű lények intelligenciája? http://www.youtube.com/watch?v=tlo2n3ymcxw&nr=1 IRE 4/32/3

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. 2018. szeptember 21. 1. Diszkrét matematika 2. 2. előadás Fancsali Szabolcs Levente nudniq@cs.elte.hu www.cs.elte.hu/ nudniq Komputeralgebra Tanszék 2018. szeptember 21. Gráfelmélet

Részletesebben

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

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció stratégiák Szemantikus hálók / Keretrendszerek

Részletesebben

Mesterséges intelligencia 1 előadások

Mesterséges intelligencia 1 előadások VÁRTERÉSZ MAGDA Mesterséges intelligencia 1 előadások 2006/07-es tanév Tartalomjegyzék 1. A problémareprezentáció 4 1.1. Az állapottér-reprezentáció.................................................. 5

Részletesebben

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

Algoritmizálás, adatmodellezés tanítása 8. előadás Algoritmizálás, adatmodellezés tanítása 8. előadás Elágazás és korlátozás A backtrack alkalmas-e optimális megoldás keresésére? Van költség, és a legkisebb költségű megoldást szeretnénk előállítani. Van

Részletesebben

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA 26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma

Részletesebben

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.

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. 11. gyakorlat Branch-and-Bound a korlátozás és szétválasztás módszere 1. Az egészértéketű programozás 1.1. Bevezető Bizonyos feladatok modellezése kapcsán előfordulhat olyan eset, hogy a megoldás során

Részletesebben

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

Diszkrét matematika 2. estis képzés Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

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

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363 1/363 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 Az Előadások Témái 69/363 Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció Gráfkeresési stratégiák

Részletesebben

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y. Algoritmuselmélet Gráfok megadása, szélességi bejárás, összefüggőség, párosítás Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 2. előadás

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2015. tavasz 1. Diszkrét matematika 2.C szakirány 1. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu Komputeralgebra Tanszék 2015. tavasz Gráfelmélet Diszkrét

Részletesebben

Amortizációs költségelemzés

Amortizációs költségelemzés Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük

Részletesebben

Az optimális megoldást adó algoritmusok

Az optimális megoldást adó algoritmusok Az optimális megoldást adó algoritmusok shop ütemezés esetén Ebben a fejezetben olyan modellekkel foglalkozunk, amelyekben a munkák több műveletből állnak. Speciálisan shop ütemezési problémákat vizsgálunk.

Részletesebben

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.

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. Algoritmuselmélet NP-teljes problémák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 13. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet

Részletesebben

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

Diszkrét matematika 2. estis képzés Diszkrét matematika 2. estis képzés 2016. tavasz 1. Diszkrét matematika 2. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

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.

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. Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi

Részletesebben

1. Milyen hatással van a heurisztika általában a keresõ rendszerek mûködésére?

1. Milyen hatással van a heurisztika általában a keresõ rendszerek mûködésére? 2012. 06. 20. 1. Milyen hatással van a heurisztika általában a keresõ rendszerek mûködésére? A heurisztika olyan, a feladathoz kapcsolódó ötlet, amelyet közvetlenül építünk be egy algoritmusba, azért,

Részletesebben

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb. SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu Mesterséges intelligencia oktatás a DE Informatikai

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.

Részletesebben

Programozási módszertan. Mohó algoritmusok

Programozási módszertan. Mohó algoritmusok PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás

Részletesebben

Struktúra nélküli adatszerkezetek

Struktúra nélküli adatszerkezetek Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A

Részletesebben

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

Diszkrét matematika 1. estis képzés Diszkrét matematika 1. estis képzés 2019. tavasz 1. Diszkrét matematika 1. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján

Részletesebben

III. Gráfok. 1. Irányítatlan gráfok:

III. Gráfok. 1. Irányítatlan gráfok: III. Gráfok 1. Irányítatlan gráfok: Jelölés: G=(X,U), X a csomópontok halmaza, U az élek halmaza X={1,2,3,4,5,6}, U={[1,2], [1,4], [1,6], [2,3], [2,5], [3,4], [3,5], [4,5],[5,6]} Értelmezések: 1. Fokszám:

Részletesebben

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus GRÁFELMÉLET 7. előadás Javító utak, javító utak keresése, Edmonds-algoritmus Definíció: egy P utat javító útnak nevezünk egy M párosításra nézve, ha az út páratlan hosszú, kezdő- és végpontjai nem párosítottak,

Részletesebben

Adatszerkezetek II. 2. előadás

Adatszerkezetek II. 2. előadás Adatszerkezetek II. 2. előadás Gráfok bejárása A gráf bejárása = minden elem feldolgozása Probléma: Lineáris elrendezésű sokaság (sorozat) bejárása könnyű, egyetlen ciklussal elvégezhető. Hálós struktúra

Részletesebben

A számítástudomány alapjai

A számítástudomány alapjai A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Legszélesebb utak Katona Gyula Y. (BME SZIT) A számítástudomány

Részletesebben

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,

Részletesebben

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17 Gráfok 2. előadás Gráfok bejárása A gráf bejárása = minden elem feldolgozása Probléma: Lineáris elrendezésű sokaság (sorozat) bejárása könnyű, egyetlen ciklussal elvégezhető. Hálós struktúra bejárása nem

Részletesebben

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y. Algoritmuselmélet Legrövidebb utak, Bellmann-Ford, Dijkstra Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 3. előadás Katona Gyula Y. (BME

Részletesebben

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám. 1 Az utazó ügynök problémája Utazó ügynök feladat Adott n számú város és a városokat összekötő utak, amelyeknek ismert a hossza. Adott továbbá egy ügynök, akinek adott városból kiindulva, minden várost

Részletesebben

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex A sorozat fogalma Definíció. A természetes számok N halmazán értelmezett függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet a valós számok halmaza, valós számsorozatról beszélünk, mígha az

Részletesebben

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

Problémamegoldás kereséssel. Mesterséges intelligencia március 7. Problémamegoldás kereséssel Mesterséges intelligencia 2014. március 7. Bevezetés Problémamegoldó ágens Kívánt állapotba vezető cselekvéseket keres Probléma megfogalmazása Megoldás megfogalmazása Keresési

Részletesebben

Gráfalgoritmusok ismétlés ősz

Gráfalgoritmusok ismétlés ősz Gráfalgoritmusok ismétlés 2017. ősz Gráfok ábrázolása Egy G = (V, E) gráf ábrázolására alapvetően két módszert szoktak használni: szomszédsági listákat, illetve szomszédsági mátrixot. A G = (V, E) gráf

Részletesebben

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

Számítógép és programozás 2 Számítógép és programozás 2 6. Előadás Problémaosztályok http://digitus.itk.ppke.hu/~flugi/ Emlékeztető A specifikáció egy előfeltételből és utófeltételből álló leírása a feladatnak Léteznek olyan feladatok,

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat

Részletesebben

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa A változó fogalma Definíció Legyen A = A 1 A 2... A n állapottér. A pr Ai projekciós függvényeket változóknak nevezzük: : A A i pr Ai (a) = a i ( a = (a 1, a 2,..., a n ) A). A változók jelölése: v i =

Részletesebben

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

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék 2016/17 2. félév 8. Előadás Dr. Kulcsár Gyula egyetemi docens Kereső algoritmusok alkalmazása

Részletesebben

angolul: greedy algorithms, románul: algoritmi greedy

angolul: greedy algorithms, románul: algoritmi greedy Mohó algoritmusok angolul: greedy algorithms, románul: algoritmi greedy 1. feladat. Gazdaságos telefonhálózat építése Bizonyos városok között lehet direkt telefonkapcsolatot kiépíteni, pl. x és y város

Részletesebben

29. Visszalépéses keresés 1.

29. Visszalépéses keresés 1. 29. Visszalépéses keresés 1. A visszalépéses keresés algoritmusa Az eddig megismert algoritmusok bizonyos értelemben nyílegyenesen haladtak elôre. Tudtuk, hogy merre kell mennünk, és minden egyes lépéssel

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. Mérai László előadása alapján Készítette: Nagy Krisztián 1. előadás Gráfok halmaza, gráf, ahol a csúcsok halmaza, az élek illesztkedés reláció: illesztkedik az élre, ha ( -él illesztkedik

Részletesebben

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Készítette: Laczik Sándor János Gráfelmélet I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Definíció: a G=(V,E) párt egyszerű gráfnak nevezzük, (V elemeit a gráf csúcsainak/pontjainak,e elemeit

Részletesebben

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

Diszkrét matematika 2. estis képzés Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK Sorozat fogalma Definíció: Számsorozaton olyan függvényt értünk, amelynek értelmezési tartománya a pozitív egész

Részletesebben

Teljes visszalépéses elemzés

Teljes visszalépéses elemzés Teljes visszalépéses elemzés adott a következő nyelvtan S» aad a A» b c elemezzük a következő szöveget: accd» ccd ddc S S a A d a A b c d a c c d a c c d Teljes visszalépéses elemzés adott a következő

Részletesebben

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3 Síkgráfok Kuratowski-tétel: egy gráf akkor és csak akkor síkba rajzolható gráf, ha nincs olyan részgráfja, ami a K 5 -el, vagy a K 3,3 -altopologikusan izomorf (homeomorf). Euler síkgráfokra vonatkozó

Részletesebben

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.

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. Programkonstrukciók Definíció Legyen π feltétel és S program A-n. A DO A A relációt az S-ből a π feltétellel képezett ciklusnak nevezzük, és (π, S)-sel jelöljük, ha 1. a / [π] : DO (a) = { a }, 2. a [π]

Részletesebben

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

Diszkrét matematika 2. estis képzés Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 7. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 11. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

3. Gráfkeres stratégia

3. Gráfkeres stratégia 3. Gráfkeres stratégia A gráfkeres rendszer olyan KR, amelynek globális munkaterülete a startcsúcsból kiinduló már feltárt utakat (részgráfot) tárolja kiinduló értéke: a startcsúcs, terminálási feltétel:

Részletesebben

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI Mesterséges Intelligencia MI Problémamegoldás kereséssel - csak lokális információra alapozva Pataki Béla BME I.E. 414, 463-26-79 pataki@mit.bme.hu, http://www.mit.bme.hu/general/staff/pataki Lokálisan

Részletesebben

23. SZÉLESSÉGI BEJÁRÁS

23. SZÉLESSÉGI BEJÁRÁS 23. SZÉLESSÉGI BEJÁRÁS A bejárási algoritmusok feladata általában a gráf csúcsainak végiglátogatása valamilyen stratégia szerint. A bejárás gyakran azért hajtjuk végre, mert adott tulajdonságú csúcsot

Részletesebben

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

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus Csíkszereda IRT-. kurzus 3. Előadás: A mohó algoritmus 1 Csíkszereda IRT. kurzus Bevezetés Az eddig tanult algoritmus tipúsok nem alkalmazhatók: A valós problémák nem tiszta klasszikus problémák A problémák

Részletesebben

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

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

Részletesebben

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

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig

Részletesebben

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)} Mélységi keresés Ez az algoritmus a gráf pontjait járja be, eredményképpen egy mélységi feszítőerdőt ad vissza az Apa függvény által. A pontok bejártságát színekkel kezeljük, fehér= érintetlen, szürke=meg-

Részletesebben

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

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Dr. Kallós Gábor 2014 2015 1 Az Ordó jelölés Azt mondjuk, hogy az f(n) függvény eleme az Ordó(g(n)) halmaznak, ha van olyan c konstans (c

Részletesebben

1. tétel - Gráfok alapfogalmai

1. tétel - Gráfok alapfogalmai 1. tétel - Gráfok alapfogalmai 1. irányítatlan gráf fogalma A G (irányítatlan) gráf egy (Φ, E, V) hátmas, ahol E az élek halmaza, V a csúcsok (pontok) halmaza, Φ: E {V-beli rendezetlen párok} illeszkedési

Részletesebben

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

Számítógép és programozás 2 Számítógép és programozás 2 11. Előadás Halmazkeresések, dinamikus programozás http://digitus.itk.ppke.hu/~flugi/ A keresési feladat megoldása Legyen a lehetséges megoldások halmaza M ciklus { X legyen

Részletesebben

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

Diszkrét matematika 2. estis képzés Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 11. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

Az informatika logikai alapjai

Az informatika logikai alapjai Az informatika logikai alapjai Várterész Magda DE, Informatikai Kar PTI BSc és informatikatanár hallgatók számára 2017. Példák Az alábbi világokban állításokat akarunk megfogalmazni: A táblára színes karikákat

Részletesebben

ÖSSZEFOGLALÁS a Bsc záróvizsga mesterséges intelligenciáról szóló témaköréhez

ÖSSZEFOGLALÁS a Bsc záróvizsga mesterséges intelligenciáról szóló témaköréhez ÖSSZEFOGLALÁS a Bsc záróvizsga mesterséges intelligenciáról szóló témaköréhez Az MI az informatikának az a területe, amelyik az intelligens gondolkodás számítógépes reprodukálása szempontjából hasznos

Részletesebben

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága Algoritmusok bonyolultsága 9. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 18 Közelítő algoritmusok ládapakolás (bin packing) Adott n tárgy (s i tömeggel) és végtelen sok 1 kapacitású láda

Részletesebben

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás.  Szénási Sándor. B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

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

Algoritmusok helyességének bizonyítása. A Floyd-módszer Algoritmusok helyességének bizonyítása A Floyd-módszer Algoritmusok végrehajtása Egy A algoritmus esetében a változókat három változótípusról beszélhetünk, melyeket az X, Y és Z vektorokba csoportosítjuk

Részletesebben

Algoritmusok és adatszerkezetek 2.

Algoritmusok és adatszerkezetek 2. Algoritmusok és adatszerkezetek 2. Varga Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Nyílt címzéses hash-elés A nyílt címzésű hash táblákban a láncolással ellentétben egy indexen

Részletesebben

Diszkrét Matematika MSc hallgatók számára 7. Előadás Párosítási tételek Előadó: Hajnal Péter Jegyzetelő: Kovácsházi Anna

Diszkrét Matematika MSc hallgatók számára 7. Előadás Párosítási tételek Előadó: Hajnal Péter Jegyzetelő: Kovácsházi Anna Diszkrét Matematika MSc hallgatók számára 7. Előadás Párosítási tételek Előadó: Hajnal Péter Jegyzetelő: Kovácsházi Anna 2010. 10. 18. 2 7. Párosítási tételek.nb 7. Előadás Emlékeztető: Javító út, Javító

Részletesebben

A programozás alapjai 1 Rekurzió

A programozás alapjai 1 Rekurzió A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder

Részletesebben

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

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje 1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt

Részletesebben

SzA II. gyakorlat, szeptember 18.

SzA II. gyakorlat, szeptember 18. SzA II. gyakorlat, 015. szeptember 18. Barátkozás a gráfokkal Drótos Márton drotos@cs.bme.hu 1. Az előre megszámozott (címkézett) n darab pont közé hányféleképp húzhatunk be éleket úgy, hogy egyszerű gráfhoz

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 4 IV. FÜGGVÉNYEk 1. LEkÉPEZÉSEk, függvények Definíció Legyen és két halmaz. Egy függvény -ből -ba egy olyan szabály, amely minden elemhez pontosan egy elemet rendel hozzá. Az

Részletesebben

Chomsky-féle hierarchia

Chomsky-féle hierarchia http://www.ms.sapientia.ro/ kasa/formalis.htm Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezetű), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.

Részletesebben

Egészrészes feladatok

Egészrészes feladatok Kitűzött feladatok Egészrészes feladatok Győry Ákos Miskolc, Földes Ferenc Gimnázium 1. feladat. Oldjuk meg a valós számok halmazán a { } 3x 1 x+1 7 egyenletet!. feladat. Bizonyítsuk be, hogy tetszőleges

Részletesebben

Gráfelméleti alapfogalmak

Gráfelméleti alapfogalmak 1 Gráfelméleti alapfogalmak Gráf (angol graph= rajz): pontokból és vonalakból álló alakzat. pontok a gráf csúcsai, a vonalak a gráf élei. GRÁ Irányítatlan gráf Vegyes gráf Irányított gráf G H Izolált pont

Részletesebben

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása Oktatási Hivatal Országos Középiskolai Tanulmányi Verseny / Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása. Oldja meg a valós számok legbővebb részhalmazán a egyenlőtlenséget!

Részletesebben

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,... RSA algoritmus 1. Vegyünk véletlenszerűen két különböző nagy prímszámot, p-t és q-t. 2. Legyen n = pq. 3. Vegyünk egy olyan kis páratlan e számot, amely relatív prím φ(n) = (p 1)(q 1)-hez. 4. Keressünk

Részletesebben

Adatszerkezetek II. 10. előadás

Adatszerkezetek II. 10. előadás Adatszerkezetek II. 10. előadás Kombinatorikai algoritmusok A kombinatorika: egy véges halmaz elemeinek valamilyen szabály alapján történő csoportosításával, kiválasztásával, sorrendbe rakásával foglalkozik

Részletesebben

Adatbázisok elmélete 12. előadás

Adatbázisok elmélete 12. előadás Adatbázisok elmélete 12. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE

Részletesebben