Inteligenta Artificiala

Similar documents
Sisteme cu logica fuzzy

Soluţii juniori., unde 1, 2

Divizibilitate în mulțimea numerelor naturale/întregi

Utilizarea limbajului SQL pentru cereri OLAP. Mihaela Muntean 2015

Liste. Stive. Cozi SD 2017/2018

Metode clasice. Camelia Chira.

array a[0..n-1] a[0] = v0,..., a[n-1] = vn-1

Teorema Reziduurilor şi Bucuria Integralelor Reale Prezentare de Alexandru Negrescu

1.3. OPERAŢII CU NUMERE NEZECIMALE

ON THE QUATERNARY QUADRATIC DIOPHANTINE EQUATIONS (II) NICOLAE BRATU 1 ADINA CRETAN 2

UNITATEA DE ÎNVĂȚARE 3 Analiza algoritmilor

ȘIRURI (TABLOURI UNIDIMENSIONALE)

Reactoare chimice cu curgere piston (ideala) cu amestecare completa de tip batch (autoclava)

Laborator 3. Backtracking iterativ

Barem de notare clasa a V-a

SIMULAREA DECIZIEI FINANCIARE

A GENERALIZATION OF A CLASSICAL MONTE CARLO ALGORITHM TO ESTIMATE π

Modelling the Steady State Characteristic of ph Neutralization Process: a Neuro-Fuzzy Approach

Matematici speciale Variabile aleatoare discrete

Pentru clasa a X-a Ştiinţele naturii-sem II

Legi de distribuţie (principalele distribuţii de probabilitate) Tudor Drugan

Subiecte geometrie licenta matematica-informatica 4 ani

Probleme extremale pentru grafuri si retele de transport

Programarea Dinamica. (si alte chestii adiacente) Andrei Olariu

Cristalul cu N atomi = un sistem de N oscilatori de amplitudini mici;

Gradul de comutativitate al grupurilor finite 1

GENERATOARE DE SEMNAL DIGITALE

COMPARATIVE DISCUSSION ABOUT THE DETERMINING METHODS OF THE STRESSES IN PLANE SLABS

Utilizarea claselor de echivalenta in analiza asistata de calculator a sistemelor cu evenimente discrete

Definiţie. Pr(X a) - probabilitatea ca X să ia valoarea a ; Pr(a X b) - probabilitatea ca X să ia o valoare în intervalul a,b.

Sisteme cu logica fuzzy cu mai multe intrari (MISO)

Calcul Numeric. Cursul Anca Ignat

O V E R V I E W. This study suggests grouping of numbers that do not divide the number

Rezolvarea ecuaţiilor şi sistemelor de ecuaţii diferenţiale ordinare (II)

Ecuatii si inecuatii de gradul al doilea si reductibile la gradul al doilea. Ecuatii de gradul al doilea

Laborator 5. Instructiuni de control logic : FOR, IF, WHILE. - Staţii de lucru care au instalat Orcad9.2. si MatLab 7.1

METODE NUMERICE: Laborator #4 Eliminare gaussiană cu pivotare totală şi scalare. Algoritmul Thomas pentru rezolvarea sistemului 3-diagonal

C5 / Teoria Deciziilor. Metode bazate pe valoarea medie. (expected value) Metode multicriteriale de analiză a deciziilor.

IS-ZC444: ARTIFICIAL INTELLIGENCE

Minimax strategies, alpha beta pruning. Lirong Xia

Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Ingineria Sistemelor

Procedeu de demonstrare a unor inegalităţi bazat pe inegalitatea lui Schur

Habilitation Thesis. Periodic solutions of differential systems: existence, stability and bifurcations

CURS 11: Programare dinamică - II - Algoritmica - Curs 12 1

2D AND 3D PROCESSING OF THE INTERDEPENDENCE BETWEEN THE COMFORT MAIN INDICATORS

4/68. Mini-comutatoare cu came. Prezentare generalã a sistemului. Întreruptoare Pornit-Oprit TM. Comutatoare de comandã TM.

Prelegerea 7. Sistemul de criptare AES. 7.1 Istoric

Summary. Agenda. Games. Intelligence opponents in game. Expected Value Expected Max Algorithm Minimax Algorithm Alpha-beta Pruning Simultaneous Game

Metode numerice de aproximare. a zerourilor unor operatori. şi de rezolvare a inegalităţilor variaţionale. cu aplicaţii

