13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe...

31
13 februari 2009 13 februari 2009 4VWO dag Radboud Universiteit Nijme 4VWO dag Radboud Universiteit Nijme gen gen 1 Sudoku puzzels: Sudoku puzzels: hoe los je ze op en hoe hoe los je ze op en hoe maak je ze? maak je ze? Prof. dr. Hans Prof. dr. Hans Zantema Zantema Informatica Informatica Technische Universiteit Technische Universiteit Eindhoven / Radboud Eindhoven / Radboud Universiteit Nijmegen Universiteit Nijmegen

Transcript of 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe...

Page 1: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

13 februari 200913 februari 2009 4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 11

Sudoku puzzels: Sudoku puzzels: hoe los je ze op en hoe maak hoe los je ze op en hoe maak

je ze?je ze?

Prof. dr. Hans Zantema Prof. dr. Hans Zantema InformaticaInformatica

Technische Universiteit Eindhoven Technische Universiteit Eindhoven / Radboud Universiteit Nijmegen/ Radboud Universiteit Nijmegen

Page 2: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 2213 februari 200913 februari 2009

Wat gaan we Wat gaan we doen?doen?

De spelregels van sudokuDe spelregels van sudoku Hoe los je ze op?Hoe los je ze op? Hoe kan de computer dat voor je Hoe kan de computer dat voor je

doen?doen? Hoe maakt de computer nieuwe Hoe maakt de computer nieuwe

sudoku’s?sudoku’s?

Page 3: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 3313 februari 200913 februari 2009

De spelregels van sudokuDe spelregels van sudoku 9x9 vierkant9x9 vierkant

In sommige hokjes staat een cijfer In sommige hokjes staat een cijfer van 1 tot en met 9van 1 tot en met 9

De andere hokjes zijn nog leegDe andere hokjes zijn nog leeg Er zijn 27 Er zijn 27 blokkenblokken::

de 9 rijen de 9 rijen de 9 kolommende 9 kolommen de 9 aangegeven 3x3 vierkantende 9 aangegeven 3x3 vierkanten

Het 9x9 vierkant moet zo Het 9x9 vierkant moet zo worden ingevuld dat elk cijfer in worden ingevuld dat elk cijfer in elk blok precies elk blok precies één keer één keer voorkomt voorkomt

Er is Er is precies precies één één oplossing oplossing

Page 4: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 4413 februari 200913 februari 2009

Hoe los je ze op?Hoe los je ze op? Waar mag in het middelste vierkante Waar mag in het middelste vierkante

blok een 7?blok een 7?

Page 5: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 5513 februari 200913 februari 2009

Hoe los je ze op?Hoe los je ze op? Waar mag in het middelste vierkante Waar mag in het middelste vierkante

blok een 7?blok een 7?

Page 6: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 6613 februari 200913 februari 2009

Hoe los je ze op?Hoe los je ze op? Waar mag in het middelste vierkante Waar mag in het middelste vierkante

blok een 7?blok een 7?

Page 7: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 7713 februari 200913 februari 2009

Hoe los je ze op?Hoe los je ze op? Waar mag in het middelste vierkante Waar mag in het middelste vierkante

blok een 7?blok een 7?

Page 8: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 8813 februari 200913 februari 2009

Hoe los je ze op?Hoe los je ze op? Waar mag in het middelste vierkante Waar mag in het middelste vierkante

blok een 7?blok een 7?

Page 9: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 9913 februari 200913 februari 2009

Hoe los je ze op?Hoe los je ze op? Waar mag in het middelste vierkante Waar mag in het middelste vierkante

blok een 7?blok een 7?

Page 10: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 101013 februari 200913 februari 2009

Dit noemen we een Dit noemen we een blokzet:blokzet: Kies een blok, en een cijfer dat nog niet in dat Kies een blok, en een cijfer dat nog niet in dat

blok voorkomtblok voorkomt Beredeneer voor elk van de lege hokjes in dat Beredeneer voor elk van de lege hokjes in dat

blok op blok op één na dat één na dat dat cijfer daar niet gezet dat cijfer daar niet gezet mag wordenmag worden

Zet dat cijfer op het resterende lege hokjeZet dat cijfer op het resterende lege hokje

Dit geldt voor alle soorten blokken: ook rijen en Dit geldt voor alle soorten blokken: ook rijen en kolommenkolommen

De meeste sudoku’s in kranten en boekjes De meeste sudoku’s in kranten en boekjes kunnen met alleen maar blokzetten worden kunnen met alleen maar blokzetten worden opgelostopgelost

Page 11: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 111113 februari 200913 februari 2009

Ons voorbeeld Ons voorbeeld echter niet, na echter niet, na het doen van het doen van alle blokzetten alle blokzetten blijven we blijven we steken in deze steken in deze situatiesituatie

Hoe nu Hoe nu verder?verder?

