Allard Kamphuisen Hado van Hasselt Wilco Broeders

22
Allard Kamphuisen Allard Kamphuisen Hado van Hasselt Hado van Hasselt Wilco Broeders Wilco Broeders

description

"Othello exposed". Allard Kamphuisen Hado van Hasselt Wilco Broeders. Inhoud presentatie. Wilco: Korte uitleg spelregels Othello voor beginners Allard: De gebruikte heuristieken De representaties van de heuristieken Het zoekalgoritme Hado: Ervaring als heuristiek - PowerPoint PPT Presentation

Transcript of Allard Kamphuisen Hado van Hasselt Wilco Broeders

Page 1: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Allard Kamphuisen Allard Kamphuisen

Hado van HasseltHado van Hasselt

Wilco BroedersWilco Broeders

Page 2: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Inhoud presentatieInhoud presentatieWilco:• Korte uitleg spelregels• Othello voor beginners

Allard:• De gebruikte heuristieken• De representaties van de heuristieken• Het zoekalgoritme

Hado:• Ervaring als heuristiek• De voor en nadelen van een simpel lerend systeem

Page 3: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Othello spelregelsOthello spelregels

• 2 spelers zetten om en om een steen

• Stenen veranderen van kleur door insluiting

• Iedere zet minstens één steen insluiten

• Eindsituatie: als niet meer gezet kan worden

• Winnaar: degene met dan de meeste stenen

Page 4: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Maximum disc Maximum disc strategiestrategie

Verkeerde strategie, gebruikt door vele beginners, waarbij men probeert in één beurt zoveel mogelijk stenen om te draaien.

Stabiele stenenStabiele stenen

Stenen die op geen enkele manier kunnen worden veranderd, bijvoorbeeld de hoekstenen

Page 5: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

MobiliteitMobiliteit

Een speler heeft een goede mobiliteit als hij een groot aantal mogelijke zetten tot zijn beschikking heeft.

GrenzenGrenzen

De set van stenen die naast lege vakken staan.

Page 6: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

• De gebruikte heuristieken

• De representaties van de heuristieken

• Het zoekalgoritme

Page 7: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

De gebruikte heuristiekenDe gebruikte heuristieken

• Het verschil van de stenen

• De potentiële mobiliteit

• De werkelijke mobiliteit

• De gewogen vakjes

Page 8: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

4 gebruikte representaties om de 4 gebruikte representaties om de heuristieken te verwezenlijkenheuristieken te verwezenlijken

• Rep1: geeft de spelsituatie weer

• Rep2: levert de potentiële mobiliteit voor speler 1

• Rep3: levert de potentiële mobiliteit voor speler 2

• Rep4: houdt de gewogen vakjes bij

Page 9: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Representatie 1

00000000

00000000

00200000

00011000

00012000

00011100

00020000

00000000

werkelijke situatie Rep1 (0=leeg, 1=zwart, 2=wit)

Page 10: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Representatie 2

00000000

01110000

01210000

01122100

00022100

00122200

00121000

00111000

werkelijke situatie Rep2 (0=leeg en geen mogelijke zet, 1=potentiële zet, 2=bezet)

Door alle éénen van rep2 bij elkaar op te tellen, kan de potentiële mobiliteit van speler 1 worden berekend

Page 11: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Representatie 3

00000000

00000000

00211100

00122100

00122110

00122210

00121110

00000000

werkelijke situatie Rep3 (0=leeg en geen mogelijke zet, 1=potentiële zet, 2=bezet)

Door alle éénen van rep3 bij elkaar op te tellen, kan de potentiële mobiliteit van speler 2 worden berekend

Page 12: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Representatie 4

3000-100200200200200-1003000

-100-1000-100-100-100-100-1000-100

200-1000000-100200

200-1000000-100200

200-1000000-100200

200-1000000-100200

-100-1000-100-100-100-100-1000-100

