Mesterséges intelligencia 3. laborgyakorlat

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Mesterséges intelligencia 3. laborgyakorlat"

Átírás

1 Mesterséges intelligencia 3. laborgyakorlat Kétszemélyes játékok - Minimax A következő típusú játékok megoldásával foglalkozunk: (a) kétszemélyes, (b) determinisztikus, (c) zéróösszegű, (d) teljes információjú. A következő fogalmakat vezetjük be: 1. állapot, kiinduló állapot 2. játékfa 3. végteszt 4. hasznosságfüggvény vagy nyereségfüggvény 5. stratégia 6. lépés - féllépés (ang. ply) 7. MAX, MIN a két játékos. MAX kezd, és a nyereségét próbálja maximizálni; MIN a veszteségét próbálja minimizálni. 8. MAX illetve MIN csomópontok. A minimax algoritmus optimális stratégiát ad MAX kezébe: 1. generáljuk a teljes játékfát a le a végcsomópontokig 2. alkalmazzuk a terminális csúcsokra a hasznosságfüggvényt 3. alulról felfele haladva, annak függvényében, hogy MIN vagy MAX csomóponton vagyunk számítsuk ki a gyerek csúcsok minimumát, vagy maximumát, és ezt az értéket rendeljük hozzá az aktuális csúcshoz. Ez lesz a csúcs minimax értéke. A gyökér minimax értéke megadja, hogy mekkora MAX nyeresége abban az esetben, ha MIN a lehető legjobban játszik. (Ha MIN nem játszik optimálisan, akkor MAX nyeresége ennél nagyobb lesz.)

