Informatica. les 6. Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen

Vergelijkbare documenten
Informatica 2e semester

Informatica 2e semester

Informatica 2e semester

Informatica. les 6. Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen

Informatica 2e semester

Informatica 2e semester

Informatica. Deel II & III: les 5. Basis- & slimme algoritmen. Jan Lemeire Informatica deel II & III februari mei Parallel Systems: Introduction

Informatica 2e semester

Addendum bij hoofdstuk 5 Generieke implementatie van de zoekalgoritmen

Uitwerking tentamen Algoritmiek 9 juni :00 17:00

Informatica. Deel II & III: les 5. Von Neumann, basis- & slimme algoritmen. Jan Lemeire Informatica deel II & III februari mei 2015

Halma Bot: Monte Carlo versus Alpha-Beta

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Zoekproblemen met tegenstanders. Zoekalgoritmen ( ) College 9: Zoeken met een tegenstander (I) Een zoekprobleem met een tegenstander

Computationale Intelligentie Dirk Thierens

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Een voorbeeld. Computationele Intelligentie Zoeken met een tegenstander. Een voorbeeld vervolg. Een zoekprobleem met een tegenstander

Informatica. les 7. Slimme (deel II: hoofdstuk 9) versus intelligente (deel III: hoofdstuk 10) algoritmen

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Mijn project noemt Het Wari-spel. De doelgroep van mijn programma is iedereen die houdt van strategische spelen.

Twaalfde college complexiteit. 11 mei Overzicht, MST

Opgave 2 ( = 12 ptn.)

Informatica 2e semester

Opgaven Kunstmatige Intelligentie 1 maart 2017

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011

Inleiding 2. 1 Spelregels Pünct 3

Java Programma structuur

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur

Hoofdstuk 9. Beslissingsalgoritmen

Examen Datastructuren en Algoritmen II

Verslag Opdracht 4: Magische Vierkanten

Vijfde college algoritmiek. 2/3 maart Exhaustive search

extra oefening algoritmiek - antwoorden

Computationele Intelligentie

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen

Uitwerking tentamen Algoritmiek 10 juni :00 13:00

Elementary Data Structures 3

Datastructuren college 10

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction


Uitleg. Welkom bij de Beverwedstrijd Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

NAAM: Programmeren 1 Examen 29/08/2012

Deeltentamen Kunstmatige Intelligentie

Eindrapport. 5 November 2007

Python (gem=1,86) Java (gem=1,57) Enquete cursus informatica 1e bachelors oefeningen beter aansluiten bij project?

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN

Het minimale aantal sleutels op niveau h is derhalve

Intelligente Spelen. Pieter Spronck. TouW Informatica Symposium, Open Universiteit, Universiteit van Tilburg

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Twaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify

Modelleren en Programmeren

Kosten. Computationale Intelligentie. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route. Zoeken met kosten.

8. Complexiteit van algoritmen:

Programmeren (1) Examen NAAM:

Computationele Intelligentie

De regels van het spel

Tentamen Kunstmatige Intelligentie (INFOB2KI)

ALGORITMIEK: antwoorden werkcollege 5

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Hoofdstuk 2. Week 4: Datastructuren. 2.1 Leesopdracht. 2.2 Bomen. 2.3 Definitie

Programmeren in C++ Efficiënte zoekfunctie in een boek

Hoofdstuk 9: Menu s toevoegen

Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

- Denkt zoals een mens (activiteiten die we associëren met menselijk denken.)

Elfde college algoritmiek. 28 april Gretige Algoritmen, Algoritme van Dijkstra, Branch & Bound

Lokaal zoeken. Computationele Intelligentie. Een representatie van het kleuringsprobleem. Impliciete doeltoestanden. Lokaal zoeken

Tiende college algoritmiek. 26 april Gretige algoritmen

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Modelleren en Programmeren

Let s play baseball! Let s get ready! Voorkennis: Sprites, Lopen, Variabelen, Scores, xy. Leerdoelen: 3D illusie, Klonen