PROTECTII PRIN RELEE. (2) _ Principii si particularitati ale principalelor protectii

Controlul predictiv bazat pe modele intare-stare-iesire. Cuprins. 2. Modele intrare-stare-iesire :01

"IIITO-TEC 'NIKI" & EQUIPME

REZUMATUL TEZEI DE DOCTORAT

FORMULELE LUI STIRLING, WALLIS, GAUSS ŞI APLICAŢII

PROBLEME DIVERSE lecţie susţinută la lotul de 13 de Andrei ECKSTEIN Bucureşti, 25 mai 2015

Despre AGC cuasigrupuri V. Izbaș

PRELUCRARI PE IMAGINI BINARE (ALB/NEGRU)

Reactoare chimice cu curgere piston (ideala) (Plug Flow Reactor PFR) cu amestecare completa (Mixed Flow Reactor MFR) de tip batch (autoclava)

$IfNot ParametricTable= P_ratio_gas. P ratio,gas = 14; Raport comprimare compresor aer - Pressure ratio for gas compressor (2) $EndIf

IMAR Problema 1. Fie P un punct situat în interiorul unui triunghi ABC. Dreapta AP intersectează

Alte rezultate din teoria codurilor

DEZVOLTAREA REGIONALĂ PRIN TURISM

SOI prin smart-cut. Caracterizarea TEM-HRTEM a defectelor structuale induse in Si prin hidrogenare in plasma.

DIRECTII DE CERCETARE SI METODICA ANALIZA DECIZIEI

The 2017 Danube Competition in Mathematics, October 28 th. Problema 1. Să se găsească toate polinoamele P, cu coeficienţi întregi, care

Decision Trees Some exercises

Cercet¼ari operaţionale

INEGALITĂŢI DE TIP HARNACK ŞI SOLUŢII POZITIVE MULTIPLE PENTRU PROBLEME NELINIARE

Logică și structuri discrete. Marius Minea 25 septembrie 2017

COMPARATIVE STUDY ON DETERMINING THE INTERNAL FRICTION ANGLE FOR SAND

ARTICOLE ŞI NOTE MATEMATICE

A MATHEMATICAL COMPARISON BETWEEN SEVERAL SINGLE AUTHOR CORPORA

Proiectarea Algoritmilor

Clasa a 10-a. Review of preview

Graduări pe algebre de matrice

Announcements. CS 188: Artificial Intelligence Fall Adversarial Games. Computing Minimax Values. Evaluation Functions. Recap: Resource Limits

GAZETA MATEMATICĂ SERIA A. ANUL XXXI(CX) Nr. 1 2/ 2013 ANIVERSĂRI. Profesorul Ioan Tomescu la a 70-a aniversare

CS 188: Artificial Intelligence Fall Announcements

Arhitectura sistemelor de calcul

CS 4100 // artificial intelligence. Recap/midterm review!

Announcements. CS 188: Artificial Intelligence Spring Mini-Contest Winners. Today. GamesCrafters. Adversarial Games

CS 188: Artificial Intelligence

TEZĂ DE DOCTORAT. Metode numerice în studiul comportamentului ireversibil al materialelor elasto-plastice

MODEL FOR FLEXIBLE PLATES SUPPORTED ON PILES

Decision Making Under Uncertainty. Application In Inssurances

Sisteme de Recunoastere a Formelor Lab 12 Clasificare cu Support Vector Machine

Metode şi Algoritmi de Planificare (MAP) Curs 2 Introducere în problematica planificării

GIDD PENTRU CALCULUL CONSUMULUI DE CA.LOURA AL CONSTRUCTIILOR DOTATE CU ' A SISTEME PASIVE DE INCALZIRE SO LARA INDICATIV GP

STRUCTURAL INTENSITY METHOD APPLIED TO STUDY OF VIBRATIONS DAMPING / METODA INTENSIMETRIEI STUCTURALE APLICATĂ LA STUDIUL AMORTIZĂRII VIBRAŢIILOR

SOLUŢII ŞI COMENTARII OIM 2012 MAR DEL PLATA ARGENTINA

7 ECUAŢII ALGEBRICE ŞI TRANSCENDENTE

ATTENUATION OF THE ACOUSTIC SCREENS IN CLOSED SPACES

Game playing. Chapter 6. Chapter 6 1

