Computerspellen in soorten en maten

Vergelijkbare documenten

Kunstmatige intelligentie

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

Opgaven Kunstmatige Intelligentie 1 maart 2017

Spellen: Van puzzels via tomografie naar backtracking. dinsdag 14 en 21 januari 2014; zaal 409 en 302

Kunstmatige Intelligentie (AI) Walter Kosters. voorjaar kosterswa/ai/aieen.pdf

Datastructuren: stapels, rijen en binaire bomen

Kunstmatige Intelligentie (AI) Hoofdstuk van Russell/Norvig = [RN] Genetische algoritmen. voorjaar 2016 College 11, 3 mei 2016

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008

Informatie voor de leerkracht Introductie nieuw concept (pagina 1) Programmeren met Bomberbot (pagina 1)

Kunstmatige Intelligentie (AI) Hoofdstuk 25 van Russell/Norvig = [RN] Robotica. voorjaar 2019 College 9, 11 april 2019

XPcpelmmuttelsecoutmainRedHatmkdireditorenumDebian. classusingmathunitytruecpsusenamespacestructinclude

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Verslag Opdracht 4: Magische Vierkanten

Programmeermethoden. Arrays. Walter Kosters. week 7: oktober kosterswa/pm/

DOMjudge teamhandleiding

Informatica kiezen. Informatica: iets met computers? Informatie over het vak informatica in de Tweede Fase van havo en vwo

De eerste ronde Nederlandse Informatica Olympiade

DOMjudge teamhandleiding

Afbeelding 12-1: Een voorbeeld van een schaakbord met een zwart paard op a4 en een wit paard op e6.

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

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


C++ programmeermethoden Bachelor Kunstmatige Intelligentie

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

Opgave 2. Binaire informatie

Hoofdstuk 3 (tot en met 3.4) van Russell/Norvig = [RN] Probleemoplossen en zoeken

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

NAAM: Programmeren 1 Examen 29/08/2012

DOMjudge teamhandleiding

WELKOM BIJ BOMBERBOT! LES 1: WAT IS PROGRAMMEREN LES 1: WAT IS PROGRAMMEREN WAAR GAAT DEZE LES OVER? INTRODUCTIE

Proefstuderen Informatica

BEGINNER JAVA Inhoudsopgave

Online c++ leren programmeren:

Datastructuren: stapels, rijen en binaire bomen

Meer Blokken. 1. Dit is een functie genaamd Maximum, die twee argumenten heeft: number1 en number2.

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)

TELEPORTEREN MET VARIABELEN

Maak zelf een algoritme wanneer je een auto kunt winnen en welke auto je wint.

Introductie tot de cursus

VBA voor doe het Zelvers deel 22. Handleiding van Helpmij.nl. Auteur: leofact


Computer Vision: Hoe Leer ik een Computer Zien?

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

slides2.pdf 2 nov

Welkom! Veel plezier met Scratch!

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Informatica: C# WPO 12

Beste deelnemer, Wanneer we vanmiddag op het kampterrein aankomen, zullen we beginnen met een verkenningsrondje over het terrein. Dat is op zichzelf

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Datastructuren Werkcollege Intro

ZELF COMPUTERSPELLEN BOUWEN MET DWENGO. Peter Bertels en Francis Wyffels

Vooraanmeldingen per instelling voor Bachelor Opleidingen (1e jrs) Bachelor vooraanmeldingen per instelling

Vooraanmeldingen per instelling voor Bachelor Opleidingen (1e jrs) Bachelor vooraanmeldingen per instelling

BSc Kunstmatige Intelligentie. : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : semester 1, periode 2

9 Meer over datatypen

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

Inleiding Programmeren 2

Scratch les 1 Rekenen

Informatica: C# WPO 13

Elke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten.

Dit instructieboek is een kopie van het echte NK. Alleen de puzzels zijn verwijderd.

Hoe gaat het met je studie?

De jury beslist of een inzending geldig is. Over de uitslag kan niet worden gecorrespondeerd. WCPN Nederlands Kampioenschap 2014

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Junior College Utrecht

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina.

Rekenen aan wortels Werkblad =

Vooraanmeldingen per instelling voor Bachelor Opleidingen (1e jrs) Bachelor vooraanmeldingen per instelling

Examen Datastructuren en Algoritmen II

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur.

Beverwedstrijd klas 1 2 opgaven 1 e ronde 2007 Pentomino's schuiven

Modelleren en Programmeren

Transcriptie:

in soorten en maten dr. Walter Kosters, Universiteit Leiden Toptoets, Universiteit Leiden, Informatica woensdag 4 juni 2008 www.liacs.nl/home/kosters/ 1

School basisschool middelbare school universiteit 2

Universiteit Als je naar de universiteit gaat, ben je student. Je volgt dan colleges, en je studeert een vak. Je hebt universiteiten in Amsterdam, Rotterdam, Utrecht, Delft, Leiden,... Je kunt bijvoorbeeld het vak Engels studeren, of voor dokter studeren ( geneeskunde ). Of het vak Informatica: computer-wetenschap. 3

