Keresések Gregorics Tibor Mesterséges intelligencia

Hasonló dokumentumok
2. Visszalépéses keresés

2. Visszalépéses stratégia

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

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

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

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

Mesterséges intelligencia 2. laborgyakorlat

Evolúciós algoritmusok

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

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

Mesterséges Intelligencia MI

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

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

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

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

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

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

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

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

Mesterséges intelligencia

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

angolul: greedy algorithms, románul: algoritmi greedy

Mesterséges Intelligencia MI

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

Gráfkeresések A globális munkaterületén a startcsúcsból kiinduló már feltárt utak találhatók (ez az ún. kereső gráf), külön megjelölve az utak azon

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

Mesterséges Intelligencia I. (I602, IB602)

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

Programozási módszertan. Mohó algoritmusok

Bevezetés az informatikába

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

1. AZ MI FOGALMA. I. Bevezetés. Ers mesterséges intelligencia (EMI) Gyenge mesterséges intelligencia. MI története. Els szakasz (60-as évek)

Intelligens Rendszerek Elmélete IRE 4/32/1

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

Gráfkeresések A globális munkaterületén a startcsúcsból kiinduló már feltárt utak találhatók (ez az ún. kereső gráf), külön megjelölve az utak azon

1. AZ MI FOGALMA. I. Bevezetés. Tulajdonságok. Kezdet ELIZA. Első szakasz (60-as évek)

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.

A sz.ot.ag. III. Magyar Számítógépes Nyelvészeti Konferencia december 8. Bíró Tamás, ELTE, Budapest / RUG, Groningen, NL 1/ 16

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

Képrekonstrukció 9. előadás

3. Gráfkeres stratégia

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

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

Algoritmusok és adatszerkezetek gyakorlat 07

Modellezés Gregorics Tibor Mesterséges intelligencia

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

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

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

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

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

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

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

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

1. feladat Az egyensúly algoritmus viselkedése: Tekintsük a kétdimenziós Euklideszi teret, mint metrikus teret. A pontok

Adatszerkezetek II. 1. előadás

Automatikus következtetés

Keresési algoritmusok, optimalizáció

Approximációs algoritmusok

Algoritmusok bonyolultsága

Gyakori elemhalmazok kinyerése

22. GRÁFOK ÁBRÁZOLÁSA

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

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

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

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

Adatbázis rendszerek Gy: Algoritmusok C-ben

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

24. MINIMÁLIS KÖLTSÉGŰ UTAK I.

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

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

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

Algoritmuselmélet 7. előadás

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

Tervminták a valósidejű gyakorlatban

Algoritmusok bonyolultsága

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

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

NeMa: Fast Graph Search with Label Similarity

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

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

Online migrációs ütemezési modellek

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

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

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

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

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

Véletlen sorozatok ellenőrzésének módszerei. dolgozat

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

Iványi Antal alkotó szerkeszt INFORMATIKAI ALGORITMUSOK

Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása

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.

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

Monoton Engedmény Protokoll N-M multilaterális tárgyalás

Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése

Tuesday, March 6, 12. Hasító táblázatok

Informatika 1 2. el adás: Absztrakt számítógépek

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Átírás:

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 független a feladattól és annak modelljétől: nem merít sem a feladat ismereteiből, sem a modell sajátosságaiból. nem függ a feladat ismereteitől, de épít a feladat modelljének általános elemeire. a feladattól származó, annak modelljében nem rögzített, a megoldást segítő speciális ismeret

Általános vezérlési stratégiák általános stratégiák nemmódosítható lokális keresések evolúciós algoritmus rezolúció módosítható visszalépéses keresések gráfkeresések szabályalapú köv.

1. Lokális keresések A lokális keresés olyan KR, amely a probléma reprezentációs gráfjának egyetlen csúcsát (aktuális csúcs) és annak szűk környezetét tárolja (a globális munkaterületén). Kezdetben az aktuális csúcs a startcsúcs, és a keresés akkor áll le, ha az aktuális csúcs a célcsúcs lesz. Az aktuális csúcsot minden lépésben annak környezetéből vett jobb csúccsal cseréli le (keresési szabály). A jobbság eldöntéséhez (vezérlési stratégia) egy kiértékelő (cél-, rátermettségi-, heurisztikus) függvényt használ, amely reményeink szerint annál jobb értéket ad egy csúcsra, minél közelebb esik az a célhoz.