Modelare fuzzy. Problematica modelarii Sisteme fuzzy in modelare Procedura de modelare ANFIS Generarea sistemului fuzzy initial Utilizare ANFIS

INCLUZIUNI OPERATORIALE PRIN TEHNICA PUNCTULUI FIX ÎN SPAŢII METRICE VECTORIALE

Procesarea Imaginilor

Câteva rezultate de algebră comutativă

Adversarial Search. Christos Papaloukas, Iosif Angelidis. University of Athens November 2017

Testarea ipotezelor statistice

CSE 573: Artificial Intelligence

Transcription:

Inteligenta Artificiala Universitatea Politehnica Bucuresti Anul universitar 2010-2011 Adina Magda Florea http://turing.cs.pub.ro/ia_10 si curs.cs.pub.ro 1

Curs nr. 4 Cautare cu actiuni nedeterministe Strategii de cautare in jocuri 2

1. Cautare cu actiuni nedeterministe Problema aspiratorului determinist Locatii A,B care pot fi curate (C) sau murdare (M) Actiuni agent: St, Dr, Aspira,(nimic) 2 x 2 2 stari posibile (2 x 2 n ) M,M, Agent A Dr M,M, Agent B M,M, Agent A St M,M, Agent A M,M, Agent A Aspira C,M,Agent A Stare initiala (M,M, Agent A ) Plan = [Aspira, Dr, Aspira] 3

Problema aspiratorului nedeterminist Aspira nedeterminist - daca Aspira in M atunci (C) sau (C si C patrat alaturat) - daca Aspira in C atunci (C) sau (M) Stare initiala (M,M, Agent A ) Plan contingent = [Aspira, daca Stare = (C,M, Agent A ) atunci Dr, Aspira altfel nimic] Planul arbore SI/SAU 4

Problema aspiratorului nedeterminist Solutie un arbore SI/SAU: stare scop in fiecare frunza o actiune dintr-o ramura a unui nod SAU toate actiunile din ramurile unui nod SI M,M,Agent A Scop C,C,Agent A C,M,Agent A M,M,Agent B.. C,M,Agent A M,M,Agent A C,M,Agent B Bucla Bucla Scop C,C,Agent B C,M,Agent A Bucla 5

Plan contingent Algoritm Plan: Determina graf SI/SAU de actiuni 1. Inspec-SAU(S i,[]) /* intoarce plan contingent sau INSUCCES */ Inspec-SAU(S, Cale) 1. daca S este stare finala atunci intoarce Planul vid 2. daca S Cale atunci intoarce INSUCCES 3. pentru fiecare actiune A i posibil de executat din S executa 3.1 Plan Inspec-SI(Stari(S,A i ), [S Cale]) 3.2 daca Plan INSUCCES atunci intoarce [A i Plan] 4. intoarce INSUCCES sfarsit 6

Plan contingent Inspec-SI(Stari, Cale) 1. pentru fiecare S i Stari executa 1.1 Plan i Inspec-SAU(S i, Cale) 1.2 daca Plan i = INSUCCES atunci intoarce INSUCCES 2. intoarce [if S 1 then plan 1 else if S n-1 then plan n-1 else plan n ] sfarsit 7

2. Strategii de cautare in jocuri Jocuri ce implică doi adversari jucator adversar Jocuri in care spatiul de cautare poate fi investigat exhaustiv Jocuri in care spatiul de cautare nu poate fi investigat complet deoarece este prea mare. 8

2.1 Minimax pentru spatii de cautare investigate exhaustiv Jucator MAX Adversar MIN Principiu Minimax Etichetez fiecare nivel din AJ cu MAX (jucator) si MIN (adversar) Etichetez frunzele cu scorul jucatorului Parcurg AJ daca nodul parinte este MAX atunci i se atribuie valoarea maxima a succesorilor sai; daca nodul parinte este MIN atunci i se atribuie valoarea minima a succesorilor sai. 9

Spatiu de cautare Minimax (AJ) MAX A / 3 MIN B / 3 C / 2 D / 2 MAX E / 3 F / 12 G / 8 H / 2 I / 4 J / 6 K / 14 L / 5 M / 2 10

Spatiu de cautare Minimax (AJ) MIN 7 / 1 Nim cu 7 bete MAX 6-1 / 1 5-2 / 1 4-3 / 1 MIN 5-1 - 1 / 0 4-2 - 1 / 1 3-2 - 2 / 0 3-3 - 1 / 1 MAX 4-1 - 1-1 / 0 3-2 - 1-1 / 1 2-2 - 2-1 / 0 MIN 3-1 - 1-1 - 1 / 0 2-2 - 1-1 - 1 / 1 MAX 2-1 - 1-1 - 1-1 / 0 11

