obiective aspecte teoretice -...

5
Seminar 04 Metode de căutare adversială Laura Dioşan 1 Inteligenţă artificială, 2016-2017 Rezolvarea jocurilor Obiective Formularea jocurilor ca probleme de căutare şi identificarea strategiilor necesare rezolvării lor. Specificarea, proiectarea şi implementarea metodelor de căutare de tip MiniMax si alte metode inteligente de rezolvare a jocurilor. Aspecte teoretice Rezolvarea jocurilor. Tipuri de jocuri. Modalităţi de rezolvare a jocurilor ca problemele de căutare Identificarea soluţiei potenţiale optime: - Stabilirea componentelor problemei o Condiţii (constrângeri) pe care trebuie să le satisfacă (parţial sau total) soluţia o Funcţie de evaluare a unei soluţii potenţiale identificareaa optimului - Definirea spaţiul de căutare - Stabilirea strategiei de identificare a soluţiei optime în spaţiul de căutare Probleme abordate 1. Rezolvarea jocurilor cu ajutorul algoritmului MiniMax. Aspect teoretice Construirea arborelui de joc şi etichetarea nodurilor Jocul săriturilor Se dă un şir de n căsuţe adicente, în care iniţial se găsesc bile (câte o bilă în fiecare căsuţă). Doi jucători A şi B mută alternativ astfel: prima mutare a jucătorului A constă în ridicarea de pe masă a maxim patru bile, apoi, pe rând, cei doi jucători iau căte o bilă şi execută cu ea o săritură peste piesa din stânga sau dreapta (dacă există), cu condiţia ca în locul în care trebuie să se finalizeze săritura să fie liber. O bilă poate fi mutată o singură dată. Jucătorul care nu mai poate muta pierde. Jucătorul A mută primul. Să se determine dacă jucătorul A are strategie sigură de câştig. În caz afirmativ, să se programeze mutările lui A, cele ale lui B fiind citite de la tastatură. a b b Figura 1 Exemplu de joc: a) iniţial (n = 10), b) după prima mutare, c) după a 2-a mutare

Upload: others

Post on 31-Oct-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Obiective Aspecte teoretice - cs.ubbcluj.rolauras/test/docs/school/IA/2016-2017/seminars/sem04... · Nr de obiecte din fiecare stivă se reprezintă binar (ca sumă a puterilor lui

Seminar 04 Metode de căutare adversială

Laura Dioşan 1 Inteligenţă artificială, 2016-2017

Rezolvarea jocurilor

Obiective Formularea jocurilor ca probleme de căutare şi identificarea strategiilor necesare rezolvării lor. Specificarea, proiectarea şi implementarea metodelor de căutare de tip MiniMax si alte metode inteligente de rezolvare a jocurilor.

Aspecte teoretice

Rezolvarea jocurilor. Tipuri de jocuri. Modalităţi de rezolvare a jocurilor ca problemele de căutare Identificarea soluţiei potenţiale optime: - Stabilirea componentelor problemei

o Condiţii (constrângeri) pe care trebuie să le satisfacă (parţial sau total) soluţia o Funcţie de evaluare a unei soluţii potenţiale identificareaa optimului

- Definirea spaţiul de căutare - Stabilirea strategiei de identificare a soluţiei optime în spaţiul de căutare

Probleme abordate

1. Rezolvarea jocurilor cu ajutorul algoritmului MiniMax. Aspect teoretice Construirea arborelui de joc şi etichetarea nodurilor Jocul săriturilor Se dă un şir de n căsuţe adicente, în care iniţial se găsesc bile (câte o bilă în fiecare căsuţă). Doi jucători A şi B mută alternativ astfel: prima mutare a jucătorului A constă în ridicarea de pe masă a maxim patru bile, apoi, pe rând, cei doi jucători iau căte o bilă şi execută cu ea o săritură peste piesa din stânga sau dreapta (dacă există), cu condiţia ca în locul în care trebuie să se finalizeze săritura să fie liber. O bilă poate fi mutată o singură dată. Jucătorul care nu mai poate muta pierde. Jucătorul A mută primul. Să se determine dacă jucătorul A are strategie sigură de câştig. În caz afirmativ, să se programeze mutările lui A, cele ale lui B fiind citite de la tastatură.

a

b

b

Figura 1 Exemplu de joc: a) iniţial (n = 10), b) după prima mutare, c) după a 2-a mutare

