Mesterséges intelligencia 4. laborgyakorlat

Hasonló dokumentumok
Mesterséges Intelligencia MI

Mesterséges Intelligencia MI

2. Visszalépéses keresés

2. Visszalépéses stratégia

Mesterséges intelligencia 2. laborgyakorlat

Mesterséges intelligencia 3. laborgyakorlat

Adatszerkezetek 2. Dr. Iványi Péter

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

Adatszerkezetek 7a. Dr. IványiPéter

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

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.

1. tétel. 1. Egy derékszögű háromszög egyik szöge 50, a szög melletti befogója 7 cm. Mekkora a háromszög átfogója? (4 pont)

2) Írja fel az alábbi lineáris függvény grafikonjának egyenletét! (3pont)

függvény grafikonja milyen transzformációkkal származtatható az f0 : R R, f0(

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények

Függvények Megoldások

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

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

1. Ábrázolja az f(x)= x-4 függvényt a [ 2;10 ] intervallumon! (2 pont) 2. Írja fel az alábbi lineáris függvény grafikonjának egyenletét!

Hozzárendelés, lineáris függvény

Informatikai tehetséggondozás:

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

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

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

2014. szeptember 24. és 26. Dr. Vincze Szilvia

KOVÁCS BÉLA, MATEMATIKA I.

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

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

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

Algoritmusok bonyolultsága

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

Intelligens Rendszerek Elmélete IRE 4/32/1

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Valószínűségi változók. Várható érték és szórás

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk:

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

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

Mesterséges Intelligencia MI

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Az egyenes egyenlete: 2 pont. Az összevont alak: 1 pont. Melyik ábrán látható e függvény grafikonjának egy részlete?

Mesterséges Intelligencia MI

Matematika 8. osztály

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Kiterjesztések sek szemantikája

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

Mesterséges Intelligencia MI

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

b) Ábrázolja ugyanabban a koordinátarendszerben a g függvényt! (2 pont) c) Oldja meg az ( x ) 2

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.

2012. október 2 és 4. Dr. Vincze Szilvia

Analízis I. beugró vizsgakérdések

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Algoritmusok bonyolultsága

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

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

Érettségi feladatok: Függvények 1/9

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

22. GRÁFOK ÁBRÁZOLÁSA

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

HALMAZELMÉLET feladatsor 1.

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

1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.

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

Az értékelés a következők szerint történik: 0-4 elégtelen 5-6 elégséges 7 közepes 8 jó 9-10 jeles. A szóbeli vizsga várható időpontja

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

A Föld középpontja felé szabadon eső test sebessége növekszik, azaz, a

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények

Kétszemélyes játékok

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

A relációelmélet alapjai

Algoritmusok és adatszerkezetek 2.

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

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Visszalépéses keresés korlátozással

10. modul: FÜGGVÉNYEK, FÜGGVÉNYTULAJDONSÁGOK

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

Mesterséges Intelligencia MI

MATEMATIKA ÉRETTSÉGI május 8. EMELT SZINT

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Struktúra nélküli adatszerkezetek

EuroOffice Optimalizáló (Solver)

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

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

Adatszerkezetek II. 10. előadás

Mesterséges Intelligencia MI

2018, Diszkre t matematika. 10. elo ada s

Kronecker-modulusok kombinatorikája és alkalmazások

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

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

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

(Independence, dependence, random variables)

Evolúciós algoritmusok

Chomsky-féle hierarchia

Kombinatorika - kidolgozott típuspéldák

Relációk. 1. Descartes-szorzat. 2. Relációk

Chomsky-féle hierarchia

Boronkay György Műszaki Középiskola és Gimnázium

Átírás:

