Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Mit freundlicher Unterstützung von: Einführung in das Teilprojekt Dem Sudoku auf der Spur Projektbetreuer: Uwe Gotzes Projektgrundlage: Artikel Mathematik.

Ähnliche Präsentationen


Präsentation zum Thema: "Mit freundlicher Unterstützung von: Einführung in das Teilprojekt Dem Sudoku auf der Spur Projektbetreuer: Uwe Gotzes Projektgrundlage: Artikel Mathematik."—  Präsentation transkript:

1 Mit freundlicher Unterstützung von: Einführung in das Teilprojekt Dem Sudoku auf der Spur Projektbetreuer: Uwe Gotzes Projektgrundlage: Artikel Mathematik für den Volkssport in DMV-Mitteilungen II/06, 93-96, 2006 von Volker Kaibel und Thorsten Koch.

2 Worum gehts? Wir möchten hier eine Modellierung diskutieren, mit der ein Sudokurätsel mit mathematischen Methoden und Software gelöst werden kann. Zunächst werden die Sudokuregeln besprochen. Anschließend wird einführend eine (relativ einfache) verwandte Problemstellung mit den uns zur Verfügung stehenden Werkzeugen behandelt. Schließlich soll von Euch ein Modell für das Sudokuproblem selbstständig erarbeitet und mit Hilfe eines bereitgestellten Softwarepakets gelöst werden. Abschließend könnt Ihr Eure Projektergebnisse in einer PowerPoint Präsentation aufbereiten. Mit etwas Glück räumt Ihr mit Eurer Präsentation einen Preis ab und habt die Möglichkeit die Ergebnisse Eures Projekttags am einem interessierten Publikum vorzustellen.

3 Die Sudokuregeln Dieses Sudoku erfüllt zwar nicht die ästhetischen Ansprüche von Sudoku-Meistern (weil die Einträge nicht symmetrisch verteilt sind), kommt aber dafür mit der derzeit kleinsten bekannten Anzahl von 17 vorgegebenen Zahlen aus. Beim Sudoku ist die Aufgabe, ein Feld wie in der Abbildung so zu vervollständigen, dass in jeder Zeile, in jeder Spalte, und in jedem der angedeuteten 3 x 3 - Quadrate jede der Zahlen 1,2,…,9 genau einmal vorkommt. Der Rätselsteller garantiert dabei, dass die Vervollständigung eindeutig ist.

4 Volkssport Sudoku Warum Millionen Deutsche dem Zahlenrätsel verfallen sind (Artikel im Stern vom 24. Mai 2006) Kommt hier ein großes bisher verborgenes Potential von Mathematik-Begeisterung zum Vorschein? Oder ist es doch eher so, wie die britische Zeitung The Independent seine Sudokus bewirbt: There is no math involved? Natürlich ist hier Mathematik involviert, z.B., wenn man fragt, wie viele ausgefüllte Sudokus es denn gibt, oder bei der bisher ungelösten Frage nach der (viel größeren) Zahl der verschiedenen Sudokurätsel. Unbekannt ist bislang auch die minimale Anzahl an Einträgen, die bei richtiger Positionierung ein eindeutig lösbares Sudoku nach sich ziehen.

5 Ob das manuelle Lösen eines Sudokurätsels nun als Mathematik gewertet werden darf oder muss, soll nicht unser Thema sein. Wir möchten hier eine Modellierung diskutieren, mit der ein Sudokurätsel mit mathematischen Methoden und Software gelöst werden kann. Diese Software wird in vielen Anwendungsbereichen wie der Telekommunikation, dem Transport oder dem Nahverkehr eingesetzt. Unser Projekt ist als eine Einladung in ein Gebiet gedacht, das sowohl mathematisch faszinierend als auch für Anwendungen in Schlüsseltechnologien sehr fruchtbar ist: Die sogenannte ganzzahlige lineare Programmierung. Sudokus kann man leicht mit Hilfe von 81 Variablen x i,j {1,2,...,9} (i, j {1,2,...,9}) modellieren, wobei x i,j = k bedeutet, dass im Feld (i, j) (d.h Zeile i, Spalte j) die Zahl k steht. Die Sudokuregeln übersetzen sich dann in haufenweise Ungleichheitsbedingungen der Art x 2,3 x 2,7 (d.h. in Zeile 2 darf in der 3. Spalte nicht die gleiche Zahl stehen, wie in der 7. Spalte). Allerdings sind solche Ungleichheitsbedingungen in der Regel mit dem Computer schwierig zu behandeln. Wir verwenden deswegen eine etwas andere Modellierung. Dazu werden wir Variablen einführen welche nur die Werte 0 und 1 annehmen dürfen (sogenannte Binärvariablen). Das Vorgehen wird im Folgenden an einem verwandten Problem erläutert.

