SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Sudoku Rätseln mit Maschineller Intelligenz




                Dr. Harald Hiss

                 06.07.2010
Zusammenfassung
Computer können Kreationen erschaffen die jeden überzeugen – die Kinos
präsentieren die neuesten überwältigenden 3D-Multimedia-Spektakel. Die
Resultate und ihr Nutzen beschränkt sich nicht auf das Amusement und die
Kinofilme, die modernen Methoden für unsere Maschinen bringen weitere
äußerst beachtliche Verbesserungen in die Realität. Evolutional entwickeln
sich die Programme und Algorithmen in Bio-Informatik und im Gesundheits-
wesen. Maschinelle Intelligenz kann für Sudoku Rätsel genauso erfolgreich
eingesetzt werden. Dieser Artikel präsentiert einen intelligenten Ansatz zum
Knacken harter Sudoku-Nüsse mit dem Computer oder auch mit Bleistift
und Papier.
Der Autor, Dr. Harald Hiss, hat sein Diplom in der Software-Entwicklung
2004 erhalten und 2008 in Datenbanken/XML und Logik promoviert. In die-
sem Artikel präsentiert er eine Methode und ein Programm zum Sudoku-
Rätseln mit Erfolg. Er entwickelt einige Sudoku-Strategien und einen Plan
zur schnellen, einfachen und effizienten Entwicklung von Sudoku-Rätslern
mit den neuesten Technologien.
Inhaltsverzeichnis

1 Sudoku Rätseln mit Maschineller Intelligenz    1

2 Sudoku und eine Scanning-Strategie             1

3 Schätzung der Möglichkeiten                    3

4 Techniken und Strategien speziell für Sudoku   5

5 Software-Architektur für das Spiel             7

6 Suchmethoden Künstlicher Intelligenz           8
2 Sudoku und eine Scanning-Strategie                                                 1


1 Sudoku Rätseln mit Maschineller Intelligenz
Computer können Kreationen erschaffen, die jeden überzeugen. Die Kinos präsen-
tieren die neuesten überwältigenden 3D-Multimedia-Spektakel. Die Resultate und ihr
Nutzen beschränkt sich nicht auf Amusement und Kinofilme, moderne Methoden für
die Maschinen bringen weitere äußerst beachtliche Verbesserungen in unsere Realität.
Programme und Algorithmen in Bio-Informatik und im Gesundheitswesen entwickeln
sich evolutional. Maschinelle Intelligenz kann für Sudoku Rätsel genauso erfolgreich
eingesetzt werden. Dieser Artikel präsentiert einen intelligenten Ansatz zum Lösen von
Sudokus mit dem Computer. Dieses Nussknacker-Beispiel zeigt Strategien speziell für
das Spiel, schätzt die Komplexität und beweist erneut die Stärke und Ausdruckskraft
maschineller Intelligenz.
Zur Jahrtausendwende wurde das Zahlenrätsel äußerst populär. Die sehr genussvolle
Suche zum Füllen von Zahlen in Feldern ist in einigen Varianten und Schwierigkeits-
stufen verbreitet. Einfache Sudokus können schnell gelöst werden. Das nächste Ka-
pitel präsentiert eine Scanning-Strategie. Diese genügt zum Lösen eines einfachen
einführenden Beispiels. Es folgt eine stochastische Abschätzung der Komplexität. Sie
zeigt die unglaublich große Zahl der Möglichkeiten, denen der Sudoku-Rätsler gegen-
über steht. Einige fortgeschrittene Strategien werden zur Entwicklung einer automati-
schen Lösung präsentiert. Eine für Sudoku-Varianten flexible Methodik integriert diese
Strategien und weitere Aspekte. Maschinelle Intelligenz extrahiert Informationen zur
Wahl geeigneter Regeln um das nächste Feld zu füllen und zur Wahl optimaler Felder
und Zahlen zum Backtracking, wenn keine Regel mehr greift.
Der Artikel präsentiert einen Ansatz für Sudoku mit maschineller Intelligenz. Das sehr
beliebte und verbreitete Zahlenrätsel wird veranschaulicht. Stochastische Methoden
schätzen die Möglichkeiten, spezifische fortgeschrittene Strategien integrieren sich in
eine Software-Architektur und das System logischer Regeln. Methoden der künstlichen
Intelligenz und des maschinellen Lernens optimieren die Suche mit der Auswahl der
richtigen Felder und Zahlen – ein sehr vielversprechender Ansatz zur Entwicklung von
intelligenter Software. Der Autor hat sich in diesem Gebiet umfangreiche Kenntnisse an-
geeignet und veranschaulicht die Kraft maschineller Intelligenz sehr eindrucksvoll am
Beispiel des Zahlenrätsels.


2 Sudoku und eine Scanning-Strategie
Die große Herausforderung bei Sudoku-Rätseln stellt sich im Füllen von Feldern mit den
passenden Zahlen unter der Berücksichtigung einiger Nebenbedingungen. Die Felder
gliedern sich in Gruppen. Innerhalb einer Gruppe können nur Zahlen eines definierten
Bereichs eingefügt werden. Zahlen dürfen nicht mehrfach in einer Gruppe erscheinen.



                                          1
2 Sudoku und eine Scanning-Strategie                                                  2


Lösungen haben alle Felder ausgefüllt, so dass jede Zahl in jeder Gruppe genau einmal
erscheint. Die Standardvariante von Sudoku betrachtet ein 9 × 9 Quadrat von Feldern
und definiert den Zahlenbereich 1, 2, ..., 9 zum Ausfüllen. Das Zahlenrätsel betrachtet
die Zeilen, die Spalten und die neun Blöcke geformt von den 3 × 3 Quadraten, die das
Spielfeld kacheln, als Gruppen. Jede Gruppe muss die Nebenbedingung erfüllen. Eine
Zeile kann zum Beispiel Zahlen in 1, 2, ..., 9 enthalten. Somit repräsentiert eine Zeile
der Lösung eine Permutation des Bereichs.
Der Abschnitt zeigt eine einfache Scanning-Strategie zum Lösen mancher Sudokus.

Abbildung 1 Ein einfaches Sudoku Beispiel.


                          1          2          5     9          4

                                     4     3    6           1    5

                               5           1                3

                    1                           2     5

                    7          2     6                      9    3

                                     3     4          2     7    1

                    3     6                     7     1          9

                               7     1          4           2    8

                          8          5     9                     7


