Informatica door de jaren heen

Vergelijkbare documenten

Computerspellen in soorten en maten

(Kunst)Matige intelligentie

Kunstmatige intelligentie

Van AI tot Data mining Van robots via boodschappenmandjes tot bio-informatica

Informatica door de jaren heen

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

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

Kunstmatige Intelligentie (AI) Hoofdstuk 25 van Russell/Norvig = [RN] Robotica. voorjaar 2016 College 8, 12 april 2016

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

Opgaven Kunstmatige Intelligentie 1 maart 2017

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

De Leidsche Flesch Studievereniging voor Natuurkunde, Sterrenkunde, Wiskunde en Informatica sinds DLF Pointerworkshop

C``ifPCwhileLinuxdiffintFirefoxboolpublicprivateWindows. fileg``unixvisualosfedoralscharpsopenclosegetputarray

NAAM: Programmeren 1 Examen 29/08/2012

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

Bijlagen bacheloropleiding Kunstmatige Intelligentie

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

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

Kunstmatige Intelligentie (AI) Hoofdstuk 6 van Russell/Norvig = [RN] Constrained Satisfaction Problemen (CSP s) voorjaar 2015 College 7, 31 maart 2015

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

XPcpelmmuttelsecoutmainRedHatmkdireditorenumDebian. classusingmathunitytruecpsusenamespacestructinclude

C++ programmeermethoden Bachelor Kunstmatige Intelligentie

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

Bijlage bacheloropleiding Informatica

Bijlagen gentie. Bijlage. Bijlage. Bijlage - - vakgebied. Educatie en. Major van. Minor van

Bijlagen Bacheloropleiding Kunstmatige Intelligentie. Bijlage I Eindtermen van de bacheloropleiding

Programmeermethoden. Arrays (vervolg 2) Walter Kosters. week 9: 6 10 november kosterswa/pm/

Opgave 2. Binaire informatie

Programmeermethoden. Pointers. Walter Kosters. week 10: november kosterswa/pm/

De eerste ronde Nederlandse Informatica Olympiade

Workshop DisWis, De Start 13/06/2007 Bladzijde 1 van 7. Sudoku. Sudoku

Programmeermethoden NA. Week 3: Controlestructuren

Datastructuren: stapels, rijen en binaire bomen

Overgangsregelingen Bachelor Economie en Informatica - vanaf 2006

Programma Bachelor- en Masteropleiding Informatica

Wiskundig denken, logica en redeneren Het gebruik van woorden en symbolen om patronen te beschrijven en patronen te herhalen Taal

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

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

waar is hier de uitgang?

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

Bijlagen bacheloropleiding Kunstmatige Intelligentie

Vernieuwing Bacheloropleidingen Informatica en Informatiekunde

Verslag Opdracht 4: Magische Vierkanten

Datastructuren: stapels, rijen en binaire bomen

BEGINNER JAVA Inhoudsopgave

Sudoku s en Wiskunde

Mindset en Effectief studeren

Curriculum Afkortingen Bachelor Informatica Propedeuse Postpropedeuse Start Vervolg Afsluiting 60,0 Gebonden keuze (8,6 EC) Afsluiting

Uitwerking tentamen Analyse van Algoritmen, 29 januari

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

KEUZEVAKKENGIDS BACHELOR INFORMATICA. 2015/2016 Version

Curriculum Afkortingen Bachelor Informatica Propedeuse Postpropedeuse Start Vervolg Afsluiting 60,0 Gebonden keuze (8,6 EC) Afsluiting

Algoritmiek. 2 februari Introductie

Bijlage bacheloropleiding Informatica

slides2.pdf 2 nov

Introductie opleiding Informatica

Opdracht: Hilberts hotel

Gametechnologie algemene presentatie

Puzzels en wiskunde. Inleiding. Algoritme. Sudoku. 22 Puzzels en wiskunde

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008

Overgangsregelingen Bachelor Economie en Informatica - vanaf 2006

9 Meer over datatypen

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

Programmeermethoden. Algoritmen. Walter Kosters. week 13: 3 7 december kosterswa/pm/