Page 2: Obiective Aspecte teoretice - cs.ubbcluj.rolauras/test/docs/school/IA/2016-2017/seminars/sem04... · Nr de obiecte din fiecare stivă se reprezintă binar (ca sumă a puterilor lui

Seminar 04 Metode de căutare adversială

Laura Dioşan 2 Inteligenţă artificială, 2016-2017

Figura 2 Exemplu de arbore de joc (partial) pentru n = 4

Algoritm int backMiniMax(Node N, int level){ //level = 0 for the node in the top of the tree. if (level == MaxLevel) return the quality of N computed with a heuristic; else if (level < MaxLevel){ if (level % 2){ //B is about to move; minimize result = MaxInt; for each child Ni of N result = minim(result, backMiniMax(Ni, level+1)); } else{ // A is about to move; Maximize result = -MaxInt; for each child Ni of N result = maxim(result, backMiniMax(Ni, level+1)); } return result; } }

2. Rezolvarea jocurilor cu ajutorul strategiei simetriei. Aspecte teoretice

Jucătorul B imită mutările jucătorului A pe baza unei (unui) axe (centru) de simetrie

Dacă A mai poate muta, atunci şi B mai poate muta

E posibil ca prima mutare să nu aibă simetric Jocul săriturilor Se dă un şir de n căsuţe adicente, în care iniţial se găsesc bile (câte o bilă în fiecare căsuţă). Doi jucători A şi B mută alternativ astfel: prima mutare a jucătorului A constă în ridicarea de pe masă a maxim patru bile, apoi, pe rând, cei doi jucători iau căte o bilă şi execută cu ea o săritură peste piesa din stânga sau dreapta (dacă există), cu condiţia ca în locul în care trebuie să se finalizeze săritura să fie liber. O bilă poate fi mutată o singură dată. Jucătorul care nu mai poate muta pierde. Jucătorul A mută primul. Să se determine dacă jucătorul A

Page 3: Obiective Aspecte teoretice - cs.ubbcluj.rolauras/test/docs/school/IA/2016-2017/seminars/sem04... · Nr de obiecte din fiecare stivă se reprezintă binar (ca sumă a puterilor lui

Seminar 04 Metode de căutare adversială

Laura Dioşan 3 Inteligenţă artificială, 2016-2017

are strategie sigură de câştig. În caz afirmativ, să se programeze mutările lui A, cele ale lui B fiind citite de la tastatură.

a

b

b

Figura 3 Exemplu de joc: a) iniţial (n = 10), b) după prima mutare, c) după a 2-a mutare

Soluţie Dacă n – par, atunci A ia din mijlocul şirului 2 sau 4 piese, după care imită mutările lui B Dacă n – impar, atunci A ia din mijlocul şirului 1 sau 3 piese, după care imită mutările lui B

3. Rezolvarea jocurilor cu ajutorul strategiei perechilor. Apecte teoretice

Generalizare a strategiei simetriei

Gruparea mutărilor în perechi (mutare jucător A, mutare jucător B)

Dacă A mai poate muta, atunci şi B mai poate muta

E posibil ca prima mutare să nu poată fi împerecheată Jocul decupării diagonale a unei căsuţe – perechi, seminar Fie o foaie de hârtie dreptunghiulară, împărţită în n*m căsuţe. Alternativ, doi jucători A şi B decupează una din căsuţele care este învecinată pe diagonală cu ultima căsuţă decupată (de către celălalt jucător). O căsuţă poate fi decupată o singură dată. Jucătorul care nu mai poate muta pierde. Jucătorul A mută primul. Să se determine dacă jucătorul A are strategie sigură de câştig. În caz afirmativ, să se programeze mutările lui A, cele ale lui B fiind citite de la tastatură.

Figura 4 Exemplu de tablă de joc: a) iniţială (n = 5 şi m = 4), b) după prima mutare, c) după a 2-a mutare

Soluţia Se împarte table în dominouri diagonale (perechi de câte 2 căsuţe vecine pe diagonal a.î. diagonalele principale/secundare ale celor 2 căsuţe să fie una în prelungirea celeilalte). Dacă n – impar şi m – par câştigă A

1 A A A A A

2 B B B B