Abbildung 1 präsentiert das Beispiel zur Illustration der Strategie. Für die Zahlen der
Domäne werden Zeilen und Spalten gescannt um das passende Feld in einem Block
zu finden. Der Scan startet mit der 1. Das zweite Feld in der ersten Zeile, kurz S12 ,
hat eine 1. Im Block darunter speichert Feld S41 diese Zahl. Die ersten zwei Spalten
dürfen die Zahl nicht mehr enthalten, der Block links unten hat die 1 in S73 oder S93 .
Dann betrachtet der Scan die relevanten Zeilen für den untersten Block. Zeile 7 hat
eine 1 in S77 , die 1 kann in S93 eingetragen werden. Mit diesen Scans und dem Füllen
offensichtlicher Felder bekommt man die Lösung in Abbildung 2.
Der nächste Abschnitt schätzt die Zahl der möglichen Spiele. Danach wendet sich der
Artikel weiteren Lösungsstrategien zu und präsentiert fortgeschrittene Techniken.




                                           2
3 Schätzung der Möglichkeiten                                                         3


Abbildung 2 Die Lösung für das vorige Beispiel.


                    6     1     3    2     7    5     9     8    4

                    9     2     8    4     3    6     7     1    5

                    4     7     5    9     1    8     6     3    2

                    1     3     9    7     8    2     5     4    6

                    7     4     2    6     5    1     8     9    3

                    8     5     6    3     4    9     2     7    1

                    3     6     4    8     2    7     1     5    9

                    5     9     7    1     6    4     3     2    8

                    2     8     1    5     9    3     4     6    7



3 Schätzung der Möglichkeiten
Eine erste naive Schätzung der Möglichkeiten zur Wahl der Zahlen im 9 × 9 Quadrat
betrachtet das Füllen von Feldern mit beliebigen Zahlen. Das ergibt den Gesamtwert
von 1.966 · 1077 für die 981 Kombinationen. Eine erste Verbesserung berücksichtigt die
Zahlen, die schon in der gleichen Zeile eingefügt worden sind. So erhält man für neun
Zeilen 9!9 Kombinationen, ein Betrag von 1.091 · 1050 . Fließen mehr Informationen über
relevante Blöcke in die Berechnung ein, verbessert sich der Betrag zu 1.528 · 1031 . Die
riesige Zahl legt es nahe, einige Zeit in die Überlegungen zu investieren und sowohl
spezielle effiziente Spiel-Strategien als auch neue intelligente Berechnungstechniken
einzusetzen anstatt der Implementierung eines Trial-and-Error Programms. Die folgen-
den Abschnitte präsentieren einen neuen, sehr effizienten Ansatz zur Entwicklung eines
Rätsel-Programms.
Die schließende Schätzung zum Schluss des Abschnitts verfolgt sequentielles Füllen
von Zahlen, von links nach rechts und von oben nach unten. Die Schätzung verwendet
die maximale Einschränkung verfügbar im Kontext vom betrachteten Feld. Die maxima-
le Zahl vorhandener Zahlen in der gleichen Zeile, Spalte oder im gleichen Block verrin-
gert die mögliche Wahl. Abbildung 3 zeigt das Ergebnis. Das Feld in Zeile 5, Spalte 4
betrachtet die Zahlen links und darüber. In der gleichen Zeile wurden bereits drei Zah-



                                           3
3 Schätzung der Möglichkeiten                                                           4


Abbildung 3 Möglichkeiten für das Wählen einer Zahl für ein Feld beginnend mit der
linken oberen Ecke, von links nach rechts und abwärts.


                     9     8    7     6     5     4    3     2     1

                     6     5    4     6     5     4    3     2     1

                     3     2    1     3     2     1    3     2     1

                     6     6    6     6     5     4    3     2     1

                     5     5    4     5     5     4    3     2     1

                     3     2    1     3     2     1    3     2     1

                     3     3    3     3     3     3    3     2     1

                     2     2    2     2     2     2    2     2     1

                     1     1    1     1     1     1    1     1     1



len eingefügt. Die Spalte hat vier Zahlen und der mittlere Block drei. Folglich bietet die
Spalte die größtmögliche Einschränkung mit vier unterschiedlichen Zahlen. Höchstens
fünf Zahlen bleiben zur Wahl, die Möglichkeiten werden in das Feld eingetragen. Die-
ser Ansatz ergibt eine Schätzung von 9! · 6!6 · 3!10 · 5. Die Zahl der möglichen gültigen
Sudoku-Spiele wird beschränkt mit dem Betrag von 1.528·1031 . Ein weiterer Aspekt vom
Sudoku-Nussknacken wird in Abbildung 3 präsentiert. Die letzte Spalte und die unterste
Zeile lassen nur eine Möglichkeit übrig für jedes Feld. Oft sind einige Felder noch nicht
ausgefüllt, obwohl das Spiel im Prinzip schon gelöst worden ist. Ein wenig Aufräum-
arbeit vervollständigt ein Sudoku-Spiel mit dem Füllen von Feldern, welche schon mit 8
weiteren Zahlen in der gleichen Gruppe eingeschränkt wurden.
Der nächste Abschnitt zeigt einige Verbesserungen für den einfachen Scanning-Ansatz
vom Anfang und präsentiert einige fortgeschrittene Sudoku-spezifische Strategien und
Techniken.




                                            4
4 Techniken und Strategien speziell für Sudoku                                           5


4 Techniken und Strategien speziell für Sudoku
Einfache Spiele können mit Strategien wie der Scanning-Strategie (präsentiert in Ab-
schnitt 2) gelöst werden. Für jede Zahl wurden die möglichen Positionen in einem Block
gescannt und relevante Zeilen und Spalten aus Blöcken in der gleichen Zeile oder Spal-
te ausgeschlossen. Offensichtlich zum Füllen bleiben diejenigen Felder, die als einziges
innerhalb einer Gruppe übrig sind. Für jedes Feld können die Zahlen aller Gruppen, zu
denen es gehört, von den Kandidaten entfernt werden. Wenn nur eine Zahl übrig bleibt,
kann die Lücke geschlossen werden. Dieser Abschnitt präsentiert fortgeschrittene Stra-
tegien zum Lösen komplexer Sudokus.
Seiteneffekte von Gruppen werden genutzt, um die Scanning-Strategie in Abschnitt 2

Abbildung 4 Die ersten Zeilen vom Beispiel für die Verbesserung.


                                                              1

                                       1    1     1

                     1     8     9     2    3     4


zu verbessern. Manche Einschränkungen von Gruppen genügen zur Festlegung von
Feldern in abhängigen Gruppen. Abbildung 4 zeigt ein Beispiel. Die möglichen Positio-
nen für die 1 im mittleren Block haben blaue Einträge. Die Information, dass der mittlere
Block die 1 in der mittleren Zeile hat, genügt, um eine 1 in S31 einzutragen. Auf die glei-
che Weise wird (zu sehen in Abbildung 5) die 1 im ersten Block eingeschränkt auf die
zwei unteren Felder. Hier teilen sich der mittlere und der letzte Block die 1 in den ersten
zwei Zeilen.
Der Abschnitt präsentiert eine Strategie, die für das einfache Beispiel in der Einführung

