De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Allard Kamphuisen Hado van Hasselt Wilco Broeders.

Verwante presentaties


Presentatie over: "Allard Kamphuisen Hado van Hasselt Wilco Broeders."— Transcript van de presentatie:

1 Allard Kamphuisen Hado van Hasselt Wilco Broeders

2 Inhoud presentatie Wilco: 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

3 Othello 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

4 Maximum disc strategie Verkeerde strategie, gebruikt door vele beginners, waarbij men probeert in één beurt zoveel mogelijk stenen om te draaien. Stabiele stenen Stenen die op geen enkele manier kunnen worden veranderd, bijvoorbeeld de hoekstenen

5 Mobiliteit Een speler heeft een goede mobiliteit als hij een groot aantal mogelijke zetten tot zijn beschikking heeft. Grenzen De set van stenen die naast lege vakken staan.

6 De gebruikte heuristieken De representaties van de heuristieken Het zoekalgoritme

7 De gebruikte heuristieken Het verschil van de stenen De potentiële mobiliteit De werkelijke mobiliteit De gewogen vakjes

8 4 gebruikte representaties om de heuristieken 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

9 Representatie werkelijke situatieRep1 (0=leeg, 1=zwart, 2=wit)

10 Representatie werkelijke situatieRep2 (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

11 Representatie werkelijke situatieRep3 (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

12 Representatie Merk 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

13 Samenvatting 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.

14 Het 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.

15 Minimax voorbeeld (matrix) Codering van de tekstvakken

16 Minimax voorbeeld (boom) 1.Zet vooruit (speler 1: maximum) 2.Zetten vooruit (speler 2: minimum) Huidige situatie Evaluatie van spel situatie na 2e zet Conclusie: F4 heeft de hoogste waarde, dus is waarschijnlijk de beste zet.

17 Een Andere Aanpak: Een Lerend Systeem

18 In een data- bestandje, bv 1.txt: “ ” “ ”

19 Voorbeeld: 50ste Zet

20 De cumulatieve waardes per veld voor alle zetten:

21 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

22 Conclusie: Ons programma (niet-lerend) kan redelijk spelen: - Verslaat menselijke spelers - Redelijk tegen goede progamma’s - Denkt (gecompileerd) 4 a 5 plies diep.


Download ppt "Allard Kamphuisen Hado van Hasselt Wilco Broeders."

Verwante presentaties


Ads door Google