Mesterséges Intelligencia MI

Hasonló dokumentumok
Mesterséges Intelligencia MI

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

Mesterséges Intelligencia MI

Mesterséges intelligencia 2. laborgyakorlat

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI

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

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

Intelligens Rendszerek Elmélete IRE 4/32/1

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI

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

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

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

, , A

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

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

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

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

2. Visszalépéses keresés

Mesterséges Intelligencia MI

ULTIMATE TIC TAC TOE. Serfőző Péter

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 2010/2011 1/363

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.

Mesterséges Intelligencia MI

Keresések Gregorics Tibor Mesterséges intelligencia

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

2. Visszalépéses stratégia

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

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

Mesterséges Intelligencia MI

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

Függvények növekedési korlátainak jellemzése

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

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

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere

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

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

Gépi tanulás. Hány tanítómintára van szükség? VKH. Pataki Béla (Bolgár Bence)

Közösség detektálás gráfokban

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

Mesterséges intelligencia 3. laborgyakorlat

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

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

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

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

Algoritmuselmélet 2. előadás

Algoritmuselmélet 12. előadás

A maximum likelihood becslésről

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Adatszerkezetek 2. Dr. Iványi Péter

Összefoglalás és gyakorlás

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

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 számítástudomány alapjai

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

Mesterséges Intelligencia MI

Algoritmuselmélet 18. előadás

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

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

A mesterséges intelligencia alapjai

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

BAGME11NNF Munkavédelmi mérnökasszisztens Galla Jánosné, 2011.

Intelligens Rendszerek I. Problémamegoldás kereséssel: informált kereső eljárások (Heurisztikus keresés)

Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Atomerőművi reaktor töltettervezése, mint optimalizációs probléma. de a mai órán leginkább játszani fogunk

Teljesen elosztott adatbányászat pletyka algoritmusokkal. Jelasity Márk Ormándi Róbert, Hegedűs István

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

22. GRÁFOK ÁBRÁZOLÁSA

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

PISA2000. Nyilvánosságra hozott feladatok matematikából

Specifikáció alapú teszttervezési módszerek

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

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

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

Specifikáció alapú teszttervezési módszerek

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

angolul: greedy algorithms, románul: algoritmi greedy

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

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

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése

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

Gépi tanulás a gyakorlatban. Lineáris regresszió

Adatszerkezetek 7a. Dr. IványiPéter

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

Gyakori elemhalmazok kinyerése

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

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

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

Operációkutatás vizsga

1. gyakorlat. Mesterséges Intelligencia 2.

Algoritmusok és adatszerkezetek gyakorlat 07

Átírás:

Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések 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

Büntessük a hátrakeresést! De ugyanaz és könnyebb díjazni az előrekeresést a célállapot irányába. Ehhez kell valami elképzelés, hogy a cél: merrefelé és, nagyjából milyen messzire fekszik. Ez az információ az un. heurisztika, heurisztikus függvény h(n), amit: a probléma minden állapotára tudni kell kiszámítani kifejezi az előrehaladás becsült költségét ha pontos, akkor elvben fölöslegessé teszi a keresést (ha nagyon pontatlan, akkor semmit sem segít) Ilyen keresés az un. heurisztikus, másképpen informált keresés.

Legyen a heurisztikus függvény a légvonalban mért távolság (h LMT ) Az igényeket teljesíti? Mi mondható a hibájáról?

A célhoz legközelebbinek tűnő csomópont először - a legjobbat-először, avagy a mohó keresés (Ro-MohoK.pdf) Stratégia: a következő lépésben azt a csp-t fejti ki, amelyhez rendelt probléma-állapotot a legközelebbinek ítéli a célállapothoz. A ítélethez kell teát egy becslő heurisztikus függvény h(n) (1) az n csp-ból egy cél-állapotba vezető legolcsóbb út becsült költsége (2) a célállapotban h(n)= 0, jó célállapottesztnek is (3) lehet hibája (a tényleges költséghez képest) és elvárjuk, hogy minél kisebb hibának minél ügyesebb keresés feleljen meg.

ezt kaptuk ezt kellene kapni

Mohó algoritmus általában gyorsan megtalálja a megoldást, de nem mindig az optimális megoldást találja meg. A mohó keresés érzékeny a hibás kezdő lépésekre is.

Mohó keresés: mélységi keresésre hasonlít, egyetlen út végigkövetését preferálja a célig: de zsákutcából visszalép Ua. a problémák, mint a mélységi keresésnél: nem optimális, nem teljes (elindul egy végtelen úton és nem tér vissza új lehetőséget kipróbálni) (worst-case) időigény: O(b m ) Az összes csomópontot a memóriában tartja: tárigény = időigény Jó heurisztikus függvénnyel a tár- és időigény jelentősen csökkenthető, a csökkentés az adott problémától és a h függvény minőségétől függ. Tökéletes információ = előretartás elágazások nélkül = lineáris tár = lineáris idő! Szóval a mohó keresés ígéretes, de mégsem jó.