Vijfde college algoritmiek. 17 maart Exhaustive search Graafwandelingen Backtracking

Ieder tweetal heeft nodig: Een kopie van de slagschipspelletjes: 1. 1A, 1B voor spel A, 2B voor spel A, 3B voor spel 3

Gametechnologie algemene presentatie. Marc van Kreveld Eva Witschge

Examen Datastructuren en Algoritmen II

Nieuw Curriculum Bachelor Technische Informatica 2013

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

Programmeermethoden. Functies vervolg. Walter Kosters. week 5: 1 5 oktober kosterswa/pm/

Datastructuren en Algoritmen

Een spoedcursus python


AI en Data mining. Van AI tot Data mining. dr. Walter Kosters, Universiteit Leiden. Gouda woensdag 17 oktober

Online c++ leren programmeren:

Introductie opleiding Informatica

Dinsdag 10 juni uur

Uitvoeringsregeling (art W.H.W.)

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

MICRO:BIT. Uitdaging 5 Magic8. Origineel: Micro:bit Educational Foundation 2016 Vertaling: CoderDojo Kennemerwaard 2017

1 Binaire plaatjes en Japanse puzzels

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Programma s BSc opleidingen Natuurkunde:

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


Informatica aan de Universiteit Antwerpen

WISKUNDE EN DE OPLEIDING WISKUNDE AAN DE UNIVERSITEIT GENT

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

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

Programmeren (1) Examen NAAM:

Rekenen: Getallen groep 5 en hoger. Rekenen en schattingen ontdekken. Algebra groep 5 en hoger. Patronen en relaties ontdekken.

Tiende college algoritmiek. 26 april Gretige algoritmen

Waarmaken van Leibniz s droom

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Examen Datastructuren en Algoritmen II

Zevende college Algoritmiek. 6 april Verdeel en Heers

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

Transcriptie:

Informatica door de jaren heen (en Tetris) dr. Walter Kosters, Universiteit Leiden Ouderdag, Leiden, zaterdag 21 april 2012 www.liacs.nl/home/kosters/ 1

Informatica Door de jaren heen eerste, tweede en derde jaar van onderwijs naar onderzoek: Nonogrammen, Tetris,... vroeger, nu en later 2

Informatica Studie propedeuse Bij de studie Informatica krijg je per jaar een tiental vakken: de colleges. De propedeuse, het eerste jaar van de driejarige bachelor, ziet er als volgt uit: najaar voorjaar Programmeermethoden Algoritmiek Fundamentele informatica 1 Logica Digitale technieken Databases Continue wiskunde Lineaire algebra Studievaardigheden Challenges (app!) 3

Informatica Studie 2e/3e jaar Tweede en derde jaar zijn als volgt: najaar voorjaar Datastructuren Kunstmatige intelligentie Fundamentele informatica 2 Complexiteit Computerarchitectuur Operating systemen Programmeertalen Correctheid Requirements engineering Software engineering Compilerconstructie Netwerken Fundamentele informatica 3 Theorie van concurrency Human computer interaction Bachelorproject Data mining Keuzevak 1 Keuzevak 2 4

Programmeermethoden 5

Programmeermethoden Introductie 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. 6

Programmeermethoden 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.

Programmeermethoden 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 8

Programmeermethoden Controle-structuren C ++ kent de volgende controle-structuren: keuze if onbekend (maar eindig?) aantal herhalingen while vast aantal herhalingen for We gebruiken geen labels/goto s! 9

Programmeermethoden Eerste programmeeropgave... I work 9 5 in a 11 Allereerst moet de bezoeker zijn/haar geboortejaar als geheel getal invoeren, en daarna de geboortemaand, ook als geheel getal. Vervolgens voert hij/zij de geboortedag in, wederom als geheel getal. Het programma berekent dan de leeftijd van de gebruiker, zowel in aantal jaren als in maanden (bijvoorbeeld: 10 jaar en 3 maanden; 123 maanden); beide worden op het beeldscherm getoond. De leeftijd in maanden wordt analoog aan die in jaren bepaald (als je op de 31ste geboren bent, wordt je iedere maand een maand ouder, maar je bent niet zo vaak maandig). Nu moet de bezoeker zijn geboort edag (zondag, maandag,..., zaterdag) geven. Als deze goed is, gaat het programma verder, en anders stopt het.... 3/4.1, 0.3, 4.4, 6.6, 8.8, 10.10, 12.12 10