Abbildung 5 Eine Variante der Verbesserung.


                                       1    1     1     1     1     1

                                       1    1     1     1     1     1

                     1     1     9     2    3     4     5     6     7


nicht unbedingt benötigt wird. Die unterste Zeile des Spiels in Abbildung 6 enthält 9,



                                            5
4 Techniken und Strategien speziell für Sudoku                                           6


6, 7 und 8. Andere Felder in dieser Zeile können mit 1, ..., 5 ausgefüllt werden. Der
untere mittlere Block enthält 4, 2 und beschränkt seine unterste Zeile auf 1, 3, 5. Die
Berücksichtigung der Spalten beweist S94 , S95 erlauben 1 und 5, für Feld S96 sind 1
und 3 erlaubt. Die Einschränkung für S94 und S95 verbraucht 1 und 5, die 3 wird in S96
eingetragen.
Nebenbedingungen, die Zahlen verbrauchen, können manchmal ähnlich wie die Zah-

Abbildung 6 Ein Zahlen-verbrauchendes Beispiel mit S94 , S95 und dem Paar (1, 5).


                     7     6     1     3

                     2     8           7          9     3

                                                        7

                     6                            5

                                 9     4                            6

                                            3           8     2

                                            4           1     5

                                 6                2

                     9                                  6     7     8


len ausgefüllter Felder verwendet werden. Die eben abgeleitete Information zusammen
mit der 1 in S77 beschränkt die möglichen Positionen für die 1 im Block links unten auf
S81 und S82 . Außerdem dürfen die übrigen Felder im unteren mittleren Block nur mit 6,
..., 9 ausgefüllt werden, was womöglich weitere Konsequenzen hat.
Die hier vorgeführten Strategien werden komfortabel in eine Software-Architektur für
ein automatisches Programm integriert. Der flexible Ansatz macht die Integration ein-
fach und er ist offen für die Integration neuer Strategien. Abschnitt 3 hat die Wichtigkeit
solcher Überlegungen hervorgehoben mit der riesigen Zahl von Möglichkeiten, die das
Backtracking arbeitsaufwändig machen.




                                            6
5 Software-Architektur für das Spiel                                                 7


5 Software-Architektur für das Spiel
Der Abschnitt präsentiert eine objektorientierte Architektur für ein Sudoku-Programm.
Eine Klassenhierarchie strukturiert die logischen Gruppen des Spiels. Annotationen
bieten einen flexiblen Mechanismus für das Lösen des Spiels mit logischen Regeln so-
wie mit der Integration spezieller Strategien für Sudoku.
Die Architektur für das Programm definiert eine Hierarchie für Gruppen und bietet An-
notationen für die Integration von Strategien. Felder können mit Zahlen gefüllt werden,
Gruppen repräsentieren die Felder der gleichen logischen Einheit des Spiels. Zum Bei-
spiel repräsentiert ein Block eines der 3 × 3 Quadrate, die das Spielfeld kacheln. Auch
Zeilen und Spalten repräsentieren Gruppen. Jedes Feld ist verknüpft mit den Gruppen,
zu denen es gehört – ein Block, eine Zeile und eine Spalte. Umgekehrt werden Grup-
pen mit Ihren Feldern verknüpft. Gruppen sind zusätzlich verknüpft mit allen Gruppen,
die sie schneiden.
Leere Felder werden mit den erlaubten Zahlen annotiert. Zum Anfang bekommen die
Annotationen die Zahlen, die sich nicht in einer der Gruppen des Feldes befinden. Zah-
len, die nicht in einer Gruppe erscheinen, definieren Annotationen. Anfangs speichert
die annotierte Gruppe die leeren Felder. Durch die Beschreibung von Bedingungen
für diese Annotationen wird formalisiert, welche Felder unmittelbar ausgefüllt werden
können. In Feldern mit einer möglichen Zahl kann die übrige Annotation eingetragen
werden. Wenn die Annotationen einer Gruppe für eine bestimmte Zahl nur ein Feld üb-
rig lassen, darf die Zahl eingetragen werden.
Zum Füllen von Feldern werden die Annotationen aktualisiert. Die Eintragung einer Zahl
generiert eine Benachrichtigung, die Änderung an einer Position informiert die abhän-
gigen Felder und Gruppen. In diesen Blöcken, Zeilen und Spalten darf die Zahl nicht
mehr erscheinen. Es bleiben weniger Möglichkeiten. Die Annotationen der Felder in
den Gruppen werden aktualisiert. Die abhängigen Gruppen bekommen Benachrichti-
gungen. Auf diese Weise wird eine Generalisierung der Scanning-Strategie (präsentiert
in Abschnitt 2) implementiert. Abhängige Gruppen werden definiert durch Gruppen mit
einem nichtleeren Schnitt mit einer der Gruppen vom betrachteten Feld. Zum Beispiel
die Eintragung der 1 im Feld im linken oberen Eck benachrichtigt einige abhängige
Gruppen. Die erste Zeile schneidet den mittleren und rechten oberen Block – sie kön-
nen die einzige 1 nur in den Zeilen zwei und drei eintragen. Zusätzlich schneidet Zeile
1 das erste Feld aller Spalten. Die erste Spalte schneidet alle Zeilen und beschränkt
den mittleren und unteren linken Block auf die Spalten zwei und drei. Zum Schluss ent-
fernt der Block links oben die ersten drei Felder der Annotationen von jeder Gruppe der
ersten drei Spalten und Zeilen.
Die Annotationen bieten einen flexiblen Mechanismus zur Integration spezieller Stra-
tegien für Sudoku (präsentiert in Abschnitt 4). Beschränkt beispielsweise der Block



                                          7
6 Suchmethoden Künstlicher Intelligenz                                               8


links oben die 1 auf die erste Spalte, dann werden die Blöcke darunter genauso be-
nachrichtigt. Den gleichen Seiteneffekt kann die Strategie der Zahlen-verbrauchenden
Nebenbedingungen haben. Abschnitt 4 hat das mit dem Beispiel vom ausschließenden
Paar 1 und 5 veranschaulicht. Das Finden dieser Nebenbedingungen generiert immer
Benachrichtigungen in den relevanten Gruppen. Die Annotationen für ein Feld zum Bei-
spiel entfernen die Zahlen des ausschließenden Paars.
Wenn keine Regeln greifen, wird Backtracking zum Finden der Lösung eingesetzt. Die
objektorientierte Architektur und die Annotationen präsentiert in diesem Abschnitt for-
men im folgenden Abschnitt das Fundament für die intelligente Suche.