Page 12: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 121213 februari 200913 februari 2009

Kijk naar het gele hokjeKijk naar het gele hokje Het enige cijfer dat hier Het enige cijfer dat hier

mag is een 8, dus mag is een 8, dus schrijf die 8 maar opschrijf die 8 maar op

Dit noemen we een Dit noemen we een positiezetpositiezet: vul in een : vul in een hokje het enige hokje het enige toegestane cijfer intoegestane cijfer in

Dit voorbeeld kan Dit voorbeeld kan geheel worden opgelost geheel worden opgelost met alleen blokzetten met alleen blokzetten en positiezettenen positiezetten

Page 13: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 131313 februari 200913 februari 2009

Mens of computer?Mens of computer? Deze blok- en positiezetten vormen de basis Deze blok- en positiezetten vormen de basis

voor hoe je als mens een sudoku oplostvoor hoe je als mens een sudoku oplost Een computer is een dom ding dat precies Een computer is een dom ding dat precies

doet wat je hem opdraagtdoet wat je hem opdraagt Draag hem met een programma op alle blok- Draag hem met een programma op alle blok-

en/of positiezetten te doenen/of positiezetten te doen Wat kun je doen als er geen blok- of Wat kun je doen als er geen blok- of

positiezetten meer mogelijk zijn?positiezetten meer mogelijk zijn? Ingewikkelder zetten verzinnen (doen we hier niet)Ingewikkelder zetten verzinnen (doen we hier niet) BacktrackingBacktracking

Page 14: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 141413 februari 200913 februari 2009

BacktrackingBacktracking Als je geen zet meer kunt doen, kies dan Als je geen zet meer kunt doen, kies dan

een leeg hokje waarin maar twee een leeg hokje waarin maar twee verschillende cijfers zijn toegestaanverschillende cijfers zijn toegestaan

Vul een van beide cijfers met potlood in, en Vul een van beide cijfers met potlood in, en probeer de sudoku verder op te lossen, met probeer de sudoku verder op te lossen, met potloodpotlood

Als dat lukt, heb je de oplossing gevondenAls dat lukt, heb je de oplossing gevonden Als je vast komt te zitten Als je vast komt te zitten (bijv: in dat blok (bijv: in dat blok

moet nog een 3, maar nergens mag een 3)moet nog een 3, maar nergens mag een 3) gum gum je alle potlood cijfers uit, en vul je in het je alle potlood cijfers uit, en vul je in het gekozen hokje het andere cijfer ingekozen hokje het andere cijfer in

Page 15: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 151513 februari 200913 februari 2009

Backtracking voorbeeldBacktracking voorbeeld

Page 16: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 161613 februari 200913 februari 2009

Backtracking voorbeeldBacktracking voorbeeld

Page 17: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 171713 februari 200913 februari 2009

Backtracking voorbeeldBacktracking voorbeeld

Page 18: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 181813 februari 200913 februari 2009

Backtracking voorbeeldBacktracking voorbeeld

Page 19: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 191913 februari 200913 februari 2009

Backtracking voorbeeldBacktracking voorbeeld

Page 20: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 202013 februari 200913 februari 2009

BacktrackingBacktracking Wat moet je doen als je niet vast komt te Wat moet je doen als je niet vast komt te

zitten, maar ook niet verder kunt met blok-en zitten, maar ook niet verder kunt met blok-en positiezetten? positiezetten?

Kies weer een positie met twee mogelijkheden Kies weer een positie met twee mogelijkheden en herhaal het proces met een andere kleur en herhaal het proces met een andere kleur potloodpotlood

Als je vast komt te zitten, gum je de laatste Als je vast komt te zitten, gum je de laatste kleur potlood wegkleur potlood weg

Als je genoeg kleuren potlood hebt, en genoeg Als je genoeg kleuren potlood hebt, en genoeg geduld, kun je elke sudoku zo oplossengeduld, kun je elke sudoku zo oplossen

Page 21: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 212113 februari 200913 februari 2009

Backtracking met de Backtracking met de computercomputer

Voor een mens is dit een heel gedoe, met al Voor een mens is dit een heel gedoe, met al die potloden in verschillende kleurendie potloden in verschillende kleuren

Voor een computer is het betrekkelijk Voor een computer is het betrekkelijk eenvoudig: wie kan programmeren kan dit zo eenvoudig: wie kan programmeren kan dit zo een computer laten doeneen computer laten doen

Verrassing:Verrassing: op deze manier kun je elke op deze manier kun je elke sudoku (met precies sudoku (met precies één oplossing) één oplossing) oplossen, oplossen, meestal in een fractie van een secondemeestal in een fractie van een seconde

Kleine uitbreiding:Kleine uitbreiding: voor sudoku’s zonder die voor sudoku’s zonder die eis kun je tellen hoeveel oplossingen die eis kun je tellen hoeveel oplossingen die heeftheeft

