Top Banner
2. Visszalépéses keresés Gregorics Tibor Mesterséges intelligencia
23

2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Jan 27, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

2. Visszalépéses keresés

Gregorics Tibor Mesterséges intelligencia

Page 2: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Visszalépéses keresés

❑ A visszalépéses keresés egy olyan KR, amely

– globális munkaterülete:

• egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel együtt)

• kezdetben a startcsúcsot tartalmazó nulla hosszúságú út

• terminálás célcsúcs elérésekor vagy a startcsúcsból való visszalépéskor

– keresés szabályai:

• a nyilvántartott út végéhez egy új (ki nem próbált) él hozzáfűzése, vagy a 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

Gregorics Tibor Mesterséges intelligencia

Page 3: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Visszalépés feltételei

❑ zsákutca: az aktuális csúcsból (azaz az aktuális út

végpontjából) nem vezet tovább él

❑ zsákutca torkolat: az aktuális csúcsból kivezető utak nem

vezettek célba

❑ kör: az aktuális csúcs szerepel már korábban is az aktuális

úton

❑ mélységi korlát: az aktuális út hossza elér egy előre

megadott értéket

Gregorics Tibor Mesterséges intelligencia

Page 4: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Alacsonyabb rendű vezérlési stratégiák

Gregorics Tibor Mesterséges intelligencia

❑ Az általános vezérlési stratégia kiegészíthető:

o sorrendi szabállyal: amely sorrendet egy csúcsból

kivezető élek vizsgálatára

o vágó szabállyal: megjelöli egy csúcs azon kivezető éleit,

amelyeket nem érdemes megvizsgálni

❑ Ezek a szabályok lehetnek

o modellfüggő vezérlési stratégiák (a probléma

modelljének sajátosságaiból származó ötlet)

o heurisztikák (a megoldandó problémától

származó információra támaszkodó ötlet)

Page 5: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Első változat: VL1

❑ A visszalépéses algoritmus első változata az, amikor a

visszalépés feltételei közül az első kettőt építjük be a kereső

rendszerbe.

❑ Bebizonyítható: Véges körmentes irányított gráfokon a

VL1 mindig terminál, és ha létezik megoldás, akkor talál

egyet.

UI: véges sok adott startból induló út van.

❑ Rekurzív algoritmussal (VL1) szokták megadni

– Indítás: megoldás := VL1(startcsúcs)

Gregorics Tibor Mesterséges intelligencia

Page 6: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Recursive procedure VL1(akt : N) return (A*; hiba)

1. if cél(akt) then return(nil) endif

2. for új (akt) loop

3. megoldás := VL1(új)

4. if megoldás hiba then