6 Suchmethoden Künstlicher Intelligenz
Wie Abschnitt 3 es veranschaulicht hat, kann die riesige Zahl der Möglichkeiten be-
achtliche Kosten hervorrufen. So wurden in den Abschnitten 2 und 4 eine einfache
Scanning-Strategie und fortgeschrittene spezifische Techniken eingeführt. Der vorige
Abschnitt hat ein Fundament geformt für die Integration der Strategien und Techniken
mit logischen Regeln und Annotationen für Felder und Gruppen. Wenn keine Regel
greift, startet das Programm eine Suche mit Backtracking. Die Annotationen werden
zur Optimierung der Suche genutzt.
Das Rätsel-Programm speichert den Fortschritt für die Bearbeitung eines Spiels. Eine
Historie merkt sich die ausgefüllten Felder und die Aktualisierung der Annotationen.
Die Buchführung dieser Schritte unterstützt eine optimierte Backtracking-Suche. Wenn
keine Regel oder Strategie greift, wird ein Auswahlpunkt eingeführt und eine Suche ge-
startet. Das zufällige Wählen eines Feldes und einer Zahl kann falsch sein. Das Raten
kann Fehler verursachen. Jeweils nach dem Füllen weiterer Felder prüft das Programm
den Spielzustand. Leere Felder müssen Annotationen haben, die mögliche Vorschlags-
werte zur Eintragung erlauben. Zahlen, die nicht in einer Gruppe vorkommen, dürfen in
dieser Gruppe keine leeren Annotationen besitzen. Diese Zahlen würden sonst in der
Gruppe fehlen. Eine Lösung kann somit nicht mehr gefunden werden. Das Prüfen von
Widersprüchen beschränkt sich auf die Änderungen der Annotationen.
Das Backtracking nutzt die Annotationen. Die Suche rät einen Schritt und setzt das
Spiel mit logischen Regeln fort. Neue Auswahlpunkte können eingeführt werden. Feh-
ler setzen einen Schritt zurück. Ein Auswahlpunkt rät eine Zahl für ein Feld oder den
Platz für eine Zahl in einer Gruppe. Die Annotationen verringern die Möglichkeiten zur
Berücksichtigung und werden zur Optimierung bei der Wahl des geeigneten Auswahl-
punktes genutzt. Zusätzlich vereinfacht die Historie die effiziente Verwaltung der Än-
derungen und der Rücksetzung von Schritten. Ein Auswahlpunkt speichert seinen di-
rekten Vorgänger und die Historie zum Erreichen des Nachfolgers. Ist Breitensuche
gewünscht, merkt sich das Programm die Wege zu weiteren Auswahlpunkten. Ein Aus-



                                          8
6 Suchmethoden Künstlicher Intelligenz                                              9


wahlpunkt speichert die Möglichkeiten zum Wählen mit der Grundlage seiner Auswahl
und die Möglichkeiten, die nicht mehr weiter verfolgt werden. Ein Feld wird bestimmt,
wenn nur eine Möglichkeit bleibt. Ein weiterer Fehler leitet die Änderung an den Vor-
gänger weiter.
Der Ansatz bietet Taktiken für eine parametrisierte Suche. Die Standardmethode der
Tiefensuche kann mit Breitensuche ersetzt werden. Der Ansatz ist offen für weitere
Strategien. Die Wahl der Grundlage für den Auswahlpunkt nutzt die Annotationen. So
könnte ein Testlauf den Schwerpunkt auf Annotationen von Gruppen legen, die zwei
oder drei Felder für eine bestimmte Zahl vorsehen. Ein weiterer Test könnte Annotatio-
nen für Felder bevorzugen, sofern wenige Zahlen zum Füllen der Lücke bleiben. Das
Programm ist offen für Anpassungen und Feineinstellung im Einklang mit der Software-
Architektur präsentiert in Abschnitt 5. Zum Schluss können die Parameter auch mit
statistischen Methoden optimiert werden und weitere Methoden der künstlichen Intel-
ligenz sind vielversprechend für die Optimierung der Suche. Das Training mit Sudoku-
Beispielen ist sehr vielversprechend für das Finden der optimalen Grundlage für den
Auswahlpunkt und für das Finden der Lösung in kürzester Zeit.




                                          9

Weitere ähnliche Inhalte

Andere mochten auch

Social Media - Die Zukunft des Onlinemarketing
Social Media - Die Zukunft des OnlinemarketingSocial Media - Die Zukunft des Onlinemarketing
Social Media - Die Zukunft des Onlinemarketingcyperfection gmbh
 
Chris Winkel 11 7 09
Chris Winkel  11 7 09Chris Winkel  11 7 09
Chris Winkel 11 7 09guestba422d9
 
El liderazgo educativo
El liderazgo educativoEl liderazgo educativo
El liderazgo educativoLYLYKANZ
 
Poker
PokerPoker
PokerLars
 
Diplomat In Drei Streifen
Diplomat In Drei StreifenDiplomat In Drei Streifen
Diplomat In Drei Streifentimopape
 
Human Interface Guideline für Social Media
Human Interface Guideline für Social MediaHuman Interface Guideline für Social Media
Human Interface Guideline für Social MediaAlexander Derno
 
Gebrauchsanleitung Vk130
Gebrauchsanleitung Vk130Gebrauchsanleitung Vk130
Gebrauchsanleitung Vk130guest5568eed
 
Informatika grupo 8 procesadores
Informatika grupo 8 procesadoresInformatika grupo 8 procesadores
Informatika grupo 8 procesadoresJasmin Cárdenas
 
Studie: Von Social Media zum Digital Footprint Management - Sind Unternehmen ...
Studie: Von Social Media zum Digital Footprint Management - Sind Unternehmen ...Studie: Von Social Media zum Digital Footprint Management - Sind Unternehmen ...
Studie: Von Social Media zum Digital Footprint Management - Sind Unternehmen ...Virtual Identity AG
 
Jeopardy (Auf Deustch)
Jeopardy (Auf Deustch)Jeopardy (Auf Deustch)
Jeopardy (Auf Deustch)guesta7bd4f
 
Estrel Berlin: Highlights im Herbst & Winter 2012
Estrel Berlin: Highlights im Herbst & Winter 2012Estrel Berlin: Highlights im Herbst & Winter 2012
Estrel Berlin: Highlights im Herbst & Winter 2012Estrel Berlin
 
Duitsland Eifel 2005 11 11->13
Duitsland Eifel 2005  11 11->13Duitsland Eifel 2005  11 11->13
Duitsland Eifel 2005 11 11->13Her Hert
 