8C080 deel BioModeling en bioinformatica

8C080 deel BioModeling en bioinformatica

Twaalfde college algoritmiek. 23 mei Branch & Bound, Heapsort

Vijfde college algoritmiek. 3 maart Brute Force, Exhaustive search en Backtracking

Games in een educatieve setting

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound

Vijfde college algoritmiek. 17 maart Exhaustive search Graafwandelingen Backtracking

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

definities recursieve datastructuren college 13 plaatjes soorten Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten

Tweede college algoritmiek. 12 februari Grafen en bomen

Modellen en Simulatie Speltheorie

Algoritmisch Denken: Dodo s Bit Parity

Genetische algoritmen in Java met JGAP

Derde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte

Kosten. Zoekalgoritmen ( ) College 5: Zoeken met kosten. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route

Doorzoeken van grafen. Algoritmiek

(Kunst)Matige intelligentie

Modelleren en Programmeren

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Rush Hour. Concurrency Opgave 3, Herfst

Hebzucht loont niet altijd

Rekenen: Meten groep 4 en hoger. Het leren van simpele weegopdrachten.

Examen Datastructuren en Algoritmen II

Algoritmiek. 15 februari Grafen en bomen

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen

Transcriptie:

Informatica les 6 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica deel II & III februari mei 2015 1

Is er een machine die even slim of zelfs slimmer is als de mens!?

HAL Film 1968

Computer HAL

Vandaag 1. Puzzel 2. Backtracking 3. Scores 4. Spel: minimax 5. Non-zero sum games 6. Leren

Slimme algoritmen Hoofdstuk 5

Beslissingsalgoritme Doel bereiken Aantal acties ter beschikking Actiesequentie bedenken om doel te bereiken Jan Lemeire Pag. 7 / 77

p. 66 Indeling volgens oplossingsmethode Type 1: De oplossing kan berekend worden met een formule (analytisch). Type 2: Je kunt de oplossing gericht zoeken of construeren (rechttoe-rechtaan). Type 3: Je gaat alle mogelijke actiesequenties af om een oplossing te vinden. Type 4: Door slimme keuzes (heuristieken) te maken, kan je verschillende actiesequenties uitsluiten. Type 5: Je leert al doende welke de juiste keuzes zijn. Jan Lemeire Pag. 8 / 77

Type 1: analytisch 1. Je kan oplossing berekenen met formule Analytisch Voorbeeld: nulpunten van kwadratische vergelijking Jan Lemeire Pag. 9 / 77

Type 2: gerichte constructie Je kan oplossing gericht zoeken met quasi-zekerheid om te arriveren Voorbeelden: nulpunt van een functie zoeken met benaderingsalgoritme priemgetallen met zeef van Erathosteness Berekening grootst-gemene deler Jan Lemeire Pag. 10 / 77

p. 67 De schuifpuzzel? Staat van puzzel: posities van stukjes Mogelijke acties: LEFT, UP, RIGHT, DOWN Niet alle 4 steeds mogelijk Jan Lemeire Pag. 11 / 77

Type 3: Alle mogelijkheden afgaan Je weet niet in welke richting de oplossing ligt. Voor sommige problemen is men er vrijwel zeker van dat je alle mogelijkheden af moet lopen (NP-complete problemen, zie later) Je genereert alle mogelijke sequenties van akties en kijkt welke tot een oplossing of tot de beste oplossing leidt. het scannen van de volledige zoekruimte is nodig... Jan Lemeire Pag. 12 / 77

Zoekruimte = zoekboom Initial UP LEFT UP LEFT DOWN UP LEFT RIGHT LEFT DOWN... DOWN LEFT RIGHT Jan Lemeire Pag. 13 / 77

p. 68 Doorploeteren zoekboom = Brute-force search 2 mogelijkheden: depth-first : a-b-e-j-k-c-f-g-l-m-n-d-h-o-p-i-q = backtracking breadth-first: a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q Jan Lemeire Pag. 14 / 77

