2. Visszalépéses stratégia

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

Keresések Gregorics Tibor Mesterséges intelligencia

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

Bevezetés az informatikába

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

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

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

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

Programozási módszertan. Mohó algoritmusok

Algoritmusok bonyolultsága

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

Mesterséges intelligencia

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

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

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

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)

Adatszerkezetek 7a. Dr. IványiPéter

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

3. Gráfkeres stratégia

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

Algoritmusok bonyolultsága

Modellezés Gregorics Tibor Mesterséges intelligencia

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

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

angolul: greedy algorithms, románul: algoritmi greedy

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

1. tétel - Gráfok alapfogalmai

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

Diszkrét matematika 2.C szakirány

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

Mesterséges Intelligencia MI

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

Mesterséges Intelligencia MI

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

Evolúciós algoritmusok

Adatszerkezetek 2. Dr. Iványi Péter

Kupac adatszerkezet. 1. ábra.

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Algoritmusok és adatszerkezetek gyakorlat 07

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

Kiterjesztések sek szemantikája

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

22. GRÁFOK ÁBRÁZOLÁSA

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

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

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

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

Gráfelméleti feladatok. c f

Elemi adatszerkezetek

III. Szabályalapú logikai következtetés

Alap fatranszformátorok II

Diszkrét matematika 2.C szakirány

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

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

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

Mesterséges intelligencia 2. laborgyakorlat

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

Teljes visszalépéses elemzés

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.

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Adatszerkezetek és algoritmusok

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.

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

Intelligens Rendszerek Elmélete IRE 4/32/1

7 7, ,22 13,22 13, ,28

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Algoritmuselmélet 1. előadás

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

Diszkrét matematika 2.

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.

Mohó algoritmusok. Példa:

Diszkrét matematika 2.

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

Chomsky-féle hierarchia

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

Az optimális megoldást adó algoritmusok

10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 28.

Algoritmuselmélet 18. előadás

ELTE IK Esti képzés tavaszi félév. Tartalom

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

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása

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

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

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.

ZH feladatok megoldásai

Fibonacci számok. Dinamikus programozással

Algoritmuselmélet 1. előadás

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

Diszkrét matematika 2.C szakirány

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

Programozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Algoritmuselmélet 2. előadás

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

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

Mesterséges Intelligencia I. (I602, IB602)

Diszkrét matematika II. gyakorlat

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

Átírás:

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: a nyilvántartott út végéhez egy új (ki nem próbált) él hozzáfzése, vagy az legutolsó él törlése (visszalépés szabálya) vezérlés stratégiája a visszalépés szabályát csak a legvégs esetben alkalmazza kiinduló értéke a startcsúcs, pontosabban a startcsúcsot tartalmazó nulla hosszúságú út. terminálási feltétel akkor következik be, ha az aktuális út végén megjelenik egy célcsúcs, vagy ha a startcsúcsból vissza akarunk lépni. 1 2 Visszalépés feltételei az aktuális útra Heurisztikák zsákutca, azaz végpontjából nem vezet tovább út zsákutca torkolat, azaz végpontjából kivezet utak nem vezettek célba kör, azaz végpontja megegyezik az út egy megelz csúcsával mélységi korlátnál hosszabb sorrendi heurisztika: sorrendet ad végpontból kivezet élek (utak) vizsgálatára vágó heurisztika: megjelöli azokat a végpontból kivezet éleket (utakat), amelyeket nem érdemes megvizsgálni [,,] Hanoi tornyai 2.1. Els változat [2,,] [1,,] [2,1,] [1,2,] [1,1,] [2,2,] [,1,] [,2,] [1,1,2] [2,2,1] A visszalépéses algoritmus els változata az, amikor a visszalépés feltételei közül az els kettt építjük be a keres rendszerbe. Rekurzív algoritmussal (VL1) szokták megadni Indítás: megoldás VL1(startcsúcs) [,1,2] [2,1,2] [1,2,1] [,2,1] [,2,2] [2,,2] [1,,1] [,1,1] [2,2,2] [1,2,2] [1,,2] [,,2] [,,1] [2,,1] [2,1,1] [1,1,1] 1

Recursive procedure VL1(csúcs) return megoldás 1. if cél(csúcs) then return(nil) endif 2. élek kivezet-élek(csúcs). while not üres(élek) loop. él kivesz-egyet(élek). megoldás VL1(vég(él)). if megoldás hiba then return(hozzáfz(él,megoldás)) endif 7. endloop 8. return(hiba) end 2.1. Tétel A VL1 véges körmentes irányított gráfokon (nem kell δ-gráf) mindig terminál, és ha létezik megoldás, akkor talál egy megoldást. Bizonyítás: Egy n csúcsot tartalmazó körmentes gráfban a startcsúcsból kivezet utak száma véges (legfeljebb n-1 db egyhosszú út, (n-1)*(n-2) db ketthosszú út,, és (n-1)! db n-1 hosszú út van) amelyek közül a VL1 minden lépésben egyet megvizsgál. 8 Kitérés: Sajátos tulajdonságú problémák Néhány probléma (n-királyn, gráfszínezés, keresztrejtvény, órarend) állapot gráfja bizonyos szabályosságot mutat: fa, azonos hosszú ágak, egy szinten mindenhol azonos számú leágazás. Ezeket sajátos reprezentációs modell keretében fogalmazhatjuk meg: direktszorzat alakú problématérben relációkkal (korlátokkal, megszorításokkal) írjuk körül a megoldást. Korlát-kielégítési probléma Korlát-kielégítési (constraint satisfaction) problémáról akkor beszélünk, amikor adott D 1,, D n véges halmazokra egy olyan (x 1,, x n ) D 1 D n érték-együttest kell találni (a D 1 D n a problématér), amely megfelel a helyes választ leíró korlátoknak, azaz az ugyancsak adott C 1,, C m relációknak, ahol C i egy k i aritású reláció, amelyre C i D i 1 D iki 9 10 Példa Szrések Gráfszínezés (n csúcs, m szín) i-edik csúcs színei: D i ={1,, m} ( i=1..n ) Megszorítások a szomszédos (i,j) csúcspárokra: C ij (x i,x j )=(x i x j ) n-királyn probléma i-edik sor pozíciói: D i ={1,, n} ( i=1..n ) Megszorítások minden (i,j) sorpárra: C ij (x i,x j )=(x i x j és x i - x j i-j ) A VL1-nél hatékonyabb keresést kapunk, ha a probléma terét elbb megszrjük (reprezentációs gráfot vágjuk). A bináris megszorítások esetén az i-dik alaphalmazt a j-edik alaphalmaz alapján szkíthetjük: S(i,j) : D i {e D i f D j :C ij (e,f)} 11 12 2