5. return(fűz((akt,új), megoldás) endif

6. endloop

7. return(hiba)

end

VL1

Gregorics Tibor Mesterséges intelligencia

ADAT := kezdeti érték

while terminálási feltétel(ADAT) loop

SELECT SZ FROM alkalmazható szabályok

ADAT := SZ(ADAT)

endloopA ~ élek

A* ~ véges élsorozat

N ~ csúcsok

(akt) ~ akt gyermekei

Page 7: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

♛ ♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

♛♛

0.

1.

2.

3.

4.

5.

6.

7. 11.

8.

9.

10.12.

13.

14. 16.

15.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.33.

34.

35.37.

36. 38.

39.41.

42.40.

43.

44.

45.

46.

47.

48.

48 lépés

22 visszalépés

n-királynő probléma

2. állapotér modell

sorrendi stratégia: balról jobbra

Statikus nyomkövetés

Gregorics Tibor Mesterséges intelligencia

Page 8: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

♛♛

♛ ♛ ♛

♛♛

♛ ♛ ♛

♛♛

♛♛

♛♛

♛48 lépés

22 visszalépés

0. lépés 1. lépés 2. lépés 3. lépés 4. lépés 5. lépés 6. lépés 7. lépés

Dinamikus nyomkövetés

Gregorics Tibor Mesterséges intelligencia

Itt az aktuális út helyett elég lenne

csak az aktuális csúcsot tárolni.

n-királynő probléma

2. állapotér modell

sorrendi stratégia: balról jobbra

Page 9: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Az i-edik sor mezőit rangsoroljuk azért, hogy ennek

megfelelő sorrendben próbáljuk ki az i-edik

királynő lehetséges elhelyezéseit.

❑ Diagonális: a mezőn áthaladó hosszabb átló hossza.

❑ Páratlan-páros:a páratlan sorokban balról jobbra,

a páros sorokban jobbról balra legyen a sorrend.

❑ Ütés alá kerülő szabad mezők száma: új királynő

elhelyezésével hány szabad mező kerül ütésbe

Sorrendi heurisztikák

az n-királynő problémára

Gregorics Tibor Mesterséges intelligencia

4 3 3 43 4 4 33 4 4 34 3 3 4

1 2 3 44 3 2 11 2 3 44 3 2 1

3 2

Page 10: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

3

Heurisztikák az n-királynő problémára

diagonális + bal-jobb:

4 ♛ 3 4

3 4 4 3

3 4 4 3

4 3 3 4

♛♛

♛ ♛

Gregorics Tibor Mesterséges intelligencia

8 lépés

2 visszalépés

4 lépés

0 visszalépés

4 3 3 4

3 4 4 3

3 4 4 3

4 3 3 4

diagonális + páratlan-páros:

2. model nincs + bal-jobb diag + bal-jobb

n = 4 22/48 2/8

n = 5 10/25 10/25

n = 6 165/336 63/132

n = 7 35/77 80/167

n = 8 868/1744 196/400

n = 4 nincs +

bal-jobb

diag +

bal-jobb

diag +

ps-ptl

2. model 22/48 2/8 0/4

3. model 4/12 0/4 0/4

Page 11: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

VL1

heurisztika nélkül

k=6

A k-adik királynő elhelyezése után

a hátralevő üres sorokból töröljük

az ütésbe került szabad mezőket.

for i=k+1 .. n loop

Töröl(i,k) ♛

Gregorics Tibor Mesterséges intelligencia

Töröl(i,k) : törli az i-dik sor azon

szabad mezőit, amelyeket a k-dik

királynő üt

VL1: if Dk = ∅ then visszalép

Di ={i-dik sor szabad mezői}

n-királynő probléma

3. állapotér modell

sorrendi stratégia: balról jobbra

Page 12: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Forward Checking

k=4

D6 = ∅

Gregorics Tibor Mesterséges intelligencia

FC algoritmus:

VL1

+

if i[k+1.. n]: Di = ∅then visszalép

Page 13: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Partial Look Forward

k=3

i = 4, j = 6 D4 = ∅

6

Gregorics Tibor Mesterséges intelligencia

Szűr(i,j) : törli az i-edik sor azon

szabad mezőit, amelyekhez nem

található a j-edik sorban vele

ütésben nem álló szabad mező

PLF algoritmus:

VL1

+

for i=k+1 .. n loop

for j=i+1 .. n loop (i<j)

Szűr(i,j)

if i[k+1.. n]: Di = ∅then visszalép

Page 14: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Look Forward

k=2

D6 = ∅i = 4, j = 3

i = 5, j = 4

i = 6, j = 4

i = 6, j = 5

3

4

4 4 5

Gregorics Tibor Mesterséges intelligencia

LF algoritmus:

VL1

+

for i=k+1 .. n loop

for j=k+1 .. n and ij loop

Szűr(i,j)

if i[k+1.. n]: Di = ∅then visszalép

Page 15: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Az n-királynő probléma

új reprezentációs modellje

❑ Az előző vágási stratégiák alkalmazásánál az n-királynő

problémának egy új modelljére volt szükség:

o Tekintsük a D1 , … , Dn halmazokat, ahol Di ={1... n}

(ezek az i-dik sor szabad mezői).

o Keressük azt az (x1 ,…, xn) D1 … Dn elhelyezést

(xi az i-dik sorban elhelyezett királynő oszloppozíciója),

o amely nem tartalmaz ütést: minden i, j királynő párra:

Cij(xi,xj) (xixj xi‒xj i‒ j).

❑ A visszalépéses keresés e modell változóinak értékét keresi,

miközben az alkalmazott vágó stratégiák ezen változók

lehetséges értékeit adó Di halmazokat szűkítik.

Gregorics Tibor Mesterséges intelligencia

Page 16: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Bináris korlát-kielégítési modell

❑ Keressük azt az (x1 ,…, xn) D1 … Dn n-est (Di véges)

amely kielégít néhány Cij⊆ Di Dj bináris korlátot.

❑ Példák:

1. Házasságközvetítő probléma (n férfi, m nő; keressünk minden férfinak

neki szimpatikus feleségjelöltet):

o Az i-dik férfi (i=1..n) felesége (xi) a Di = {1, … , m} azon elemei,

amelyekre fenn áll, hogy szimpatikus(i, xi).

o Az összes (i,j)-re: Cij(xi,xj) (xixj ) (azaz nincs bigámia)

2. Gráfszínezési probléma (egy véges egyszerű irányítatlan gráf n darab

csúcsát kell kiszínezni m színnel úgy, hogy a szomszédos csúcsok eltérő

színűek legyenek):

o Az i-dik csúcs (i=1..n) színe (xi) a Di = {1, … , m} elemei.

o Minden i, j szomszédos csúcs párra: Cij(xi,xj) (xixj ).

Gregorics Tibor Mesterséges intelligencia

Page 17: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Modellfüggő vezérlési stratégia

❑ A bemutatott vágó stratégiákat a modell bináris korlátaival

definiálhatjuk, de ehhez a korlátok jelentését nem kell

ismerni:

Töröl(i,k): Di := Di −{eDi Cik(e,xk)}

Szűr(i,j) : Di := Di −{eDi fDj :Cij(e,f)}

❑ Ezekben a módszerekben tehát nem heurisztikák, hanem

modellfüggő vágó stratégiák jelennek meg.

❑ Modellfüggő sorrendi stratégiák is konstruálhatók:

– Mindig a legkisebb tartományú még kitöltetlen

komponensnek válasszunk előbb értéket.

– Ugyanazon korláthoz tartozó komponenseket lehetőleg

közvetlenül egymás után töltsük ki.Gregorics Tibor Mesterséges intelligencia

Page 18: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

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

❑ Bebizonyítható: 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.

UI: véges sok adott korlátnál rövidebb startból induló út van.

❑ Rekurzív algoritmussal (VL2) adjuk meg

– Indítás: megoldás := VL2(<startcsúcs>)

Második változat: VL2

Gregorics Tibor Mesterséges intelligencia

Page 19: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Recursive procedure VL2(út : N*) return (A*; hiba)

1. akt := utolsó_csúcs(út)

2. if cél(akt) then return(nil) endif

3. if hossza(út) korlát then return(hiba) endif

4. if aktmaradék(út) then return(hiba) endif

5. for új (akt) − (akt) loop

6. megoldás := VL2(fűz(út, új))

7. if megoldás hiba then

8. return(fűz((akt,új),megoldás)) endif

9. endloop

10. return(hiba)

end

VL2

Gregorics Tibor Mesterséges intelligencia

ADAT := kezdeti érték

while terminálási feltétel(ADAT) loop

SELECT SZ FROM alkalmazható szabályok

ADAT := SZ(ADAT)

endloop

(akt) ~ akt gyermekei

(akt) ~ akt egy szülője

Page 20: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Mélységi korlát szerepe

❑ A mélységi korlát önmagában is biztosítja a terminálást

körök esetén is.

– Ilyenkor nem kell a rekurzív hívásnál a teljes aktuális

utat átadni : elég az út hosszát, az aktuális csúcsot és

annak szülőjét (a kettő hosszú körök kiszűréséhez).

– Ez az egyszerűsítés a hatékonyságon javíthat, de ha a

reprezentációs gráfban vannak rövid körök is, akkor

futási idő szempontjából ez nem előnyös.

❑ A VL2 nem talál megoldást, ha a megoldási utak a

megadott mélységi korlátnál hosszabbak. (A keresés

ilyenkor sikertelenül terminál.)Gregorics Tibor Mesterséges intelligencia

Page 21: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

2

71

86

3

54

21

8

76

3

54

2

71

8

6

3

54

2

71

86

3

54

2

1

8

76

3

54

2

71

68

3

54

2

71

8

46

3

5

2

71

8

64

3

5

2

7

8

61

3

54

71

2

68

3

54

2

71

8

64

53

27

8

61

3

54

2

71

8

64

35

72

8

61

3

54

2

71

3

68

54

1

7

2

68

3

54

2

71

64

8

53

2

67

81

3

54

2

71

84

3

65

8

72

61

3

54

2

71

3

68

4

5

17

2

68

3

54

4

5 53

3 3 4

3 4 2 4

1

0 21

78

2

6

3

54

0.

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

Tologatós játékW

Mélységi korlát: 5

Heurisztika:

Gregorics Tibor Mesterséges intelligencia

Vágó heurisztika:

akt. út hossza+W>MK

Page 22: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

2

71

86

3

54

21

8

76

3

54

2

71

8

6

3

54

2

71

86

3

54

2

1

8

76

3

54

2

71

68

3

54

2

71

8

46

3

5

2

71

8

64

3

5

2

7

8

61

3

54

71

2

68

3

54

2

71

8

64

53

27

8

61

3

54

2

71

8

64

35

72

8

61

3

54

2

71

3

68

54

1

7

2

68

3

54

2

71

64

8

53

2

67

81

3

54

2

71

84

3

65

8

72

61

3

54

2

71

3

68

4

5

17

2

68

3

54

5

6 64

5 3 5

2

1

20

4

1

78

2

6

3

54

P 0.

1.

2.

3.

4.

5.

Mélységi korlát: 5

Heurisztika: Tologatós játék

Gregorics Tibor Mesterséges intelligencia

Page 23: 2. Visszalépéses keresésVisszalépés feltételei zsákutca: az aktuális csúcsból (azaz az aktuális út végpontjából) nem vezet tovább él zsákutca torkolat: az aktuális

Értékelés

❑ ELŐNYÖK

– mindig terminál,

talál megoldást (a

mélységi korláton

belül)

– 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

Gregorics Tibor Mesterséges intelligencia