Programmeren Je programmeert een computer in een speciale computertaal of programmeertaal, bijvoorbeeld C ++, Java of Python. In Leiden leren alle eerstejaars studenten Informatica, Wiskunde, Natuurkunde en Sterrenkunde de taal C ++. Voorkennis is niet echt nodig. 4

Hello world Een eerste C ++ -programma: #include <iostream> using namespace std; int main ( ) { cout << "Dit komt op het scherm." << endl; return 0; }//main Dit programma zet alleen een tekstje op het beeldscherm. Let op de vooral voor mensen nuttige layout. En op hoofdletters en kleine letters. 5

Een tweede programma Een tweede C ++ -programma: // dit is een simpel programma #include <iostream> using namespace std; int main ( ) { int getal = 42; // een variabele declareren // en initialiseren cout << "Geef een geheel getal.. " << endl; cin >> getal; cout << "Kwadraat is: " << getal * getal << endl; return 0; }//main 6

Spellen Computerspellen zijn met behulp van zo n programmeertaal geprogrammeerd. Voorbeelden: Tetris Quake GTA 4 Mario Guitar Hero 7

Verschillende kanten Als je een spel programmeert, moet je denken aan de graphics: hoe ziet het er uit? hoe speelt het? slim? menselijk? Voor dat laatste gebruiken we de term Kunstmatige intelligentie. Het oplossen van puzzels hoort hier ook bij. 8

Kunstmatige intelligentie 9

AI Introductie Kunstmatige intelligentie (AI, Artificial Intelligence) is een verzamelnaam voor een breed vakgebied, met vragen als: robotica: Hoe programmeer je een robot? data mining: Hoe zoekt Google? rechtspraak: Word je volautomatisch be/veroordeeld? vertalen: the spirit is willing but the flesh is weak... the vodka is good but the meat is rotten? computer games: Hoe speelt de computer bij Quake? neurale netwerken: Kun je beurskoersen voorspellen? 10

AI Mobiele robots NASA Sojourner Sony Aibo Hiroshi Ishiguro s robot (en hijzelf) Honda 11

AI RoboCom In het programma RoboCom vechten robot-programma s met elkaar. ; een klein robot-programma NAME Flooder/Shielder BANK Een ; eerste en enige bank @Loop ; label TURN 0 ; draai linksom SCAN #5 ; scan reference field COMP #5,0 ; leeg=0? vijand=1, vriend=2 JUMP @Loop ; nee, verder draaien CREATE 2,1,0 ; ja; creeer nieuwe robot TRANS 1,1 ; en kopieer jezelf SET %Active,1 ; activeer hem/haar ; auto-reboot www.cyty.com/robocom/ 12

AI Spel(l)en Maxi en Mini spelen het volgende eenvoudige spel: Maxi wijst eerst een horizontale rij aan, en daarna kiest Mini een verticale kolom. 3 12 8 2 4 6 14 5 2 Bijvoorbeeld: Maxi kiest rij 3, daarna kiest Mini kolom 2; dat levert einduitslag 5. Maxi wil graag een zo groot mogelijk getal, Mini juist een zo klein mogelijk getal. Hoe spelen we dit spel zo goed mogelijk? 13

AI α-β-algoritme Als Maxi rij 1 kiest, kiest Mini kolom 1 (levert 3); als Maxi rij 2 kiest, kiest Mini kolom 1 (levert 2); als Maxi rij 3 kiest, kiest Mini kolom 3 (levert 2). Dus kiest Maxi rij 1! 3 12 8 2?? 14 5 2 Nu merken we op dat de analyse hetzelfde verloopt als we niet eens weten wat onder de twee vraagtekens zit. Het α-β-algoritme onthoudt als het ware de beste en slechtste mogelijkheden, en kijkt niet verder als dat toch nergens meer toe kan leiden. Ieder schaakprogramma gebruikt deze methode. 14

15

Schaken 16

Japanse puzzels Japanse puzzels (nonogrammen) zien er zo uit: 1 1,1 1 1,1 1 0 1,1 0 1,1 3 7 7 7 7 7 7 7 Naast iedere rij en boven iedere kolom staan in volgorde de lengtes van aaneengesloten series rode blokjes. Hoe los je dit op? En wat heeft dit te maken met een CT-scan in het ziekenhuis? 17

Tetris Ook aan een spel als Tetris kleven allerlei vragen: Hoe speel je het zo goed mogelijk? (AI) Hoe moeilijk is het? Wat kan er allemaal gebeuren? Zo is bijvoorbeeld bewezen dat sommige Tetris-problemen NP-volledig zijn, en dat je bijna alle configuraties kunt bereiken, zie: www.liacs.nl/home/kosters/tetris/ 18

Tetris: NP-volledig? De 7 Tetris-stukken: Stukken vallen random; volle regels worden verwijderd. De vraag Kun je met een gegeven serie (inclusief volgorde) van deze stukken een bord helemaal leeg spelen? is heel erg moeilijk te beantwoorden. 19

Tetris: bereikbaar? ¹ ½ Een willekeurige configuratie: Deze kan gemaakt worden door 276 geschikte Tetris-stukken op de juiste plaats te laten vallen. Let op: alleen geheel gevulde regels verdwijnen, alles daarboven zakt één rij. Claim: op een bord van oneven breedte kan elke configuratie bereikt worden! 20