Programmeermethoden Algoritmen Bij het vervolgcollege Algoritmiek komen algoritmen (oplossingsmethoden) aan de orde, bijvoorbeeld voor het oplossen van het probleem van de Kool, de Geit en de Wolf: RKG W RKGW RG KW G RKW RGW K K RGW RKW G KW RG RKGW W RKG 11

Kunstmatige intelligentie 12

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? WikiLeaks? 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 CoD? neurale netwerken: Kun je beurskoersen voorspellen? 13

AI Invalshoeken Je kunt op minstens twee manieren naar Kunstmatige intelligentie kijken: 1. vanuit een meer psychologische of filosofische richting: Wat is het verschil tussen een mens en een computer? Kan een computer denken? 2. vanuit een meer technische richting: Hoe werkt een schaakprogramma? Hoe werkt een Marsrobot? 14

AI Wat is AI? Kunstmatige intelligentie laat computers zich zo gedragen dat het intelligent zou heten als mensen het op die manier zouden doen. De beroemde Turing-test (1950) stelt het volgende probleem. In een afgesloten kamer bevindt zich een mens of een computer, waarmee we alleen via een computerverbinding contact kunnen hebben. Kunnen wij bepalen of het een mens is, of juist een computer? Het originele probleem was overigens met man vrouw. 15

AI ELIZA Al in 1964 66 schreef Joseph Weizenbaum van het MIT in Boston het beroemde programma ELIZA/DOCTOR, dat een psychotherapeut speelt met veel succes. Een voorbeeldconversatie (Jason Hutchens HAL/HeX): my name is bob Pleased to meet you. how are you doing, jas? I am just fine, thanks! And you? i am feeling great! If you are feeling great, it s your business, mate! Dit soort computerprogramma s doet mee in de jaarlijkse Loebner-contest. 16

AI Robotica Een robot is een actieve, kunstmatige agent wiens omgeving de fysieke wereld is. Het woord stamt uit 1921 (of eerder), en is gemaakt door de Tsjechische broers Capek. En softbots: RoboCom, internet programma s. Van de science fiction schrijver Isaac Asimov (auteur van I, Robot ) zijn de drie wetten van de robotica: 1. Een robot mag een mens geen kwaad doen. 2. Een robot moet menselijke orders gehoorzamen (tenzij dat tegen 1. ingaat). 3. Een robot moet zichzelf beschermen (tenzij dat tegen 1. of 2. ingaat). 1

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

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 19

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? 20

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. 21

AI Schaken 22

AI Watson IBM heeft in 2011 een computer Jeopardy! laten spelen: 23