Sudoku met backtracking Niet in cursus http://en.wikipedia.org/wiki/backtracking Jan Lemeire Pag. 15 / 77

Niet in cursus Backtracking: code /** backtracking * toepassing: sudoku */ public static boolean backtracking (Node node){ List<Zet> zetten = node.volgendezetten(); } for(zet zet: zetten ){ node.doezet(zet); if (node.isoplossing()){ System.out.println("Oplossing gevonden: "+node+"!"); return true; } if (backtracking(node)) return true; // stop met verder zoeken node.ontdoezet(zet); // keer terug interface Node { boolean isoplossing(); List<Zet> volgendezetten(); void doezet(zet zet); void ontdoezet(zet zet); Node clone(); } interface Zet{ } return false; // geen children of geen enkele leidde naar oplossing } Jan Lemeire Pag. 16 / 77

/** backtracking waarbij het pad gegenereerd wordt en een maximale diepte ingesteld kan worden Niet in cursus * toepassing: schuifpuzzel van cursus **/ static int MAXIMALE_DIEPTE = 5; public static List<Zet> backtrackingmetpadenmaximalediepte (Node node, int diepte){ List<Zet> zetten = node.volgendezetten(); for(zet zet: zetten ){ node.doezet(zet); if (node.isoplossing()){ System.out.println("Oplossing gevonden: "+node+"!"); // pad wordt aangemaakt bij het terugkeren uit de recursie List<Zet> pad = new ArrayList<Zet>(); pad.add(zet); return pad; } if (diepte < MAXIMALE_DIEPTE){ List<Zet> pad = backtrackingmetpadenmaximalediepte(node, diepte+1); if (pad!= null){ pad.add(0, zet); // voeg vooraan toe return pad; // stop met verder zoeken } } node.ontdoezet(zet); // keer terug } return null; // geen children of geen enkele leidde naar oplossing Jan Lemeire Pag. 17 / 77 }

/** breadthfirst search op de zoekboom * toepassing: schuifpuzzel */ public static boolean breadthfirst (Node root){ FIFOQueue<Node> opennodes = new FIFOQueue<Node>(); opennodes.add(root); while(!opennodes.isempty()){ Node node = opennodes.get(); List<Zet> zetten = node.volgendezetten(); FIFO = first-in first-out Niet in cursus for(zet zet: zetten ){ Node child = node.clone(); //copy! child.doezet(zet); if (child.isoplossing()){ System.out.println("Oplossing gevonden: "+child+"!"); return true; } // beter nog zouden we hier moeten nagaan of de node al aanwezig is of al bezocht geweest is (lijst van bezochte nodes bijhouden - closed node list) opennodes.add(child); } } return false; // geen oplossing gevonden } Jan Lemeire Pag. 18 / 77

Conclusies Backtracking: zoekboom wordt niet in het geheugen gehouden De recursie houdt het pad bij Pad construeer je bij het terugkeren van de recursie Niet steeds snelste oplossing Breadth-first Je maakt boom aan Child moet zijn parent bijhouden (is nu niet in code) En eventueel een parent al zijn children Pad haal je uit de boom Jan Lemeire Pag. 19 / 77

Hoe generiek programmeren? niet te kennen, optioneel als vervangvraag

p. 74 Generieke implementatie Via abstractie is het algoritme algmeen bruikbaar Code + uitleg staat op website Niet te kennen interface Node { boolean isoplossing(); List<Zet> volgendezetten(); void doezet(zet zet); void ontdoezet(zet zet); Node clone(); } interface Zet{ } Jan Lemeire Pag. 21 / 77

Uitdaging: algemene oplossing onafhankelijk van het specifieke probleem dat je wenst op te lossen! Wat moet je weten om de boom aan te maken? Je moet de mogelijke acties kennen. Met de actie kom je in een nieuwe situatie, je bereikt een nieuwe toestand. Je wilt ook weten of je de gevraagde eindsituatie bereikt hebt. Allemaal operaties op de toestand Jan Lemeire Pag. 22 / 77

Document op website Probleemspecifieke code Link tussen algoritme en probleem gegeven door interface

Slimme algoritmen vervolg

Domme rekenkracht Brute force: puur rekenen Niet echt intelligent Echter: zoekruimte wordt snel te groot! 10 stappen > 2 10 1000 mogelijke sequenties 6x6 puzzel > 100 stappen > 2 100 10 30 mogelijke sequenties Kunnen we gerichter zoeken? Jan Lemeire Pag. 25 / 77

Oplossingsmethoden p. 66 Type 1: De oplossing kan berekend worden met een formule (analytisch). Type 2: Je kunt de oplossing gericht zoeken of construeren (rechttoe-rechtaan). Type 3: Je gaat alle mogelijke actiesequenties af om een oplossing te vinden. Type 4: Door slimme keuzes (heuristieken) te maken, kan je verschillende actiesequenties uitsluiten. Type 5: Je leert al doende welke de juiste keuzes zijn. Jan Lemeire Pag. 26 / 77

Gericht zoeken: greedy search p. 69 Kies actie die oplossing korter bij brengt Gebaseerd op een score Puzzel: Manhattan-afstand van stukje tot eindpositie Sommeren over alle stukjes Jan Lemeire Pag. 27 / 77

OK

stukje 2 & 3 verwisselen in beginpositie NOK in de toekomst kijken noodzakelijk

p. 70 Score-optimalisatie Iteratief tot oplossing: Zoekboom uitwerken tot een zekere diepte (horizon), vervolgens hoogste score selecteren Jan Lemeire Pag. 30 / 77

Score-optimalisatie Boom van 4 diep: 3 RIGHT LEFT UP 4 4 4 UP UP LEFT RIGHT 5 3 3 5 LEFT UP RIGHT UP DOWN UP DOWN UP 6 6 4 2 4 4 6 6 LEFT UP LEFT RIGHT UP RIGHT RIGHT RIGHT LEFT LEFT 5 DOWN 7 7 5 DOWN 5 3 5 5 7 7 7 5 Jan Lemeire Pag. 31 / 77

Score-optimalisatie stap 2 Boom uitwerken vanaf Met diepte 4 komen we er niet NOK Wat is noodzakelijke horizon om oplossing te bereiken? Jan Lemeire Pag. 32 / 77

Niet in cursus Best-first search http://en.wikipedia.org/wiki/best-first_search Net als bij breadth-first houden we een lijst bij van open nodes, maar nu een priorityqueue (en niet een FIFOqueue) waarbij de elementen gesorteerd worden naargelang hun score Iteratief worden Jan Lemeire Pag. 33 / 77

Niet in cursus Best-first search: voorbeeld Robot moet weg vinden (rood -> groen) g-score = afstand vanaf start h-score = afstand tot doel Laagste scores worden eerst bekeken http://en.wikipedia.org/wiki/a*_search_algorithm Jan Lemeire Pag. 34 / 77

Score in zoekruimte Probleem: terechtkomen in lokaal maximum Jan Lemeire Pag. 35 / 77

p. 72 Fitness landscape Biologische evolutie van soorten Fitheid: bepaald door zijn aangepastheid aan de omgeving Natuurlijke selectie Verandering bouw en het gedrag door genetische mutaties Evolutie van soorten Klimmen en sprongen door het fitness landscape elke stabiele soort op een bergtopje zit Evolutie nabootsen: genetisch algoritme Jan Lemeire Pag. 36 / 77

p. 73 Verdere verbeteringen puzzelalgoritme a) Leren (type 5): zie later b) puzzel rij-per-rij afwerken. Behalve de laatste twee rijen, die tegelijkertijd aanpakken Beperkte horizon OK c) Regels opstellen Type 1 probleem Jan Lemeire Pag. 39 / 77

Android = java Project als app High scores Projectidee

Spel

p. 74 Spel Je speelt tegen een tegenstander, hebt een aantal acties ter beschikking, speelt om beurten en er is een einddoel of eindscore bepaald. Of varianten hierop. Zero-sum game: iemand wint andere verliest Jan Lemeire Pag. 42 / 77

OXO: uitrekenbaar X begint 255.168 possible games Zonder symmetrieen: 26.830 Winst voor X: 131.184 Winst voor O: 77.904 Gelijkspel: 46.080 Jan Lemeire Pag. 43 / 77

Schaken Evaluatiefunctie (score) 1. Waarde van de stukken 2. Positie van de koning 3. Controle over het middenveld (de 4 middelste vakjes) 4. Positie van de pionnen Bijvoorbeeld, of ze aaneensluitend gepositioneerd zijn 5. Positie van de stukken bijvoorbeeld, hoeveel de bewegingsvrijheid van elk stuk Jan Lemeire Pag. 44 / 77

p. 67 Zoekboom met scores Wit & zwart spelen om beurten Score te maximaliseren door wit Wat moet wit doen: links of rechts? 4 White plays 5 6 Black plays 3 4 5 6 White plays 8 7 5 6 7 6 8 9 Black plays 7 6 4 5 8 7 5 3 2 8 3 8 7 9 9 6 Jan Lemeire Pag. 45 / 77

Greedy search Wit kiest voor rechts, zwart voor links, wit voor links en zwart voor links Eindscore wit = 2 4 White plays 5 6 Black plays 3 4 5 6 White plays 8 7 5 6 7 6 8 9 Black plays 7 6 4 5 8 7 5 3 2 8 3 8 7 9 9 6 Jan Lemeire Pag. 46 / 77

Twee zetten vooruit denken Wit kiest nog steeds voor rechts, want zwart kiest dan voor links => score van 5. Als wit voor links koos zou zwart voor links kiezen => score van 3. 4 White plays 5 6 Black plays 3 4 5 6 White plays 8 7 5 6 7 6 8 9 Black plays 7 6 4 5 8 7 5 3 2 8 3 8 7 9 9 6 Jan Lemeire Pag. 47 / 77

p. 67 Minimax: wat doet zwart? Kiest zet die score minimaliseert White plays Enkel score van de laagste nodes is van belang!!! Black plays White plays Black plays MIN 7 6 4 5 8 7 5 3 2 8 3 8 7 9 9 6 Jan Lemeire Pag. 48 / 77

Minimax: wat doet wit? Kiest zet die score maximaliseert White plays Black plays White plays MAX Black plays MIN 6 7 6 4 7 3 2 3 7 6 4 5 8 7 5 3 2 8 3 8 7 9 9 6 Jan Lemeire Pag. 49 / 77

Minimax: zwart White plays Black plays MIN 6 White plays MAX 6 4 Black plays MIN 7 6 4 5 7 3 7 7 3 2 3 7 6 8 7 5 3 2 8 3 8 7 9 9 6 Jan Lemeire Pag. 50 / 77

Minimax: wit beslist Links geeft score 6 (met horizon van 4) 6 White plays MAX Black plays MIN White plays MAX Black plays MIN 6 7 6 6 4 4 5 6 7 8 7 7 3 5 3 2 2 8 3 3 3 8 3 7 7 9 7 6 9 6 Jan Lemeire Pag. 51 / 77

Snoeien van de boom Pruning Alfa-beta pruning: als tegenstander beschikt over een succesvolle actiesequentie => geen zin om dit deel verder te bekijken Voor sommige situaties dieper gaan Regels die hierover beslissen Jan Lemeire Pag. 52 / 77

Computer wint van Mens 1997: IBM s Deep Blue verslaat wereldkampioen Gary Kasparov Nadien enkele revanches van de mens, verschillende gelijke spelen, maar nu wordt geaccepteerd dat de computer sterker is Computerschaak Brute-force search: veel rekenen, weinig redeneren Evalueert 200 millioen posities per seconde Niet goed in strategisch denken Jan Lemeire Pag. 53 / 77

Is dit Artificiële Intelligentie? p. 130 Betwijfel het Jan Lemeire, An Alternative Approach for Playing Complex Games like Chess, Annual machine learning conference of Belgium and The Netherlands (BeneLearn 2008), Spa, Belgium 2008. zie mijn homepage Idee: opportuniteit (patronen) checken of einddoel gehaald kan worden enkel branches nagaan die relevant zijn? Gericht zoeken in boom mogelijk Jan Lemeire Pag. 54 / 77

Opportuniteit: vork Opportuniteit geslaagd Jan Lemeire Pag. 55 / 77

We bekijken enkel relevante zetten die invloed kunnen hebben (pruning) Opportuniteit: vork Opportuniteit teniet gedaan Jan Lemeire Pag. 56 / 77

Moeilijkheid: patronen We bekijken enkel relevante zetten die invloed kunnen hebben (pruning) Wat zijn de relevante zetten? Hoe herkennen we ze? Patronen definiëren/herkennen Jan Lemeire Pag. 57 / 77

Go Strategisch-tactisch bordspel waarbij mens nog steeds wint van computer Regel: als vijandelijke stukken zijn ingesloten Weg Hier: wit stukje op A plaatsen Jan Lemeire Pag. 58 / 77

Non-zero sum games

p. 78 Prisoner s dillema Henry & Dave beschuldigd van misdrijf Rechter roept hen apart bij zich en vraagt hen of de ander schuldig is Antwoord bepaalt straf: Henry zegt over Dave Dave zegt over Henry Jan Lemeire Pag. 60 / 77

Iterative Prisoner s dillema Samenwerken of bedriegen? Iteratief toepassen Op termijn speelt vertrouwen mee Cf vertrouwen op het internet om iets te kopen van een vreemde De basis van de speltheorie (game theory) in economie Er is een win-win situatie (samenwerking)! Jan Lemeire Pag. 61 / 77

Jan Lemeire Pag. 62 / 77

Loopgrachtenoorlog Resulteerde in bestanden tussen de soldaten van beide kanten Van akkoorden over eetpauzes tot afspraken over (ongevaarlijke) schietuurtjes om de officieren te plezieren (doen alsof er echt gevochten werd) Iterative prisoner s dilemma!! Je kan het bestand schenden en de ander bij verrassing aanvallen Maar op lange termijn heb je meer baat bij samenwerking De legerstaf moest maatregelen nemen om deze natuurlijke evolutie tegen te gaan Jan Lemeire Pag. 63 / 77

Iterative Prisoner s dillema Samenwerken of bedriegen? Wat is beste strategie? Toernooien worden gespeeld Elk duel bestaat uit 100 opeenvolgende beslissingen Winnaar: oog-om-oog, tand-om-tand Laatste zet tegenstander Volgende zet Samenwerking Verraad Verraad Samenwerking 0 1 1 0 Jan Lemeire Pag. 64 / 77

Leren

Oplossingsmethoden Type 1: De oplossing kan berekend worden met een formule (analytisch). Type 2: Je kunt de oplossing gericht zoeken of construeren (rechttoe-rechtaan). Type 3: Je gaat alle mogelijke actiesequenties af om een oplossing te vinden. Type 4: Door slimme keuzes (heuristieken) te maken, kan je verschillende actiesequenties uitsluiten. Type 5: Je leert al doende welke de juiste keuzes zijn. Jan Lemeire Pag. 66 / 77

De Standaard 26 februari 2015

p. 80 Leren: de theorie Te definiëren de mogelijke toestanden de mogelijke acties de beloning/straf Strategie Staat -> actie State space staat 1 staat 2 staat 3 staat 4 State space staat 1 staat 2 staat 3 staat 4 Action space actie 1 actie 2 actie 3 Action space actie 1 actie 2 actie 3 Jan Lemeire Pag. 68 / 77

Reinforcement learning Matrix van gewichten bijhouden Gewicht geeft effectiviteit van actie aan actie 1 actie 2 actie 3 staat 1 staat 2 staat 3 staat 4 4.1 3.8 6.7 12.3 1.2 15.6 8.7 10.2 0.2 2.3 8.7 1.7 Initieel: alle gewichten gelijk Exploratiefase: acties worden willekeurig gekozen Al is het goed om soms want het spel kan dynam op een bepaalde momen optimaal blijken te zijn Later: keuze ~ gewicht (P(actie) ~ gewicht) Exploitatiefase: actie met grootste gewicht kiezen Jan Lemeire Pag. 69 / 77

Reinforcement learning: update Als beloning/straf, de laatste acties belonen/afstraffen eventueel met forgetting factor : kleinere aanpassing voor oudere acties staat 2 actie 1 staat 3 actie 1 staat 1 actie 2 staat 1 actie 3 staat 4 +0.5 +1 +1.5 +2 Winst 10 Jan Lemeire Pag. 70 / 77

Iterative Prisoner s Dilemma Reinforcement learning Gebaseerd op n laatste zetten N=2: 16 mogelijkheden Gewicht voor de volgende zet aanpassen als tegenstander het omgekeerde doet Leidt dit tot een goede strategie?? Laatste zetten S/S S/V S/S S/S S/S V/V S/S V/S Als tegenstander Verraad Samenwerking Volgende zet Samenwerking Verraad 4.1 3.8 12.3 1.2 8.7 10.2 2.3 8.7...... -5% +5% +5% -5% Jan Lemeire Pag. 71 / 77

Mijn masterproef De evolutie naar coöperatie Egoistische robotjes leren samenwerken omdat het hun wederzijds voordeel oplevert (win-win) Mijn onderzoek: onder welke voorwaarden ontstaat er coöperatie? Jan Lemeire Pag. 72 / 77

Niet in cursus Blad-steen-schaar Laatste zet bl bl bl - st bl - sc st bl st - st st - sc sc bl sc - st sc - sc blad Volgende zet steen schaar 4.1 3.8 3.6 12.3 1.2 1.8 8.7 10.2 3.4 2.3 8.7 7.8 4.1 3.8 3.6 12.3 1.2 1.8 8.7 10.2 3.4 2.3 8.7 7.8 4.1 3.8 3.6 Enkel laatste zet beschouwen: 9x3 gewichten Jan Lemeire Pag. 73 / 77

Niet in cursus Blad-steen-schaar Jan Lemeire Pag. 74 / 77

Niet in cursus Patroon gebruiken Laatste zet winst verlies gelijk verander Volgende zet blijf random 14.1 3.8 3.6 14.3 1.2 1.8 11.7 1.2 8.4 Slechts 9 gewichten te leren Jan Lemeire Pag. 75 / 77

Leren van evaluatiefunctie Net zoals bij de schuifpuzzel kunnen we onmogelijk voor elke situatie de beste actie leren Wel mogelijk: Aanpassen van parameters met behulp van feedback (winst of verlies) Voorbeeld: gewichten van de score-functie, aangezien deze uit meerdere delen bestaat. Zoals evaluatiefunctie van schaken Jan Lemeire Pag. 76 / 77

Probleem: explosie van staten p. 82 Stel: voor elke toestand (staat) willen we beste zet leren Schuifpuzzel: 9! mogelijke configuraties Schaken: nog groter Te veel mogelijkheden om voor elke toestand de beste actie te leren (mapping van staat op actie)! Mogelijke oplossing: abstracte regels gebruiken Als X, doe actie Y X: eigenschap van staat geldt dus voor meerdere staten! Leren van relevantie van regels (zie scorefunctie) Jan Lemeire Pag. 77 / 77