De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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.

Verwante presentaties


Presentatie over: "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."— Transcript van de presentatie:

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

2 4VWO dag Radboud Universiteit Nijmegen 2 13 februari 2009 Wat gaan we doen?  De spelregels van sudoku  Hoe los je ze op?  Hoe kan de computer dat voor je doen?  Hoe maakt de computer nieuwe sudoku’s?

3 4VWO dag Radboud Universiteit Nijmegen 3 13 februari 2009 De spelregels van sudoku  9x9 vierkant  In sommige hokjes staat een cijfer van 1 tot en met 9  De andere hokjes zijn nog leeg  Er zijn 27 blokken:  de 9 rijen  de 9 kolommen  de 9 aangegeven 3x3 vierkanten  Het 9x9 vierkant moet zo worden ingevuld dat elk cijfer in elk blok precies éé n keer voorkomt  Er is precies éé n oplossing

4 4VWO dag Radboud Universiteit Nijmegen 4 13 februari 2009 Hoe los je ze op?  Waar mag in het middelste vierkante blok een 7?

5 4VWO dag Radboud Universiteit Nijmegen 5 13 februari 2009 Hoe los je ze op?  Waar mag in het middelste vierkante blok een 7?

6 4VWO dag Radboud Universiteit Nijmegen 6 13 februari 2009 Hoe los je ze op?  Waar mag in het middelste vierkante blok een 7?

7 4VWO dag Radboud Universiteit Nijmegen 7 13 februari 2009 Hoe los je ze op?  Waar mag in het middelste vierkante blok een 7?

8 4VWO dag Radboud Universiteit Nijmegen 8 13 februari 2009 Hoe los je ze op?  Waar mag in het middelste vierkante blok een 7?

9 4VWO dag Radboud Universiteit Nijmegen 9 13 februari 2009 Hoe los je ze op?  Waar mag in het middelste vierkante blok een 7?

10 4VWO dag Radboud Universiteit Nijmegen februari 2009 Dit noemen we een blokzet:  Kies een blok, en een cijfer dat nog niet in dat blok voorkomt  Beredeneer voor elk van de lege hokjes in dat blok op éé n na dat dat cijfer daar niet gezet mag worden  Zet dat cijfer op het resterende lege hokje Dit geldt voor alle soorten blokken: ook rijen en kolommen De meeste sudoku’s in kranten en boekjes kunnen met alleen maar blokzetten worden opgelost

11 4VWO dag Radboud Universiteit Nijmegen februari 2009 Ons voorbeeld echter niet, na het doen van alle blokzetten blijven we steken in deze situatie Hoe nu verder?

12 4VWO dag Radboud Universiteit Nijmegen februari 2009 Kijk naar het gele hokje  Het enige cijfer dat hier mag is een 8, dus schrijf die 8 maar op  Dit noemen we een positiezet: vul in een hokje het enige toegestane cijfer in  Dit voorbeeld kan geheel worden opgelost met alleen blokzetten en positiezetten

13 4VWO dag Radboud Universiteit Nijmegen februari 2009 Mens of computer?  Deze blok- en positiezetten vormen de basis voor hoe je als mens een sudoku oplost  Een computer is een dom ding dat precies doet wat je hem opdraagt  Draag hem met een programma op alle blok- en/of positiezetten te doen  Wat kun je doen als er geen blok- of positiezetten meer mogelijk zijn?  Ingewikkelder zetten verzinnen (doen we hier niet)  Backtracking

14 4VWO dag Radboud Universiteit Nijmegen februari 2009 Backtracking  Als je geen zet meer kunt doen, kies dan een leeg hokje waarin maar twee verschillende cijfers zijn toegestaan  Vul een van beide cijfers met potlood in, en probeer de sudoku verder op te lossen, met potlood  Als dat lukt, heb je de oplossing gevonden  Als je vast komt te zitten (bijv: in dat blok moet nog een 3, maar nergens mag een 3) gum je alle potlood cijfers uit, en vul je in het gekozen hokje het andere cijfer in

15 4VWO dag Radboud Universiteit Nijmegen februari 2009 Backtracking voorbeeld

16 4VWO dag Radboud Universiteit Nijmegen februari 2009 Backtracking voorbeeld

