13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe...
-
Upload
nienke-bakker -
Category
Documents
-
view
214 -
download
0
Transcript of 13 februari 2009 4VWO dag Radboud Universiteit Nijmegen 1 Sudoku puzzels: hoe los je ze op en hoe...
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
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?
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
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?
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?
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?
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?
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?
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?
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
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?
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
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
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
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 151513 februari 200913 februari 2009
Backtracking voorbeeldBacktracking voorbeeld
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 161613 februari 200913 februari 2009
Backtracking voorbeeldBacktracking voorbeeld
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 171713 februari 200913 februari 2009
Backtracking voorbeeldBacktracking voorbeeld
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 181813 februari 200913 februari 2009
Backtracking voorbeeldBacktracking voorbeeld
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 191913 februari 200913 februari 2009
Backtracking voorbeeldBacktracking voorbeeld
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
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
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?
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 232313 februari 200913 februari 2009
Heuvelklimmen Heuvelklimmen
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
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 252513 februari 200913 februari 2009
Heuvelklimmen Heuvelklimmen voorbeeldvoorbeeld
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
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
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 282813 februari 200913 februari 2009
Heuvelklimmen Heuvelklimmen voorbeeldvoorbeeld
4VWO dag Radboud Universiteit Nijmegen4VWO dag Radboud Universiteit Nijmegen 292913 februari 200913 februari 2009
Meer zo gemaakte Meer zo gemaakte voorbeelden:voorbeelden:
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
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!