29
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 [email protected] , http://www.mit.bme.hu/ general/staff/ tade

Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

Mesterséges Intelligencia MI

Problémamegoldáskereséssel -ha segítenekútjelzések

Dobrowiecki TadeuszEredics Péter, és mások

BME I.E. 437, [email protected], http://www.mit.bme.hu/general/staff/tade

Page 2: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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.

Page 3: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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

Page 4: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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 rendeltproblé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.

Page 5: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

ezt kaptukezt kellene kapni

Page 6: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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

Page 7: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

Mohó keresés: mélységi keresésre hasonlít, egyetlen út végigkövetésétpreferá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(bm)

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ó.

Page 8: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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)

Page 9: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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

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, hLMT 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 

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úlyR(n1,n2) = élsúly(n1,n2) – p(n1) + p(n2) )

Page 10: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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

Page 11: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

Az A* teljes és optimális f(G2) = g(G2 ) > 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 adottheurisztikus 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)

Page 12: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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ánbelü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ábbará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 algoritmushozké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.

Page 13: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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. 320 = 3.5 109 á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 = 7h2 = 2 + 3 + 3 + 2 + 4 + 2 + 0 + 2 = 18h3 = ..... = .... ?

Jó lesz pl.:

h3 = (h1 + h2)/2 ?

stb.

Page 14: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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 + 11 + 12 + 13 + 14 + 15 = 6 < 52 < 63 = 1 + 2 + 22 + 23 + 24 + 25

Egy adott heurisztikus függvény által generált fa effektív elágazásitényezője általában nagyjából állandó egy adott problémaosztály számosegyedé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.

Page 15: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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

Page 16: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

idő – tár ?

Page 17: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

Heurisztikus függvény: pontosság és hatékonysága h1, h2 heurisztikus függvények tesztelése:

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ó

TénylegesElfogadható, kis hibaElfogadható, közepes hibaElfogadható, durva hibaElfogadható, nagyon durva hiba

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.

Page 18: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

(Jó) Heurisztikus függvények kitalálásaEgy 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áthozhatunk létre

1 2 34 5 6 78 9 10 11

12 13 14 15

15 1 2 34 5 6 78 9 10 11

13 14 12

(a) 6 + 3 = 9 lépés

(c) 1 + 1 = 2 lépés

(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)

Page 19: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

(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.

Page 20: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

(Jó) Heurisztikus függvények kitalálása

h3: (Disjoint) Pattern Database Heuristics

h4: Linear Conflict Heuristics

h5: Gaschnig’s Heuristics

3711

12 13 14 15

14 73

15 1211 13

3711

12 13 14 15

7 1312

15 311 14

1 2 34 5 6 78 9 10 1112 13 14 15

5 10 14 78 3 6 1

15 12 92 11 4 13

Piros lapkák megoldása = 20 lépésKék lapkák megoldása = 25 lépés

Telljes heurisztika: h3 = 20+25=45 lépés

h1 = 14h2 = 39h3 = 45

h2 a h3 egy speciális esete, ha minden pattern egy lapka!

Page 21: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

1 33 1

(Jó) Heurisztikus függvények kitalálása

h3: (Disjoint) Pattern Database Heuristics

h4: Linear Conflict Heuristics

h5: Gaschnig’s Heuristics

h4 = h2 + 2 x (sorbeli lineáris konfliktus, minden sorra + oszlopbeli lineáris konfliktus, minden oszlopra)

h2 = 2 + 2 = 4

de a lapkák egymással szemben nem tolhatók

h4 = h2 + 2 (kikerülés)

Page 22: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

(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

Page 23: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

(Jó) Heurisztikus függvények kitalálásaNehéz felismerni a „nyilvánvalóan legjobb” heurisztikus függvényt.

Ha egy problémához adottak a h1,...,hm 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{ h1(n),...,hm(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ó

Page 24: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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.

Page 25: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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

Page 26: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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).

Page 27: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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.

Page 28: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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.

Page 29: Problémamegoldás kereséssel - ha segítenek útjelzések · Mesterséges Intelligencia MI Problémamegoldás kereséssel - ha segítenek útjelzések Dobrowiecki Tadeusz Eredics

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.