ADAT := kezdeti érték while terminálási feltétel(adat) loop SELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT) endloop Hegymászó algoritmus Mindig az aktuális (akt) csúcs legjobb gyermekére lép, amelyik lehetőleg nem a szülője. 1. akt := start. while akt T loop. akt := arg opt f ( (akt) (akt) ). endloop. return akt A bejárt út megadásához az akt egymás után felvett értékeit össze kell gyűjteni. if (akt) = then return nem talált megoldást if (akt) ={ (akt)} then akt := (akt) else akt := arg opt f ( (akt) (akt)) (akt) ~ akt gyermekei (akt) ~ akt egy szülője Megjegyzés: Az eredeti hegymászó algoritmus nem zárja ki a szülőre való lépést, viszont nem engedi meg, hogy az aktuális csúcsot egy rosszabb értékű csúcsra cseréljük (ilyenkor a keresés inkább leáll).

[,,] [,1,] [,,] [1,,] Hanoi tornyai [1,,] [,1,] [1,1,] [1,1,] [,1,] [,,] [,1,] [1,,1] [,,] [,,1] [,,1] [,,] [,,] [1,,1] [,1,1] [,,] [1,,] [1,,] [,,] [,,1] [,,1] [,1,1] [1,1,1]

a Hogyan látja egy keresés a reprezentációs gráfot? Egy keresés fokozatosan fedezi fel a reprezentációs gráfot: bizonyos részeihez soha nem jut el, de a felfedezett részt sem feltétlenül tárolja el teljesen, sőt, sokszor torzultan látja azt: ha például egy csúcshoz érve nem vizsgálja meg, hogy ezt korábban már felfedezte-e, hanem új csúcsként regisztrálja, akkor az eredeti gráf helyett egy fát fog látni. eredeti gráf: keresés által látott gráf: start a b c b b d c e g f d a b

Reprezentációs gráf fává egyenesítése Ha a keresés nem vizsgálja meg egy csúcsról, hogy korábban már felfedezte-e, akkor az eredeti reprezentációs gráf helyett annak fává kiegyenesített változatában keres. Előny: eltűnnek a körök, de a megoldási utak megmaradnak Hátrány: duplikátumok jelennek meg, sőt a körök kiegyenesítése végtelen hosszú utakat eredményez A kétirányú (oda-vissza) élek drasztikusan megnövelik a kiegyenesítéssel kapott fa méretét. Olcsóbb, ha eltárolhatjuk egy csúcsnak azt a szülőcsúcsát, amelyik felől a csúcsot elértük (lokális kereséseknél ez egyetlen csúcs tárolását jelenti). Így egy csúcsból a szülőjébe visszavezető él könnyen felismerhető és figyelmen kívül hagyható.

Előny: könnyű implementálni Hátrányok: o o Megjegyzés a hegymászó algoritmushoz Csak erős heurisztika esetén lesz sikeres: különben eltéved (nem talál megoldást), sőt zsákutcában beragad (leáll). Segíthet, ha: véletlenül választott startcsúcsból újra- és újra elindítjuk random restart local search k darab aktuális csúcs legjobb k darab gyerekére lépünk local beam search gyengítjük a mohó stratégiáját simulated annealing Lokális optimum hely körül vagy ekvidisztans felületen (azonos értékű szomszédos csúcsok között) található körön, végtelen működésbe eshet. Segíthet, ha: növeljük a memóriát tabu search

Tabu keresés A globális munkaterületén az aktuális csúcson (akt) kívül nyilvántartja még az utolsó néhány érintett csúcsot: Tabu halmaz az eddigi legjobb csúcsot: optimális csúcs (opt) Egy keresési szabály minden lépésben az aktuális csúcsnak a legjobb, de nem a Tabu halmazban levő, gyerekére lép ha akt jobb, mint az opt, akkor opt az akt lesz frissíti akt-tal a sorszerkezetű Tabu halmazt Terminálási feltételek: ha az opt a célcsúcs ha az opt sokáig nem változik.