3 A A A

Page 4: Obiective Aspecte teoretice - cs.ubbcluj.rolauras/test/docs/school/IA/2016-2017/seminars/sem04... · Nr de obiecte din fiecare stivă se reprezintă binar (ca sumă a puterilor lui

Seminar 04 Metode de căutare adversială

Laura Dioşan 4 Inteligenţă artificială, 2016-2017

4 B B

5 A

Dacă n – par şi m – impar câştigă A

1 3 5 A A A A

2 4 B B

A A A A A

B B B B

Dacă n – par şi m – par câştigă B

1 A A A A A

2 B B B B

3 A A A

4 B B

4. Rezolvarea jocurilor cu ajutorul strategiei parităţii.

Aspecte teoretice

2 tipuri de poziţii în joc o Poziţie pară (singulară) o Poziţie impară (nesingulară)

Teoreme o T1: poziţia impară, printr-o mutare convenabilă, poziţie pară (jucătorul A) o T2: poziţia pară, prin orice mutare, poziţie impară (jucătorul B)

Poziţia finală = poziţie pară Jocul NIM N stive conţin fiecare pi obiecte. 2 jucători A şi B extrag, alternativ, dintr-o singură stivă oricâte obiecte. Jucătorul care execută ultima extragere câştigă jocul. Jucătorul A mută primul. Să se determine dacă jucătorul A are strategie sigură de câştig. În caz afirmativ, să se programeze mutările lui A, cele ale lui B fiind citite de la tastatură. Exemplu: 4 stive cu 2, 2, 4 şi, respectiv, 7 obiecte

Figura 5 Exemplu de joc cu 4 stive cu 2, 2, 4 şi, respectiv, 7 obiecte b) după prima mutare, c) după a 2-a mutare

Soluţie

Nr de obiecte din fiecare stivă se reprezintă binar (ca sumă a puterilor lui 2) o fiecare număr natural admite o descompunere unică ca sumă de puteri

Page 5: Obiective Aspecte teoretice - cs.ubbcluj.rolauras/test/docs/school/IA/2016-2017/seminars/sem04... · Nr de obiecte din fiecare stivă se reprezintă binar (ca sumă a puterilor lui

Seminar 04 Metode de căutare adversială

Laura Dioşan 5 Inteligenţă artificială, 2016-2017

distincte ale lui 2

Stare pară – toate puterile lui 2 din reprezentarea jocului apar de un număr par de ori (în toate stivele)

Stare impară – orice stare care nu este pară o T1 dintr-o stare impară se ajunge într-o stare pară printr-o mutare

convenabilă o T2 dintr-o stare pară se ajunge într-o stare impară prin orice fel de mutare

Extragerea de pe stiva care conţine cel mai seminificativ bit pe poziţia k o K poziţia celui mai semnificativ bit in suma NIM a tuturor stivelor

Algoritm o Pp. următorul joc:

S1: 3 = 21+20 011, S2: 4 = 22 100, S3: 5 = 22+20 101

1. Se calculează suma Nim (SNim) a tuturor stivelor

SNim = S1 XOR S2 XOR S3 = 3 XOR 4 XOR 5 = 011 XOR 100 XOR 101 = 010= 2

2. Se identifică poziţia k a celui mai reprezentativ 1 în suma Nim

SNim = 2 = 010(2) poziţia a 2-a (k = 2) 3. Se caută stiva cu cel mai reprezentativ bit pe poziţia k (stiva care descreşte

dacă se face XOR între ea si suma Nim)

S1: 3 = 010, S2: 4 = 100, S3: 5 = 101 => S1 sau

S1 XOR SNim = 3 XOR 2 = 011 XOR 010 = 001 = 1

S2 XOR SNim = 4 XOR 2 = 100 XOR 010 = 110 = 6

S3 XOR SNim = 5 XOR 2 = 101 XOR 010 = 111 = 7 S1 4. Se extrage din această stivă un număr de obiecte a.î. restul stivelor să

formeze o stare pară; nr de obiecte care rămân pe stivă este dat de XOR-ul între stiva respectivă şi suma Nim

S1 XOR SNim = 3 XOR 2 = 011 XOR 010 = 001 = 1 se extrag 2 (=3 – 1) obiecte de pe stiva 1

5. Se reia pasul 1

.