17 4VWO dag Radboud Universiteit Nijmegen februari 2009 Backtracking voorbeeld

18 4VWO dag Radboud Universiteit Nijmegen februari 2009 Backtracking voorbeeld

19 4VWO dag Radboud Universiteit Nijmegen februari 2009 Backtracking voorbeeld

20 4VWO dag Radboud Universiteit Nijmegen februari 2009 Backtracking  Wat moet je doen als je niet vast komt te zitten, maar ook niet verder kunt met blok-en positiezetten?  Kies weer een positie met twee mogelijkheden en herhaal het proces met een andere kleur potlood  Als je vast komt te zitten, gum je de laatste kleur potlood weg  Als je genoeg kleuren potlood hebt, en genoeg geduld, kun je elke sudoku zo oplossen

21 4VWO dag Radboud Universiteit Nijmegen februari 2009 Backtracking met de computer  Voor een mens is dit een heel gedoe, met al die potloden in verschillende kleuren  Voor een computer is het betrekkelijk eenvoudig: wie kan programmeren kan dit zo een computer laten doen  Verrassing: op deze manier kun je elke sudoku (met precies éé n oplossing) oplossen, meestal in een fractie van een seconde  Kleine uitbreiding: voor sudoku’s zonder die eis kun je tellen hoeveel oplossingen die heeft

22 4VWO dag Radboud Universiteit Nijmegen februari 2009 Hoe maak je nieuwe sudoku’s?  We willen sudoku’s met een gekozen patroon, zoals in ons voorbeeld  Begin met een volle sudoku, bijvoorbeeld een helemaal opgeloste sudoku  Haal alle cijfers weg die niet in het patroon zitten  Laat hier je backtrackprogramma op los, en tel hoeveel oplossingen die heeft  Dat is er minstens éé n: de volle sudoku waarmee we begonnen  Als je geluk hebt is dat de enige oplossing, en heb je je nieuwe sudoku  Maar wat als je geen geluk hebt?

23 4VWO dag Radboud Universiteit Nijmegen februari 2009 Heuvelklimmen

24 4VWO dag Radboud Universiteit Nijmegen februari 2009 Heuvelklimmen  Hoe beklim je een heuvel met een blinddoek om?  Doe een stap in een willekeurige richting  Als je voelt dat je omhoog gaat, blijf je staan, anders doe je de stap weer terug  Herhaal dit tot je niet meer hoger kunt  Dit zelfde idee werkt ook voor het maken van sudoku’s met een gegeven patroon:  Een stap is het veranderen van een willekeurig cijfer  Voelen dat je omhoog gaat is tellen hoeveel oplossingen er zijn, en vaststellen dat het er minder zijn, maar wel minstens éé n

25 4VWO dag Radboud Universiteit Nijmegen februari 2009 Heuvelklimmen voorbeeld

26 4VWO dag Radboud Universiteit Nijmegen februari 2009 Heuvelklimmen voorbeeld 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

27 4VWO dag Radboud Universiteit Nijmegen februari 2009 Heuvelklimmen voorbeeld Kies weer een nummer Vervang de 4 door 1: 8 oplossingen 2: 1 oplossing Klaar: we hebben een nieuwe sudoku met precies een oplossing

28 4VWO dag Radboud Universiteit Nijmegen februari 2009 Heuvelklimmen voorbeeld

29 4VWO dag Radboud Universiteit Nijmegen februari 2009 Meer zo gemaakte voorbeelden:

30 4VWO dag Radboud Universiteit Nijmegen februari 2009 Opmerkingen  Zoeken van patronen / oplossingen in grote zoekruimtes is een belangrijk gebied in de informatica  Backtracken en heuvelklimmen zijn standaard technieken hierin, en blijken ook bruikbaar om sudoku ’ s op te lossen en te genereren  Uitgebreid beschreven in De achterkant van SUDOKU  Google en TomTom hadden niet kunnen bestaan zonder dit soort zoektechnieken  Als je het interessant vindt hoe dit soort dingen werken, is informatica studeren echt iets voor jou

31 4VWO dag Radboud Universiteit Nijmegen februari 2009 En nu: zelf aan de slag!


Download ppt "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."

Verwante presentaties


Ads door Google