ADAT := kezdeti érték while terminálási feltétel(adat) loop SELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT) endloop Tabu keresés algoritmusa 1. akt, opt, Tabu := start, start,. while not (opt T or opt régóta nem változik) loop. akt := arg opt f ( (akt) Tabu ). Tabu := Módosít(akt,Tabu). if f(akt) jobb, mint f(opt) then opt := akt 6. endloop 7. return akt if (akt) = then return nem talált megoldást else if (akt) Tabu) then akt := arg opt f ( (akt)) else akt := arg opt f ( (akt) Tabu)

[,,] [,1,] [,,] [1,,] Hanoi tornyai [1,,] [1,1,] [1,1,] [,1,] [,1,] [,,] [,1,] [1,,1] [,,] [,,1] [,,1] [,,] [,,] [1,,1] [,1,1] [,,] [1,,] [1,,] [,,] [,,1] [,,1] [,1,1] [1,1,1]

Megjegyzés Előnyök: tabu méreténél rövidebb köröket észleli, és ez segíthet a lokális optimum hely illetve az ekvidisztans felület körüli körök leküzdésében. Hátrányok: a Tabu halmaz méretét kísérletezéssel kell belőni zsákutcába futva a nem-módosítható stratégia miatt beragad

Szimulált hűtés A keresési szabály a következő csúcsot véletlenszerűen választja ki az aktuális (akt) csúcs gyermekei közül. Ha az így kiválasztott új csúcs kiértékelő függvény-értéke nem rosszabb, mint az akt csúcsé (itt f(új) f(akt)), akkor elfogadjuk aktuális csúcsnak Ha az új csúcs függvényértéke rosszabb (itt f(új) > f(akt)), akkor egy olyan véletlenített módszert alkalmazunk, ahol az új csúcs elfogadásának valószínűsége fordítottan arányos az f(akt) f(új) különbséggel: e f(akt) f(új) T random [ 0, 1]

Hűtési ütemterv Egy csúcs elfogadásának valószínűségét az elfogadási képlet kitevőjének T együtthatójával szabályozhatjuk. Ezt egy (T k, L k ) k=1,, ütemterv vezérli, amely L 1 lépésen keresztül T 1, majd L lépésen keresztül T, stb. lesz. f current f(new) e T k > rand[0,1] Ha T 1, T, szigorúan monoton csökken, akkor egy ugyanannyival rosszabb függvényértékű új csúcsot kezdetben nagyobb valószínűséggel fogad el a keresés, mint később. f(új)=10, f(akt)=107 T exp(-1/t) 10 10 0.9999 0 0.77 0 0. 10 0.7 0.07 1 0.00000

ADAT := kezdeti érték while terminálási feltétel(adat) loop SELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT) endloop 1. akt := start ; k := 1 ; i := 1. while not(akt T or f(akt) régóta nem változik) loop. if i > L k then k := k+1; i := 1. új := select( (akt) (akt) ). if f(új) f(akt) or f(új)>f(akt) and 6. then akt := új 7. i := i+1 8. endloop 9. return akt Szimulált hűtés algoritmusa e f(akt) f(új) T k rand[ 0, 1] if (akt) = then return nem talált megoldást if (akt) ={ (akt)} then új := (akt) else új := select( (akt) (akt))

Lokális kereséssel megoldható feladatok Erős heurisztika nélkül nincs sok esély a cél megtalálására. Jó heurisztikára épített kiértékelő függvénnyel elkerülhetőek a zsákutcák, a körök. A sikerhez az kell, hogy egy lokálisan hozott rossz döntés ne zárja ki a cél megtalálását! Ez például egy erősen összefüggő reprezentációs-gráfban automatikusan teljesül, de kifejezetten előnytelen, ha a reprezentációs-gráf egy irányított fa. (Például az n- királynő problémát csak tökéletes kiértékelő függvény esetén lehetne lokális kereséssel megoldani.)

