mesterséges intelligencia
TRANSCRIPT
-
8/18/2019 Mesterséges Intelligencia
1/61
1
Mesterséges intelligencia
Gregorics Tibor
people.inf.elte.hu/gt/mi
Gregorics Tibor Mesterséges intelligencia
Könyvek – Fekete István - Gregorics Tibor - Nagy Sára: Bevezetés a mesterséges
intelligenciába, LSI Kiadó, Budapest, 1990, 1999. ELTE-Eötvöskiadó, Budapest, 2006.
– Russel, J. S., Norvig, P.: MI - modern megközelítésben, Panem Kft,2005.
– Futó Iván (szerk ): Mesterséges intelligencia, Aula Kiadó, Budapest,1999.
Internet
– Neptun / MeetStreet / Virtuális terek / tantárgy / dokumentumok
– http://www.inf.elte.hu/karunkrol/digitkonyv/Jegyzetek/mi.pdf
Szakirodalom
Gregorics Tibor Mesterséges intelligencia
I. Bevezetés
Gregorics Tibor Mesterséges intelligencia
Gyenge MI
Az MI kutatja, fejleszti, rendszerezi azokat az elméleteket ésmegoldási módszereket, amelyek hozzájárulnak az intelligens
gondolkodás számítógéppel való reprodukálásához .
1. AZ MI FOGALMA mesterséges intelligencia MI (artificial intelligence - AI)
Gregorics Tibor Mesterséges intelligencia
Erős MI
Az emberi gondolkodásreprodukálható számítógéppel.
MI szkeptikusok
A számítógép sohanem lesz okosabb az
embernél.
MI nem egy speciális részterülete az informatikának, hanem egy törekvés, hogy a számítógéppel olyan érdekes és nehéz problémákat
oldjunk meg, amelyek megoldásában az ember jobb.
romantikus korszak
Gregorics Tibor Mesterséges intelligencia
1960 1970 1980 1990 2000 20101956
mindenféle problémát általános eszközökkel
Projektek:
kétszemélyes játékok beszélgető program (ELIZA,1966),
Módszerek :GPS, rezolúció (1966),Lisp (1958),
mesterséges neuronhálózatok,
evolúciós algoritmusok
Történelem Illesztési szabályok ön engem .
Úgy érzem, hogy ön mostanában engem un. Miért gondolja, hogy ön én ?
Miért gondolja, hogy ön úgy érzi, hogy én mostanában unom?
Emlékezési szabályok Folytatási szabályok
specializálódás
Gregorics Tibor Mesterséges intelligencia
1960 1970 1980 1990 2000 2010
romantikus korszak
mindenféle problémát általános eszközökkel
klasszikus korszak
speciális problémákatspeciális módszerekkel
Projektek:
SHRDLU (1972),
BACON, AM,
DENDRAL (1969-78),
MYCIN (1976)
Módszerek : Prolog,heurisztikus keresések,
ismeretábrázolási módszerek
Történelem specializálódás
-
8/18/2019 Mesterséges Intelligencia
2/61
2
Gregorics Tibor Mesterséges intelligencia
1960 1970 1980 1990 2000 2010
Projektek:
XCON (1982),
PROSPECTOR(1979)
Módszerek :shell-ek,
ismeretalapú technológia,nem-monoton következtetés,
bizonytalanság kezelés
romantikus korszak
mindenféle problémát általános eszközökkel
klasszikus korszak
speciális problémákatspeciális módszerekkel
ipari korszak
szakértő rendszerek ismeretalapú rendszerek
Történelem specializálódás
Gregorics Tibor Mesterséges intelligencia
1960 1970 1980 1990 2000 2010
Projektek:Deep Blue (1997)
IBM Watson (2011)
logisztika
űrkutatás robotika
Módszerek :alakzat-felismerés tanulás ontológia elméletágens szemlélet
romantikus korszak
mindenféle problémát általános eszközökkel
klasszikus korszak
keresési problémákatspeciális módszerekkel
ipari korszak
szakértő rendszerek ismeretalapú rendszerek
MI tél, majd reneszánsz
hibrid technológiák,matematikai háttér
Történelem specializálódás
Megoldandó feladat: nehéz – A feladat problématere hatalmas.
– A megoldás megtalálása intuíciót, kreativitást igényel,amely heurisztikaként épül be a megoldó programba azért,hogy elkerüljük a kombinatorikus robbanást.
Szoftver viselkedése: intelligens ‒ Úgy gondolkodik, mint az ember.
Felhasznált eszközök : sajátosak ‒ Átgondolt reprezentáció a feladat modellezéséhez .
‒ Heurisztikával megerősített hatékony algoritmusok .
Miről ismerhető felegy szoftverben az MI?
Gregorics Tibor Mesterséges intelligencia
Turing teszt
• term. nyelvű kommunikáció • megszerzett ismeret tárolása • automatikus következtetés • tanulás+ gépi látás, gépi cselekvés
Miért nem elég, ha ad egy jómegoldást? Miért legyen„emberi” annak előállítása?
2. MODELLEZÉS & KERESÉS
Gregorics Tibor Mesterséges intelligencia
Állapottér reprezentáció Probléma redukció Probléma dekompozíció Korlátprogramozási modell Logikai reprezentációk
probléma útkeresési
feladatmegoldás
Lokális keresések Visszalépéses keresés Gráfkeresések Evolúciós algoritmus Rezolúció Szabályalapú következtetés
modellezés keresés
gráfreprezentáció
Problématér elemei : probléma lehetséges válaszai.
Cél : egy helyes válasz megtalálása
Keresést segítő ötletek :
- Problématér hasznos elemeinek kijelölése.
- Az elemek szomszédsági kapcsolatainak felderítése.
• Egy kiinduló elemből indulunk el, és egy elemvizsgálata után annak „szomszédjaival”foglalkozunk.
-
Adott pillanatban látható elemek rangsorolása.
Mire kell a modellezésnek fókuszálni
Gregorics Tibor Mesterséges intelligencia
Útkeresési probléma
Egy probléma modelljét valamilyen modellezési módszersegítségével írjuk le. Ezek a módszerek sokszor útkeresési
problémává fogalmazzák át a kitűzött feladatot, és ilyenkora megoldást egy speciális élsúlyozott irányított gráfbankeressük
• vagy egy célcsúcs
• vagy egy startcsúcsból célcsúcsba vezető út
• vagy a legolcsóbb startcsúcsból célcsúcsba vezető út.
formájában.
A gráf nagy mérete miatt mindhárom esetben speciális (nem
szisztematikus) útkereső algoritmusra van szükség.
Gregorics Tibor Mesterséges intelligencia
-
8/18/2019 Mesterséges Intelligencia
3/61
3
Gráf fogalmak 1.
csúcsok, irányított élek N, A N N (végtelen számosság)
él n- ből m-be (n,m) A (n,m N)
n utódai (n) = {m N (n,m) A}
n szülei (n) (n) = {m N (m,n) A}
irányított gráf R=(N,A)
véges sok kivezető él (n) < (n N )
élköltség c:A→ℝ
-tulajdonság (ℝ+) c(n,m) > 0 ((n,m) A) -gráf -tulajdonságú,véges sok kivezető
élű, élsúlyozott irányított gráf Gregorics Tibor Mesterséges intelligencia
Gráf fogalmak 2.
irányított út = (n,n1 ),(n1 ,n2 ),...,(nk-1 ,m)
= n⟶ m, n⟶m,
n⟶ M , {n⟶m}, {n⟶ M }( M N )
út hossza az út éleinek száma: (= k )
út költsége c( ) és c (n,m):=i c(ni-1 ,ni )
opt. költség c*(n,m):= min {n⟶m} c
(n,m)
c*(n,M):= min {n⟶ M } c
(n,m)
opt. költségű út n⟶*m := minc{ {n⟶m} }n⟶* M := minc{ {n⟶ M } }
-gráfokban ez végtelen sokút esetén is értelmes.
Értéke∞, ha nincs egy út se.
Gregorics Tibor Mesterséges intelligencia
Gráfreprezentáció fogalma
Egy útkeresési probléma rendelkezik egy (a problémamodellezéséből származó) gráfreprezentációval, amiegy ( R,s,T ) hármas, amelyben
– R=( N,A,c) -gráf az ún. reprezentációs gráf , – az s N startcsúcs,
– a T N halmazbeli célcsúcsok . és a probléma megoldása:
egy t T cél megtalálása, vagy egy s⟶T , esetleg s⟶*T optimális út megtalálása
Gregorics Tibor Mesterséges intelligencia
Keresés
Gregorics Tibor Mesterséges intelligencia
Az útkeresési problémák megoldásához egystartcsúcsból célcsúcsba vezető utat kell megtalálnunkúgy, hogy a kereső algoritmus
a startcsúcsból indul
miután megvizsgálta az aktuális csúcsot annak
szomszédjára lép tárolja a keresés során feltárt reprezentációs gráf egy
részét
megáll, ha elért egy célcsúcsot
Kereső rendszer (KR)
Procedure KR
1. ADAT := kezdeti érték 2. while terminálási feltétel (ADAT) loop3. SELECT SZ FROM alkalmazható szabályok 4. ADAT := SZ(ADAT)
5. endloop
end
Gregorics Tibor Mesterséges intelligencia
globális munkaterület
a keresés során megszerzett ésmegőrzött ismeretet tárolja (kezdeti érték, terminálási feltétel )
keresési szabályok
globális munkaterülettartalmát változtatják meg(előfeltétel, hatás)vezérlési stratégia
végrehajtható szabályok közül
kiválaszt egy „megfelelőt”(általános elv + heurisztika)
A globális munkaterületen a reprezentációs gráf egyrészgráfja jelenik meg. – vagy csak egy csúcs, esetleg annak közvetlen szomszédjai
– vagy a startcsúcsból kivezető egyik út kezdőszakasza
– vagy a startcsúcsból kivezető összes út kezdőszakasza
A keresési szabályok ezt a globális munkaterületen tároltrészgráfot módosítják – lecserélnek egy csúcsot valamelyik szomszédjára
– hozzávesznek egy tárolt út végéhez egy onnan kiinduló élt
– törölnek egy tárolt út végéről egy élt
A vezérlési stratégia a fenti szabályokból válogat
Kereső rendszer és a reprezentációs gráf
Gregorics Tibor Mesterséges intelligencia
-
8/18/2019 Mesterséges Intelligencia
4/61
4
helyes-e (azaz korrekt választ ad) teljes-e (minden esetben választ ad)
optimális-e (optimális megoldást ad)
idő bonyolultság
tár bonyolultság
Kereső rendszerek vizsgálata
Gregorics Tibor Mesterséges intelligencia
-
8/18/2019 Mesterséges Intelligencia
5/61
II. Állapottér -reprezentáció
Gregorics Tibor Mesterséges intelligencia
Állapottér -reprezentáció elemei
Állapottér : a feladat fókuszában álló adat-együttes
(objektum) lehetséges értékeinek (állapotainak) halmaza
egy állapot többnyire egy összetett szerkezetű érték,amelynek gyakran meg kell felelnie egy invariáns állításnak is.
Műveletek : állapotból állapotba vezetnek
megadásukhoz: előfeltétel és hatás-leírás
invariáns tulajdonságot tartó leképezés
Kezdő állapot(ok) vagy azokat leíró kezdőfeltétel
Célállapot(ok) vagy célfeltétel
Gregorics Tibor Mesterséges intelligencia
Olyan mint egy adattípus.
1 2 3 1 2 3
3 2
1
3 2
1
Hanoi tornyai probléma
Állapottér : AT = {1,2,3}n
megjegyzés : a tömb i-dik eleme mutatja az i-dik korong rúdjának számát; akorongok a rudakon méretük szerint fentről lefelé növekvő sorban vannak.
Művelet : Rak (honnan, hova):AT →AT
HA a honnan és hova létezik és nem azonos, és van korong a honnan rúdon, és a hova rúd üres vagyannak legfelső korongja nagyobb honnan rúd legfelső korongjánál
AKKOR this[honnan legfelső korongja] := hova (this: AT )
[3,3,3] [1,1,1]
Gregorics Tibor Mesterséges intelligencia
Célállapot Kezdőállapot
1..n intervallummal indexelt
egydimenziós tömb, amelynek elemei {1,2,3} halmazbeliek.
Implementáció
Gregorics Tibor Mesterséges intelligencia
templ te cl ss Hanoi {
int a[n]; // its elements are between 1 and 3
public :
bool Move (int from, int to) {
if ((from3 || to3) && (from!=to)) return f lse;
bool l1; int i; // i ~ upper disc on ‘from’ ; l1 ~ ‘from’ is not empty
for(l1=f lse, i=0; !l1 && i
-
8/18/2019 Mesterséges Intelligencia
6/61
Állapot - gráf bonyolultsága
Az útkeresés hatékonysága a problématér bonyolultságátólfügg, amit állapottár -reprezentáció esetén az állapot-gráf
bonyolultsága határoz meg. csúcsok és élek száma
Hanoi: 3n csúcs a csúcsok átlagos ki-foka
Hanoi: 3
start csúcsból kivezető utak száma az oda-vissza lépések nélkül Hanoi:
a k hosszú utak száma, : 2k ,a legfeljebb k hosszú utak száma 1+2+…+ 2k , azaz 2k+11
körök hosszának sokfélesége, a körök gyakorisága Hanoi: 2, 3, 6, 7, 9, …
Gregorics Tibor Mesterséges intelligencia
Állapottér vs. problématér
A megoldás általában egy olyan műveletsorozat (irányítottút), amelyik a kezdő állapotból (start csúcsból) egy célállapotba (célcsúcsba) vezet.
Állapottér reprezentáció esetén a problématér nemfüggetlen az állapottértől, de nem azonos a problématérrel,hiszen a problématér elemei azok az állapot-sorozatok,amelyek a műveletek segítségével a kezdő állapotbólindulnak.
Gregorics Tibor Mesterséges intelligencia
♛ ♛
♛ ♛
♛ ♛
n-királynő probléma 1.
Állapottér : AT = {♛ , _ }n×n
invariáns: egy állapot (tábla) pontosan n darab királynőt tartalmaz
Művelet : Áthelyez (x,y,u,v):AT → AT
HA 1≦ x,y,u,v ≦n és this[ x,y]=♛ és this[u,v]= _
AKKOR this[ x,y] this[u,v]
általános állapot célfeltételnek megfelelő állapot
♛ ♛
Gregorics Tibor Mesterséges intelligencia
kétdimenziós tömb (n×n-es mátrix),mely elemei {♛ , _ } halmazbeliek
this:AT az aktuális állapot
csere
♛ ♛ ♛ ♛
♛ ♛ ♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
Állapot - gráf részlet
Gregorics Tibor Mesterséges intelligencia
♛ ♛ ♛ ♛
♛ ♛
♛ ♛
csúcsok száma:
n
n2
adott csúcsból induló khosszú utak száma:(n*(n2n)) k
csúcsok átlagos ki-foka:n*(n2n)
Csökkentsük a problématér méretét
Az előző reprezentációnál a problématér mérete, azaz alehetséges utak száma, óriási.
Sok modellje lehet ugyanannak a feladatnak: keressünk minélkisebb problématerűt.
o Bővítsük az állapotteret az n-nél kevesebb királynőt tartalmazóállásokkal, és használjunk új műveletet : királynő-felhelyezést.A pontosan n hosszú utak (ilyen a jó megoldás is) száma: ∙n!
o Műveletek előfeltételének szigorításával csökken az állapot-gráfátlagos ki-foka:- Sorról sorra haladva egy-egy királynőt helyezzünk fel a
táblára! Ekkor az n hosszú utak száma: nn.- Ütést tartalmazó állásra ne tegyünk királynőt!
Gregorics Tibor Mesterséges intelligencia
♛ ♛
n-királynő probléma 2.
kezdőálla pot célállapot
Gregorics Tibor Mesterséges intelligencia
Állapottér : AT = {♛ , _ }n×n
invariáns: az első néhány sor egy-egy királynőt tartalmaz
Művelet : Helyez (oszlop): AT → AT (this:AT )
HA 1≦ oszlop ≦n és a this -beli királynők száma < n és nincs ütés
AKKOR this[ sor,oszlop] :=♛ ahol „sor” a soron következő üres sor
♛
♛
♛ ♛
közbülső állapot
-
8/18/2019 Mesterséges Intelligencia
7/61
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛
♛ ♛
♛ ♛
♛ ♛ ♛
♛ ♛ ♛
♛
♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛
♛ ♛ ♛
♛ ♛
♛
♛ ♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
Állapot - gráf
Gregorics Tibor Mesterséges intelligencia
start
cél
lehetséges megoldások: nn
csúcsok: (nn+1 1) / (n 1)
kivezető élek: n
Művelet végrehajtásának hatékonysága
A művelet kiszámítási bonyolultsága csökkenthető, ha o az állapotteret (vagy annak invariánsát) szigorítjuk éso a művelet hatását ennek megfelelően módosítjuk
Például o Az állapot tartalmazhatná a tábla soron következő üres sorának
számát ahelyett, hogy mindig kiszámoljuk. Egy új állapotban eza szám a megelőző állapot ilyen számánál eggyel nagyobb.
o Tárolhatnánk, hogy mely üres mezőket tartanak már ütés alatt akirálynők , (ezeket a művelet végrehajtásakor egy újabb királynőelhelyezése esetén kell bejelölni), így könnyebben eldönthető,hogy egy új királynő ütni fogja-e az előzőeket vagy sem.
Gregorics Tibor Mesterséges intelligencia
♛
♛
♛ ♛
♛ ♛
n-királynő probléma 3.
kezdőállapot: kövsor = 1
célállapot :kövsor = 5
Gregorics Tibor Mesterséges intelligencia
Állapottér : AT = rec(t :{♛, , _ }n×n, kövsor : ℕ)invariáns: királynők nem ütik egymást (ÚJ),
kövsor ≦n+1,az első kövsor ‒ 1 darab sor egy-egy királynőt tartalmaz, egy királynő által ütött üres mezőt jelöli,
_ az ütésben nem álló (szabad) üres mezőt jelöli.
közbülső állapot: kövsor = 3
n-királynő probléma 3. folytatás
Művelet : új királynő elhelyezése a soron következő üres sorszabad mezőjére
Helyez (oszlop): AT → AT (this: AT )
HA 1≦ oszlop ≦n és this.kövsor ≦ nés this.t [this.kövsor ,oszlop]=_
AKKOR this.t [this.kövsor ,oszlop] := ♛ d , d +:= this.kövsor oszlop, this.kövsor +oszlopi[this.kövsor +1..n] , j[1..n] : this.t [i,j]:=
feltéve, hogy j=oszlop vagy i j=d vagy i+ j=d +: this.kövsor :=this.kövsor +1
Kezdőállapot : this.t egy üres mátrix , this.kövsor :=1 Célállapot : this.kövsor >n
Gregorics Tibor Mesterséges intelligencia
Állapot - gráf
♛
♛
♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛ ♛
♛ ♛ ♛
♛ ♛ ♛
♛ ♛ ♛
♛ ♛ ♛ ♛
♛ ♛ ♛ ♛
Gregorics Tibor Mesterséges intelligencia
♛
start
cél
2
Tologató játék (8-as, 15-ös)
Állapottér : AT = rec( mátrix :{0..8}3×3 , üres :{1..3}×{1..3} )
invariáns: egy állapot mátrixának sorfolytonos kiterítése a 0 .. 8 számokegy permutációja, az üres hely a 0 elem mátrixbeli sor és oszlopindexe.
Művelet : Tol (irány): AT → AT
HA irány∊{(1,0),(0,1),(-1,0),(0,-1)} és
(1,1) ≦ this.üres+irány ≦ (3,3) (this: AT ) AKKOR this.mátrix[this.üres] this.mátrix[this.üres +irány]
this.üres := this.üres +irány
Gregorics Tibor Mesterséges intelligencia
célállapot:szokásos
kezdőállapot:tetszőleges
8 3 1 7
6 4 5
1 2 3 4
7 5 6 8
koordinátánként értendő
-
8/18/2019 Mesterséges Intelligencia
8/61
2 8 3
1 6 4
7 5
2 8 3
1
6
4
7 5
2 8 3
1 6 4
7 5
2 8 3
1 6 4
7 5
2
8
3
1
6
4
7 5
2 8 3
1
6
4
7 5
2 8 3
1
6
4
7 5
2 8 3
1 6
47 5
2 8 3
1
6 4
7 5
2
8 3
1
6 4
7 5
2 8 3
1
6 4
7 5
2
8 3
1
6
4
7 5
2 8 3
1
6
47
5
2
8
3
1
6
4
7 5
2
8
3
1
6
4
7 5
2 8
31
6
4
7 5
2 8 3
1
6
4
7
5
2 8 3
1 6
47 5
2 8
31 6
47 5
2
8
31
6
4
7 5
2
8
3
1
6
4
7 5
2
8
31
6
4
7 5
2
8
31
6
47
5
2
8 3
1
6
4
7 5
2
8 3
1
6
4
7 5
2
8 31
6
4
7 5
2 8 3
1
6
47
5
2 8 3
1
6
4
7
5
2 8 3
1
6
4
7
5
2 8 3
1
647
5
Állapot - gráf
2 8 3
1
647
5
2 8 3
1
47
65
2 8 3
1
47
65
8 31
6
4
7 5
2 8
1 3
7
2 4
6 5
1
2
3
8
6
4
7 5
start
cél
Hogyan „látja” egy keresés areprezentációs gráfot?
Gregorics Tibor Mesterséges intelligencia
a
b c
d
a b
d
c
a b
eredeti gráf: keresés által látott gráf:
e f
g
Egy keresés fokozatosan fedezi fel a reprezentációs gráfot: bizonyos részeihez el sem jut és a felfedezett részt semfeltétlenül tárolja el teljesen. Gyakran azt sem vizsgálja megegy csúcsról, hogy korábban felfedezte-e már, új csúcskéntregisztrálja azt, ezért torzultan „látja” a reprezentációs gráfot.
b start
Reprezentációs gráf „fává egyenesítése”
Ha a keresés nem vizsgálja meg egy csúcsról, hogy korábbanmár felfedezte-e, akkor valójában az eredeti reprezentációsgráfnak egy olyan fává kiegyenesített változatában keres, aholegy csúcs annyiszor szerepel, ahány különböző úton el lehet
jutni hozzá a startcsúcsból.
Előny: eltűnnek a körök, de a megoldási utak megmaradnak Hátrány: nő a méret: duplikátumok, végtelen hosszú utak
A kétirányú (oda-vissza) élek jelentősen megnövelik akiegyenesített fa méretét, ha azokat nem szűrjük ki. Mindenkeresésbe beépíthető a megelőző aktuális csúcs (szülőcsúcs)tárolása, hogy az aktuális csúcsból ide visszavezető éltfelismerjük és figyelmen kívül hagyjuk.
Gregorics Tibor Mesterséges intelligencia
2 8 3
1 6 4
7 5
2 8 3
1
6
4
7 5
2 8 3
1 6 4
7 5
2 8 3
1 6 4
7 5
2
8
3
1
6
4
7 5
2 8 3
1
6
4
7 5
2 8 3
1
6
4
7 5
2 8 3
1 6
47 5
2 8 3
1
6 4
7 5
2
8 3
1
6 4
7 5
2 8 3
1
6 4
7 5
2
8 3
1
6
4
7 5
2 8 3
1
6
47
5
2
8
3
1
6
4
7 5
2
8
3
1
6
4
7 5
2 8
31
6
4
7 5
2 8 3
1
6
4
7
5
2 8 3
1 6
47 5
2 8
31 6
47 5
2
8
31
6
4
7 5
2
8
3
1
6
4
7 5
2
8
31
6
4
7 5
2
8
31
6
47
5
2
8 3
1
6
4
7 5
2
8 3
1
6
4
7 5
2
8 31
6
4
7 5
2 8 3
1
6
47
5
2 8 3
1
6
4
7
5
2 8 3
1
6
4
7
5
2 8 3
1
647
5
Állapot - gráf fa alakban
2 8 3
1
647
5
2 8 3
1
47
65
2 8 3
1
47
65
8 31
6
4
7 5
2 8
1 3
7
2 4
6 5
1
2
3
8
6
4
7 5
start
cél
2 8 3
1
647
52
8
31
6
4
7 5
duplikátum
duplikátum
cél
Fekete- fehér kirakó
Egy n+m+1 hosszú sínen n fekete és m fehér lapka és egy üres helyvan. Egy lapkát szomszédos üres helyre tolhatunk vagy a szomszéd felett üres helyre ugrathatunk. Kezdetben a feketék után jönnek a fehérek, majd az üres hely. Kerüljenek a fehérek a feketék elé!
Állapottér : AT = rec(v : { B, W, _ }n+m+1, üres : [1.. n+m+1])invariáns: n darab B, m darab W , 1 üres hely, üres az üres hely indexe
Műveletek : TolBal, TolJobb, UgrikBal, Ugr ikJobb : AT → AT
TolBal : HA this.üres1 (this : AT )
AKKOR this.v[this.üres-1] this.v[this.üres]
this.üres :=this.üres-1 Kezdőállapot : [ B, … , B , W, … , W, _ ]
Célállapot : i,j [1.. n+m+1], i
-
8/18/2019 Mesterséges Intelligencia
9/61
Misszionárius - kannibál probléma
n misszionárius és n kannibál át akar kelni egy folyón egy h személyes
csónakban … Állapottér : AT = rec(m : [0..n] , k : [0..n] , c : )
invariáns: nincs emberevés, azaz I(m,k) m=k m=0 m=n
Kezdőállapot : (n,n,igaz) Célállapot : (0,0,hamis)
Műveletek :Oda (x,y): AT → AT Vissza (x,y): AT → AT (this : AT )
HA this.c és 0≦ x ≦this.m HAthis.c és 0≦ x ≦n – this.m
és 0≦ y ≦this.k és 0
-
8/18/2019 Mesterséges Intelligencia
10/61
1
III. Keresések
Gregorics Tibor Mesterséges intelligencia
KR vezérlési szintjei
Gregorics Tibor Mesterséges intelligencia
ADAT := kezdeti érték
while terminálási feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok
ADAT := SZ(ADAT)
endloop
vezérlési stratégia
elsődleges másodlagos heurisztika
független a feladattólés annak modelljétől:nem merít sem afeladat ismereteiből,sem a modell
sajátosságaiból.
nem függ a feladatismereteitől, de épít afeladat modelljénekáltalános elemeire.
a feladattól származó,annak modelljében nem rögzített, de amegoldást segítő speciális ismeret
Elsődleges vezérlési stratégiák
nemmódosítható módosítható
elsődleges stratégiák
• lokális keresések • evolúciós algoritmus • rezolúció
Gregorics Tibor Mesterséges intelligencia
• visszalépéses keresések • gráfkeresések
1. Lokális keresések
A lokális keresés olyan KR, amely a megoldandó útkeresési probléma (reprezentációs) gráfjának egyetlen (az aktuális)csúcsát és annak szűk környezetét tárolja (a globálismunkaterületén).
• Kezdetben az aktuális csúcs a startcsúcs, és a keresésakkor á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, amelyreményeink szerint annál jobb értéket ad egy csúcsra, minélközelebb esik az a célhoz.
Gregorics Tibor Mesterséges intelligencia
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
2. while akt T loop
3. akt := opt f ( (akt )−(akt ) )
4. endloop
Gregorics Tibor Mesterséges intelligencia
• Az eredeti hegymászó algoritmus nem zárja ki a szülőre való lépést és
nem engedi meg, hogy az aktuális csúcsot egy rosszabb értékű csúcsracseréljük (ilyenkor a keresés inkább leáll).
ADAT := kezdeti érték
while terminálási feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok
ADAT := SZ(ADAT)
endloop
if (akt ) = ∅ then return nem talált megoldást
if (akt )−(akt ) = ∅ then akt := (akt )
else akt := opt f ((akt )−(akt ))
Hátrányok
Csak erős heurisztika esetén lesz sikeres: különben „eltéved”(nem talál megoldást), sőt zsákutcába kerülve „beragad”.Segíthet, ha:
• véletlenül választott startcsúcsból újra- és újraindítjuk
• k aktuális csúcsnak a legjobb k gyerekére lépünk
• gyengítjük a mohó stratégiát szimulált hűtés
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 keresés
Gregorics Tibor Mesterséges intelligencia
-
8/18/2019 Mesterséges Intelligencia
11/61
2
Tabu keresés
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 )
Minden lépésben – Az aktuális csúcs legjobb gyerekére lép, kivéve a Tabu
halmazban levőket – 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.
Gregorics Tibor Mesterséges intelligencia
Tabu keresés algoritmusa
1. akt, opt, Tabu := start, start, ∅
2. while not (opt T or opt régóta nem változik) loop
3. akt := opt f ( (akt )−Tabu )
4. Tabu := Módosít(akt,Tabu)
5. if f (akt ) jobb, mint f (opt ) then opt := akt
6. endloop
Gregorics Tibor Mesterséges intelligencia
ADAT := kezdeti érték
while terminálási feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok
ADAT := SZ(ADAT)
endloop
if (akt ) = ∅ then return nem talált megoldást
else if (akt )−Tabu) = ∅ then akt := opt f ((akt ))
else akt := opt f ((akt )− Tabu)
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ületkö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
Gregorics Tibor Mesterséges intelligencia
Szimulált hűtés
A következő csúcs kiválasztása az aktuális (akt ) csúcsgyermekei közül véletlenszerű.
Ha az így kiválasztott új csúcs kiértékelő függvény-értékenem rosszabb, mint az akt csúcsé (itt f (új) ≤ f (akt )), akkorelfogadjuk 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:
Gregorics Tibor Mesterséges intelligencia
Hűtési ütemterv
A (T k , Lk ) k =1,2,… ütemterv azt szabályozza, hogy azelfogadási képletben a T együttható értéke L1 lépésenkeresztül T 1, majd L2 lépésen keresztül T 2, stb. legyen:
T exp(-13/T)
1010 0.9999… 50 0.77
20 0.52
10 0.2725
5 0.07431 0.000002
f(új)=120, f(akt)=107
Gregorics Tibor Mesterséges intelligencia
Ha T 1 , T 2 , … szigorúan monotoncsökken, akkor egy ugyanannyivalrosszabb függvényértékű új csúcsot akeresés kezdetén nagyobbvalószínűséggel fogadunk majd el,
mint a keresés későbbi szakaszában.
1. akt := start; k := 1
2. while not(akt T or f (akt ) régóta nem változik) loop
3. for i = 1 .. Lk loop
4. új := select( (akt )−(akt ) )
5. if f (új)≤ f (akt ) or
f (új)> f (akt ) and
6. then akt := új endif
7. endloop
8. k := k +1
9. endloop
Szimulált hűtés algoritmusa
],[ 10rand e k T f(új) f(akt)
Gregorics Tibor Mesterséges intelligencia
ADAT := kezdeti érték
while terminálási feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok
ADAT := SZ(ADAT)
endloop
if (akt ) = ∅ then return nem talált megoldást
if (akt )−(akt ) = ∅ then új := (akt )
else új := select((akt )−(akt ))
-
8/18/2019 Mesterséges Intelligencia
12/61
3
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énnyelelkerülhetőek a zsákutcák.
A sikerhez az kell, hogy egy lokálisan hozott rossz döntés nezárja ki a cél megtalálását!
Ez például erősen összefüggő reprezentációs-gráfbanteljesül
• Kifejezetten előnytelen, ha a reprezentációs-gráf egyirányított fa. (Például az n-királynő problémát csaktökéletes kiértékelő függvény esetén lehetne lokáliskereséssel megoldani.)
Gregorics Tibor Mesterséges intelligencia
memóriaigény futási idő
eredményesség hatékonyság
A heurisztika hatása a KR működésére
Gregorics Tibor Mesterséges intelligencia
A heurisztika olyan, a feladathoz kapcsolódó ötlet, amelyet
közvetlenül építünk be egy algoritmusba azért, hogy annakeredményessége és hatékonysága javuljon, habár erre általábansemmiféle garanciát sem ad.
heurisztika
KR hatékonysága
informáltság
költség
teljes
egy szabály kiválasztásának ideje (egy iterációs lépés)
szabály alkalmazások száma (iterációk száma)
számítási
költség
Gregorics Tibor Mesterséges intelligencia
ADAT := kezdeti érték
while terminálási feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok
ADAT := SZ(ADAT)
endloop
Forrás: Nilsson: Princ. of AI, pp. 54.
Heurisztikák
a 8-as (15-ös) tologató játékra Rossz helyen levő csempék száma:
W(this) = i,j 1this[i,j] 0 , this[i,j] cél [i,j]
Csempék célbeli helyüktől vett minimálistávolságainak összege (Manhattan):
P(this) = i,j (|icélbelisor (this[i,j])| + |jcélbelioszlop(this[i,j])|)
célbelisor (this[i,j]) ~ a this[i,j] célállapotbeli helyének sora célbelioszlop(this[i,j]) ~ a this[i,j] célállapotbeli helyének oszlopa
„Széleken levő csempék legyenek jók” (frame):
Hány olyan csempe van a szélen, amelyiket nem a célbeliszomszédja követ az óra járásával megegyező irányban?
Hány olyan csempe van a szélen, amelyiknek belül kellene lenni?
Hány sarkokban (×2) nincs még a cél szerinti csempe?
Gregorics Tibor Mesterséges intelligencia
2 8 3
1
7
4
5
6
4
2
8
3 1
7
4
5 6
5 6
Gregorics Tibor Mesterséges intelligencia
Csúcs utódainak sorrendje: < left, up, right, down >W
2 8 3
1
7
4
5
2 8 3
1
7 6
4
5
6
2 8 3
1
7
4
5 6
2
8 3
1
7
4
5 6
2
8 3
1
7
4
5 6
2
8 3 1
7
4
5 6
2
8 3 1
7
4
5 6
2 8
3 1
7
4
5 6
2 8
3 1
7
4
5 6
2
8
3 1
7
4
5 6
3 3
3 3 3
03 2 1
l:5, u:3, r:5, d:- l:3, u:3, r:4, d: l:-, u:3, r:, d:4
l:3, u:, r:4, d:4 l:, u:-, r:4, d:3
l:-, u:2, r:, d:4 l:, u:-, r:2, d:0
l:-, u:-, r:3, d:
l:-, u:-, r:1, d:
4
Gregorics Tibor Mesterséges intelligencia
2 8 3
1
7
4
5
2 8 3
1
7 6
4
5
6
2
8
3
1
7 6
4
5
2
8
3
1
7 6
4
5
2
8
3 1
7 6
4
5
2
8
3 1
7 6
4
5
4
3
01
2
P 5 Csúcs utódainak sorrendje: < left, up, right, down >
l:6, u:4, r:6, d:- l:5, u:3, r:5, d:
l:2, u:-, r:4, d:
l:-, u:, r:0, d:2
l:-, u:-, r:, d:1
W: l:3, u:3, r:4, d:
-
8/18/2019 Mesterséges Intelligencia
13/61
4
Heurisztikák
a Fekete- fehér kirakóra
Inverziószám:
I(this)= minimálisan hány csere kell ahhoz, hogyminden fehér minden feketét megelőzzön
Módosított inverziószám:
M(this)= 2 ⋅ I(this) (1, ha this-nek része vagy )
Gregorics Tibor Mesterséges intelligencia Gregorics Tibor Mesterséges intelligencia
start
cél
cél
cél cél
2
22
2 1
11
1
0
4
34
23
12
1
0
Inv 2*I nv - ?1
0
0
0
0
00
Heurisztikák
a Hanoi tornyai problémára
Darab: C(this) = i=1..n 1 this[i]1
Súlyozott darab: WC(this) = i=1..n i this[i]1
Összeg: 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=2..n 1 + i=2..n‒ 1 2 this[i 1]>this[i] this[i 1]=this[i+1] this[i] this[i 1]
Gregorics Tibor Mesterséges intelligencia
Heurisztikák
a Hanoi tornyai problémára
Tökéletes: P(v) = f(1)1 f :[1..n+1]ℕ×ℕ
f(i)1 : célba éréshez szükséges lépések száma, ha csak az i és n közöttikorongok számítanak, a kisebb korongok mintha nem is lennének.
f(i)2 : az a rúd, amelyikre nincs szükség az i és n közötti korongok célbarakásának első lépésénél.
f(n+1) = (0, 1)
( 2 ⋅ f(i)1 , f(i)2 ) ha v[i – 1]= f(i)2
(2 ⋅ f(i)1+1, 6 – f(i)2 – v[i – 1] ) ha v[i – 1] f(i)2 f(i – 1)=
Gregorics Tibor Mesterséges intelligencia
Amikor az i – 1-dik korongot is beszámítjuk, akkor ez a ná lánál
nagyobb korongok mozgatásánál mindig „útban” lesz ( tehát mindigfélre kell tenni), kivéve a legelső lépésnél, ha éppen az f(i)2 rúdonvan. Emiatt megduplázódik a lépések eddig kalkulált száma, majda végén az i – 1-dik korongot is a helyére kell tenni
-
8/18/2019 Mesterséges Intelligencia
14/61
1
2. Visszalépéses keresés
Gregorics Tibor Mesterséges intelligencia
Visszalépéses keresés
A visszalépéses keresés egy olyan KR
– globális munkaterülete: • egy út a startcsúcsból az aktuális csúcsba (ezen kívül
az útról leágazó még ki nem próbált élek) • Kezdetben a startcsúcsot tartalmazó nulla hosszúságú út • terminálás célcsúccsal vagy startcsúcsból való visszalépéssel
– 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ésszabálya)
– vezérlés stratégiája a visszalépés szabályát csak alegvégső esetben alkalmazza
Gregorics Tibor Mesterséges intelligencia
Visszalépés feltételei
zsákutca: az aktuális csúcsból (azaz az aktuális útvégpontjából) nem vezet tovább él
zsákutca torkolat: az aktuális csúcsból kivezető utak nemvezettek 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
Alacsonyabb rendű stratégiák
Gregorics Tibor Mesterséges intelligencia
Ez elsődleges vezérlési stratégia kiegészíthető:
o sorrendi szabály: sorrendet ad az aktuális útvégpontjából kivezető élek (utak) vizsgálatára
o vágó szabály: megjelöli azokat az aktuális útvégpontjából kivezető éleket (utakat), amelyeket nem
érdemes megvizsgálni Ezek a szabályok lehetnek
o másodlagos vezérlési stratégiák (a problémamodelljének sajátosságaiból származó ötlet )
o heurisztikák (a probléma ismereteire támaszkodó)
Első változat
A visszalépéses algoritmus első változata az, amikor avisszalépés feltételei közül az első kettőt építjük be a keresőrendszerbe.
Véges körmentes irányított gráfokon (itt nem kell -gráf ) aVL1 mindig terminál, és ha létezik megoldás, akkor talál
egyet .
Rekurzív algoritmussal (VL1) szokták megadni
– Indítás: megoldás := VL1( startcsúcs)
Gregorics Tibor Mesterséges intelligencia
Recursive procedure VL1(akt ) return megoldás
1. if cél (akt ) then return(nil ) endif
2. for új (akt ) loop3. 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) loopSELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT)
endloop
-
8/18/2019 Mesterséges Intelligencia
15/61
2
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛
♛ ♛
♛ ♛
♛ ♛ ♛
♛ ♛ ♛
♛
♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛
♛ ♛ ♛
♛ ♛
♛
♛ ♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ ♛
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. reprezentáció
Statikus nyomkövetés
Gregorics Tibor Mesterséges intelligencia
n-királynő probléma 2. reprezentáció
♛
♛ ♛
♛ ♛ ♛
♛ ♛
♛ ♛ ♛
♛ ♛
♛ ♛
♛ ♛
♛ 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 lennecsak az aktuális csúcsot tárolni.
A mezőkhöz rendelt értékek alapján rendezzük sorba a mezőket. 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.
Szabad (ütésben nem álló) mezők száma: a mezőrehelyezés után a táblán maradt szabad mezők száma.
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 4
4 3 2 11 2 3 44 3 2 1
♛ 1 2
3
Heurisztikák az n-királynő problémára
diagonális + ptl-psdiagonális + legbalabb
n = 4 Nincs Diag Diag + ptl-ps
2. repr. 22/48 2/8 0/4
3. repr. 4/12 0/4 0/4
4 ♛ 3 4
3 4 4 3
3 4 4 3
4 3 3 4
♛ ♛
♛
♛ ♛
Gregorics Tibor Mesterséges intelligencia
2. repr. Nincs Diag
n = 4 22/48 2/8
n = 5 0/5 2/9
n = 6 25/56 3/12
n = 10 92/194 103/216
4/1 3/2 3/3 4/4
3/4 4/3 4/2 3/1
3/1 4/2 4/3 3/4
4/4 3/3 3/2 4/1
♛
♛
♛
♛
VL1
heurisztika nélkül
k=6
A k -adik királynő elhelyezése utána hátralevő üres sorokból töröljükaz ütésbe került szabad mezőket.
for i=k+1 .. n loop
Jelöl(i,k)
Ha Szabad k = ∅ , akkor visszalép.
Szabad 6 ∅
♛
♛
♛
♛
♛
Gregorics Tibor Mesterséges intelligencia
n-királynő probléma 3. reprezentáció
Szabad i = {az i-dik sor szabad mezői}
Jelöl (i,k ) : törli az i-dik sor azonszabad mezőit, amelyeket a k -dikkirálynő üt
standard VL1
Vágás: Forward Checking
FC algoritmus:
Nemcsak akkor lép vissza, haaz aktuális sorban nincs szabad(ütésben nem álló üres) mező,hanem
ha a hátralevő üres sorokvalamelyikében nincs márszabad mező,azaz r [k+1.. n]: Szabad r = ∅,akkor is visszalép.
k=4
Szabad 6 ∅
♛
♛
♛
♛
Gregorics Tibor Mesterséges intelligencia
-
8/18/2019 Mesterséges Intelligencia
16/61
3
Vágás: Partial Look Forward
PLF algoritmus:
FC +for i=k+1 .. n loop
for j=i+1 .. n loop
Szűr(i,j) k=3
i = 4, j = 6 Szabad 4 = ∅
♛
♛
♛
6
Gregorics Tibor Mesterséges intelligencia
Szűr(i,j) : törli az i-edik sor azonszabad mezőit, amelyekhez nemtalálható a j-edik sorban veleütésben nem álló szabad mező
Vágás: Look Forward
LF algoritmus:
FC +for i=k+1 .. n loop
for j=k+1 .. n és i j loop Szűr(i,j)
k=2
Szabad 6 ∅ i = 4, j = 3i = 5, j = 4
i = 6, j = 4i = 6, j = 5
♛
♛
3
4
4 4 5
Gregorics Tibor Mesterséges intelligencia
LF még egyszer
k=3
Szabad 6 ∅ i = 6, j = 4i = 6, j = 5
♛
♛
4 4 5
♛
Gregorics Tibor Mesterséges intelligencia
LF algoritmus:
FC +
for i=k+1 .. n loop
for j=k+1 .. n és i j loop Szűr(i,j)
AC1
AC1 algoritmus:
FC +
repeat
for i=k+1 .. n loop
for j=k+1 .. n és i j loop Szűr(i,j )
until volt törlés
i = 6, j = 41. menet
♛
♛
4 4
Gregorics Tibor Mesterséges intelligencia
AC1
i = 5, j = 62. menet
♛
♛
6
Gregorics Tibor Mesterséges intelligencia
AC1 algoritmus:
FC +
repeat
for i=k+1 .. n loop
for j=k+1 .. n és i j loop Szűr(i,j )
until volt törlés
i = 3, j = 5
i = 4, j = 5
i = 6, j = 3
AC1
♛
♛
3. menet
5
5
3
Gregorics Tibor Mesterséges intelligencia
AC1 algoritmus:
FC +
repeat
for i=k+1 .. n loop
for j=k+1 .. n és i j loop Szűr(i,j )
until volt törlés
-
8/18/2019 Mesterséges Intelligencia
17/61
4
AC1
♛
♛
4. menet
♛
♛
♛
♛
Gregorics Tibor Mesterséges intelligencia
AC1 algoritmus:
FC +repeat
for i=k+1 .. n loop
for j=k+1 .. n és i j loop Szűr(i,j )
until volt törlés
Az n-királynő problema modelljének speciális tulajdonságai
A bemutatott vágó stratégiák nem az n-királynő problémaextra ismereteire támaszkodtak, hiszen ezeket azoknál a
problémáknál is alkalmazhatjuk, amelyek modellje hasonlítaz n-királynő modelljéhez.
Melyek az n-királynő probléma modelljének jellegzetességei?o A problématér egy {1..n} … {1..n} Decart szorzat, és
ennek egy ( x1 ,…, xn) eleme egy lehetséges válasz, ahol xi mutatja az i-dik (sorbeli) királynő pozícióját.
o A helyes megoldásban egyetlen i,j[1..n]-re sincs ütés az i-dikés a j-dik királynő között. A “nincs ütes” feltétel (vagy korlát)egy C ij ⊆ {1..n} {1..n} bináris reláció, amelyet az ( x1 ,…, xn)-nek ki kell elégítenie: C ij( xi ,x j) ( xi x j xi‒ x j i‒ j ).
Gregorics Tibor Mesterséges intelligencia
Új reprezentációs módszer: Korlát -kielégítési modell
Egy probléma (bináris) korlát-kielégítési modellje:
o Keressük azt az ( x1 ,…, xn) D1 … Dn n-est ( Di véges) o amelyik minden megadott C ij ⊆ Di D j korlátot kielégít.
Másik példa: gráfszínezés probléma (n csúcs, m szín): o Az i-edik csúcs lehetséges színei: D i = {1, … , m} ( i=1..n )
o A gráfban szomszédos (i,j) csúcspárokra: C ij( xi ,x j) ( xi x j)
Gregorics Tibor Mesterséges intelligencia
Másodlagos vezérlési stratégia
A korábbi vágási ötletek leírhatók a korlátok segítségével: Jelöl (i,k ): Di := Di {e Di C ik (e, xk )}Szűr (i,j) : Di := Di {e Di f D j :C ij (e,f )}
Ezek a vágások C ij reláció jelentésétől függetlenülalkalmazhatók, ezért nem heurisztikák , hanem a modellezéssajátosságait kihasználó másodlagos vezérlési stratégiák .
Sorrendi másodlagos stratégiák is készíthetők a korlát-kielégítési modellhez: – Mindig a legkisebb tartományú változónak válasszunk értéket.
– Ha létezik korlát az xi és x j változó párra (C ij), akkor ezekértékének meghatározására lehetőleg egymás után kerüljön sor.
Gregorics Tibor Mesterséges intelligencia
A visszalépéses algoritmus második változata az, amikor avisszalépés feltételei közül mindet beépítjük a keresőrendszerbe.
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()
Második változat
Gregorics Tibor Mesterséges intelligencia
Recursive procedure VL2(út ) return megoldás
1. akt := utolsó_csúcs(út )
2. if cél (akt ) then return(nil ) endif
3. if hossza(út ) korlát then return(hiba) endif4. if akt maradék (út ) then return (hiba) endif 5. for új (akt ) − (akt ) loop6. megoldás := VL2( fűz(út , új))
7. if megoldás hiba then8. 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) loopSELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT)
endloop
-
8/18/2019 Mesterséges Intelligencia
18/61
5
Mélységi korlát szerepe
A VL2 nem talál megoldást (csak terminál), ha csak amegadott mélységi korlátnál hosszabb megoldási út van.
A mélységi korlát önmagában is biztosítja a terminálást körök esetén is.
– Ez akkor előnyös, ha nincsenek rövid körök (a kettőhosszú köröket kiszűri a szülőcsúcs vizsgálat).
– Ilyenkor nem kell a teljes aktuális utat átadni arekurzív hívásnál: elég annak hosszát az aktuáliscsúcs és annak szülője mellett.
Gregorics Tibor Mesterséges intelligencia
2
7 1
8 6
3
5 4
2 1
8
76
3
5 4
2
7 1
8
6
3
5 4
2
7 1
8 6
3
5 4
2
1
8
76
3
5 4
2
7 1
6 8
3
5 4
2
7 1
8
46
3
5
2
7 1
8
6 4
3
5
2
7
8
6 1
3
5 4
7 1
2
6 8
3
5 4
2
7 1
8
6 4
5 3
2 7
8
6 1
3
5 4
2
7 1
8
6 4
3 5
7 2
8
6 1
3
5 4
2
7 1
3
6 8
5 4
1
7
2
6 8
3
5 4
2
7 1
6 4
8
5 3
2
67
8 1
3
5 4
2
7 1
8 4
3
65
8
7 2
6 1
3
5 4
2
7 1
3
6 8
4
5
17
2
6 8
3
5 4
4
5 5 3
3 3 4
3 4 2 4
1
0 2 1
7 8
2
6
3
5 4
0.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Tologatós játék WMélységi korlát: 5 Heurisztika:
Gregorics Tibor Mesterséges intelligencia
Vágó heurisztika: akt. út hossza+W > MK
2
7 1
8 6
3
5 4
2 1
8
76
3
5 4
2
7 1
8
6
3
5 4
2
7 1
8 6
3
5 4
2
1
8
76
3
5 4
2
7 1
6 8
3
5 4
2
7 1
8
46
3
5
2
7 1
8
6 4
3
5
2
7
8
6 1
3
5 4
7
1 2
6
83
5
4 2
7
1 8
6
4
5
32 7
8
6
13
5
4 2
7
1 8
6
43 5
7
28
6
13
5
4 2
7
1 3
6
8
5
4
1
7
2
6 8
3
5 4
2
7 1
6 4
8
5 3
2
67
8 1
3
5 4
2
7 1
8 4
3
65
8
7 2
6 1
3
5 4
2
7 1
3
6 8
4
5
17
2
6 8
3
5 4
5
6 64
5 3 5
2
1
20
4
1
7 8
2
6
3
5 4
P0.
1.
2.
3.
4.
5.
Mélységi korlát: 5 Heurisztika: Tologatós játék
Gregorics Tibor Mesterséges intelligencia
Értékelés
ELŐNYÖK
– mindig terminál,talál megoldást
– könnyenimplementálható
– kicsi memória igény
HÁTRÁNYOK
– nem ad optimális megoldást.(iterációba szervezhető)
– kezdetben hozott rossz döntéstcsak 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
-
8/18/2019 Mesterséges Intelligencia
19/61
1
3. Gráfkeresés
A gráfkeresés olyan KR, amelynek
– globális munkaterülete: a reprezentációs gráfstartcsúcsból kiinduló már feltárt útjait tárolja(tehát egy részgráfot)
• kiinduló értéke: a startcsúcs,
• terminálási feltétel: megjelenik egy célcsúcs vagymegakad az algoritmus.
– keresés szabálya: egyik útvégi csúcs kiterjesztése
– vezérlés stratégiája: a legkedvezőbb csúcskiterjesztésére törekszik
Gregorics Tibor Mesterséges intelligencia
3.1. Általános gráfkereső algoritmus
keresőgráf (G) : a reprezentációs gráf eddig bejárt és eltárolt része nyílt csúcsok halmaza ( NYÍLT ) : kiterjesztésre várakozó
csúcsok, amelyeknek gyerekeit még nem vagy nem eléggé jól ismerjük
kiterjesztett csúcsok halmaza ( ZÁRT ) : azok a csúcsok,amelyeknek a gyerekeit már előállítottuk
kiterjesztés () : egy csúcs összes gyermekének előállításaa hozzájuk vezető élekkel együtt
kiértékelő függvény ( f : NYÍLT → ℝ) : kiválasztja amegfelelő nyílt csúcsot kiterjesztésre
Gregorics Tibor Mesterséges intelligencia
Procedure GK0
1. G := ({ start }, ∅); NYÍLT := { start }
2. loop
3. if empty( NYÍLT ) then return nincs megoldás
4. n := min f ( NYÍLT ) 5. if cél (n) then return van megoldás 6. NYÍLT := NYÍLT {n} (n)7. G := G {(n,m) A m(n)}8. endloop
end
Kezdetleges verzió
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
Kritika
Nem olvasható ki a megoldási út a kereső gráfból
Meg kell jegyezni a felfedezett utak nyomát.
Körökre érzékeny
Tároljuk el egy csúcsnál az odavezető eddig talált legjobb
út költségét. Ha újabb utat találunk, csak akkorfoglalkozzunk azzal, ha annak költsége még olcsóbb.
Nem garantál optimális megoldást (sőt még a megoldástsem)
Az eddig talált legjobb útköltségek tárolása ezen issegíthet.
Gregorics Tibor Mesterséges intelligencia
Gráfkeresés függvényei
: N → N szülőre visszamutató pointer – (n) = n csúcs egyik szülője, ( start ) = nil
• egy start gyökerű irányított feszítőfát jelöl kiG-ben: feszítőfa
Gregorics Tibor Mesterséges intelligencia
s
a b
c 2
2
2
1
3
2 1
0 start
g : N → ℝ költség függvény
– g (n) = c( start,n) – egy megtalált { start → n} út költsége
• Jó lenne ha minden n csúcsra a g(n) a szerinti start → n útköltségét mutatná, azaz és g konzisztens lenne.
• Jó lenne ha a minden n csúcshoz a G-belioptimális utakat jelölné ki, azaz a feszítőfa optimális lenne.
Az n csúcs korrekt , ha konzisztens: g(n)= c( start,n) és optimális: c( start,n)= min{ start ⟶n}G c( start,n).A G korrekt, ha minden csúcsa korrekt.
A korrektség fenntartása
Kezdetben: ( start ) := nil , g ( start ) := 0 Az n csúcs kiterjesztése után minden m(n) csúcsra o 1. Ha m új csúcs
azaz mG akkor(m) := n, g (m) := g (n)+c(n,m)
NYÍLT := NYÍLT {m}o 2. Ha m régi csúcs, amelyhez olcsóbb utat találtunk
azaz mG és g(n)+c(n,m)
-
8/18/2019 Mesterséges Intelligencia
20/61
2
Mégsem marad korrekt a kereső gráf
Ha mG és g(n)+c(n,m)
-
8/18/2019 Mesterséges Intelligencia
21/61
3
Mikor lesz a kereső gráf korrektcsökkenő kiértékelő függvény mellett?
Válasszuk ki az értékekből azt az F i (i=1,2,…) monoton növekedőrészsorozatot, amely a legelső értékkel kezdődik, majd mindig alegközelebbi nem kisebb értékkel folytatódik.
Csökkenő kiértékelő függvény használata mellett a GK
• kereső gráfja korrekt lesz valahányszor küszöbcsúcsot terjeszt ki
• soha nem terjeszt ki inkorrekt csúcsot
Gregorics Tibor Mesterséges intelligencia
i-dik küszöbérték
i-dik küszöbcsúcs
i-dik árok
f
start n2 ni ni+1 … … … …
F i F 2 F 1
F i+1
… …
Nevezetes nem-informált algoritmusok
Algoritmus Definíció Eredmények
Mélységi gráfkeresés
(MGK)
f = -g, c(n,m) = 1 végtelen gráfokban csakmélységi korláttal garantálmegoldást
Szélességi gráfkeresés
(SZGK)
f = g, c(n,m) = 1 optimális (legrövidebb)megoldást adja, ha van
egy csúcsot legfeljebb egyszerterjeszt ki
Egyenletes
gráfkeresés
(EGK)
f = g optimális (legolcsóbb)megoldást adja, ha van
egy csúcsot legfeljebb egyszerterjeszt ki
Kapcsolat a visszalépéses kereséssel
Kapcsolat Dijkstra algoritmussalGregorics Tibor Mesterséges intelligencia
Heurisztika a gráfkereséseknél
Heurisztikus függvénynek nevezzük azt a h:N →ℝ függvényt, amelyik egy csúcsnál megbecsüli acsúcsból a célba vezető („hátralévő”) optimális útköltségét.
h(n) mint T
c*(n,t ) = c*(n,T ) = h*(n)
(h*: N →ℝ )
Ez az eddiginél szigorúbb definíciója a heurisztikának.
Példák:
– 8-kirakó : W, P
– 0 (zéró függvény)?
Gregorics Tibor Mesterséges intelligencia
hátralevő optimális költség
Heurisztikus függvények tulajdonságai
Nevezetes tulajdonságok: – Nem- negatív: h(n) ≧ 0 n N – Megengedhető (admissible): h(n) ≦ h*(n) n N – Monoton megszorítás: h(n)‒ h(m) ≦ c(n,m) (n,m) A
(következetes)
Megjegyzés:
– 8-kirakó : W és P mindhárom tulajdonsággal bír.
– Zéró függvény mindhárom tulajdonsággal bír.
– h monoton + h célban nulla ⇒ h megengedhető
Gregorics Tibor Mesterséges intelligencia
Nevezetes heurisztikus algoritmusok
Algoritmus Definíció Eredmények
Előre tekintő gráfkeresés
f = h nincs említhető tulajdonsága
A algoritmus f = g+h és 0≦ h • megoldást ad, ha van megoldás(még végtelen gráfokban is)
A* algoritmus f = g+h és 0≦ h és
h ≦h*
• optimális megoldást ad, ha van(még végtelen gráfokban is)
Ac algoritmus f = g+h és 0≦ h és
h ≦ h* és
h(n)-h(m)≦
c(n,m)
• optimális megoldást ad, ha van
• ugyanazt a csúcsot nem terjesztiki kétszer
Gregorics Tibor Mesterséges intelligencia
2
7 1
8 6
3
5 4
2 1
8
76
3
5 4
2
7 1
8
6
3
5 4
2
7 1
8 6
3
5 4
2
7 1
6 8
3
5 4
2
7 1
8
6 4
3
5
2
7
8
6 1
3
5 4
2 7
8
6 1
3
5 4
7 2
8
6 1
3
5 4
2
7 1
3
6 8
5 4
4
5 5 3
3 3 4
3 4
1
7 8
2
6
W
még 6 lépés
7 1
2
6 8
3
5 4
1
7
2
6 8
3
5 4
17
2
6 8
3
5 4
3
5 4
19Gregorics Tibor Mesterséges intelligencia
1.
2.
3.
4.
-
8/18/2019 Mesterséges Intelligencia
22/61
4
2
7 1
8 6
3
5 4
2 1
8
7
6 3
5
4 2
7
1 8
6
3
5
4 2
7 1
8 6
3
5 4
2
7 1
6 8
3
5 4
2
7 1
8
6 4
3
5
2
7
8
6 1
3
5 4
7 1
2
6 8
3
5 4
2 7
8
6 1
3
5 4
7 2
8
6 1
3
5 4
2
7 1
3
6 8
5 4
1
7
2
6 8
3
5 4
17
2
6 8
3
5 4
4
6 6 4
5 5 6
6 7 5 7
5
5 7 1
7 8
2
6
3
5 4
g+W
20Gregorics Tibor Mesterséges intelligencia
1.
2.
3. 4.
5.
6.
2
7 1
8 6
3
5 4
2 1
8
7
6 3
5
4 2
7
1 8
6
3
5
4 2
7 1
8 6
3
5 4
2
7 1
6 8
3
5 4
2
7 1
8
6 4
3
5
2
7
8
6 1
3
5 4
7 1
2
6 8
3
5 4
2 7
8
6 1
3
5 4
7 2
8
6 1
3
5 4
2
7 1
3
6 8
5 4
1
7
2
6 8
3
5 4
17
2
6 8
3
5 4
5
7 75
7 5 7
5
5
75
7
1
7 8
2
6
3
5 4
g+P
21Gregorics Tibor Mesterséges intelligencia
1.
2.
3.
4.
5.
Fekete- fehér kirakó állapot gráfja
B W W _
22Gregorics Tibor Mesterséges intelligencia
B _ W W B W _ W
_ W B W
_W W B
W _ B W
W W B _
W W _ B
W B _ W
_ B W W
W B W _
W _ W B
start
cél
cél
cél cél
Gregorics Tibor Mesterséges intelligencia 23
B W W _
B _ W W B W _ W
W _ B WW B _ W
_ B W W
W B W _
W _ W B
start
cél
Mélységi gráfkeresés
01
2
1
3 4
4
5
f = g
Gregorics Tibor Mesterséges intelligencia 24
B W W _
B _ W W B W _ W
W _ B WW B _ W
_ B W W
W B W _
W _ W B
start
01
2
1
3 3
4
5
Szélességi gráfkeresés
_ W B W
W W B _
cél
2
4
f = g
Gregorics Tibor Mesterséges intelligencia 25
B W W _
B _ W W B W _ W
W _ B WW B _ W
_ B W W
W B W _
W _ W B
start
cél
22
2
2
1 1
1
0
I(v)= minimálisan hány csere kell,
hogy minden fehér
minden feketét megelőzzön
Előre tekintő gráfkeresés f = I
-
8/18/2019 Mesterséges Intelligencia
23/61
5
Gregorics Tibor Mesterséges intelligencia 26
B W W _
B _ W W B W _ W
W _ B WW B _ W
_ B W W
W B W _
start
0+21+2
2+2
1+2
3+1 3+1
4+1
A algoritmus
_ W B W
W W B _
cél
2+1
4+0
f = g + I
Gregorics Tibor Mesterséges intelligencia 27
B W W _
B _ W W B W _ W
W _ B WW B _ W
_ B W W
start
0+41+4
2+4
1+4
3+2 3+2
A algoritmus
_ W B W
W W B _
cél
2+2
4+0
f = g + 2*I
Gregorics Tibor Mesterséges intelligencia 28
B W W _
B _ W W B W _ W
W _ B WW B _ W
start
0+41+4 1+3
3+2 3+1
A algoritmus
_ W B W
W W B _
cél
2+2
4+0
f = g + 2*I (van BW_ vagy _BW rész)
Gregorics Tibor Mesterséges intelligencia 29
f Alg mo G
-g MGK 5 8 5
g SZGK 4 10 8
I Előre tekintő 5 8 5
g+I A alg 4 9 7
g+2*I A alg 4 8 6
g+2*I‒1(ha…) A alg 4 7 5
Elemzés
Ac alg Ac alg
Ac alg
3.3. A* algoritmus hatékonysága
Hatékonyság
Memória igény Futási idő
Zárt csúcsok számatermináláskor jól
jellemzi a keresőgráf méretét
Kiterjesztések száma a zárt csúcsok számához
viszonyítva
Olyan feladatokra vizsgáljuk a hatékonyságot, amelyeknekvan megoldása és ismert egy megengedhető heurisztikájatehát az A* algoritmus optimális megoldást talál hozzájuk.
Gregorics Tibor Mesterséges intelligencia
ZÁRT S ~ az S útkereső algoritmus által lezárt(kiterjesztett) csúcsok halmaza
Rögzítsünk egy feladatot és két, X és Y , útkereső algoritmust. X nem rosszabb Y-nál az adott feladaton, ha ZÁRT X ⊆ ZÁRT Y X jobb Y-nál az adott feladaton, ha ZÁRT X ⊂ ZÁRT Y
Ezek alapján összevethető 1. két heurisztika. (Például két eltérő heurisztikájú A*
algoritmus ugyanazon a feladaton.)
2. két útkereső algoritmus. (Például az A* algoritmus és egymásik – megengedhető heurisztika mellett szintén optimális
megoldást találó – útkereső algoritmus a megengedhetőheurisztikájú feladatok egy-egy részhalmazán.)
3.3.1. A memória igény vizsgálata
Gregorics Tibor Mesterséges intelligencia
-
8/18/2019 Mesterséges Intelligencia
24/61
6
Különböző heurisztikájú A* algoritmusokmemória igényének összehasonlítása
Az A1 (h1 heurisztikával) és A2 (h2 heurisztikával) A* algoritmusok közül az A2 jobban informált, mintaz A1, ha minden n N \T csúcsra teljesül, hogyh1(n)
-
8/18/2019 Mesterséges Intelligencia
25/61
7
Bizonyítható eredmények
A monoton heurisztikájú megengedhető feladatokra nézve az A*
algoritmus uralkodik a többi megengedhető algoritmuson. Az érdekes megengedhető problémákra (nem-patologikus: van
olyan optimális megoldási út, amelynek minden csúcsára h
-
8/18/2019 Mesterséges Intelligencia
26/61
8
B algoritmus futási ideje
Bizonyítható, hogy a B algoritmus ugyanúgy működik, mintaz A*, azzal a kivétellel, hogy egy árokhoz tartozó csúcsotcsak egyszer terjeszt ki.
Futási idő elemzése:• Legrosszabb esetben minden zárt csúcs küszöbcsúcs is, és
ezek először küszöbcsúcsként terjesztődnek ki, hiszencsökkenő kiértékelő függvényt használunk.
• Az első árok egyedül a startcsúcs, a második árok csak amásodik küszöbcsúcsból áll, általában az i-dik ároklegfeljebb az összes addigi (i‒ 1 darab) küszöbcsúcsottartalmazhatja (a start csúcs nélkül), az utolsó, a k -adikárokban pedig legfeljebb k ‒ 1 darab csúcs lehet.
• Az összes kiterjesztések száma tehát legfeljebb ½⋅k 2 Gregorics Tibor Mesterséges intelligencia
Heurisztika szerepe
Milyen a jó heurisztika?
– megengedhető: h(n) h*(n)• Bár nincs mindig szükség optimális megoldásra.
– jól informált: h(n) ~ h*(n)
– monoton: h(n)‒ h (m) c(n,m)• Ilyenkor nem érdemes B algoritmust használni
Változó heurisztikák:
– f=g+⋅ h ahol d – B’ algoritmus
Gregorics Tibor Mesterséges intelligencia
-
8/18/2019 Mesterséges Intelligencia
27/61
Gregorics Tibor Mesterséges intelligencia
IV. Célból indított keresés
Gregorics Tibor Mesterséges intelligencia
1. Visszafelé haladó keresés
Gregorics Tibor Mesterséges intelligencia
Ha a problématér a cél felől nézve egyszerűbb (kevesebbalternatívát mutat), mint a start felől nézve, akkor érdemesvisszafelé, a cél irányából a start felé haladó kereséstalkalmazni.
A megtalált megoldási utat azonban a starttól a célirányában kell értelmezni. (De vajon lehet-e, van-e mindenélnek inverze?)
start
cél
Visszafelé haladó keresés alkalmazásának oka, a talált megoldás értelmezése
Gregorics Tibor Mesterséges intelligencia
Kocka-világ probléma állapot - gráfja
A megoldási út megtalálása a célbóla start felé haladva egyszerűbb.
A
B
A
B
B
A
B
A
start
cél
A B
[3,3,3]
[3,2,1]
[1,3,3]
[1,2,3]
[2,2,3]
[2,2,1]
[3,1,1]
[1,1,1]
[2,3,3]
[2,1,3]
[1,1,3]
[3,1,3] [3,2,3]
[2,2,2]
[3,2,2]
[1,1,2]
[3,1,2]
[3,3,2] [3,3,1] [2,3,1] [2,1,1][1,2,2] [1,3,2]
[2,3,2]
[2,1,2] [1,2,1]
[1,3,1]
Két irányú keresés a Hanoi tornyai probléma állapotgráfján start
cél
Kancsók problémája
Három kancsóban, egy öt, egy három és egy két literesben, együttesen5 liter bor van. Kezdetben az öt literes kancsó van tele. Töltögetésselérjük el, hogy a két literesbe pontosan 1 liter bor kerüljön!
Állapottér : AT = map(key:ℕ, value:ℕ) ahol Keys={5,3,2 }invariáns: i [5,3,2] this[i] = 5 [this[5], this[3], this[2]]
i{5,3,2}: this[i] ≦ i
Művelet : Tölt (i,j): AT → AT (this : AT )HA i,j{5,3,2} és i j és min(this[i] , j‒ this[ j])>0
AKKOR this[i] , this[ j] :=this[i]‒ min(this[i] , j‒ this[ j]) ,
this[ j]+min(this[i] , j‒ this[ j])
Kezdőállapot : [5, 0, 0]
Célállapot : [ x, y, 1]
Gregorics Tibor Mesterséges intelligencia
A művelet őrzi az invariánst. Sőt akezdő állásból elérhető állásokbanmindig van egy üres vagy teli kancsó.
-
8/18/2019 Mesterséges Intelligencia
28/61
Kancsók - probléma állapot - gráfja
2 3 0 5 0 0
0 3 2 3 0 21 2 2
4 1 03 2 0
2 1 2
1 3 1 4 0 12 2 1 3 1 1
start
cél cél cél cél
Gregorics Tibor Mesterséges intelligencia Gregorics Tibor Mesterséges intelligencia
Miért nem oldja meg a kancsó- problémátegy visszafelé haladó keresés?
5 0 0
??
1
5l 3l 2l
A [4,0,1] célállapotból indulva a [4,0,1]→ [5,0,0] útkönnyen megtalálható, de ez nem adja meg a feladatmegoldását:nincs [5,0,0]
→ [4,0,1] út.(csak [5,0,0]
→ [2,3,0]→ [2,1,2]→ [4,1,0]→ [4,0,1] út van) A [2,2,1] célállapotból el lehet jutni a kezdőállapotba, de
[5,0,0]- ből egyáltalán nem vezet út a [2,2,1] célállapotba.
5l 3l 2l
Gregorics Tibor Mesterséges intelligencia
Visszafelé haladó keresés feltételei
Az éleknek legyen visszafelé irányuló párja(legalábbis a megtalált megoldási út mentén). • Állapottér -reprezentáció esetén ez azt jelenti, hogy a
műveleteknek legyen inverze.
Legyen ismert a célállapot, ahonnan majdelindíthatjuk a visszafelé haladó keresést.
Mit tegyünk, ha ezek a feltételek nem állnak fenn, demégis célból indított keresést szeretnénk végezni?
?? 2
1l
?? 2
1l
??
1 5l 3l 2l
5l 3l 2l 5l 3l 2l
cél
??
5l 3l 2l 1
Tölt23 Tölt32
[ x,y,1]
[ x,1,0][u,v,1][ x,3 1,2]
Tölt25 Tölt52
[5 1,y,2]↯
[1,y,0]↯
2. Probléma-redukció
Gregorics Tibor Mesterséges intelligencia
Tölt ij egy áttöltést jelöl i- ből j-be
állapot-halmaz
y=4 x=1 x=4 y=-1
Kancsók - probléma redukciós gráfja
[ x,y,1]
[ x,1,0][u,v,1][ x,2,2]
[ x,0,1][2,1,2][3,2,0][ x,3,1]
T 32 T 23 T 53 T 35
[4,1,0][2,3,0]
T 25 T 23
T 32 T 52
T 32 T 52
[3,0,2][1,2,2]
T 25 T 23
[2,1,2][5,0,0][0,3,2][3,2,0]
T 53 T 23 T 32 T 35
[2,3,0][3,0,2]
T 52 T 53
T 52 T 25
Gregorics Tibor Mesterséges intelligencia
[4,y,2]↯ [1,y,0] ↯
T 52 T 25
a redukció iránya ellentétesa műveletekével
Egyszerűbb, mint azállapotgráf , kicsielágazás faktorral
csak a 2-es
kancsót feltöltőműveletekkelredukálhatunk,
a többihaszontalan
csak a 2-es
kancsót kiürítőműveletekkelredukálhatunk
Kancsók probléma redukciós operátora
RTölt (i,j) : 2
AT ⟶2 AT ahol i,j[5,3,2] és i j∀ B 2 AT :
RTölt (i,j)(B)= { a AT │
i [5,3,2] a[i] = 5 és i[5,3,2]: a[i] ≦ i és min(a[i] , j‒ a[ j])>0 és
∀b B : b[i]=a[i]‒ min(a[i] , j‒ a[ j]) és b[ j]=a[ j]+min(a[i] , j‒ a[ j]) és
b[k ]=a[k ] (ahol k ≠i és k ≠j) }
Gregorics Tibor Mesterséges intelligencia
Tölt (i,j)-nek az i,j
paraméterekrevonatkozó része
Inv(this), most Inv(a)
Tölt ij hatása alapján
a this- ből (most a- ból) kiszámított b
Tölt (i,j)-nek this-re (most
a-ra) vonatkozó része
-
8/18/2019 Mesterséges Intelligencia
29/61
Gregorics Tibor Mesterséges intelligencia
Probléma-redukciós reprezentáció
Adott a probléma valamelyik állapottér -reprezentációja.(állapottér: AT , invariáns: Inv: AT ⟶ )
Az állapottér -reprezentáció minden M : AT ⟶ AT műveletéhezmegadunk olyan R M :2
AT ⟶2 AT leképezést (redukciósoperátor ), amely egy adott állapot-halmazhoz azon állapotokhalmazát rendeli, amely bármelyik állapotából az M műveleta megadott halmaz valamelyik állapotába vezet el.Formálisan: ∀ B2 AT : R M ( B) = { a AT │ Inv(a) és M (a) B }(Haszontalan a redukció, ha RTölt (i,j)(B)= ∅)
Kiinduló halmaznak egy csupa (többnyire az összes)célállapotot tartalmazó halmazt választjuk.
Célhalmazai a kezdőállapotot is tartalmazó halmazok. Gregorics Tibor Mesterséges intelligencia
Megjegyzés
Cél a redukciós operátorok olyan sorozatának megtalálása,amely csupa célállapotot tartalmazó halmazbólkezdőállapotot tartalmazó halmazba vezet. A megoldás aredukciós operátorokhoz tartozó műveletek visszafelékiolvasott sorozata lesz.
A probléma-redukció modellezhető egy olyan irányítottgráffal, ahol a csúcsok állapot-halmazokat, az irányított éleka hasznos redukálások, startcsúcs a kiinduló állapot-halmazt,célcsúcsok a célhalmazokat szimbolizálják. Üres, azaz ellentmondásos leírású állapot-halmaz csúcsából nem
indulnak ki élek.
Egy állapot-halmazból annak egy részhalmazába vivő út egy kör.
A
Amikor redukciós modellezésre van szükség
?
B
holding ( A), ontable( B), clear ( B)
Gregorics Tibor Mesterséges intelligencia
Ez az állapot-leírás hiányos (nem mond semmit a Ckockáról, azaz egy állapot-halmazt ad meg), ezért ebbőlindulva nem lehet a közönséges visszafelé haladókeresést indítani, hiszen – bár a műveleteknek van
inverzük, de – a hiányos állapot nem elégíti ki egyikművelet előfeltételét sem.
1. Olyan (ÁR -beli) műveletet keresünk, amely előállítjaa cél valamelyik elemi állítását (literálját).
2. Meghatározzuk azt az állapot-leírást, amelyállapotaiból a kiválasztott művelet a célba vezet.
?
Példa: Kockavilág probléma
Egy asztalon van néhány kocka (A,B,C,…), amelyeket egy robotkarmozgat: felemel, rátesz, levesz, lerak. Építsünk fel egy meghatározottalakzatot egy rögzített helyzetből kiindulva!
Állapottér : AT = 2 Alap
Az Alap az ontable(x), on(x,y), clear(x), handempty, holding(x)
elemi állítások (pozitív literálok) összes alap-előfordulásaittartalmazza: ontable(A), ontable(B), on(C,A), … stb.
invariáns: egy állapot nem tartalmaz ellentmondást (pl.: nem szerepel egyszerre on(C,B) és clear ( B))
Kezdőállapot : ontable(B), clear(B), ontable(A), on(C,A), clear(C),handempty
Célállapot : on(A,B), on(B,C)
Gregorics Tibor Mesterséges intelligencia
B A
C
hiányos állapot-leírás
Kockavilág probléma műveletei
Műveletek :
Pickup (x): AT → AT HA ontable(x),clear(x),handempty this (this : AT )
AKKOR this := this {ontable(x),clear(x),handempty }{holding(x)}
Putdown (x): AT → AT HA holding(x) this (this : AT )
AKKOR this := this {holding(x)}{ontable(x),clear(x),handempty}
Stack (x,y): AT → AT HA holding(x), clear(y) this (this : AT )
AKKOR this := this {holding(x), clear(y)}{on(x,y),clear(x),handempty}
Unstack (x,y): AT → ATHA on(x,y),clear(x),handempty this (this : AT )
AKKOR this := this {on(x,y),clear(x),handempty}{holding(x),clear(y)}Gregorics Tibor Mesterséges intelligencia
A B
C
Invariánst (ellentmondás-mentességet)és az állapot-leírás teljességét tartják.
A műveletek sémája másképp
M (u): AT⟶ AT { P M (u); D M (u); A M (u) }
Gregorics Tibor Mesterséges intelligencia
A B
C
stack (x,y): AT ⟶ AT
P : holding(x), clear(y)
D: holding(x), clear(y)
A: on(x,y),clear(x),handempty
unstack (x,y): AT ⟶ AT
P : on(x,y),clear(x),handempty
D: on(x,y),clear(x),handempty
A: holding(x), clear(y)
pickup (x): AT ⟶ AT
P : ontable(x),clear(x),handempty
D: ontable(x),clear(x),handempty
A: holding(x)
putdown (x): AT⟶ AT
P : holding(x)
D: holding(x)
A: ontable(x),clear(x),handempty
előfeltétel-, törlési-, bővítési lista
-
8/18/2019 Mesterséges Intelligencia
30/61
Példa: Egy állapot -leírás néhány redukciója
ontable (A),
clear(A),
handempty,
on(B,C),
clear(B)
holding(A) ,
on(B,C),
clear(B)
on (A,x),
clear(A),
handempty,
clear(B),
on(B,C)
on (A,B),
clear(A),
handempty,
on(B,C),
true
Gregorics Tibor Mesterséges intelligencia
Itt az ÁR műveleteiből képzettredukciós operátorokat alkalmazzuk
A redukciós operátor és annak alkalmazása
Kiválasztjuk az elérendő állapot-leírásban ( X ) az egyik
megvalósítandó L literált. Keresünk egy olyan művelet-sémát, amelynek bővítési listáján
megfelelő paraméterek megadása mellett szerepel az L literál.Jelöljük a művelet-sémának az így paraméterezett példányát M -mel. Tehát L A M .
Kiszámoljuk a megelőző állapot-leírást ( R M ( X )):
az M művelet előfeltételét: P M
a célállapotbeli literáloknak a megelőző állapot-leírásbanszükséges alakjait: Reg [ L; M ]
Redukciós operátor formálisan: R M ( X ) = P
M ⋀ L∊ X Reg [ L; M ]
Gregorics Tibor Mesterséges intelligencia
Regresszió
Reg [ L; M ] =
L ha L A M és L D M
true ha L A M
false ha L D M
Ez a L literálnak az M műveletre vett regressziója (elődje).
Gregorics Tibor Mesterséges intelligencia
Egy X állapot-leírás L literáljának az alábbi formában kellszerepelnie az R M ( X ) állapot-leírásban ahhoz, hogy az L az M műveletet végrehajtása után megjelenjen X állapotaiban: