• Keine Ergebnisse gefunden

oder wie man als Informatiker Logikr ¨atsel l ¨ ost

N/A
N/A
Protected

Academic year: 2021

Aktie "oder wie man als Informatiker Logikr ¨atsel l ¨ ost"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Sudoku-Informatik

oder wie man als Informatiker Logikr ¨atsel l ¨ ost

Peter Becker

Hochschule Bonn-Rhein-Sieg Fachbereich Informatik peter.becker@h-brs.de

Kurzvorlesung am Studieninformationstag, 13.05.2009

(2)

Sudoku

F ¨ulle das gesamte Quadrat so aus, dass

• in jeder Zeile,

• in jeder Spalte und

• in jedem der Unterquadrate

die Ziffern 1 bis 9 genau einmal vorkom- men.

(3)

Sudoku: Beispiel

(4)

Diese Kurzvorlesung soll ...

• typische Methoden zeigen, die man im Informatikstudium lernt,

• die Bedeutung der Modellierung in der Informatik deutlich machen,

• zeigen, was man mit Mathematik und der passenden Software so alles machen kann

• und ein wenig Spaß machen darf sie auch.

(5)

Sudoku aus der Sicht des Informatikers

• Die Ziffern dienen nur zur Unterscheidung. Statt der Ziffern k ¨onnten auch neun unterschiedliche Symbole verwendet werden.

• F ¨ur den Informatiker ist Sudoku ein Constraint-Satisfaction-Problem (CSP):

Die Aufgabe bei einem CSP besteht darin, einen Zustand (d. h.

Belegungen von Variablen) zu finden, der alle aufgestellten Be- dingungen (Constraints) erf ¨ullt.

(6)

Ein ganz simples CSP

Variablen: x, y

Wertebereiche: D(x) = D(y) = IR Constraints:

2x + 3y = 19

−x + y = 3

(7)

CSP-Probleme in der Praxis ...

• haben typischerweise eine deutlich h ¨ohere Zahl an Variablen,

• weisen unhandlichere Wertebereiche auf (z.B. IN, Boolean, symboli- sche Werte)

• und besitzen komplexere Nebenbedingungen (z.B. Ungleichungen).

(8)

Von der Logik zur Algebra (1)

• Sudoku ist ein Logikr ¨atsel: Die L ¨osung erfordert logische Schlussfol- gerungen.

• Wir ¨uberf ¨uhren die logischen Bedingungen vollst ¨andig in ein alge- braisches Modell (Gleichungssystem).

• Dann l ¨osen wir das algebraische Modell mit einem mathematischen Verfahren und haben damit auch eine L ¨osung f ¨ur das R ¨atsel.

(9)

Von der Logik zur Algebra (2)

Sprache: Wenn A gilt, dann gilt auch B.

Logik: A =⇒ B

A B A ⇒ B

w w w

w f f

f f w

f w w

(10)

Von der Logik zur Algebra (3)

Logische Normalform (KNF): ¬A ∨ B

A B ¬A ∨ B

w w w

w f f

f f w

f w w

(11)

Von der Logik zur Algebra (4)

Algebra: A, B ∈ {0, 1} : (1 − A) + B ≥ 1

A B (1 − A) + B

1 1 1

1 0 0

0 0 1

0 1 2

(12)

Von der Logik zur Algebra (5)

Logik:

(A ∧ ¬B) ⇒ (C ∨ ¬D) ≡ ¬(A ∧ ¬B) ∨ C ∨ ¬D

≡ ¬A ∨ B ∨ C ∨ ¬D Algebra:

(1 − A) + B + C + (1 − D) ≥ 1 f ¨ur A, B, C, D ∈ {0, 1}

(13)

Ein Gleichungssystem f ¨ ur Sudokus (1)

Modellierung mit Hilfe von boolschen Variablen:

xijk =

1 wenn in Zeile i und Spalte j Ziffer k steht 0 sonst

Anzahl an Variablen:

Anzahl Zeilen × Anzahl Spalten × Anzahl Ziffern = 93 = 729

(14)

Ein Gleichungssystem f ¨ ur Sudokus (2): Eindeutigkeit von Ziffern in Zeilen

Beispielbedingung: In Zeile 3 gibt es genau einmal die Ziffer 5:

x315 + x325 + x335 + x345 + x355 + x365 + x375 + x385 + x395 = 1 Allgemein: F ¨ur jeder Zeile i gibt es genau einmal die Ziffer k:

xi1k + xi2k + xi3k + xi4k + xi5k + xi6k + xi7k + xi8k + xi9k = 1

(15)

Ein Gleichungssystem f ¨ ur Sudokus (3): Eindeutigkeit von Ziffern in Spalten

Beispielbedingung: In Spalte 4 gibt es genau einmal die Ziffer 2:

x142 + x242 + x342 + x442 + x542 + x642 + x742 + x842 + x942 = 1 Allgemein: F ¨ur jede Spalte j gibt es genau einmal die Ziffer k:

x1jk + x2jk + x3jk + x4jk + x5jk + x6jk + x7jk + x8jk + x9jk = 1

(16)

Ein Gleichungssystem f ¨ ur Sudokus (4): Eindeutigkeit von Ziffern in Unterquadraten

Beispielbedingung: In Unterquadrat links oben gibt es genau einmal die Ziffer 5:

x115 + x125 + x135 + x215 + x225 + x235 + x315 + x325 + x335 = 1