Nonogrammen 4 3 10 9 1 3 1 1 8 1 4 1 3 1 2 2 5 1 4 8 1 2 2 1 1 2 3 4 1 1 2 3 3 6 6 9 8 1 4 3 8 2 6 1 3 1 1 2 1 1 5 5 1 2 3 2 2 3 3 3 1 2 1 3 13 6 4 3 1 4 9 1 6 12 9 2 3 1 1 1 4 3 3 2 3 1 2 4 3 1 3 2 1 1 1 1 1 10 9 4 6 8 4 3 3 2 1 4 4 3 2 2 1 1 1 3 2 1 1 1 3 6 2 4 4 9 1 2 3 2 1 5 4 6 1 1 8 3 1 6 11 23 14 1 1 3 4 4 5 2 5 10 3 4 4 2 2 5 2 5 4 3 3 3 4 6 4 5 1 1 2 2 2 2 2 5 1 1 4 5 1 2 8 3 3 4 3 5 1 10 2 3 8 3 2 2 2 3 4 11 14 6 5 4 2 2 2 2 3 2 3 5 6 12 3 5 3 1 10 6 10 8 9 4 2 6 1 3 1 12 14 2 4 9 9 8 11 5 2 22 20 18 16 14 12 13 11 9 8 5 5 4 3 3 3 1 1 2 2 2 3 3 4 5 5 6 8 8 9 10 11 12 13 14 15 16 16 18 19 20 21 23 42 42 2 16 14 4 8 14 12 9 5 14 1 4 1 6 3 14 4 1 9 1 14 2 3 13 2 1 1 10 14 11 4 5 8 3 3 8 2 3 1 3 1 2 4 6 6 6 5 5 1 3 6 2 2 5 2 4 5 1 1 10 5 11 10 9 1 9 4 3 3 2 3 2 6 1 2 5 3 8 2 2 6 2 4 3 2 2 3 4 3 13 2 1 2 2 9 5 2 2 5 3 1 9 2 3 8 12 2 6 2 1 12 10 3 14 4 3 4 2 1 1 3 1 1 2 2 3 2 3 2 2 2 2 1 3 2 2 1 2 2 3 3 1 2 1 3 2 3 1 2 4 1 3 1 3 3 1 3 1 1 4 1 4 1 2 4 1 2 1 2 2 5 1 4 1 2 5 1 5 3 1 2 4 1 9 3 1 1 1 1 6 2 5 1 2 5 1 1 2 4 1 1 2 2 1 1 2 2 1 1 2 2 2 2 1 3 2 3 2 1 6 2 1 2 1 2 3 2 1 20 1 2 3 2 2 22 1 3 2 1 6 3 1 4 3 1 2 1 5 1 4 3 1 2 1 1 1 4 1 5 4 1 2 1 4 6 4 1 2 1 2 1 5 1 2 1 1 4 8 5 2 1 4 8 6 1 2 1 4 10 6 1 2 2 3 11 2 1 1 1 12 1 2 1 2 2 13 9 3 1 1 14 10 2 2 15 10 3 2 16 11 2 1 1 12 19 13 5 20 14 21 15 23 16 24 19 26 50 13 5 29 24

Nonogrammen Introductie Als je Japanse puzzels zegt, denkt iedereen aan Sudoku. 5 3 6 1 9 5 9 8 6 8 6 3 4 8 3 1 2 6 6 2 8 4 1 9 5 8 9 25

Nonogrammen Introductie Als je Japanse puzzels zegt, denkt iedereen aan Sudoku. 5 3 4 6 8 9 1 2 6 2 1 9 5 3 4 8 1 9 8 3 4 2 5 6 8 5 9 6 1 4 2 3 4 2 6 8 5 3 9 1 1 3 9 2 4 8 5 6 9 6 1 5 3 2 8 4 2 8 4 1 9 6 3 5 3 4 5 2 8 6 1 9 bron: Wikipedia Maar wij gaan het hebben over Nonogrammen. 26

Nonogrammen Voorbeeld Een Nonogram is een puzzel; een klein voorbeeld: 1 1 1 1 1 1 1 0 1,1 0 1,1 3 Naast iedere rij en boven iedere kolom staan in volgorde de lengtes van aaneengesloten series rode (of zwarte) vakjes. Waar moeten die rode vakjes komen? 2

Nonogrammen Voorbeeld oplossing De oplossing ziet er zo uit: 1 1 1 1 1 1 1 0 1,1 0 1,1 3 Naast iedere rij en boven iedere kolom staan in volgorde de lengtes van aaneengesloten series rode (of zwarte) vakjes. 28

Nonogrammen Oplossen Hoe los je Nonogrammen op? De meeste mensen gebruiken logische regels, en heuristieken = vuistregels zoals redeneer eerst een keer via de rijen, en dan via de kolommen. Een voorbeeld van een logische regel is: als het getal 3 naast een rij van breedte 5 staat, moet het middelste vakje wel rood zijn. Je kijkt dan eigenlijk naar één rij of kolom. Een heuristiek uit het dagelijks leven: als je een bedrag (zeg 80 cent) moet betalen, kun je het beste de grootste kleinere munt (50 cent?) die je hebt eerst geven. 29