A teljes útköltség minimalizálása - A* keresés (Ro-AcsillagK.pdf) mohó: min {h(n)} a célhoz vezető útköltség becslőjét minimalizálja nem teljes (nem optimális) egyenletes költségű: min { g(n)} a megtett út költségét minimalizálja optimális (egyben teljes is), de nagyon rossz hatékonyságú a két stratégia ötvözése: min {f(n)} = min {h(n) + g(n)} g(n): a kiinduló cs-ponttól az n cs-pontig számított út tényleges költsége h(n): az n cs-ponttól a célba vezető legolcsóbb költségű út becsült értéke f(n): a kiinduló csp-tól az adott n csp-on át a célba vezető legolcsóbb költségű út becsült értéke (de facto standard az útkeresésben)

Ha a h függvény soha ne becsüli felül a cél eléréséhez szükséges költséget = elfogadható heurisztika (optimista, a cél közelebbinek tűnik, mint amilyen) Ha h elfogadható, akkor f(n) soha sem becsüli túl az n csomóponton át vezető legjobb megoldás valódi költségét A* keresés: az f függvényt alkalmazó legjobbat-először keresés, ahol h elfogadható (olyan Dijkstra-keresés, ahol a gráfban a csomópontokra cél-felé egy p(n) csökkenő potenciálmezőt értelmeztük, és a figyelembe vett élsúly a redukált élsúly R (n1,n2) = élsúly(n1,n2) p(n1) + p(n2) ) Ha a gyökérből nézve egyetlen út f értéke nem csökken a heurisztika monoton. Egy heurisztikus függvény aka. monoton, ha teljesíti a háromszög egyenlőtlenséget (konzisztens heurisztika, h LMT ilyen). trükk: maximális-út egyenlőség (n-ből n -be): f(n') = max( f(n), g(n') + h(n') ) ha f a gyökérből kiinduló utak mentén soha sem csökken határvonalak

Egyenletes költségű (A* keresés h = 0 mellett) a csp-sávok a kiinduló csp köré húzott többé-kevésbé koncentrikus körök. Koncentrikusak a szélességi keresés esetében. Pontosabb heurisztikus függvény esetén: a sávok a cél-állapot felé nyúlnak, fókuszálódnak az optimális út körül. http://mialmanach.mit.bme.hu/demonstraciok/a_kereses_usa_terkepen_konturkovetessel

Az A* teljes és optimális f(g 2 ) = g(g 2 ) > g(g) > f(n) Ha f* az optimális megoldási út költsége, akkor: - A* kifejti az összes f(n) < f* csp-t - ezek után egy cél-csp kiválasztása előtt még kifejthet néhány csp-t a cél-határvonalon, amelyekre f(n) = f* Az ilyen típusú optimális algoritmusok közül az A* keresés bármely adott heurisztikus függvény mellett optimális hatékonyságú. Egyetlen optimális algoritmus sem fejt ki garantáltan kevesebb csomópontot az A* keresés által kifejtett csomópontnál. A* teljessége - pontosan: az A* algoritmus lokálisan véges gráfokon (véges elágazási tényező) teljes, ha létezik pozitív konstans, amelynél semelyik operátor költsége sem kisebb. (ki akarjuk kerülni a véges határértékkel rendelkező végtelen számú infinitezimális mennyiségekkel kapcsolatos problémákat, azonban a probléma formalizálása rajtunk múlik, és vessen magára, aki ilyennek formalizálná a problémát)

Az A* algoritmus komplexitása (teljes, optimális és az összes ilyen közül optimálisan hatékony) Buktató: a legtöbb esetben a csp-tok száma a keresési tér cél-határvonalán belül a megoldás hosszának még mindig exponenciális függvénye. Exponenciális - kivéve, ha a heurisztikus függvény hibája legfeljebb az aktuális útköltség logaritmusával nő: h(n) h*(n) O(log(h*(n)), (h*(n) a valódi költség) Majdnem minden, gyakorlati heurisztikus függvény esetén a hiba legalább arányos az út költséggel - exponenciális növekedés. Egy jól megválasztott heurisztikus függvény ettől függetlenül a nem informált keresési algoritmushoz képest jelentős megtakarítást eredményezhet?! (hogyan?!) A* algoritmus nagy problémája: az összes legenerált csomópontot eltárolja, lényegesen hamarabb felemészti a memóriát, mintsem kifutna az időből.

Heurisztikus függvények létrehozása (legyen sok és jó) 8-as tili-toli: kb. 20 lépés, b ~ 3, kimerítő keresés = kb. 3 20 = 3.5 10 9 állapot gyorsan és a legrövidebb megoldás? - elfogadható heurisztikus függvény kell! h1 = a rossz helyen lévő lapkák száma. elfogadható: minden rossz helyen lévő lapkát legalább egyszer mozgatni kell h2 = a lapkák céltól mért (vízsz. és függ.) távolságainak összege: háztömb- vagy Manhattan-távolság elfogadható: minden egyes mozgatással egy lapkát csak egy (vízszintes és függőleges) lépéssel lehet közelebb vinni a célhoz. h1 = 1 + 1 + 1 + 1 + 1 + 1 + 1 = 7 Jó lesz pl.: h2 = 2 + 3 + 3 + 2 + 4 + 2 + 0 + 2 = 18 h3 = (h1 + h2)/2? h3 =... =...? stb.

Heurisztikus függvény pontossága és hatékonysága A heurisztikus függvények minősítése: b* effektív elágazási tényező ha A* által kifejtett összes cs-pont száma N, a megoldás mélysége d, akkor b* annak a d mélységű kiegyensúlyozott fának az elágazási tényezője, amely N cs-pontot tartalmazna: N = 1 + b* + (b*) 2 + + (b*) d (pl. 5 mélységben fekvő megoldás 52 cs-pont kifejtésével: az effektív elágazási tényező 1.91) 1 + 1 1 + 1 2 + 1 3 + 1 4 + 1 5 = 6 < 52 < 63 = 1 + 2 + 2 2 + 2 3 + 2 4 + 2 5 Egy adott heurisztikus függvény által generált fa effektív elágazási tényezője általában nagyjából állandó egy adott problémaosztály számos egyedére. A b* kis számú probléma halmazon végzett kísérleti mérése jó becslés. Egy jól megtervezett heurisztikus függvény effektív elágazási tényezője 1 körüli érték.

h1 és h2 tesztelése: 100 random probléma példány, 2, 4,, 24 mélységű megoldással, A*, illetve a neminformált iteratívan mélyülő keresés

idő tár?

Heurisztikus függvény: a h1, h2 heurisztikus függvények tesztelése: pontosság és hatékonyság vajon a h2 mindig jobb-e, mint a h1? Igen (miért?). minden n csp-ra h2 (n) h1 (n): h2 dominálja h1 et, domináció = hatékonyság a h2-t használó A* kevesebb csp-t fog kifejteni, mint a h1 et használó Mindig jobb nagyobb értékeket adó heurisztikus függvényeket alkalmazni, amíg nem becsüljük túl a valódi költséget. Tényleges Elfogadható, kis hiba Elfogadható, közepes hiba Elfogadható, durva hiba Elfogadható, nagyon durva hiba

(Jó) Heurisztikus függvények kitalálása Egy lapka az A-ról a B-re mozgatható, ha A és B szomszédok és a B mező üres, akkor egy vagy több feltétel törlésével három un. relaxált problémát hozhatunk létre (a) Egy lapka az A-ról a B-re mozgatható, ha A és B szomszédosak. (h2) (b) Egy lapka az A-ról a B-re mozgatható, ha a B mező üres. (c) Egy lapka az A-ról a B-re mozgatható. (h1) (Absolver: heurisztikus fv-k automatikus generálása probléma definíciójából) (a) 6 + 3 = 9 lépés (c) 1 + 1 = 2 lépés 15 1 2 3 4 5 6 7 8 9 10 11 13 14 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

(Jó) Heurisztikus függvények kitalálása Relaxált probléma: olyan probléma, amelyben az operátorokra kevesebb megkötést teszünk, mint az eredeti problémában. Gyakori, hogy a relaxált probléma pontos megoldásának költsége jó heurisztikus függvény az eredeti problémára. Gyakori, hogy a relaxált probléma egyszerűsége miatt, az optimális megoldás analitikusan is meghatározható. A relaxált probléma pontos megoldása mindig egy elfogadható heurisztika a kevésbé relaxált problémára.

(Jó) Heurisztikus függvények kitalálása 14 7 h3: (Disjoint) Pattern Database Heuristics 3 15 12 h4: Linear Conflict Heuristics 11 13 h5: Gaschnig s Heuristics 7 13 12 Piros lapkák megoldása = 20 lépés 15 3 Kék lapkák megoldása = 25 lépés 11 14 Telljes heurisztika: h3 = 20+25=45 lépés 3 7 11 12 13 14 15 3 7 11 12 13 14 15 5 10 14 7 8 3 6 1 15 12 9 2 11 4 13 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 h1 = 14 h2 = 39 h3 = 45 h2 a h3 egy speciális esete, ha minden pattern egy lapka!

(Jó) Heurisztikus függvények kitalálása h3: (Disjoint) Pattern Database Heuristics h4: Linear Conflict Heuristics h5: Gaschnig s Heuristics 3 1 1 3 h2 = 2 + 2 = 4 de a lapkák egymással szemben nem tolhatók h4 = h2 + 2 (kikerülés) h4 = h2 + 2 x (sorbeli lineáris konfliktus, minden sorra + oszlopbeli lineáris konfliktus, minden oszlopra)

(Jó) Heurisztikus függvények kitalálása h3: (Disjoint) Pattern Database Heuristics h4: Linear Conflict Heuristics h5: Gaschnig s Heuristics (b) Egy lapka az A-ról a B-re mozgatható, ha a B mező üres. elfogadható, jó becslés

(Jó) Heurisztikus függvények kitalálása Nehéz felismerni a nyilvánvalóan legjobb heurisztikus függvényt. Ha egy problémához adottak a h 1,...,h m elfogadható heurisztikák és semelyik sem dominálja a másikat, melyiket kellene választanunk? Nem kell választanunk. A lehető legjobb: h(n) = max{ h 1 (n),...,h m (n) } mindig azt a függvényt használja, amelyik az adott csomópontra a legpontosabb, elemek mind elfogadhatóak, ezért h is elfogadható, h dominálja az összes heurisztikus függvényt. Probléma: az elemezhetőség, hiszen konkrét h mindig változik? Heurisztikus függvények megalkotása: - ha a heurisztikus függvény olyan összetett, hogy értékének egy csp-ra történő meghatározása sok időt vesz igénybe, akkor baj van. Egy jó heurisztikus függvény: pontos és hatékonyan számítható

Memória korlátozott keresés általában az első korlát, amibe beleütközünk, a rendelkezett memória. IMA*: az Iteratívan-Mélyülő-Keresés heurisztikus kiterjesztése. RLEK: Rekurzív Legjobban Először Keresés EMA*: Egyszerűsített véges memóriájú A* mint az A*, de korlátozza a sor méretét, hogy az beférjen a memóriába. stb. Iteratívan Mélyülő A* keresés (IMA*) Minden egyes iteráció egy mélységi keresés, mélységkorlát helyett egy f- költség korláttal. Minden egyes iteráció kifejti az összes - az adott f-költség határvonalon belül fekvő - csomópontot, átnézve a határvonalon, hogy megtalálja, hol fekszik a következő határvonal. Az IMA* ugyanazokkal a kitételekkel teljes és optimális, mint az A* algoritmus, de a mélységi keresés jellege miatt csak a leghosszabb felderített út hosszával arányos memóriát igényel.

Iteratívan Mélyülő A* keresés (IMA*)

Iteratívan Mélyülő A* keresés (IMA*) Az IMA* algoritmus időigénye erősen függ attól, hogy a heurisztikus függvény hány különböző értéket vehet fel. Pl. a 8-as kirakójáték: Manhattan távolság csak néhány egész értéket vesz fel. f tipikusan csak 2-3-szor növekszik bármely megoldási út mentén. Az IMA* algoritmus csak 2-3 iterációt végez, és az idő hatékonysága az A*-hoz hasonló. Az IMA* utolsó iterációja általában durván ugyanannyi csomópontot fejt ki, mint az A* (időkomplexitás!). Az IMA* algoritmus összetettebb problématerületekkel nehezebben boldogul (ha heurisztikus függvény értéke minden állapotra más és más sok iteráció kell).

Rekurzív Legjobb Először Keresés (Ro-RLEK.pdf) Addig halad Legjobbat Először módon f érték szerint, amíg jobb alternatívára nem lel hátrahagyott elágazásban. Átkapcsol, felszabadít memóriát, de a pillanatnyilag követett út költségét memorizálja.

Rekurzív Legjobb Először Keresés (Ro-RLEK.pdf) Addig halad Legjobbat Először módon f érték szerint, amíg jobb alternatívára nem lel hátrahagyott elágazásban. Átkapcsol, felszabadít memóriát, de a pillanatnyilag követett út költségét memorizálja.

Rekurzív Legjobb Először Keresés (Ro-RLEK.pdf) Addig halad Legjobbat Először módon f érték szerint, amíg jobb alternatívára nem lel hátrahagyott elágazásban. Átkapcsol, felszabadít memóriát, de a pillanatnyilag követett út költségét memorizálja.