6 Das Damenproblem Das Damenproblem ist eine Denksportaufgabe: Man finde eine Stellung für acht Damen auf einem Schachbrett derart, dass keine zwei Damen sich gegenseitig nach den Regeln des Schach schlagen können (die Figurenfarbe wird dabei ignoriert, und es wird angenommen, dass jede Figur jede andere angreifen könnte). Anders gesagt sollen sich keine zwei Damen die gleiche Reihe, Linie oder Diagonale teilen. Zur mathematischen Modellierung diese Problems führen wir 64 sogenannte Binärvariablen, d.h. Variablen die nur die Werte 0 und 1 annehmen, ein. x i,j {0,1} für alle i, j = 1,…,8 (insg. 64 Variablen). i durchläuft dabei die 8 Reihen, j die 8 Spalten des Spielbretts. x i,j =1 soll bedeuten, dass im Feld (i,j) eine Dame platziert wird. x i,j =0 soll bedeuten, dass im Feld (i,j) keine Dame platziert wird.

7 Modellierung der Regeln für das Damenproblem Die Bedingung keine zwei Damen in die gleiche Reihe lässt sich dann für die, sagen wir 3. Reihe folgendermaßen mathematisch formulieren: x 3,1 +x 3,2 +x 3,3 +x 3,4 +x 3,5 +x 3,6 +x 3,7 +x 3,8 1 Was bedeutet dies in Worten? Keine zwei Damen in die gleiche Spalte übersetzt sich in ganz ähnlicher Weise in die Sprache der Mathematik. Wie? Wenn wir die obigen Bedingungen für alle Zeilen und Spalten berücksichtigen, haben wir gewissermaßen das Problem für Türme beschrieben. Damen können aber auch diagonal schlagen. Wie lässt sich dies mathematisch beschreiben? Überlegt Euch die Formeln für ein 3 x 3 – Schachbrett. Jetzt gehts ans Rechnen! Geht dazu bitte in den Ordner D:\Eigene Dateien\JDM\Queens und öffnet die Datei queens.zpl mit dem Windows-Texteditor. Erkennt Ihr die besprochenen Bedingungen wieder? Überlegt Euch die Bedingung für die Spalten und fügt diese der Modelldatei queens.zpl hinzu. Auch die zweite Gruppe von Bedingungen für diagonales Schlagen fehlt noch. Wenn Ihr die Formulierung verstanden habt, schließt die Datei wieder und öffnet die cmd.exe durch Doppelklick. Gebt nun scip –f queens.zpl –l queens.txt in der cmd (dem schwarzen Fenster) ein. Damit wendet Ihr ein leistungsfähiges Optimierungsverfahren, für dessen Grundform es einst sogar einen Nobelpreis gab und das erfolgreich in der Industrie eingesetzt wird auf das Damenproblem an. Die Lösung findet Ihr anschließend in queens.txt. Was muß in der Modelldatei geändert werden um, sagen wir mal ein 100x100-Schachbrett zu benutzen? Wie lässt sich die Stellung einzelner Damen vor der Lösung fixieren? Wie lässt sich feststellen ob es noch weitere Lösungen gibt?

8 Nun zurück zu unserem Sudoku-Problem Bestimmt sind euch einige Gemeinsamkeiten zwischen dem Damenproblem und Sudoku aufgefallen. Ziel ist nun die Entwicklung eines Modells für das Sudokuproblem, welches die Sudoku-Regeln beschreibt, jedoch nicht so wie in der Einleitung angedeutet, sondern mit Binärvariablen und ohne Ungleichheitsbedingungen. Dieses soll anschließend in der selben Sprache wie das Damenproblem (diese heißt ZIMPL) formuliert werden, so dass es der Optimierungssoftware scip mit >scip –f sudoku.zpl –l sudoku.txt zur Lösung übergeben werden kann. Auf gehts!