3000-100200200200200-1003000Merk op:

• hoeken zijn erg positief (3000)

• vakjes omgrenzend aan de hoeken zijn negatief (-100 en -1000)

• randen zijn positief (200)

De waarden van rep4 zorgen voor een grote voorkeur voor de hoeken en randen, maar een afkeur voor de vakjes daar net omheen

Page 13: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

SamenvattingSamenvatting

• Het stenen verschil wordt dus m.b.v. rep1 berekend, de potentiële mobiliteit voor beide spelers m.b.v. rep2 en rep3, en rep4 zorgt voor de gewogen vakjes.

Note: De werkelijke mobiliteit heeft geen aparte representatie nodig maar kan m.b.v. rep1 worden berekend.

Page 14: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Het zoekalgoritmeHet zoekalgoritme

Om een aantal zetten vooruit te kunnen kijken wordt er gebruik gemaakt van een minimax algoritme (met Alpha-Beta pruning) welke gebruik maakt van een zoekboom.

Onderaan de boom (bij de leaves) wordt een evaluatie van de situatie (van iedere specifieke leaf) uitgevoerd m.b.v de bovengenoemde heuristieken. Hier komt een waarde uit welke vervolgens omhoog wordt geminimaxt om zo de beste zet te bepalen.

Page 15: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Minimax voorbeeld (matrix)Minimax voorbeeld (matrix)

H

G

F

E

D

C

B

A

87654321

Codering van de tekstvakken

Page 16: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Minimax voorbeeld (boom)Minimax voorbeeld (boom)

ze t A 1 : -25 30 ... ze t G 7 : + 80

ze t B 2 : -25 30 ...

.. . ze t D 3 : -2 10

ze t F4 : -2 101. Zet vooruit

(speler 1: maximum)

2. Zetten vooruit (speler 2: minimum)

Huidige situatie

Evaluatie van spel -2530 +80 -210

situatie na 2e zet

Conclusie: F4 heeft de hoogste waarde, dus is waarschijnlijk de beste zet.

Page 17: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Een Andere Aanpak:

Een Lerend Systeem

Page 18: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

In een data-bestandje, bv 1.txt:

“..+00+00+00..”

“..+00-01+00..”

Page 19: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

+35 -6 +5 -2 +0 +0 +2 +59

-10 -23 -2 +0 +0 -1 -19 -2

+2 +0 +0 +0 +0 +0 +0 +3

-2 +0 +0 +0 +0 +0 +0 +1

+3 +0 +0 +0 +0 +0 +0 +2

-4 +0 +2 +0 +0 +0 +0 +3

-5 -29 -5 +0 -1 -2 -33 -2

+24 -12 -4 +10 -4 -3 +2 +16

Voorbeeld: 50ste Zet

Page 20: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

+1020 -120 -10 +60 +60 -10 -120 +1020

-120 -330 -30 -40 -40 -30 -330 -120

-10 -30 +60 0 0 +60 -30 -10

+60 -40 0 0 0 0 -40 +60

+60 -40 0 0 0 0 -40 +60

-10 -30 +60 0 0 +60 -30 -10

-120 -330 -30 -40 -40 -30 -330 -120

+1020 -120 -10 +60 +60 -10 -120 +1020

De cumulatieve waardes per veld voor alle zetten:

Page 21: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Kan deze versie goed Othello spelen?

• Tegen ieder NIET lerend systeem wint dit systeem

• Tegen willekeur is het niet zo sterk

• Tegen mensen is het niet sterk

Oplossing problemen:Een systeem met Heuristieken EN een lerend systeem

Page 22: Allard Kamphuisen  Hado van Hasselt Wilco Broeders

Conclusie:

Ons programma (niet-lerend) kan redelijk spelen:

- Verslaat menselijke spelers

- Redelijk tegen goede progamma’s

- Denkt (gecompileerd) 4 a 5 plies diep.