Mesterséges intelligencia 4. laborgyakorlat Kényszerkielégítési feladatok (Constraint Satisfaction Problems CSPs) Egy kényszerkielégítési problémát az X 1, X 2,..., X n változók egy sorozatával, és a rajtuk értelmezett C 1,C 2,,...,C m kényszerrel értelmezzük. Minden X i változó egy D i doméniumból veszi a lehetséges értékeit. Minden C i kényszer a változók egy részhalmazára vonatkozik, és specifikálja a részhalmazban a változók megengedett kombinációját. A probléma egy állapotát a változókhoz rendelt értékek határozzák meg: {X i = v i, X j = v j,...}. Egy olyan hozzárendelés, amely kielégíti a C 1,C 2,,...,C m kényszereket konzisztens, vagy törvényes hozzárendelés. Egy teljes hozzárendelés egy olyan hozzárendelés, amelyben minden változó fel van sorolva. A CSP egy megoldása olyan teljes hozzárendelés, amely minden kényszert kielégít. Némely CSP-nél a megoldásnak még egy célfüggvényt is maximizálni kell. Nézzük a következő térképszínezési feladatot: piros, zöld és kék színekkel kell kifesteni Ausztrália tartományait, úgy, hogy két szomszédos tartomány ne legyen azonos színű. Fogalmazzuk meg CSP-ként a feladatot: legyenek a tartományok a változók: WA, NT, Q, NSW, V, SA és T. mindenik változó értéktartománya: {r ed, g r een, bl ue}. kényszerek: a szomszédos területek legyenek különböző színűek. Például a megengedett kombinációk WA és NT számára a következő párok: {(red, g reen),(red,blue),(g reen,red),(g reen,blue),(blue,red),(blue, g reen)} A kényszert tömörebben is megfogalmazhatjuk: W A N T, feltéve, hogy az algoritmusunk képes kezelni ilyen kifejezéseket. A térképszínezési feladatnak sok megoldása van, egy lehetséges a következő: {W A = red, NT = g reen,q = red, NSW = g reen,v = red,s A = blue,t = red}. Hasznos, ha a CSP feladatot kényszer-gráfként (constraint graph) ábrázoljuk.

A gráf csomópontjai a változóknak, az élek a kényszereknek felelnek meg. Ha egy feladatot CSP-ként kezelünk, az számos előnnyel jár. Mivel a CSP-k esetében az állapotok ábrázolása egy standard mintát követ (egy sor változó, hozzárendelt értékekkel), a következő (successor) függvényt és a célbaérkezés tesztjét általánosan meg lehet fogalmazni, amely független a CSP-től. Továbbá, olyan hatékony és általános heurisztikákat dolgozhatunk ki, amelyek nem igényelnek probléma-specifikus tudást. Végül, a kényszer-gráf használata nagyban segítheti a keresést, bizonyos esetekben exponenciálisan csökkentve a komplexitást. Egy CSP-t keresési feladatként is megfogalmazhatjuk: kezdő állapot: az üres hozzárendelés {}, amelyben egyik változóhoz sincs érték rendelve következő függvény: olyan értéket rendelünk egy még érték nélküli változóhoz, amely nem ütközik a többi, már értékkel rendelkező változóval. cét teszt: az aktuális hozzárendelés teljes-e? út költsége: konstans költség (pl 1) minden lépésre Vegyünk észre két fontos dolgot. Először, hogy minden megoldás egy teljes hozzárendelés kell legyen, ennélfogva az n-ik szinten jelenik meg, (n darab változó esetén). Továbbá a keresési fa csak n mélységű. E két okból kifolyólag a mélységi keresések nagyon népszerűek a CSP-k megoldásában. Ugyanakkor az út, amelyen a megoldáshoz jutunk teljesen irreleváns. A legegyszerűbb CSP-k diszkrét és véges értékkészlettel rendelkeznek. Ilyen például a térképszínezési feladat. A 8 királynő probléma szintén ebbe a kategóriába tartozik, ahol a Q 1,Q 2,...,Q 8 változók a királynők által elfoglalt pozíciókat jelentik, és mindenik változó a {1,2,3,4,5,6,7,8} halmazból veszi az értékeit. Ha a legnagyobb doménium d darab értékből áll, akkor a teljes hozzárendelések száma a CSPben O(d n ). (A véges értékkészletű CSP-k közé tartoznak a bool-csp-k (boolean CSPs), amelyek változói csak true vagy false értéket vehetnek fel.) A legrosszabb esetben tehát nem várhatunk exponenciális időnél jobbat a véges értékkészlettel rendelkező CSP-k megoldásakor. A gyakorlati alkalmazásokban azonban az általános CSP algoritmusok nagyságrendekkel nagyobb feladatokat képesek megoldani, mint az általános kereső algoritmusok. A diszkrét változók végtelen nagyságú értékkészlettel is rendelkezhetnek. Ebben az esetben a kényszereket már nem lehet megengedett értékkombinációkként megadni, hanem egy ún. kényszer nyelvet (constraint language) kell használni, amely képes leírni a feladatban megadott kényszereket (lineáris, nem lineáris kényszerek). Backtracking Az előző rész keresési feladatként fogalmazta meg a CSP-t. Így egy általános keresési algoritmus képes megtalálni a CSP megoldását. Tételezzük fel, hogy mélységi keresést használunk az előző részben leírt, általános CSP feladatra. Nagyon furcsa dolgot figyelhetünk meg: a gyökérben az elágazási tényező nd, mivel n változó mindegyikéhez d értéket rendelhetünk. A következő szinteken az elágazási tényezők: (n 1)d, (n 2)d,... Végül egy n!d n levelű fát generáltunk ki, noha összesen csak d n teljes hozzárendelés van! A CSP-k egy fontos tulajdonságát hagytuk figyelmen kívül, azért jutottunk erre a furcsa eredményre: a kommutativitást. Egy feladat kommutatív, ha az eredményre nincs hatással a különböző műveletek alkalmazásának sorrendje. Ez a tulajdonság fennáll a CSP-k esetében, mert mikor a változókhoz értéket rendelünk, akkor ugyanahhoz a parciális hozzárendeléshez jutunk, függetlenül a sorrendtől. Így az összes CSP algoritmus úgy generálja a következőket, hogy a keresési fa egy csúcsában egyszerre csak egy változónak választ értéket. Például a térképszínezési feladat esetében a gyökérben választhatunk SA=red, SA=green, és SA=blue között, de SA=red és WA=blue között sohasem. Ezzel a megszorítással a levelek száma d n -re csökkenthető.

