Sudoku puzzels: hoe los je ze op en hoe maak je ze? - PowerPoint PPT Presentation

About This Presentation
Title:

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

Description:

Title: Computer Algebra and Rewriting Author: Technische Universiteit Eindhoven Last modified by: Technische Universiteit Eindhoven Created Date – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 32
Provided by: Techni87
Category:
Tags: hoe | los | maak | puzzels | sudoku

less

Transcript and Presenter's Notes

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


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

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

4
Hoe los je ze op?
  • Waar mag in het middelste vierkante blok een 7?

5
Hoe los je ze op?
  • Waar mag in het middelste vierkante blok een 7?

6
Hoe los je ze op?
  • Waar mag in het middelste vierkante blok een 7?

7
Hoe los je ze op?
  • Waar mag in het middelste vierkante blok een 7?

8
Hoe los je ze op?
  • Waar mag in het middelste vierkante blok een 7?

9
Hoe los je ze op?
  • Waar mag in het middelste vierkante blok een 7?

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 sudokus in kranten en boekjes kunnen
    met alleen maar blokzetten worden opgelost

11
  • Ons voorbeeld echter niet, na het doen van alle
    blokzetten blijven we steken in deze situatie
  • Hoe nu verder?

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

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

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

15
Backtracking voorbeeld
16
Backtracking voorbeeld
17
Backtracking voorbeeld
18
Backtracking voorbeeld
19
Backtracking voorbeeld
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

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 sudokus zonder die eis
    kun je tellen hoeveel oplossingen die heeft

22
Hoe maak je nieuwe sudokus?
  • We willen sudokus 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
Heuvelklimmen
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
    sudokus 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
Heuvelklimmen voorbeeld
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
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
28
Heuvelklimmen voorbeeld
29
Meer zo gemaakte voorbeelden
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
    sudokus 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
En nu zelf aan de slag!
Write a Comment
User Comments (0)
About PowerShow.com