Holografische Folientechnologien _ documentation design thesis (german)
Holografische Folientechnologien _ documentation design thesis (german)Holografische Folientechnologien _ documentation design thesis (german)
Holografische Folientechnologien _ documentation design thesis (german)Ralph Schneider
 

Andere mochten auch (17)

Paradigmas emergentes copia
Paradigmas emergentes   copiaParadigmas emergentes   copia
Paradigmas emergentes copia
 
Tv Hagenbach Abt
Tv Hagenbach AbtTv Hagenbach Abt
Tv Hagenbach Abt
 
Social Media - Die Zukunft des Onlinemarketing
Social Media - Die Zukunft des OnlinemarketingSocial Media - Die Zukunft des Onlinemarketing
Social Media - Die Zukunft des Onlinemarketing
 
Chris Winkel 11 7 09
Chris Winkel  11 7 09Chris Winkel  11 7 09
Chris Winkel 11 7 09
 
El liderazgo educativo
El liderazgo educativoEl liderazgo educativo
El liderazgo educativo
 
Poker
PokerPoker
Poker
 
Mobile Tagging
Mobile TaggingMobile Tagging
Mobile Tagging
 
Diplomat In Drei Streifen
Diplomat In Drei StreifenDiplomat In Drei Streifen
Diplomat In Drei Streifen
 
Human Interface Guideline für Social Media
Human Interface Guideline für Social MediaHuman Interface Guideline für Social Media
Human Interface Guideline für Social Media
 
Gebrauchsanleitung Vk130
Gebrauchsanleitung Vk130Gebrauchsanleitung Vk130
Gebrauchsanleitung Vk130
 
Informatika grupo 8 procesadores
Informatika grupo 8 procesadoresInformatika grupo 8 procesadores
Informatika grupo 8 procesadores
 
Studie: Von Social Media zum Digital Footprint Management - Sind Unternehmen ...
Studie: Von Social Media zum Digital Footprint Management - Sind Unternehmen ...Studie: Von Social Media zum Digital Footprint Management - Sind Unternehmen ...
Studie: Von Social Media zum Digital Footprint Management - Sind Unternehmen ...
 
FUNCIONES ESTADISTICAS
FUNCIONES ESTADISTICASFUNCIONES ESTADISTICAS
FUNCIONES ESTADISTICAS
 
Jeopardy (Auf Deustch)
Jeopardy (Auf Deustch)Jeopardy (Auf Deustch)
Jeopardy (Auf Deustch)
 
Estrel Berlin: Highlights im Herbst & Winter 2012
Estrel Berlin: Highlights im Herbst & Winter 2012Estrel Berlin: Highlights im Herbst & Winter 2012
Estrel Berlin: Highlights im Herbst & Winter 2012
 
Duitsland Eifel 2005 11 11->13
Duitsland Eifel 2005  11 11->13Duitsland Eifel 2005  11 11->13
Duitsland Eifel 2005 11 11->13
 
Holografische Folientechnologien _ documentation design thesis (german)
Holografische Folientechnologien _ documentation design thesis (german)Holografische Folientechnologien _ documentation design thesis (german)
Holografische Folientechnologien _ documentation design thesis (german)
 

