Mesterséges Intelligencia MI Keresés ellenséges környezetben Dobrowiecki Tadeusz Eredics Péter, és mások
BME I.E. 437, 463-28-99
[email protected], http://www.mit.bme.hu/general/staff/tade
Ellenség elleni játékok, kétszemélyes játékok, ... Probléma: nem csak mi lépünk, az ellenség is lép nem tudjuk, mit fog lépni mindenre fel kell készülni megfelelő válaszlépéssel, azaz stratégiával
(l. korábban „eshetőségi” problématípus) zérus-összegű, vagy sem? keresés eredménye = stratégia = optimális/jó válasz az ellenség minden lépésére volt már(?): MDF, U(s), Q(s), optimális stratégia
Sakk: Játék állapottere: állások száma (1047) Játék játékfája: játékok száma (10123) (Átlagos) elágazás: (35)
Minimax gondolata
Tulajdonságai Teljes? Igen, ha a fa véges. Optimális? Igen, egy optimálisan játszó ellenféllel szemben. Különben? Időkomplexitás? O(bm) Tár? O(bm) (mélységi jelleg miatt) (sakk: b ≈ 35, m ≈ 80 ? O(10123)) (de szükséges minden ágat feltárni?)
Nim II-Nim
1. Bizonyos számú gyufakupac. 2. Egy lépésben egy játékosnak tetszőleges sz. gyufát szabad elvenni, de csakis egyetlen egy kupacról. 3. Aki az utolsó veszi el, veszít.
+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
+1
+1
+1
+1
-1
-1
-1
+1
+1
-1
+1
+1
-1
-1
-1
-1
+1
+1
-1
+1
-1
-1
+1
(A játék megoldása: Aki kezd, az veszít, ha az ellenfél optimálisan játszik)
Dámajáték megoldva, hibátlan játék döntetlenhez vezet! Dámajáték keresési tere kb. 5 x 1020 pozició. Történelem 1950 - Arthur Samuel öntanuló programja 1963 – 1 győztes parti tehetséges emberjátékos ellen 1989 - Chinook projekt, legyőzni emberi világbajnokot 1990 - Chinook jogosult Világbajnokságban részt venni 1992 - Marion Tinsley világbajnok a világbajnoki címért folytatott mérkőzésen nehezen felül kerekedik 1994 – visszavágó, Tinsley egészségi állapota miatt visszalép, rövidesen meghal 1996 - Chinook minden emberi játékosnál erősebb
-1
A számítások története 1989 – 2007 1992 csúcs: több, mint 200 processzor 2006-2007 átlagosan 50 processzor A leghosszabb folyamatosan futtatott elosztott számítás ezidáig
Számítások és az informatikai rendszerek megbízhatósága Nagy méretű adatfájlok gyakori mozgatása helyi diszkre, hálózaton más gépre hibák évente többször (duplikálás, ellenőrzés) Kiszámított kész adatbázisok periodikus ellenőrzése adatvesztés veszélye miatt (“bit rot”), másolatmentés, újraszámítás diszk gyártók jótállása – 10 -13 hibaarány számítások annál sokkal bonyolultabbak
http://webdocs.cs.ualberta.ca/~chinook/
-1
Minimax algoritmus
Jogos levágások (cut-off)
Tegyük fel, hogy tudjuk, hogy a játék kimenetele csakis -1 és 1. Spórolhatunk-e a számításokból? És ha valós?
Minimax algoritmus
Minimax és alfa-béta nyesés
MAX
Játékfa generálása mélység először MIN =2 jelleggel, d mélységig. Ha lehetséges, a kiértékelő függvényértékek becsléseinek (alfa és béta értékek) MAX visszaterjesztése . 2 7 A végleges döntést befolyásolni nem képes ágak nyesése. Garantált minimax eredmény kevesebb ill. legalább ugyanannyi számítással.
>=2 <=1
1
?
Minimax és alfa-béta nyesés Nyesés a végeredményt nem befolyásolja. Jó lépésrendezés fokozza a nyesés hatékonyságát "Tökéletes rendezéssel" az időkomplexitás = O(b m/2) Átlagosan = O(b 3m/4) a keresés mélységét duplázza (sakknál O(b m/2) = O((√b)m) effektív b az eredeti 35 helyett: b = √ 35 ≈ 6)
Ha m a Játékos számára jobb, mint n, akkor a játék során sosem fogunk elérni n-be.
http://inst.eecs.berkeley.edu/ ~cs61b/fa14/ta-materials/apps/ ab_tree_practice/
Kiértékelő függvények Állapot → szám leképezés. Minél nagyobb a szám, annál értékesebb az állapot (pozíció).(ld. implicit állapotábrázolás a megerősítéses tanulásnál) Adott állapot minősítése – egy bizonyos mélységű keresési fa bejárása, ahol a levelek nem a játék végállapotai, hanem a kiértékelő függvénnyel minősített közbülső állapotok. Játék elején (a célállapottól messze a kiértékelő függvény pontatlan, valamilyen mélységű kereséssel kell párosítani. Játék végén (a célállapothoz közel) a kiértékelő függvény olyan pontos is lehet, hogy az állapot jellemzésére akár közvetlenül is alkalmazható.
Deep Blue I – Deep Blue II, 6400 – 8000 jellegfüggvény (chess chip) http://www.sciencedirect.com/science/article/pii/S0004370201001291
Játékfa véletlen elemet tartalmazó teljes információjú játékoknál Játékosak döntésállapotai + a „természet” véletlen állapotai = esélycsomópontok (chance nodes), a problémára jellemző valószínűségekkel. Állapotértékelés = végleges várható értékeke. ...
Egyágenses problémák = speciális 2 ágenses játékproblémák a másik ágens a környezet: … nem törődik semmivel (nem ellenséges) … a nyeresége az ágens költsége (ellenséges)
Kis HF9
Játékszabályok: 1. Piros lép elsőnek. 2. Mindenki lépéskényszerben van. 3. Játékos léphet valamelyik szomszédos mezőre, ha az szabad, ill. átugarhatja az ellenfelét, ha az vele szomszédos és a mögötte lévő mező üres. 4. Az győz, aki elsőnek éri el az ellenfél kiinduló pozicióját.
Feladatok/kérdések: 1. Rajzolja fel (kockás papír preferált) a játék játékfáját! (Ügyeljen arra, hogy a oda-vissza lépések miatt a játékfa végtelen ágakat is tartalmaz. Azokat a húrkok bevezetésével szüntesse meg!) 2. Érjen a piros győzelme +1, a fehér győzelme -1 pontot. Minimax algoritmussal állapítsa meg a gyökér értékét (azaz ki a biztos győztes)! A számításnál ügyesen vegye figyelembe a húrkok létezését.