A backtracking olyan mélységi keresés, amely egyszerre egy változónak választ értéket, és visszalép abban az esetben, ha a változónak nincs már olyan értéke, amelyet a kényszerek miatt hozzá lehetne rendelni. A nyers backtracking nem informált keresési módszer, ennek következtében nem is különösebben hatékony. Nézzük a lehetséges optimizálásokat. Változók és értékek rendezése Nézzük a backtracking következő sorát: var SELECT-UNASSIGNED-VARIABLE(VARIABLES[csp],assignment,csp). Ez egyszerűen kiválasztja a következő, még nem használt változót a VARIABLES[csp] listából. Ez a technika aligha eredményezi a legoptimálisabb keresést. Például a WA=red, NT=green hozzárendelések után SA-nak csak egy lehetséges értéke lehet, tehát ésszerűnek tűnik, hogy előbb az SA=blue hozzárendelést végezzük el, semhogy a Q-nak adjunk értéket. Valójában miután SA értéket kapott, Q, NSW és V lehetséges értékei eldőltek. Az ötlet tehát az, hogy mindig azt a változót válasszuk, amelynek a legkevesebb lehetséges legális értéke van (MVR - minimum remaining values heuristics). Ez a legerősebben kényszerített változó (most constrained variable), vagy a fail first heurisztika néven is ismert, lévén, hogy mindig azt a változót választja, amely hamar elbukik, így lenyesve a keresési fát. Ha van egy olyan X változónk, amelynek nincs további legális lépése, akkor az MVR X-et fogja kiválasztani - így megelőzve a fölösleges keresést a többi változó között, (amelyek végül úgy is elbuknának, mikor X kiválasztódik). Az MVR nem segít a legelső szín kiválasztásában, mivel kezdetben minden tartománynak három legális színe van. Ebben az esetben a mérték heurisztika (degree heuristics) segíthet. Ez a keresési fa elágazási tényezőjét próbálja csökkenteni úgy, hogy azt a változót választja ki, amely a legtöbb kényszerben van a többi, még nem hozzárendelt változóval. A példánkhoz visszatérve, az első lépésben ez SA lesz. Miután kiválasztottunk egy változót, következik, hogy eldöntsük azt, hogy milyen sorrendben vizsgáljuk meg a lehetséges értékeit. A legkevésbé kényszerítő érték (least constraining value) heurisztika egy gyakran használt módszer. Ez azt az értéket kezeli preferenciálisan, amely a szomszédos változók értékei közül a legkevesebbet szorítja ki. Például, ha WA=red, NT=green, és a következő változónk Q, akkor blue rossz választás lenne, mert megszünteti Q szomszédjának, SA-nak utolsó legális értékét. A legkevésbé kényszerítő heurisztika a red-et választaná. Általánosan: a legkevésbé kényszerítő érték heurisztika a további változó-hozzárendeléseknek a lehető legnagyobb szabadságot próbálja biztosítani. Természetesen, ha nincs megoldás, vagy az összes megoldásra kíváncsiak vagyunk, akkor az értékek sorbarendezésének nincs értelme.

Előretekintő ellenőrzés (forward checking) A kényszerek egyik lehetséges jobb kihasználása az előretekintő ellenőrzés. Ez a következő képpen működik: valahányszor egy X változó értéket kap, az előretekintő ellenőrzés megnézi az összes olyan Y változót, amellyel X egy kényszer által össze van kötve, és kitörli Y lehetséges értékei közül azokat, amelyek nem konzisztensek az X-hez rendelt értékkel. A következő ábra az előretekintő ellenőrzés menetét mutatja be. Figyeljük meg, hogy miután WA=red, és Q=green, az NT és SA doméniumai egy-egy értékre redukálódtak, ezzel ezen vátlozók elágazási tényezőit 1-re nyestük vissza. Az MVR - amelyet együtt használunk az előretekintő ellenőrzéssel - automatikusan az SA-t, majd az NT-t választaná következőknek. Egy másik dolog, amit fontos észrevenni az ábrán, hogy miután V=blue, az SA doméniuma üres. Így az előretekintő ellenőrzés megállapította, hogy az {W A = red,q = g reen,v = blue} részleges hozzárendelés ütközik a feladatban megfogalmazott kényszerekkel, így az algoritmus azonnal vissza fog lépni. (backtrack) A kényszer kiterjesztése (constraing propagation) Bár az előretekintő ellenőrzés sok ütközést felfedez, nem találja meg az összeset. Például a táblázat utolsó előtti sorában WA=red, Q=green, NT-nek és SA-nak pedig kötelező módon blue-nak kellene lenni. De mivel szomszédosak, ezért nem lehet azonos a színük. A kényszerkiterjesztés általános terminus a kényszer következményeinek kiterjesztésére egy változóról a többi változóra. (Ebben az esetben WA-ról és Q-ról NT-re és SA-ra.) Élkonzisztencia Az élkonzisztencián alapuló módszer egy gyors kényszerkiterjesztési technika, amely lényegesen erősebb mint az előretekintő ellenőrzés. Itt egy él egy irányított élet jelent a kényszer-gráfban. Nézzük pl. az SA NSW élet. Az SA NSW él konzisztens, ha SA bármely x lehetséges értékére létezik egy olyan y az NSW doméniumából, amely konzisztens x-el. A táblázat harmadik sorában az SA aktuális doméniuma {blue}, az NSW-é pedig {red,blue}. Ha SA=blue, akkor NSW-nek van konzisztens értéke: red, így az SA NSW él konzisztens. Az SA NSW élre ez nem áll, mert az NSW=blue-ra SA-nak nincs konzisztens értéke. Az él konzisztenssé tehető, ha blue-t törüljük az NSW doméniumából. A keresésnek ebben a fázisában ugyanúgy használhatjuk az élkonzisztencia elvet az SA NT él esetében is. A harmadik sor a táblázatban azt mutatja, hogy mindkét változó a doméniuma a {blue}. SA doméniumából le kell törülni a blue-t, ezáltal SA értékkészlete üresen marad. Így az élkonzisztencia elvet használva már a keresés korai fázisában olyan inkonzisztenciára bukkantunk, amelyet az előretekintő ellenőrzés nem vett volna észre.

Az él-konzisztencia ellenőrzést használhatjuk előfeldolgozóként, vagy a keresés alatt, minden hozzárendelés után. Mindkét esetben az ellenőrzést addig kell folytatni, míg nincs több inkonzisztencia. Ezt azért, mert valahányszor egy X i változó értékkészletéből letörlünk egy értéket, hogy megszüntessünk egy él-inkonzisztenciát, egy újabb él-inkonzisztenciák jöhetnek létre, amelyek élek mind az X i -re mutatnak. Az AC-3 algoritmus egy sort használ azon élek nyomonkövetésére, amelyeknek meg kell vizsgálni a konzisztenciáját. Minden (X i, X j ) élet az algoritmus sorban eltávolít, majd ellenőriz. Ha létezik olyan érték, amelyet X i doméniumából le kell törülni, akkor minden (X k, X i ) élet, amely X i -re mutat vissza kell tenni a sorba további ellenőrzés végett. Az AC-3 algoritmus komplexitását a következő képpen számítjuk ki: egy CSP-nek legfennebb O(n 2 ) éle van. Minden (X k, X i ) élet legfennebb d-szer szúrhatunk bele a sorba, lévén hogy X i -nek legfennebb d értéke van. Egy él konzisztenciáját O(d 2 ) idő alatt lehet leellenőrizni - tehát az AC-3 legrosszabb ideje O(n 2 d 3 ). Bár ez lényegesen költségesebb mint az előretekintő ellenőrzés, áltlában megéri. Feladatok EC. Hasonlítsa össze az n (n {8,100,1000}) királynő feladatok futási idejét, ha a keresési algoritmus: 1. nyers backtracking 2. backtracking + forward checking 3. backtracking + MVR + forward checking 4. backtracking + AC-3 Szakirodalom Russel&Norvig: Artificial Intelligence: A Modern Approach 2nd Edition, Prentice Hall, 2002, p137-160