9 Zusatzaufgaben Löse die beiden Sudokus, die in dieser Einführung vorkommen mit scip. Gibt es eine Möglichkeit zu überprüfen, ob die Lösung eindeutig ist? Gibt es eine Möglichkeit alle Lösungen ausfindig zu machen? Wie lässt sich das Modell auf 16 x 16, 25 x 25, … - Sudokus verallgemeinern?

10 Nun geht es noch darum, dass Ihr Eure Ergebnisse angemessen darstellt! Dazu bietet sich die MS Office-Anwendung PowerPoint an. Wie Ihr wisst, soll die Präsentation am Ende des Tages abgegeben werden. Die drei besten Präsentationen zu jedem Thema werden während der Abschlussveranstaltung am bekannt gegeben und mit einem Preis geehrt. Außerdem stellen die jeweils Erstplatzierten ihre Projektergebnisse vor. Unter D:\Eigene Dateien\JDM\Vorlage findet Ihr eine Vorlage zur Erstellung der Präsentation.

11 Zusatzinfo: Ganzzahlige lineare Programmierung Das Sudokuproblem kann also als die Aufgabe modelliert werden, eine ganzzahlige, nicht negative Lösung eines linearen Gleichungssystems (oder Ungleichungssystems) zu bestimmen. Dieses algorithmische Problem, meistens in der Variante, dass unter allen Lösungen eine gefunden werden soll, die eine gegebene lineare Zielfunktion optimiert, ist als ganzzahlige lineare Programmierung bekannt. Lässt man die Ganzzahligkeitsbedingungen eines ganzzahligen linearen Programms weg, so erhält man ein kontinuierliches lineares Programm. Um dieses zu lösen gibt es mehrere Verfahren, allen voran das 1947 von Dantzig entwickelte, in der Praxis sehr erfolgreiche Simplexverfahren. Das Simplex-Verfahren läuft von einer Ecke eines Vielecks zur nächsten, bis keine Verbesserung mehr möglich ist. Die Lösungsmenge eines linearen Ungleichungssystems ist geometrisch ein (i.A. hochdimensionaler) von geraden Flächen begrenzter Körper. Man kann zeigen, dass die Menge auf der die Zielfunktion den bestmöglichen Wert annimmt stets eine Ecke enthält. Die Simplexmethode nutzt dies sehr geschickt aus. Sie startet mit einer Ecke und wandert dann zu einer besseren Ecke. Da es nur endlich viele Ecken gibt, wird so irgendwann das Optimum erreicht.

12 Sind nun zusätzlich Ganzzahligkeitsforderungen zu erfüllen, so werden diese zunächst vernachlässigt, so dass man die Simplexmethode anwenden kann. Die Lösung der kontinuierlichen Relaxierung des Sudokumodells ist nicht notwendigerweise ganzzahlig. Wird aber zusätzlich eine Variable testweise auf 0 oder 1 fixiert, kann es passieren, dass die kontinuierliche Relaxierung keine zulässige Lösung mehr hat, mit der Folge, dass die Variable den anderen Wert annehmen muss. Berliner Mathematiker haben dies bei verschiedenen Sudokus nacheinander für beide möglichen Werte aller Variablen durchgeführt. Trägt man die so ermittelten fixen Werte in das Problem ein, war danach in allen Fällen die Lösung der kontinuierliche Relaxierung ganzzahlig und damit das Sudoku gelöst. Zunächst wird die kontinuierliche Relaxierung des ganzzahligen Problems gelöst (1). Ist diese nicht ganzzahlig, so gibt es zwei Möglichkeiten fortzufahren: Hinzufügen von Schnittebenen (2) oder Zerlegen (3).

13 Weiterführende Literatur Volker Kaibel und Thorsten Koch. Mathematik für den Volkssport. DMV-Mitteilungen II/06, 93-96, Tobias Achterberg. SCIP – a framework to integrate constraint and mixed integer programming. Technical Report 04-19, Zuse-Institut Berlin, Thorsten Koch. Zimpl (Zuse Institute Mathematical Programming Language) User Guide.


Herunterladen ppt "Mit freundlicher Unterstützung von: Einführung in das Teilprojekt Dem Sudoku auf der Spur Projektbetreuer: Uwe Gotzes Projektgrundlage: Artikel Mathematik."

Ähnliche Präsentationen


Google-Anzeigen