Algoritm: Minimax cu investigare exhaustiva AMinimax( S ) 1. pentru fiecare succesor S j al lui S (obtinut printr-o mutare op j ) executa val( S j ) Minimax( S j ) 2. aplica op j pentru care val( S j ) este maxima sfarsit Minimax( S ) 1. daca S este nod final atunci intoarce scor( S ) 2. altfel 2.1 daca MAX muta in S atunci 2.1.1 pentru fiecare succesor S j al lui S executa val( S j ) Minimax( S j ) 2.1.2 intoarce max( val( S j ), j ) 2.2 altfel { MIN muta in S } 2.2.1 pentru fiecare succesor S j al lui S executa val( S j ) Minimax( S j ) 2.2.2 intoarce min( val( S j ), j ) sfarsit 12

2.2 Minimax pentru spatii de cautare investigate pana la o adancime n Principiu Minimax Algoritmul Minimax pana la o adancime n nivel(s) O functie euristica de evaluare a unui nod eval(s) 13

Algoritm: Minimax cu adancime finita n AMinimax( S ) 1. pentru fiecare succesor S j al lui S (obtinut printr-o mutare op j ) executa val( S j ) Minimax( S j ) 2. aplica op j pentru care val( S j ) este maxima sfarsit Minimax( S ) { intoarce o estimare a starii S } 0. daca S este nod final atunci intoarce scor( S ) 1. daca nivel( S ) = n atunci intoarce eval( S ) 2. altfel 2.1 daca MAX muta in S atunci 2.1.1 pentru fiecare succesor S j al lui S executa val( S j ) Minimax( S j ) 2.1.2 intoarce max( val( S j ), j ) 2.2 altfel { MIN muta in S } 2.2.1 pentru fiecare succesor S j al lui S executa val( S j ) Minimax( S j ) 2.2.2 intoarce min( val( S j ), j ) sfarsit 14

Implementare Prolog play:- initialize(position,player), display_game(position,player), play(position,player,result). % play(+position,+player,-result) play(position, Player, Result) :- game_over(position,player,result),!, write(result),nl. play(position, Player, Result) :- choose_move(position,player,move), move(move,position,position1), next_player(player,player1), display_game(position1,player1),!, play(position1,player1,result). % apel?-play. 15

move(a1,a,b). move(a2,a,c). move(a3,a,d). move(b1,b,e). move(b2,b,f). move(b3,b,g). move(c1,c,h). move(c2,c,i). move(c3,c,j). move(d1,d,k). move(d2,d,l). move(d3,d,m). next_player(max,min). next_player(min,max). game_over(e,max,3). game_over(f,max,12). game_over(g,max,8). game_over(h,max,2). game_over(i,max,4). game_over(j,max,6). game_over(k,max,14). game_over(l,max,5). game_over(m,max,2). % move(+move,+position,-position1) % game_over(+position,+player, -Result). % next_player(+player, - Player1) initialize(a,max). display_game(position,player):- write(position),nl,write(player),nl. 16

% choose_move(+position, +Player, -BestMove) choose_move(position, Player, BestMove):- get_moves(position,player,moves), evaluate_and_choose(moves,position,10,player,record,[bestmove,_]). % get_moves(+position, +Player, -Moves) get_moves(position, Player, Moves):- findall(m,move(m,position,_),moves). % evaluate_and_choose(+moves, +Position,+D,+MaxMin, +Record,-BestRecord). evaluate_and_choose([move Moves],Position,D,MaxMin,Record,BestRecord) :- move(move,position,position1), next_player(maxmin, MinMax), minimax(d,position1,minmax,value), update(maxmin,move,value,record,record1), evaluate_and_choose(moves,position,d,maxmin,record1,bestrecord). evaluate_and_choose([], Position, D, MaxMin, BestRecord, BestRecord). 17

% minimax(+depth,+position,+maxmin,-value) minimax(_, Position, MaxMin, Value) :- game_over(position,maxmin,value),!. minimax(0, Position, MaxMin, Value) :- eval(position,value),!. minimax(d, Position, MaxMin, Value) :- D > 0, D1 is D-1, get_moves(position,maxmin,moves), evaluate_and_choose(moves, Position, D1, MaxMin, Record, [BestMove,Value]). 18