2 A minimax algoritmus 1 int minimax(state s) 3 if (end_of_game(s)) return utility(s); 4 state * children; 6 int best_value = is_max_node(s)? -INFINITY: +INFINITY; 7 if (is_max_node(s)){ 8 for (int i = 0; i < n; i++){ 9 best_value = max(best_value, minimax(children[i]); 12 else{ 13 for (int i = 0; i < n; i++){ 14 best_value = min(best_value, minimax(children[i]); 15 } 16 } return best_value; Mélységkorlátozott minimax A keresési fa a nemtriviális játékok esetén túl nagy ahhoz, hogy teljes keresést végezzünk rajta. Ezért a keresés csak egy bizonyos előre meghatározott mélységig folyik. 1 int minimax(state s, int depth) 2 if (depth==0 end_of_game(s)) return heuristic_eval(s); 3 state * children; 4 int n = generate_children(s, &children); 5 int best_value = is_max_node(s)? -INFINITY: +INFINITY; 6 7 if (is_max_node(s)){ 8 for (int i = 0; i < n; i++){ 9 best_value = max(best_value, minimax(children[i],depth-1); 12 else{ 13 for (int i = 0; i < n; i++){ 14 best_value = min(best_value, minimax(children[i],depth-1); 15 } 16 } return best_value; Kérdések: 1. Milyen mélységig elemezzük ki a fát? 2. Mit csináljon a heuristic_eval? Iteratívan mélyülő keresés Mivel nem tudjuk, hogy milyen mélységig keressünk és csak korlátozott idő áll a rendelkezésre, ezért keressünk rendre 0, 1, 2, 3, stb. mélységig. Mikor lejárt az idő, térjünk vissza azzal annak a mélységnek a minimax értékével, amelyet még sikerült teljesen kiértékelni.

3 NegaMax A klasszikus minimaxban az egyik játékos maximalizálni, a másik minimizálni akarja ugyanazt az függvényt. Kis módosítással egyszerűsíteni lehet a kódot, úgy, hogy mindkét játékos maximizálni akarjon. Vegyük észre, hogy az algoritmus komplexitása ezzel nem változik. 1 int negamax(state s, int depth) 3 if (depth==0) return heuristic_eval(s); 4 state children; 6 int best_value = -INFINITY; 7 for (int i = 0; i < n; i++){ 8 best_value = max(best_value, -negamax(children[i], depth-1); 9 } 10 return best_value; Feladatok. 1. Minimax algoritmust használva implementálja a Tic-tac-toe játékot. Használja a következő nyereségfüggvényt: +1, ha s nyerő pozíció MAX-nak f (s) = 1, ha s nyerő pozíció MIN-nek 0 ha s döntetlen pozíció Beküldési határidő: március 31, 23:59. Grafikus interfész nem szükséges. Alfa-béta nyesés Ugyanannyi idő alatt nagyobb mélységben járhatjuk be a játékfát, ha bizonyos részfákat nem értékelünk ki. A lenyesendő részfát úgy kell kiválasztani, hogy az ne befolyásolja a keresés minőségét. Az ötlet a következő. Ha egy lépésről már eleve tudjuk hogy rossz, akkor ne töltsünk időt azzal, hogy kiértékeljük, hogy valójában mennyire rossz az illető lépés. Vegyük a következő kifejezést: max(6, min(5, x)) Ennek a kifejezésnek az értéke 6 lesz, függetlenül x értékétől. Ezért az x csomópontot nem kell kifejteni, mert nem fogja befolyásolni az eredményt. x-et tehát lenyeshetjük. Hasonlóan a min(5, max(6, Y )) kifejezés értéke is az x értékétől függetlenül 5 lesz. Tehát az y-al kezdődő részfát is levághatjuk. Nézzünk egy komplexebb példát: A 1 a minimax értékét a hagyományos módon számoljuk ki. Rögtön következik, hogy MAX-nak legalább 3 a minimax értéke, tehát az A 1 alsó korlátot jelent a gyökér minimax értékére (a gyökér minimax értéke háromnál kisebb nem lesz). Lemegyünk A 2 felé, kiszámoljuk A 21 -t, ami 2. Mivel a gyökér minimax értéke legalább 3, és az A 2 legfönnebb 2-t fog felhozni, ezért A 22 -t, és A 23 -at nincs értelme kiértékelni.

4 A feladat tehát, hogy visszatérjünk a csúcs minimax értékével, miközben lenyessük a nem releváns ágakat. A megoldás folyamán két értéket fogunk tárolni, és frissíteni: α - az a legkisebb érték, amelyre MAX számíthat (kezdetben ), illetve β - az a legnagyobb érték, amelyre MIN számíthat (kezdetben + ) 1 int alpha_beta(state s, int depth, int alpha, int beta) 3 if (depth==0 end_of_game(s)) return heuristic_eval(s); 4 state * children; 6 if (max_node(s)){ 7 for (int i = 0; i < n; i++){ 8 alpha = max(alpha, alpha_beta(children[i], depth-1, alpha, beta)); 9 if (alpha >= beta) return alpha; 11 return alpha; 12 } 13 else{ 14 for (int i = 0; i < n; i++){ 15 beta = min(beta, alpha_beta(children[i], depth-1, alpha, beta)); 16 if (alpha >= beta) return beta; 17 } 18 return beta; 20 } Egy csúcs kibontásakor a gyerekek által visszatérített minimax érték alsó (felső) korlátot jelent az aktuális csúcs számára. Az algoritmus a legjobb alsó korlátot folyamatosan α-ban, a legjobb felső korlátot β-ban tárolja. Ha a keresés folyamán egy olyan X állapotba jutunk, ahol α β, akkor ez azt jelenti, hogy az illető pozíciót nem egy olyan játék eredményezte, ahol MIN és MAX is optimálisan játszik, tehát nincs értelme tovább értékelni. Az alfabéta nyesés hatékonysága nagyban függ attól, hogy egy X csúcs gyerek csomópontjai milyen sorrendben követik egymást. Ha például az A 3 ágon a gyerekek a 2-es értékű csomóponttal kezdődtek volna, akkor az A 32 és A 33 ágakat le lehetett volna nyesni. Ideális volna, ha a gyerek csúcsokat rendezni lehetne, s annak függvényében hogy mennyire ígéretesek, sorban kibontani őket. A gyerekeket nem bonthatjuk ki teljes mélységben - így értelmetlenné válna rendezés. A gyakran alkalmazott megoldás az, hogy iteratívan mélyülő kereséssel rendelünk a gyerekekhez értékeket, majd eszerint rendezzük őket.

5 Feladatok. 1. Tesztelje a címen levő appletet. 2. EC + 2 pont. Felhasználva az alfa-béta nyesést, implementálja a malom játékot. GUI nem szükséges. Javasolt könyvészet. 1. Russel & Norvig: Mesterséges intelligencia modern megközelítésben, Panem Kiadó 2000, Budapest

Kockázati modellek (VaR és cvar)

Kockázati modellek (VaR és cvar) Kockázati modellek (VaR és cvar) BSc Szakdolgozat Írta: Kutas Éva Matematika BSc Alkalmazott matematikus szakirány Témavezet Mádi-Nagy Gergely egyetemi adjunktus Operációkutatási Tanszék Eötvös Loránd

Részletesebben

Kezdők és Haladók (I., II. és III. kategória)

Kezdők és Haladók (I., II. és III. kategória) ARANY DÁNIEL MATEMATIKAI TANULÓVERSENY 013/014-ES TANÉV Kezdők és Haladók (I., II. és III. kategória) Feladatok és megoldások A verseny az NTP-TV-13-0068 azonosító számú pályázat alapján a Nemzeti Tehetség

Részletesebben

Jelöljük az egyes területrészeket A-val, B-vel és C-vel, ahogy az ábrán látható.

Jelöljük az egyes területrészeket A-val, B-vel és C-vel, ahogy az ábrán látható. 1. feladat. 013 pontosan egyféleképpen írható fel két prím összegeként. Mennyi ennek a két prímnek a szorzata? 40 Megoldás: Mivel az összeg páratlan, ezért az egyik prímnek párosnak kell lennie, tehát

Részletesebben

Méretlánc átrendezés elmélete

Méretlánc átrendezés elmélete 1. Méretlánc átrendezés elmélete Méretlánc átrendezés elmélete Egyes esetekben szükség lehet, hogy arra, hogy a méretláncot átrendezzük. Ezeknek legtöbbször az az oka, hogy a rajzon feltüntetett méretet

Részletesebben

Számítások, hivatkozások

Számítások, hivatkozások Bevezetés Ebben a fejezetben megismerkedünk az Excel programban alkalmazható különböző hivatkozásokkal (relatív, vegyes, abszolút). Képesek leszünk különböző alapszintű számítások elvégzésére, képletek

Részletesebben

P (ξ < 490) = F ξ (490) = Φ( 490 m ) = 0.03 10

P (ξ < 490) = F ξ (490) = Φ( 490 m ) = 0.03 10 Valszám-megoldások. Feladat. Legyen P (A =, 3 és P (B =, 6... Kérdés. Mennyi P (A + B, P (AB, ill. P (A B, ha A és B függetlenek?... Megoldás. Ha A és B függetlenek, akkor A és B, valamint B és A, valamint

Részletesebben

GONDOLKODÁSI MÓDSZEREK

GONDOLKODÁSI MÓDSZEREK 0611. MODUL GONDOLKODÁSI MÓDSZEREK Hány eset van? KÉSZÍTETTE: PINTÉR KLÁRA 0611. Gondolkodási módszerek Hány eset van? Tanári útmutató 2 MODULLEÍRÁS A modul célja Időkeret Ajánlott korosztály Modulkapcsolódási

Részletesebben

Komplex számok algebrai alakja

Komplex számok algebrai alakja Komplex számok algebrai alakja Lukács Antal 015. február 8. 1. Alapfeladatok 1. Feladat: Legyen z 1 + 3i és z 5 4i! Határozzuk meg az alábbiakat! (a) z 1 + z (b) 3z z 1 (c) z 1 z (d) Re(i z 1 ) (e) Im(z

Részletesebben

Programozás I. zárthelyi dolgozat

Programozás I. zárthelyi dolgozat Programozás I. zárthelyi dolgozat 2013. november 11. 2-es szint: Laptopot szeretnénk vásárolni, ezért írunk egy programot, amelynek megadjuk a lehetséges laptopok adatait. A laptopok árát, memória méretét

Részletesebben

A szöveges feladatok megoldásának nehézségeiről a nyolcadik osztályos diákok körében

A szöveges feladatok megoldásának nehézségeiről a nyolcadik osztályos diákok körében A szöveges feladatok megoldásának nehézségeiről a nyolcadik osztályos diákok körében Fülöp Zsolt Szegedi Tudományegyetem Bolyai Intézet, Szeged fulop.zs32@freemail.hu A korszerű matematika oktatás egyik

Részletesebben

6. előadás Környezetfüggetlen nyelvtanok/1.

6. előadás Környezetfüggetlen nyelvtanok/1. 6. előadás Környezetfüggetlen nyelvtanok/1. Dr. Kallós Gábor 2013 2014 1 Tartalom Bevezetés CF nyelv példák Nyelvek és nyelvtanok egy- és többértelműsége Bal- és jobboldali levezetések Levezetési fák A

Részletesebben

24. Valószínűség-számítás

24. Valószínűség-számítás 24. Valószínűség-számítás I. Elméleti összefoglaló Események, eseménytér A valószínűség-számítás a véletlen tömegjelenségek vizsgálatával foglalkozik. Azokat a jelenségeket, amelyeket a figyelembe vett

Részletesebben

Oszthatósági problémák

Oszthatósági problémák Oszthatósági problémák Érdekes kérdés, hogy egy adott számot el lehet-e osztani egy másik számmal (maradék nélkül). Ezek eldöntésére a matematika tanulmányok során néhány speciális esetre látunk is példát,

Részletesebben

OPERÁCIÓKUTATÁS. No. 2. Komáromi Éva LINEÁRIS PROGRAMOZAS

OPERÁCIÓKUTATÁS. No. 2. Komáromi Éva LINEÁRIS PROGRAMOZAS OPERÁCIÓKUTATÁS No. 2. Komáromi Éva LINEÁRIS PROGRAMOZAS Budapest 2002 Komáromi Éva: LINEÁRIS PROGRAMOZÁS OPERÁCIÓKUTATÁS No.2 Megjelenik az FKFP 0231 Program támogatásával a Budapesti Közgazdaságtudományi

Részletesebben

Skatulya-elv. Sava Grozdev

Skatulya-elv. Sava Grozdev Skatulya-elv Sava Grozdev Egy alapvető szabály, azaz elv azt állítja, hogy: ha m testet szétosztunk n csoportba és m > n, akkor legalább két test azonos csoportba fog kerülni. Ezt az elvet különböző országokban

Részletesebben

Euler kör/út: olyan zárt/nem feltétlenül zárt élsorozat, amely a gráf minden élét pontosan egyszer tartalmazza

Euler kör/út: olyan zárt/nem feltétlenül zárt élsorozat, amely a gráf minden élét pontosan egyszer tartalmazza 1) Euler körök és utak, ezek létezésének szükséges és elégséges feltétele. Hamilton körök és utak. Szükséges feltétel Hamilton kör/út létezésére. Elégséges feltételek: Dirac, és Ore tétele. Euler kör/út:

Részletesebben

Transzformátorok tervezése

Transzformátorok tervezése Transzformátorok tervezése Többféle céllal használhatunk transzformátorokat, pl. a hálózati feszültség csökken-tésére, invertereknél a feszültség növelésére, ellenállás illesztésre, mérőműszerek méréshatárának

Részletesebben

Róka Sándor. 137 számrejtvény. Megoldások

Róka Sándor. 137 számrejtvény. Megoldások Róka Sándor számrejtvény Megoldások Budapest, 008 A könyv megjelenését a Varga Tamás Tanítványainak Közhasznú Emlékalapítványa támogatta. Róka Sándor, Typotex, 008 ISBN 98 9 9 89 0 Témakör: matematika

Részletesebben

Einhorn Ágnes. FEJLESZTÉS VAGY VIZSGATRÉNING? A fejlesztõ- és a mérõfeladatok különbségei

Einhorn Ágnes. FEJLESZTÉS VAGY VIZSGATRÉNING? A fejlesztõ- és a mérõfeladatok különbségei Einhorn`.qxp 2008.07.03. 6:01 Page 147 147 Einhorn Ágnes FEJLESZTÉS VAGY VIZSGATRÉNING? A fejlesztõ- és a mérõfeladatok különbségei A feladat a tanulási-tanítási folyamat legfontosabb alapegysége, mégis

Részletesebben

Mikor vásárolj, és mikor adj el a profit eléréséért?

Mikor vásárolj, és mikor adj el a profit eléréséért? Mikor vásárolj, és mikor adj el a profit eléréséért? A TŐZSDEI GRAFIKONOK ELEMZÉSE 1. Bevezetés A grafikonok elemzése még sosem volt ennyire népszerű. Ennek az az egyik oka, hogy manapság már olcsón lehet

Részletesebben

Segítenek az egyszerűbb esetek Róka Sándor, Nyíregyháza

Segítenek az egyszerűbb esetek Róka Sándor, Nyíregyháza Magas szintű matematikai tehetséggondozás Segítenek az egyszerűbb esetek Róka Sándor, Nyíregyháza 1. feladat Igaz-e, hogy 111111222222 két szomszédos egész szám szorzata? A feladat jó példa arra a problémahelyzetre,

Részletesebben

MUNKAANYAG. Gábler Gergely. Befektetési lehetőségek elemzése. A követelménymodul megnevezése: Pénzügyi feladatok

MUNKAANYAG. Gábler Gergely. Befektetési lehetőségek elemzése. A követelménymodul megnevezése: Pénzügyi feladatok Gábler Gergely Befektetési lehetőségek elemzése A követelménymodul megnevezése: Pénzügyi feladatok A követelménymodul száma: 1969-06 A tartalomelem azonosító száma és célcsoportja: SzT-032-8 BEFEKTETÉSI

Részletesebben

Keresleti és kínálati függvény. Minden piacnak van egy keresleti és egy kínálati oldala, amelyeket a normatív közgazdaságtanban

Keresleti és kínálati függvény. Minden piacnak van egy keresleti és egy kínálati oldala, amelyeket a normatív közgazdaságtanban tehát attól függ, hogy x milyen értéket vesz fel. A függvényeket a közgazdaságtanban is a jól ismert derékszögû koordináta-rendszerben ábrázoljuk, ahol a változók nevének megfelelõen általában a vízszintes

Részletesebben

C# feladatgyűjtemény

C# feladatgyűjtemény Eszterházy Károly Főiskola Matematikai és Informatikai Intézet C# feladatgyűjtemény Dr. Kovács Emőd emod@aries.ektf.hu Radványi Tibor dream@aries.ektf.hu Király Roland serial@aries.ektf.hu Hernyák Zoltán

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Kombinatorika

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Kombinatorika MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Kombinatorika A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett

Részletesebben

Mi alapján fogadhatunk el egy elektronikus aláírást? 1

Mi alapján fogadhatunk el egy elektronikus aláírást? 1 Mi alapján fogadhatunk el egy elektronikus aláírást? 1 Dr. Berta István Zsolt istvan.berta@microsec.hu Microsec Kft. Az elektronikus aláírás elméleti alapjai régóta ismertek. E matematikai, kriptográfiai

Részletesebben

4. Számelmélet, számrendszerek

4. Számelmélet, számrendszerek I. Elméleti összefoglaló A maradékos osztás tétele: 4. Számelmélet, számrendszerek Legyen a tetszőleges, b pedig nullától különböző egész szám. Ekkor léteznek olyan, egyértelműen meghatározott q és r egész

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Függvények Analízis

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Függvények Analízis MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI EMELT SZINT Függvények Analízis A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I. Számelmélet I. DEFINÍCIÓ: (Osztó, többszörös) Ha egy a szám felírható egy b szám és egy másik egész szám szorzataként, akkor a b számot az a osztójának, az a számot a b többszörösének nevezzük. Megjegyzés:

Részletesebben

A termosztát működése

A termosztát működése A termosztát működése A termosztát egy beépített mobiltelefonnal rendelkezik Ez fogadja az Ön hívását ha felhívja a termosztát telefonszámát. Érdemes ezt a telefonszámot felírni valahová és figyelemmel

Részletesebben