Page 22: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 222213 februari 200913 februari 2009

Hoe maak je nieuwe Hoe maak je nieuwe sudoku’s? sudoku’s?

We willen sudoku’s met een gekozen patroon, We willen sudoku’s met een gekozen patroon, zoals in ons voorbeeldzoals in ons voorbeeld

Begin met een Begin met een volle sudokuvolle sudoku, bijvoorbeeld een , bijvoorbeeld een helemaal opgeloste sudokuhelemaal opgeloste sudoku

Haal alle cijfers weg die niet in het patroon zittenHaal alle cijfers weg die niet in het patroon zitten Laat hier je backtrackprogramma op los, en tel Laat hier je backtrackprogramma op los, en tel

hoeveel oplossingen die heefthoeveel oplossingen die heeft Dat is er minstens Dat is er minstens één: de volle sudoku waarmee één: de volle sudoku waarmee

we begonnenwe begonnen Als je geluk hebt is dat de enige oplossing, en heb Als je geluk hebt is dat de enige oplossing, en heb

je je nieuwe sudokuje je nieuwe sudoku Maar wat als je geen geluk hebt?Maar wat als je geen geluk hebt?

Page 23: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 232313 februari 200913 februari 2009

Heuvelklimmen Heuvelklimmen

Page 24: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 242413 februari 200913 februari 2009

Heuvelklimmen Heuvelklimmen Hoe beklim je een heuvel met een blinddoek Hoe beklim je een heuvel met een blinddoek

om?om? Doe een stap in een willekeurige richtingDoe een stap in een willekeurige richting Als je voelt dat je omhoog gaat, blijf je staan, Als je voelt dat je omhoog gaat, blijf je staan,

anders doe je de stap weer teruganders doe je de stap weer terug Herhaal dit tot je niet meer hoger kuntHerhaal dit tot je niet meer hoger kunt

Dit zelfde idee werkt ook voor het maken Dit zelfde idee werkt ook voor het maken van sudoku’s met een gegeven patroon:van sudoku’s met een gegeven patroon: Een stap is het veranderen van een willekeurig Een stap is het veranderen van een willekeurig

cijfercijfer Voelen dat je omhoog gaat is tellen hoeveel Voelen dat je omhoog gaat is tellen hoeveel

oplossingen er zijn, en vaststellen dat het er oplossingen er zijn, en vaststellen dat het er minder zijn, maar wel minstens minder zijn, maar wel minstens éénéén

Page 25: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 252513 februari 200913 februari 2009

Heuvelklimmen Heuvelklimmen voorbeeldvoorbeeld

Page 26: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 262613 februari 200913 februari 2009

Heuvelklimmen Heuvelklimmen voorbeeldvoorbeeld

Deze heeft 16 oplossingen

Vervang de 9 door

1: 5 oplossingen

2: geen oplossing

3: 3 oplossingen

4 of hoger: geen, of meer dan 3 oplossingen

Beste: vervang door 3

Page 27: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 272713 februari 200913 februari 2009

Heuvelklimmen Heuvelklimmen voorbeeldvoorbeeld

Kies weer een nummer

Vervang de 4 door

1: 8 oplossingen

2: 1 oplossing

Klaar: we hebben een nieuwe sudoku met precies een oplossing

Page 28: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 282813 februari 200913 februari 2009

Heuvelklimmen Heuvelklimmen voorbeeldvoorbeeld

Page 29: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 292913 februari 200913 februari 2009

Meer zo gemaakte Meer zo gemaakte voorbeelden:voorbeelden:

Page 30: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 303013 februari 200913 februari 2009

OpmerkingenOpmerkingen Zoeken van patronen / oplossingen in grote Zoeken van patronen / oplossingen in grote

zoekruimtes is een belangrijk gebied in de zoekruimtes is een belangrijk gebied in de informaticainformatica

Backtracken en heuvelklimmen zijn standaard Backtracken en heuvelklimmen zijn standaard technieken hierin, en blijken ook bruikbaar om technieken hierin, en blijken ook bruikbaar om sudoku’s op te lossen en te genererensudoku’s op te lossen en te genereren

Uitgebreid beschreven in Uitgebreid beschreven in De achterkant van De achterkant van SUDOKUSUDOKU

Google en TomTom hadden niet kunnen Google en TomTom hadden niet kunnen bestaan zonder dit soort zoektechniekenbestaan zonder dit soort zoektechnieken

Als je het interessant vindt hoe dit soort Als je het interessant vindt hoe dit soort dingen werken, is informatica studeren echt dingen werken, is informatica studeren echt iets voor jouiets voor jou

Page 31: 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe maak je ze? Prof. dr. Hans Zantema Informatica Technische.

4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 313113 februari 200913 februari 2009

En nu: zelf aan de slag!En nu: zelf aan de slag!