1 / 31

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

Sudoku puzzels: hoe los je ze op en hoe maak je ze?. Prof. dr. Hans Zantema Informatica Technische Universiteit Eindhoven / Radboud Universiteit Nijmegen. Wat gaan we doen?. De spelregels van sudoku Hoe los je ze op? Hoe kan de computer dat voor je doen?

harper
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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? 4VWO dag Radboud Universiteit Nijmegen

  3. 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 4VWO dag Radboud Universiteit Nijmegen

  4. Hoe los je ze op? • Waar mag in het middelste vierkante blok een 7? 4VWO dag Radboud Universiteit Nijmegen

  5. Hoe los je ze op? • Waar mag in het middelste vierkante blok een 7? 4VWO dag Radboud Universiteit Nijmegen

  6. Hoe los je ze op? • Waar mag in het middelste vierkante blok een 7? 4VWO dag Radboud Universiteit Nijmegen

  7. Hoe los je ze op? • Waar mag in het middelste vierkante blok een 7? 4VWO dag Radboud Universiteit Nijmegen

  8. Hoe los je ze op? • Waar mag in het middelste vierkante blok een 7? 4VWO dag Radboud Universiteit Nijmegen

  9. Hoe los je ze op? • Waar mag in het middelste vierkante blok een 7? 4VWO dag Radboud Universiteit Nijmegen

  10. 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 4VWO dag Radboud Universiteit Nijmegen

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

  12. 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 4VWO dag Radboud Universiteit Nijmegen

  13. 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 4VWO dag Radboud Universiteit Nijmegen

  14. 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 4VWO dag Radboud Universiteit Nijmegen

  15. Backtracking voorbeeld 4VWO dag Radboud Universiteit Nijmegen

  16. Backtracking voorbeeld 4VWO dag Radboud Universiteit Nijmegen

  17. Backtracking voorbeeld 4VWO dag Radboud Universiteit Nijmegen

  18. Backtracking voorbeeld 4VWO dag Radboud Universiteit Nijmegen

  19. Backtracking voorbeeld 4VWO dag Radboud Universiteit Nijmegen

  20. 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 4VWO dag Radboud Universiteit Nijmegen

  21. 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 4VWO dag Radboud Universiteit Nijmegen

  22. 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? 4VWO dag Radboud Universiteit Nijmegen

  23. Heuvelklimmen 4VWO dag Radboud Universiteit Nijmegen

  24. 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 4VWO dag Radboud Universiteit Nijmegen

  25. Heuvelklimmen voorbeeld 4VWO dag Radboud Universiteit Nijmegen

  26. 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 4VWO dag Radboud Universiteit Nijmegen

  27. 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 4VWO dag Radboud Universiteit Nijmegen

  28. Heuvelklimmen voorbeeld 4VWO dag Radboud Universiteit Nijmegen

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

  30. 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 4VWO dag Radboud Universiteit Nijmegen

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

More Related