Nonogrammen Eén rij of kolom Stel dat je van een rij al weet: 3,2,1???????? Een betekent een zeker leeg vakje, een staat voor een zeker gevuld vakje. De rest is nog onbekend. Wat kun je hier nu concluderen? 30

Nonogrammen Eén rij of kolom We concluderen dan dat voor deze rij geldt: 3,2,1???? Een betekent een zeker leeg vakje, een staat voor een zeker gevuld vakje. De rest blijft nog onbekend. Dus door naar een enkele rij of kolom te kijken kun je vooruitgang boeken. En dat gaat goed met dynamisch programmeren. 31

Nonogrammen Voorbeeld oplossen Hoe ver komen we als je alleen per rij/kolom kijkt? Een betekent weer een zeker leeg vakje, een staat voor een zeker gevuld vakje. 0 1,1 0 1,1 3 1 1 1 1 1 1 1???????? Maar nu zitten we vast... tenzij we rijen en kolommen samen bekijken. 32

Nonogrammen Voorbeeld verder oplossen Dit hadden we: 1 1 1 1 1 1 0 1,1 0 1,1 3 1 v w u x???? Stel dat u =, dan (kolom) moet v leeg zijn, en dus (rij) w =, en dus (kolom) moet x leeg zijn. Tegenspraak (rij)! Dus u moet leeg zijn. Dat was een lastige logische redenering, ook voor een computer. Maar de rest is nu eenvoudig. 33

Nonogrammen Te veel Soms heeft een probleem meer mogelijke (goede en foute) oplossingen dan je kunt doorrekenen. Zo heeft een 5 5 Nonogram al 2 25 = 2 10 2 10 2 5 = 1024 1024 32 32 miljoen mogelijke invullingen! Er zijn immers 5 5 = 25 vakjes die elk 2 mogelijkheden hebben. De 80 50 Einstein heeft 2 4000 10 1200 mogelijkheden. Dus brute-force, alles domweg proberen, lost een complete puzzel niet snel op... 34

Nonogrammen NP-volledig Het oplossen van een Nonogram is een NP-volledig probleem, net als het maken van een schoolrooster. Dat kan eigenlijk alleen goed met brute-force, maar dan duurt het veel te lang. Van een mogelijke oplossing kun je wel snel zien of hij goed of fout is. Het grootste open probleem in de informatica P? = NP gaat hierover. Je kunt een miljoen dollar verdienen als je dit oplost: de Clay Prize. Het gaat daar niet om het oplossen van één puzzel of maken van één schoolrooster, maar om het vinden van een efficiënte algemene methode als die al bestaat. 35

Nonogrammen Ontwerpen Hoe maak = construeer = ontwerp je zelf een Nonogram? kleurenfoto grijswaarden-plaatje puzzel http://www.liacs.nl/home/kosters/nono/ 36

Nonogrammen Uniek? Denk eraan dat een goed Nonogram een unieke oplossing moet hebben. Ze hebben in het algemeen namelijk soms heel verschillende oplossingen: 1 1 1 1 1 1 1 1 1,1 1,1 1,1 1,1 3

Nonogrammen Tomografie Waarom doen wetenschappers Nonogrammen? Tomografie houdt zich bezig met het volgende probleem: Hoe reconstrueer je een object uit projecties? Voorbeelden: Nonogrammen oplossen Hoe zien onze organen eruit, gegeven CT-scans? Waar zitten de gaten in een diamant? 38

Tetris 39

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

Tetris NP-volledig? De 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 NP-volledig. (Ander voorbeeld: kun je een gegeven postzegelwaarde plakken?) Als iemand het bord leeg speelt kun je dat eenvoudig controleren. Als het niet kan, kan men (tot nu toe) niks beters verzinnen dan alle mogelijkheden één voor één na te gaan! 41

Tetris Alles bereikbaar? ¹ ½ Een willekeurige configuratie: Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Deze kan gemaakt worden door 26 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! 42

Vragen? 43