% update(+maxmin, +Move, +Value, +Record, -Record1) update(_, Move, Value, Record, [Move,Value]) :- var(record),!. update(max, Move, Value, [Move1,Value1], [Move1,Value1]) :- Value =< Value1. update(max, Move, Value, [Move1,Value1], [Move,Value]) :- Value > Value1. update(min, Move, Value, [Move1,Value1], [Move1,Value1]) :- Value > Value1. update(min, Move, Value, [Move1,Value1], [Move,Value]) :- Value =< Value1. 19

Exemplu de functie de evaluare Jocul de Tic-Tac-Toe (X si O) Functie de estimare euristica eval( S ) - conflictul existent in starea S. eval( S ) = numarul total posibil de linii castigatoare ale lui MAX in starea S - numarul total posibil de linii castigatoare ale lui MIN in starea S. Daca S este o stare din care MAX poate face o miscare cu care castiga, atunci eval( S ) = (o valoare foarte mare) Daca S este o stare din care MIN poate castiga cu o singura mutare, atunci eval( S ) =- (o valoare foarte mica). 20

eval(s) in Tic-Tac-Toe X X are 6 linii castigatoare posibile O are 5 linii castigatoare posibile O eval( S ) = 6-5 = 1 21

2.3 Algoritmul taierii alfa-beta Este posibil sa se obtină decizia corecta a algoritmului Minimax fara a mai inspecta toate nodurile din spatiului de cautare pana la un anumit nivel. Procesul de eliminare a unei ramuri din arborele de cautare se numeste taierea arborelui de cautare (pruning). 22

Algoritmul taierii alfa-beta Fie cea mai buna valoare (cea mai mare) gasita pentru MAX si cea mai buna valoare (cea mai mica) gasita pentru MIN. Algoritmul alfa-beta actualizeaza si pe parcursul parcurgerii arborelui si elimina investigarile subarborilor pentru care sau sunt mai proaste. Terminarea cautarii (taierea unei ramuri) se face dupa doua reguli: Cautarea se opreste sub orice nod MIN cu o valoare mai mica sau egala cu valoarea a oricaruia dintre nodurile MAX predecesoare nodului MIN in cauza. Cautarea se opreste sub orice nod MAX cu o valoare mai mare sau egala cu valoarea a oricaruia dintre nodurile MIN predecesoare nodului MAX in cauza. 23

Tăierea alfa-beta a spaţiului de căutare MAX A / 3 MIN B / 3 C / 2 D / 2 MAX E / 3 F / 12 G / 8 H / 2 I / 4 J / 6 K / 14 L / 5 M / 2 24

Algoritm: Alfa-beta MAX(S,, ) { intoarce valoarea maxima a unei stari. } 0. daca S este nod final atunci intoarce scor( S ) 1. daca nivel( S ) = n atunci intoarce eval( S ) 2. altfel 2.1 pentru fiecare succesor S j al lui S executa 2.1.1 max(, MIN(S j,, )) 2.1.2 daca atunci intoarce 2.2 intoarce sfarsit MIN(S,, ) { intoarce valoarea minima a unei stari. } 0. daca S este nod final atunci intoarce scor( S ) 1. daca nivel( S ) = n atunci intoarce eval( S ) 2. altfel 2.1 pentru fiecare succesor S j al lui S executa 2.1.1 min(, MAX(S j,, )) 2.1.2 daca atunci intoarce 2.2 intoarce sfarsit 25

2.4 Jocuri cu elemente de sansa Jucatorul nu cunoaste miscarile legale ale oponentului 3 tipuri de noduri: MAX MIN Sansa (chance nodes) 26

36 rez pt 2 zaruri 21 noduri distincte Zaruri egale (6 dist) - > 1/36 Zaruri diferite (15 dist) -> 1/18 Valoarea estimata pt noduri sansa Suma Sj suc S [ P(S j )*EMinimax(S j )] MAX Noduri de decizie Zar MIN Zar 1/36 1,1 1/18 1,2 Functia de evaluare scor nod terminal max din EMinimax succesori - MAX min din EMinimax succesori - MIN Suma [P(S j )*EMinimax(S j )] succesori - SANSA Noduri sansa MAX 1/36 1,1 1/18 1,2 27