A heurisztika hatása a KR 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, hogy annak eredményessége és hatékonysága javuljon (egyszerre képes javítani a futási időt és a memóriaigényt), habár erre általában semmiféle garanciát sem ad. heurisztika eredményesség hatékonyság futási idő memóriaigény

ADAT := kezdeti érték while terminálási feltétel(adat) loop SELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT) endloop Heurisztika és KR hatékonysága költség számítási költség szabály alkalmazások száma (iterációk száma) egy szabály kiválasztásának költsége (egy iterációs lépés) informáltság Forrás: Nilsson: Princ. of AI, pp.. teljes

1 8 7 6 Heurisztikák a 8-as (1-ös) tologató játékra Rossz helyen levő lapkák száma (W): Manhattan (P): a lapkák célbeli helyüktől vett minimális távolságainak (függőleges és vízszintes mozgatásai számának) összege 8 1 6 7 6 Keret (F): büntető pontokat ad +1 minden olyan lapkára a szélen, amelyet nem a célbeli szomszédja követ az óra járásával megegyező irányban, + minden olyan sarokra, ahol nem a cél szerinti lapka áll.

W Hegymászó keresés 8 1 6 7 8 1 7 6 8 1 7 6 Tie-breaking rule: csúcsok sorrendjére < left, up, right, down > 8 1 7 6 8 1 7 6 8 7 1 6 8 1 7 6 l:, u:, r:, d:- l:, u:, r:, d: l:-, u:, r:, d: l:, u:, r:, d: l:, u:-, r:, d: 1 7 1 8 7 8 1 6 l:-, u:-, r:, d: l:-, u:, r:, d: l:-, u:-, r:1, d: l:, u:-, r:, d:0 6 0 1 8 7 6

P Hegymászó keresés 8 1 6 7 1 8 7 6 8 1 7 6 l:6, u:, r:6, d:- l:, u:, r:, d: W: l:, u:, r:, d: l:-, u:-, r:, d:1 1 8 7 6 l:, u:-, r:, d: 1 1 8 7 6 l:-, u:, r:0, d: 0 1 8 7 6

F Hegymászó keresés 6 8 1 6 7 1 8 7 6 8 1 7 6 l:8, u:, r:8, d:- l:, u:, r:6, d: W: l:, u:, r:, d: l:-, u:-, r:, d:1 1 8 7 6 l:, u:-, r:, d: 1 1 8 7 6 l:-, u:, r:0, d: 0 1 8 7 6

start 8 1 6 7 Keresés által érzékelt állapot-gráf 8 1 6 7 8 1 7 6 8 1 6 7 8 6 1 7 8 1 7 6 1 8 7 6 8 1 7 6 8 1 6 7 1 8 6 7 8 6 1 7 8 1 7 6 8 7 1 6 1 8 7 6 1 8 7 6 8 1 7 6 8 1 7 6 8 1 6 7 8 1 6 7 8 1 7 6 8 1 7 6 8 1 8 7 6 7 8 1 7 6 1 6 8 7 1 6 cél 1 8 7 6 1 8 7 6 1 8 7 6 1 7 8 6 1 8 7 6 1 8 7 6 cél duplikátum 8 1 7 6 8 1 7 6 duplikátum 8 1 7 6 8 1 7 6 8 1 6 7 8 1 6 7 8 1 7 6

Darab: C(this) = i=1..n 1 this[i] 1 Heurisztikák a Hanoi tornyai problémára Súlyozott darab: Összeg: WC(this) = i=1..n i this[i] 1 S(this) = i=1..n this[i] Súlyozott összeg: WS(this) = i=1..n i this[i] Módosított összeg: EWS(this) = WS(this) i=..n 1 + i=..n 1 this[i 1]>this[i] this[i 1]=this[i+1] this[i] this[i 1]

Inverziószám: Heurisztikák a Fekete-fehér kirakóra I(this)= minimálisan hány csere kell ahhoz, hogy minden fehér minden feketét megelőzzön Módosított inverziószám: M(this)= I(this) (1, ha this-nek része vagy )

Inv *Inv -?1 start 1 1 1 1 1 1 cél 0 0 0 0 cél 0 0 cél 0 0 cél