VL1 VL1 A. reprezentáció szerint helyezzük el a királynket, soronként egyet-egyet, minden sorban balról jobbra haladva k= Miután (a k-edik sorban) elhelyezünk egy királynt, a hátralev sorokban (k+1.. n) kiszrjük az ütésben álló mezket: for i=k+1.. n do S(i,k) ha egy királynt nem tudunk szabad mezre állítani, azaz D k =, akkor visszalépünk. (A. repr. feletti VL1 a fenti szréssel kiegészítve éppen a. repr. felett végrehajtott VL1 lesz.) k= D = 1 1 FC PLF FC algoritmus: Az elbb bevezetett S(i,k) során, ha a hátralev sorok valamelyike már nem tartalmaz szabad mezt (azaz D i = ), akkor azonnal visszalépünk. k= D = PLF algoritmus: lefuttatjuk az alábbi szrést for j=i+1.. n do S(i,j) i =, j = k= D = ha van a hátralev sorok közt olyan, amelyre D i =, akkor visszalépünk. 1 1 LF LF még egyszer LF algoritmus: lefuttatjuk az alábbi szrést k=2 D = i =, j = i =, j = i =, j = i =, j = LF algoritmus: lefuttatjuk i =, j = i =, j = k= D = 17 18

AC1 AC1 lefuttatjuk 1. menet lefuttatjuk 2. menet i =, j = i =, j = 19 20 lefuttatjuk. menet i =, j = i =, j = i =, j = AC1 21 ACx AC csak azokat az (i,j) párokat vizsgálja meg újra, ahol az D j változott. Az elbbi példában az AC1 8- szor hajtja végre a S(i,j)-t, míg az AC csak 27-szer. AC nem vizsgálja újra azokat az (i,j) párokat sem, ahol az D j változott ugyan, de ez nincs hatással az D i -re. Ha minden e D i -nél megjelöltünk egy olyan f D j -t, amelyre C ij (e,f), majd egy nem jelölt elemet törlünk a D j -bl, akkor nincs szükség újabb S(i,j) -re. AC7 kihasználja a bináris megszorítások szimmetriáját. 22 Korlát-kielégítési problémák vizsgálata Kérdések: Megoldhatóság feltétele: él-konzisztencia, k-konzisztencia Meg lehet-e visszalépés nélkül oldani egy problémát? Hatékony algoritmusok keresése Vágó stratégiák: Visszatérés: Másodlagos vezérlési stratégiák Reprezentációs gráf specialitását kihasználó vágó algoritmust építünk be VL1-be. (ACx algoritmus) Sorrendi stratégiák: A legkisebb tartományú változó kitöltését részesítsük elnyben. Az egymástól függ változók egymáshoz közel szerepeljenek a vizsgálatban. 2 2

2.2. Második változat A visszalépéses algoritmus második változata az, amikor a visszalépés feltételei közül mindet beépítjük a keres rendszerbe. Rekurzív algoritmussal (VL2) adjuk meg Indítás: megoldás VL2(<startcsúcs>) 2 Recursive procedure VL2(út) return megoldás 1. csúcs utolsó-csúcs(út) 2. if cél(csúcs) then return(nil). if hossza(út) korlát then return(hiba). if csúcs maradék(út) then return(hiba). élek kivezet-élek(csúcs). while not üres(élek) loop 7. él kivesz-egyet(élek) 8. megoldás VL2(fz(út,vég(él))) 9. if megoldás hiba then return(fz(él,megoldás)) 10.endloop 11.return(hiba) end 2.2. Tétel Megjegyzés A VL2 δ-gráfban mindig terminál. Ha létezik a mélységi korlátnál nem hosszabb megoldás, akkor megtalál egy megoldást. Bizonyítás: Egy δ-gráfban a startcsúcsból kivezet, MK-nál nem hosszabb utak száma véges (legfeljebb σ db egyhosszú út, σ 2 db kett-hosszú út,, σ MK db MK hosszú út van) amelyek közül minden lépésben egyet vizsgálunk. Ha csak a megadott mélységi korlátnál hosszabb megoldási út van, akkor az algoritmus bár terminál, de nem talál megoldást. A mélységi korlát önmagában biztosítja a terminálást körök esetére is. A mélységi korlát ellenrzése jóval gyorsabb és kevesebb memóriát igényel, mint a körfigyelés. 27 28 Értékelés ELNYÖK könnyen implementálható kicsi memória igény HÁTRÁNYOK nem ad optimális megoldást. (iterációba szervezhet) kezdetben hozott rossz döntést csak sok visszalépés korrigál (visszaugrásos keresés) egy zsákutca részt többször is bejárhat a keresés 29