Sudoku Rätseln mit Maschineller Intelligenz

  • 1. Sudoku Rätseln mit Maschineller Intelligenz Dr. Harald Hiss 06.07.2010
  • 2. Zusammenfassung Computer können Kreationen erschaffen die jeden überzeugen – die Kinos präsentieren die neuesten überwältigenden 3D-Multimedia-Spektakel. Die Resultate und ihr Nutzen beschränkt sich nicht auf das Amusement und die Kinofilme, die modernen Methoden für unsere Maschinen bringen weitere äußerst beachtliche Verbesserungen in die Realität. Evolutional entwickeln sich die Programme und Algorithmen in Bio-Informatik und im Gesundheits- wesen. Maschinelle Intelligenz kann für Sudoku Rätsel genauso erfolgreich eingesetzt werden. Dieser Artikel präsentiert einen intelligenten Ansatz zum Knacken harter Sudoku-Nüsse mit dem Computer oder auch mit Bleistift und Papier. Der Autor, Dr. Harald Hiss, hat sein Diplom in der Software-Entwicklung 2004 erhalten und 2008 in Datenbanken/XML und Logik promoviert. In die- sem Artikel präsentiert er eine Methode und ein Programm zum Sudoku- Rätseln mit Erfolg. Er entwickelt einige Sudoku-Strategien und einen Plan zur schnellen, einfachen und effizienten Entwicklung von Sudoku-Rätslern mit den neuesten Technologien.
  • 3. Inhaltsverzeichnis 1 Sudoku Rätseln mit Maschineller Intelligenz 1 2 Sudoku und eine Scanning-Strategie 1 3 Schätzung der Möglichkeiten 3 4 Techniken und Strategien speziell für Sudoku 5 5 Software-Architektur für das Spiel 7 6 Suchmethoden Künstlicher Intelligenz 8
  • 4. 2 Sudoku und eine Scanning-Strategie 1 1 Sudoku Rätseln mit Maschineller Intelligenz Computer können Kreationen erschaffen, die jeden überzeugen. Die Kinos präsen- tieren die neuesten überwältigenden 3D-Multimedia-Spektakel. Die Resultate und ihr Nutzen beschränkt sich nicht auf Amusement und Kinofilme, moderne Methoden für die Maschinen bringen weitere äußerst beachtliche Verbesserungen in unsere Realität. Programme und Algorithmen in Bio-Informatik und im Gesundheitswesen entwickeln sich evolutional. Maschinelle Intelligenz kann für Sudoku Rätsel genauso erfolgreich eingesetzt werden. Dieser Artikel präsentiert einen intelligenten Ansatz zum Lösen von Sudokus mit dem Computer. Dieses Nussknacker-Beispiel zeigt Strategien speziell für das Spiel, schätzt die Komplexität und beweist erneut die Stärke und Ausdruckskraft maschineller Intelligenz. Zur Jahrtausendwende wurde das Zahlenrätsel äußerst populär. Die sehr genussvolle Suche zum Füllen von Zahlen in Feldern ist in einigen Varianten und Schwierigkeits- stufen verbreitet. Einfache Sudokus können schnell gelöst werden. Das nächste Ka- pitel präsentiert eine Scanning-Strategie. Diese genügt zum Lösen eines einfachen einführenden Beispiels. Es folgt eine stochastische Abschätzung der Komplexität. Sie zeigt die unglaublich große Zahl der Möglichkeiten, denen der Sudoku-Rätsler gegen- über steht. Einige fortgeschrittene Strategien werden zur Entwicklung einer automati- schen Lösung präsentiert. Eine für Sudoku-Varianten flexible Methodik integriert diese Strategien und weitere Aspekte. Maschinelle Intelligenz extrahiert Informationen zur Wahl geeigneter Regeln um das nächste Feld zu füllen und zur Wahl optimaler Felder und Zahlen zum Backtracking, wenn keine Regel mehr greift. Der Artikel präsentiert einen Ansatz für Sudoku mit maschineller Intelligenz. Das sehr beliebte und verbreitete Zahlenrätsel wird veranschaulicht. Stochastische Methoden schätzen die Möglichkeiten, spezifische fortgeschrittene Strategien integrieren sich in eine Software-Architektur und das System logischer Regeln. Methoden der künstlichen Intelligenz und des maschinellen Lernens optimieren die Suche mit der Auswahl der richtigen Felder und Zahlen – ein sehr vielversprechender Ansatz zur Entwicklung von intelligenter Software. Der Autor hat sich in diesem Gebiet umfangreiche Kenntnisse an- geeignet und veranschaulicht die Kraft maschineller Intelligenz sehr eindrucksvoll am Beispiel des Zahlenrätsels. 2 Sudoku und eine Scanning-Strategie Die große Herausforderung bei Sudoku-Rätseln stellt sich im Füllen von Feldern mit den passenden Zahlen unter der Berücksichtigung einiger Nebenbedingungen. Die Felder gliedern sich in Gruppen. Innerhalb einer Gruppe können nur Zahlen eines definierten Bereichs eingefügt werden. Zahlen dürfen nicht mehrfach in einer Gruppe erscheinen. 1
  • 5. 2 Sudoku und eine Scanning-Strategie 2 Lösungen haben alle Felder ausgefüllt, so dass jede Zahl in jeder Gruppe genau einmal erscheint. Die Standardvariante von Sudoku betrachtet ein 9 × 9 Quadrat von Feldern und definiert den Zahlenbereich 1, 2, ..., 9 zum Ausfüllen. Das Zahlenrätsel betrachtet die Zeilen, die Spalten und die neun Blöcke geformt von den 3 × 3 Quadraten, die das Spielfeld kacheln, als Gruppen. Jede Gruppe muss die Nebenbedingung erfüllen. Eine Zeile kann zum Beispiel Zahlen in 1, 2, ..., 9 enthalten. Somit repräsentiert eine Zeile der Lösung eine Permutation des Bereichs. Der Abschnitt zeigt eine einfache Scanning-Strategie zum Lösen mancher Sudokus. Abbildung 1 Ein einfaches Sudoku Beispiel. 1 2 5 9 4 4 3 6 1 5 5 1 3 1 2 5 7 2 6 9 3 3 4 2 7 1 3 6 7 1 9 7 1 4 2 8 8 5 9 7 Abbildung 1 präsentiert das Beispiel zur Illustration der Strategie. Für die Zahlen der Domäne werden Zeilen und Spalten gescannt um das passende Feld in einem Block zu finden. Der Scan startet mit der 1. Das zweite Feld in der ersten Zeile, kurz S12 , hat eine 1. Im Block darunter speichert Feld S41 diese Zahl. Die ersten zwei Spalten dürfen die Zahl nicht mehr enthalten, der Block links unten hat die 1 in S73 oder S93 . Dann betrachtet der Scan die relevanten Zeilen für den untersten Block. Zeile 7 hat eine 1 in S77 , die 1 kann in S93 eingetragen werden. Mit diesen Scans und dem Füllen offensichtlicher Felder bekommt man die Lösung in Abbildung 2. Der nächste Abschnitt schätzt die Zahl der möglichen Spiele. Danach wendet sich der Artikel weiteren Lösungsstrategien zu und präsentiert fortgeschrittene Techniken. 2
  • 6. 3 Schätzung der Möglichkeiten 3 Abbildung 2 Die Lösung für das vorige Beispiel. 6 1 3 2 7 5 9 8 4 9 2 8 4 3 6 7 1 5 4 7 5 9 1 8 6 3 2 1 3 9 7 8 2 5 4 6 7 4 2 6 5 1 8 9 3 8 5 6 3 4 9 2 7 1 3 6 4 8 2 7 1 5 9 5 9 7 1 6 4 3 2 8 2 8 1 5 9 3 4 6 7 3 Schätzung der Möglichkeiten Eine erste naive Schätzung der Möglichkeiten zur Wahl der Zahlen im 9 × 9 Quadrat betrachtet das Füllen von Feldern mit beliebigen Zahlen. Das ergibt den Gesamtwert von 1.966 · 1077 für die 981 Kombinationen. Eine erste Verbesserung berücksichtigt die Zahlen, die schon in der gleichen Zeile eingefügt worden sind. So erhält man für neun Zeilen 9!9 Kombinationen, ein Betrag von 1.091 · 1050 . Fließen mehr Informationen über relevante Blöcke in die Berechnung ein, verbessert sich der Betrag zu 1.528 · 1031 . Die riesige Zahl legt es nahe, einige Zeit in die Überlegungen zu investieren und sowohl spezielle effiziente Spiel-Strategien als auch neue intelligente Berechnungstechniken einzusetzen anstatt der Implementierung eines Trial-and-Error Programms. Die folgen- den Abschnitte präsentieren einen neuen, sehr effizienten Ansatz zur Entwicklung eines Rätsel-Programms. Die schließende Schätzung zum Schluss des Abschnitts verfolgt sequentielles Füllen von Zahlen, von links nach rechts und von oben nach unten. Die Schätzung verwendet die maximale Einschränkung verfügbar im Kontext vom betrachteten Feld. Die maxima- le Zahl vorhandener Zahlen in der gleichen Zeile, Spalte oder im gleichen Block verrin- gert die mögliche Wahl. Abbildung 3 zeigt das Ergebnis. Das Feld in Zeile 5, Spalte 4 betrachtet die Zahlen links und darüber. In der gleichen Zeile wurden bereits drei Zah- 3
  • 7. 3 Schätzung der Möglichkeiten 4 Abbildung 3 Möglichkeiten für das Wählen einer Zahl für ein Feld beginnend mit der linken oberen Ecke, von links nach rechts und abwärts. 9 8 7 6 5 4 3 2 1 6 5 4 6 5 4 3 2 1 3 2 1 3 2 1 3 2 1 6 6 6 6 5 4 3 2 1 5 5 4 5 5 4 3 2 1 3 2 1 3 2 1 3 2 1 3 3 3 3 3 3 3 2 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 len eingefügt. Die Spalte hat vier Zahlen und der mittlere Block drei. Folglich bietet die Spalte die größtmögliche Einschränkung mit vier unterschiedlichen Zahlen. Höchstens fünf Zahlen bleiben zur Wahl, die Möglichkeiten werden in das Feld eingetragen. Die- ser Ansatz ergibt eine Schätzung von 9! · 6!6 · 3!10 · 5. Die Zahl der möglichen gültigen Sudoku-Spiele wird beschränkt mit dem Betrag von 1.528·1031 . Ein weiterer Aspekt vom Sudoku-Nussknacken wird in Abbildung 3 präsentiert. Die letzte Spalte und die unterste Zeile lassen nur eine Möglichkeit übrig für jedes Feld. Oft sind einige Felder noch nicht ausgefüllt, obwohl das Spiel im Prinzip schon gelöst worden ist. Ein wenig Aufräum- arbeit vervollständigt ein Sudoku-Spiel mit dem Füllen von Feldern, welche schon mit 8 weiteren Zahlen in der gleichen Gruppe eingeschränkt wurden. Der nächste Abschnitt zeigt einige Verbesserungen für den einfachen Scanning-Ansatz vom Anfang und präsentiert einige fortgeschrittene Sudoku-spezifische Strategien und Techniken. 4
  • 8. 4 Techniken und Strategien speziell für Sudoku 5 4 Techniken und Strategien speziell für Sudoku Einfache Spiele können mit Strategien wie der Scanning-Strategie (präsentiert in Ab- schnitt 2) gelöst werden. Für jede Zahl wurden die möglichen Positionen in einem Block gescannt und relevante Zeilen und Spalten aus Blöcken in der gleichen Zeile oder Spal- te ausgeschlossen. Offensichtlich zum Füllen bleiben diejenigen Felder, die als einziges innerhalb einer Gruppe übrig sind. Für jedes Feld können die Zahlen aller Gruppen, zu denen es gehört, von den Kandidaten entfernt werden. Wenn nur eine Zahl übrig bleibt, kann die Lücke geschlossen werden. Dieser Abschnitt präsentiert fortgeschrittene Stra- tegien zum Lösen komplexer Sudokus. Seiteneffekte von Gruppen werden genutzt, um die Scanning-Strategie in Abschnitt 2 Abbildung 4 Die ersten Zeilen vom Beispiel für die Verbesserung. 1 1 1 1 1 8 9 2 3 4 zu verbessern. Manche Einschränkungen von Gruppen genügen zur Festlegung von Feldern in abhängigen Gruppen. Abbildung 4 zeigt ein Beispiel. Die möglichen Positio- nen für die 1 im mittleren Block haben blaue Einträge. Die Information, dass der mittlere Block die 1 in der mittleren Zeile hat, genügt, um eine 1 in S31 einzutragen. Auf die glei- che Weise wird (zu sehen in Abbildung 5) die 1 im ersten Block eingeschränkt auf die zwei unteren Felder. Hier teilen sich der mittlere und der letzte Block die 1 in den ersten zwei Zeilen. Der Abschnitt präsentiert eine Strategie, die für das einfache Beispiel in der Einführung Abbildung 5 Eine Variante der Verbesserung. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 9 2 3 4 5 6 7 nicht unbedingt benötigt wird. Die unterste Zeile des Spiels in Abbildung 6 enthält 9, 5
  • 9. 4 Techniken und Strategien speziell für Sudoku 6 6, 7 und 8. Andere Felder in dieser Zeile können mit 1, ..., 5 ausgefüllt werden. Der untere mittlere Block enthält 4, 2 und beschränkt seine unterste Zeile auf 1, 3, 5. Die Berücksichtigung der Spalten beweist S94 , S95 erlauben 1 und 5, für Feld S96 sind 1 und 3 erlaubt. Die Einschränkung für S94 und S95 verbraucht 1 und 5, die 3 wird in S96 eingetragen. Nebenbedingungen, die Zahlen verbrauchen, können manchmal ähnlich wie die Zah- Abbildung 6 Ein Zahlen-verbrauchendes Beispiel mit S94 , S95 und dem Paar (1, 5). 7 6 1 3 2 8 7 9 3 7 6 5 9 4 6 3 8 2 4 1 5 6 2 9 6 7 8 len ausgefüllter Felder verwendet werden. Die eben abgeleitete Information zusammen mit der 1 in S77 beschränkt die möglichen Positionen für die 1 im Block links unten auf S81 und S82 . Außerdem dürfen die übrigen Felder im unteren mittleren Block nur mit 6, ..., 9 ausgefüllt werden, was womöglich weitere Konsequenzen hat. Die hier vorgeführten Strategien werden komfortabel in eine Software-Architektur für ein automatisches Programm integriert. Der flexible Ansatz macht die Integration ein- fach und er ist offen für die Integration neuer Strategien. Abschnitt 3 hat die Wichtigkeit solcher Überlegungen hervorgehoben mit der riesigen Zahl von Möglichkeiten, die das Backtracking arbeitsaufwändig machen. 6
  • 10. 5 Software-Architektur für das Spiel 7 5 Software-Architektur für das Spiel Der Abschnitt präsentiert eine objektorientierte Architektur für ein Sudoku-Programm. Eine Klassenhierarchie strukturiert die logischen Gruppen des Spiels. Annotationen bieten einen flexiblen Mechanismus für das Lösen des Spiels mit logischen Regeln so- wie mit der Integration spezieller Strategien für Sudoku. Die Architektur für das Programm definiert eine Hierarchie für Gruppen und bietet An- notationen für die Integration von Strategien. Felder können mit Zahlen gefüllt werden, Gruppen repräsentieren die Felder der gleichen logischen Einheit des Spiels. Zum Bei- spiel repräsentiert ein Block eines der 3 × 3 Quadrate, die das Spielfeld kacheln. Auch Zeilen und Spalten repräsentieren Gruppen. Jedes Feld ist verknüpft mit den Gruppen, zu denen es gehört – ein Block, eine Zeile und eine Spalte. Umgekehrt werden Grup- pen mit Ihren Feldern verknüpft. Gruppen sind zusätzlich verknüpft mit allen Gruppen, die sie schneiden. Leere Felder werden mit den erlaubten Zahlen annotiert. Zum Anfang bekommen die Annotationen die Zahlen, die sich nicht in einer der Gruppen des Feldes befinden. Zah- len, die nicht in einer Gruppe erscheinen, definieren Annotationen. Anfangs speichert die annotierte Gruppe die leeren Felder. Durch die Beschreibung von Bedingungen für diese Annotationen wird formalisiert, welche Felder unmittelbar ausgefüllt werden können. In Feldern mit einer möglichen Zahl kann die übrige Annotation eingetragen werden. Wenn die Annotationen einer Gruppe für eine bestimmte Zahl nur ein Feld üb- rig lassen, darf die Zahl eingetragen werden. Zum Füllen von Feldern werden die Annotationen aktualisiert. Die Eintragung einer Zahl generiert eine Benachrichtigung, die Änderung an einer Position informiert die abhän- gigen Felder und Gruppen. In diesen Blöcken, Zeilen und Spalten darf die Zahl nicht mehr erscheinen. Es bleiben weniger Möglichkeiten. Die Annotationen der Felder in den Gruppen werden aktualisiert. Die abhängigen Gruppen bekommen Benachrichti- gungen. Auf diese Weise wird eine Generalisierung der Scanning-Strategie (präsentiert in Abschnitt 2) implementiert. Abhängige Gruppen werden definiert durch Gruppen mit einem nichtleeren Schnitt mit einer der Gruppen vom betrachteten Feld. Zum Beispiel die Eintragung der 1 im Feld im linken oberen Eck benachrichtigt einige abhängige Gruppen. Die erste Zeile schneidet den mittleren und rechten oberen Block – sie kön- nen die einzige 1 nur in den Zeilen zwei und drei eintragen. Zusätzlich schneidet Zeile 1 das erste Feld aller Spalten. Die erste Spalte schneidet alle Zeilen und beschränkt den mittleren und unteren linken Block auf die Spalten zwei und drei. Zum Schluss ent- fernt der Block links oben die ersten drei Felder der Annotationen von jeder Gruppe der ersten drei Spalten und Zeilen. Die Annotationen bieten einen flexiblen Mechanismus zur Integration spezieller Stra- tegien für Sudoku (präsentiert in Abschnitt 4). Beschränkt beispielsweise der Block 7
  • 11. 6 Suchmethoden Künstlicher Intelligenz 8 links oben die 1 auf die erste Spalte, dann werden die Blöcke darunter genauso be- nachrichtigt. Den gleichen Seiteneffekt kann die Strategie der Zahlen-verbrauchenden Nebenbedingungen haben. Abschnitt 4 hat das mit dem Beispiel vom ausschließenden Paar 1 und 5 veranschaulicht. Das Finden dieser Nebenbedingungen generiert immer Benachrichtigungen in den relevanten Gruppen. Die Annotationen für ein Feld zum Bei- spiel entfernen die Zahlen des ausschließenden Paars. Wenn keine Regeln greifen, wird Backtracking zum Finden der Lösung eingesetzt. Die objektorientierte Architektur und die Annotationen präsentiert in diesem Abschnitt for- men im folgenden Abschnitt das Fundament für die intelligente Suche. 6 Suchmethoden Künstlicher Intelligenz Wie Abschnitt 3 es veranschaulicht hat, kann die riesige Zahl der Möglichkeiten be- achtliche Kosten hervorrufen. So wurden in den Abschnitten 2 und 4 eine einfache Scanning-Strategie und fortgeschrittene spezifische Techniken eingeführt. Der vorige Abschnitt hat ein Fundament geformt für die Integration der Strategien und Techniken mit logischen Regeln und Annotationen für Felder und Gruppen. Wenn keine Regel greift, startet das Programm eine Suche mit Backtracking. Die Annotationen werden zur Optimierung der Suche genutzt. Das Rätsel-Programm speichert den Fortschritt für die Bearbeitung eines Spiels. Eine Historie merkt sich die ausgefüllten Felder und die Aktualisierung der Annotationen. Die Buchführung dieser Schritte unterstützt eine optimierte Backtracking-Suche. Wenn keine Regel oder Strategie greift, wird ein Auswahlpunkt eingeführt und eine Suche ge- startet. Das zufällige Wählen eines Feldes und einer Zahl kann falsch sein. Das Raten kann Fehler verursachen. Jeweils nach dem Füllen weiterer Felder prüft das Programm den Spielzustand. Leere Felder müssen Annotationen haben, die mögliche Vorschlags- werte zur Eintragung erlauben. Zahlen, die nicht in einer Gruppe vorkommen, dürfen in dieser Gruppe keine leeren Annotationen besitzen. Diese Zahlen würden sonst in der Gruppe fehlen. Eine Lösung kann somit nicht mehr gefunden werden. Das Prüfen von Widersprüchen beschränkt sich auf die Änderungen der Annotationen. Das Backtracking nutzt die Annotationen. Die Suche rät einen Schritt und setzt das Spiel mit logischen Regeln fort. Neue Auswahlpunkte können eingeführt werden. Feh- ler setzen einen Schritt zurück. Ein Auswahlpunkt rät eine Zahl für ein Feld oder den Platz für eine Zahl in einer Gruppe. Die Annotationen verringern die Möglichkeiten zur Berücksichtigung und werden zur Optimierung bei der Wahl des geeigneten Auswahl- punktes genutzt. Zusätzlich vereinfacht die Historie die effiziente Verwaltung der Än- derungen und der Rücksetzung von Schritten. Ein Auswahlpunkt speichert seinen di- rekten Vorgänger und die Historie zum Erreichen des Nachfolgers. Ist Breitensuche gewünscht, merkt sich das Programm die Wege zu weiteren Auswahlpunkten. Ein Aus- 8
  • 12. 6 Suchmethoden Künstlicher Intelligenz 9 wahlpunkt speichert die Möglichkeiten zum Wählen mit der Grundlage seiner Auswahl und die Möglichkeiten, die nicht mehr weiter verfolgt werden. Ein Feld wird bestimmt, wenn nur eine Möglichkeit bleibt. Ein weiterer Fehler leitet die Änderung an den Vor- gänger weiter. Der Ansatz bietet Taktiken für eine parametrisierte Suche. Die Standardmethode der Tiefensuche kann mit Breitensuche ersetzt werden. Der Ansatz ist offen für weitere Strategien. Die Wahl der Grundlage für den Auswahlpunkt nutzt die Annotationen. So könnte ein Testlauf den Schwerpunkt auf Annotationen von Gruppen legen, die zwei oder drei Felder für eine bestimmte Zahl vorsehen. Ein weiterer Test könnte Annotatio- nen für Felder bevorzugen, sofern wenige Zahlen zum Füllen der Lücke bleiben. Das Programm ist offen für Anpassungen und Feineinstellung im Einklang mit der Software- Architektur präsentiert in Abschnitt 5. Zum Schluss können die Parameter auch mit statistischen Methoden optimiert werden und weitere Methoden der künstlichen Intel- ligenz sind vielversprechend für die Optimierung der Suche. Das Training mit Sudoku- Beispielen ist sehr vielversprechend für das Finden der optimalen Grundlage für den Auswahlpunkt und für das Finden der Lösung in kürzester Zeit. 9