Allgemein: F ¨ur jedes Unterquadrat mit linker oberer Ecke in i, j gibt es genau einmal die Ziffer k:

xijk + xi(j+1)k + xi(j+2)k + x(i+1)jk + x(i+1)(j+1)k + x(i+1)(j+2)k

+x + x + x = 1

(17)

Ein Gleichungssystem f ¨ ur Sudokus (5): In jeder Zelle nur eine Ziffer

Beispielbedingung: In Zeile 7 und Spalte 1 muss genau eine Ziffer stehen:

x711 + x712 + x713 + x714 + x715 + x716 + x717 + x718 + x719 = 1

Allgemein: F ¨ur jede Zeile i und jede Spalte j gibt es genau eine Ziffer:

xij1 + xij2 + xij3 + xij4 + xij5 + xij6 + xij7 + xij8 + xij9 = 1

(18)

Ein Gleichungssystem f ¨ ur Sudokus (6): Vorbelegungen von Zellen mit Ziffern

Beispielbedingung: In Zeile 1 und Spalte 2 steht eine 9:

x129 = 1

Insgesamt so viele Gleichungen wie Vorbelegungen

(19)

Berechnung der L ¨ osung

• Vollst ¨andige Modellierung als Gleichungssystem mit boolschen Va- riablen

• Einsatz eines Gleichungsl ¨osers aus dem Gebiet der Linearen Pro- grammierung: GNU Linear Programming Toolkit

• Eigentlich f ¨ur die L ¨osung linearer Optimierungsprobleme unter Ne- benbedingungen gedacht, hier: Dummy-Zielfunktion

(20)

Ergebnisse

• Selbst schwere Sudoku-Probleme in Sekundenbruchteilen l ¨osbar

• Keine Effizienzunterschiede zu dedizierten Sudokul ¨osern erkennbar

• Kann auch zur Eindeutigkeitspr ¨ufung und zur Generierung von Pro- blemen eingesetzt werden

(21)

Andere Logikr ¨atsel: Battleship Puzzle

(22)

Andere Logikr ¨atsel: Battleship Puzzle (2)

Variablen:

xijlr =



1 wenn in Zeile i und Spalte j ein Schiff der L ¨ange l mit Ausrichtung r beginnt

0 sonst

• Ausrichtung: horizontal oder vertikal

• xijlr beschreibt linke (horizontal) bzw. obere (vertikal) Ecke eines Schiffs.

(23)

Andere Logikr ¨atsel: Battleship Puzzle (3)

• Anzahl der Variablen deutlich gr ¨oßer als bei Sudoku:

≈ Zeilen × Spalten × L ¨angen × 2

• plus Hilfsvariablen yij die angeben, ob in Zeile i und Spalte j ein Schiffsteil liegt.

• Variablen durch Ungleichungen verbunden, z.B.

(24)

• F ¨ur Probleme der Gr ¨oße 12x12 ca. 20.000 Ungleichungen

• L ¨osungszeiten: bis zu mehreren Minuten (bei 12x12-Probleme)

(25)

Andere Logikr ¨atsel: Quadroid

• F ¨ulle das große Quadrat mit m ¨oglichst wenigen kleinen Quadraten aus!

• Die schwarzen Bl ¨ocke k ¨onnen nicht

¨uberdeckt werden.

• Optimierr ¨atsel, programmiert f ¨ur Android-Handys (z.B. T-Mobile G1)

• Berechnung der “par”-Werte f ¨ur das

(26)

Andere Logikr ¨atsel: Quadroid (2)

• xijs: In Zeile i und Spalte k liegt linke obe- re Ecke eines Quadrats der Gr ¨oße s

• Beispielbedingung:

x111 + x112 + x113 + x114 + x115 ≥ 1

• F ¨ur Problem rechts 365 Variablen und 139 Nebenbedingungen

(27)

Zusammenfassung

• Abstraktion und Modellbildung sind wichtige Komponenten in der In- formatik und im Informatikstudium.

• Informatiker sind Probleml ¨oser!

Analysieren, Modellieren, Entwerfen, Implementieren, Testen

• Hier: Algebraische Modellierung, erm ¨oglicht den Einsatz von Stan- dardsoftware zur einfachen “Probleml ¨osung”

(28)

Vielen Dank f ¨ur Ihre Aufmerksamkeit!

Referenzen

ÄHNLICHE DOKUMENTE

Anschaulich erscheint es klar, daß er sich um so besser an die Kurve der exakten L¨ osung anschmiegt, je kleiner der von uns gew¨ ahlte Wert h der Schrittweite ist.. (Auf Details

[r]

(b) L¨ osen Sie das LGS mit dem CG-und GMRES -Verfahren und stellen Sie die Fehlerabsch¨ atzungen als Funktion der Anzahl der Iterationen in einem gemeinsamen Plot dar.. (c) Kehren

[r]

Im Anschluss daran wurde ein zweiphasiges Verfahren (BBHEU) entwickelt, welches in der ersten Phase lokal optimale Abschnitte mittels B&B erzeugt, die dann in der zweiten

• Die iterativen Verfahren beginnen mit einer Anfangsn¨ aherung und produzieren eine verbesserte N¨ aherungsl¨ osung nach endlich vielen Schritten.. • Falls m¨ oglich wird das

[r]

220 L Nennen Sie Namen und Elementsymbole der Gase, welche eine geringere Dichte als Luft haben. Stickstoff Nz,HeliumHe,Wasserstoff H2 -t ,frrqc'C: t frf ,