Anzahl von Springer-Touren auf einem 8 × 8 Schachbrett

Werbung
1
Anzahl von Springer-Touren auf einem 8 × 8 Schachbrett
Leonid Torgovitski
1
Das Titelbild ist [2] entnommen.
2
1 Einführung und Definitionen
3
2 OBDDs
2.1 OBDDs (Motivation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Variablenordnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
8
3 Anzahl der Kreis-Überdeckungen
9
4 Anzahl der Springer-Touren
11
5 Literatur
17
1
EINFÜHRUNG UND DEFINITIONEN
3
Das Springerproblem geht auf Leonhard Euler (1707-1783) zurück. Man fragt sich ob es
auf einem klassischen Schachbrett eine Folge von Springer-Zügen gibt, die jedes Feld genau
einmal besuchen. Die Antwort ist: Ja, es gibt diese Folge. Eine Verschärfung des Springerproblems ist die Frage nach der Existenz einer Springer-Tour. Einer speziellen Lösung des
Springerproblems, bei der man aus dem Letzten Feld wieder das Startfeld erreicht. Man
weiß, dass dieses Problem für alle n × n Schachbretter mit geradem n und n ≥ 6 lösbar
ist 2 . Man fragt sich nun nach der Anzahl solcher Springer-Touren. Man weiß, dass es für
n = 6 genau 9,862 Touren gibt. Löbbing und Wegener lösten dieses kombinatorische Problem für n = 8 durch Formulierung eines Zählalgorithmus, der sich auf der Datenstruktur der
OBDDs effizient realisieren lässt. Zuerst bestimmten sie mit einem OBDD die Anzahl der
Kreis-Überdeckungen des Springer-Graphen, und anschließend, als Spezialfall, die Anzahl der
Überdeckungen durch Hamilton-Kreise, also die Anzahl der Springer-Touren. Diese Ausarbeitung gibt eine kurze Einführung (Motivation) der OBDDs und stellt den Algorithmus
vor.
1
Einführung und Definitionen
Definition. Ein Springer-Graph (Knight’s graph) Sn für ein n × n Schachbrett besteht aus
n2 Knoten xij 1 ≤ i, j ≤ n, die die Felder des Schachbretts darstellen. Zwei Knoten xij und
xkl sind über eine Kante verbunden, falls der Springer in einem Zug von xij nach xkl kommt,
d.h. falls | i − k |= 1 und | j − l |= 2, oder | i − k |= 2 und | j − l |= 1 ist.
Alle möglichen Züge eines Springers auf einem n × n Schachbrett lassen sich also durch den
Graphen Sn modellieren. Am Schachbrett sieht man sofort, dass die Knoten von Sn nur 2, 3, 4,
6 oder 8 adjazente Knoten haben können.
Definition. Ein Kreis (Cycle) ist eine Teilmenge K = (VK , EK ) ⊂ G eines Graphen G =
(V, E), für die gilt, dass es vom beliebigen Startknoten v0 ∈ VK aus, einen Weg gibt der alle
anderen Knoten vi ∈ VK genau einmal erreicht, jede Kante aus EK genau einmal begeht und im
Startknoten v0 wieder endet.
Definition. Eine Kreis-Überdeckung (Cycle covering) ist Partition eines Graphen in (disjunkte) Kreise, die alle Knoten des Graphen enthalten.
Definition. Ein Hamilton-Kreis (Hamiltonian cycle) ist ein Kreis, der alle Knoten des
entsprechenden Graphen enthält, d.h V K ≡ V . Insbesondere ist er eine Kreis-Überdeckung.
Definition. Eine Springer-Tour (Knight’s tour) ist ein Hamilton-Kreis auf dem SpringerGraphen. Anschaulich ist es eine Abfolge von zulässigen Zügen eines Springers, bei der jedes
Feld des Schachbretts nur einmal begangen und im letzten Zug das Startfeld erreicht wird.
2
Conrad, Hindrichs, Morsy and Wegener (1994).
1
EINFÜHRUNG UND DEFINITIONEN
4
Bild 1: Symbolische Darstellung einer Springer-Tour.
Eine Springer-Tour oder eine Kreis-Überdeckung lässt sich als ein Vektor x
x = (x1 , . . . , x64 ) = (x11 , . . . , x88 ) ∼ (A1, . . . , H8)
auffassen, der jedem Feld des Schachbretts einen Zug zuordnet. Der Vektor x = (x23 , . . . , x76 ) ∼
(B3, . . . , G7) repräsentiert Springerzüge vom Knoten x11 zum Knoten x23 und vom Feld H8
zum Feld G7.
Definition. COV ist eine Funktion, für die gilt COV(x) = COV(x11 , . . . , xnn ) = 1, falls
x eine Kreis-Überdeckung darstellt und 0 sonst. Entsprechend ist TOUR eine Funktion, die
TOUR(x) = 1 ergibt, falls x eine Springer-Tour beschreibt und andernfalls 0.
COV und TOUR werden als boolsche Funktionen modelliert. Dazu werden jedem Knoten,
xij aus Sn mit d adjazenten Knoten, δ = dlog(d)e Variablen xij 1 , . . . , xij δ zugewiesen. Bei
3 adjazenten Knoten hat man dann 2 boolsche Variablen mit 4 Werten. Deswegen wird ein
Wert für unzulässig erklärt und nur die anderen drei beschreiben die möglichen Züge. Da ein
Knoten 2, 3, 4, 6 oder 8 adjazente Knoten hat, verwendet man 1,2 oder maximal 3 Variablen
um einen Zug zu beschreiben. Die boolschen Funktionen COV(x11 , . . . , xij 1 , . . . , xij δ , . . . , xnn )
und TOUR(x11 , . . . , xij 1 , . . . , xij δ , . . . , xnn ) sind somit Funktionen in maximal dlog(8)en2 = 3n2
Variablen.
Bemerkung. Es wird vorausgesetzt, dass die formale Darstellung der Probleme der KreisÜberdeckung und der Springer-Tour auf einem n×n Schachbrett, als boolsche (Schalt-)Funktionen
COV und TOUR, schon gegeben ist. Ohne Beweis gilt, dass die Größe von COV und TOUR
polynomiell in der Anzahl der Variablen wächst.
Man weiß aus der Komplexitätstheorie, dass erfüllende Belegungen für COV und TOUR schwer
zu finden sind. Denn SAT ist ein NP-vollständiges Problem. Die reduzierten (minimalen)
OBDDs als Datenstruktur erlauben eine Bestimmung einer erfüllenden Belegung in linearer
Zeit, und selbst deren Aufzählung lässt sich effizient realisieren. Ein solches reduziertes OBDD
effizient aufzubauen ist i.A. nicht möglich. Für COV und TOUR gelingt es trotzdem. Zumindest
lohnt es sich, zuerst COV und TOUR als OBDDs darzustellen und anschließend auszuwerten,
2
OBDDS
5
anstatt alle möglichen Inputs der Funktionen direkt zu testen.
Bild 2: Symbolisches Diagramm. Es symbolisiert, dass mit Hilfe der OBDDs TOUR und COV,
1995, auf realen Rechnern berechenbar wurden.
2
OBDDs
OBDD ist eine Datenstruktur, mit der man boolsche Funktionen im Rechner abbilden kann.
Sie wurde im Jahr 1986 von Randy Bryant eingeführt. Andere bekannte Darstellungen sind
z.B. Wahrheitstabellen oder disjunktive/konjuktive Normalformen, also Tabellen oder Rechenvorschriften.
2.1
OBDDs (Motivation)
Definition. OBDD (ordered binary decision diagram) Geordneter binärer Entscheidungsgraph von f (x1 , . . . , xn ) ist ein gerichteter azyklischer Graph mit zwei Senken 4 . Die
inneren Knoten entsprechen den Variablen xi und die Senken den beiden Funktionswerten 0 und
1. Ein Knoten ist als Wurzel ausgezeichnet. Jedem inneren Knoten entspringt eine 0-Kante
und eine 1-Kante. Zusätzlich haben alle Variablen auf allen Pfaden von der Wurzel aus dieselbe
Variablen(an)ordnung (ordered bdd).
Für jede boolsche n-stellige Funktion f und eine beliebige Variablenordnung lassen sich OBDDs
konstruieren. z. B. in Form von vollständigen Entscheidungsbäumen mit Tiefe n + 1.
3
Der Abschnitt über OBDDs ist teilweise wörtlich aus [3] zitiert. Bild 5 ist aus [2] und die Bilder 6 und 7 sind
aus [3] entnommen.
4
Azyklisch bedeutet kreisfrei. Eine Senke ist ein Knoten ohne Nachfolger.
2
OBDDS
6
Bild 3: Binärer Entscheidungsbaum von f mit 2n+1 Knoten.
Jeder Pfad spiegelt eine der 2n möglichen Belegungen von f wieder. Die Blätter sind jeweils
die angenommenen Funktionswerte 0 oder 1. Wenn man alle Blätter zu zwei Senken 0 und 1
verschmilzt, erhält man ein OBDD.
Bild 4: OBDD von f
Ein solcher OBDD ist aber noch lange nicht optimal. Denn die Funktion
f (x1 , . . . , xn ) = 0
durch einen Entscheidungsbaum der Tiefe (n + 1) abzubilden, ist eine Ressourcen (Platz) Verschwendung, es reicht ja eine einzige Senke mit Wert 0. Mit zwei Regeln bekommt man aus
einem beliebigen OBDD den kleinsten OBDD derselben Funktion.
2
OBDDS
7
Definition. Eliminations-Regel. Wenn die 1-Kante und die 0-Kante eines Knotens v auf
den gleichen Knoten u zeigen, dann lenke alle Kanten die v erreichen auf u um und lösche v.
Isomorphie-Regel. Falls Knoten u und v (keine Senken) die gleiche Variable darstellen, die
1-Kanten zum Knoten w1 und die 0-Kanten zum Knoten w2 führen, dann lenke alle Kanten die
v erreichen auf u um und lösche v.
Bild 5: Links die Isomorphie-Regel, rechts die Eliminations-Regel
Für diese beiden Regeln gibt es effiziente Algorithmen (Implementierungen).
Definition. Falls keine der beiden Regeln anwendbar ist, ist der OBDD der Funktion f irreduzibel und wird (optimal, minimal oder Normalform von f ) gennant.
Satz. Bei festgelegter Reihenfolge der Variablen xi ist der irreduzible OBDD, einer boolschen
Funktion f , bis auf Isomorphie eindeutig.
Beispiel 1. Viele Funktionen haben als OBDDs eine kompakte Darstellung. Betrachten wir
f = (a ∧ c) ∨ (a ∧ b ∧ c)
Bild 6: Reduzierung des OBBDs von f.
Bemerkung. Die Darstellung eines (nicht reduzierten) OBDDs ist i.A. selbst bei fester Vari-
2
OBDDS
8
ablenordnung nicht eindeutig.
Für die Konstruktion von OBDDs aus boolschen Funktionen gibt es Algorithmen, in [3] werden
sie erwähnt.
2.2
Variablenordnung
Die Größe eines BDD hängt von drei Faktoren entscheidend ab. Von der Funktion f , der
Anzahl der Variablen xi und von ihrer (An)ordnung. Eine geeignete Variablenordnung kann
entscheiden, ob die Darstellung einer Funktion in n Variablen linear oder aber exponentiell in n
wächst 5 .
Beispiel 2. Ein solches Beispiel ist die Funktion f (x1 , . . . , x2n ) = (x1 ∧ x2 ) ∨ (x3 ∧x4 ) ∨ · · · ∨
(x2n−1 ∧x2n ).
Bild 7: OBDDs von f bzgl. verschiedener Variablenordnungen. aus Paper sounso
Der OBDD von f wächst linear für die Ordnung x1 , x2 , x3 , . . . , x2n−1 , x2n und für die Ordnung
x1 , x3 , x5 , . . . , x2n−1 , x2 , x4 , . . . , x2n exponentiell.
Bemerkung. Die Multiplikation zweier n-Bit-Zahlen hat bzgl. jeder Variablenordnung polynomielles Wachstum.
Wegen dieser starken Abhängigkeit der Größe eines OBDDs von der Variablenordnung, ist die
Konstruktion einer guten Ordnung sehr wichtig. Dies stellt sich jedoch als ein NP-hartes Problem
heraus. In der Praxis greift man, wie auch in dem Fall von COV und TOUR, auf Heuristiken
oder auf das dynamische Reordering (Sifting) zurück.
5
Diese Aussage macht nur Sinn bei Funktionen wie f (x1 , . . . , xn ) = ∨xi die eine gewisse Struktur aufweisen,
i
so dass man das Wachstum eines OBDD in Abhängigkeit von n untersuchen kann. Für einige f wachsen OBDDs
linear in n und für andere exponentiell.
3
ANZAHL DER KREIS-ÜBERDECKUNGEN
9
Zusammenfassung. Nach Konstruktion bieten OBDDs den Vorteil, dass isomorphe Fälle früh
erkannt werden, indem sie durch ein und denselben Pfad dargestellt werden. Zusätzlich können
die erfüllenden Belegungen durch zurückverfolgen (Backtracking) aller Pfade, die aus in der 1Senke münden, bestimmt werden. Die Variablenordnung beeiflusst stark die größe des OBDDs.
Die Tatsache, dass in linearer Zeit entschieden werden kann, ob eine erfüllende Belegung existiert, ändert nichts an der NP-vollständigkeit von SAT. Die Transformation einer boolschen
Funktion in ein OBDD ist i.A. nicht polynomiell.
3
Anzahl der Kreis-Überdeckungen
Man will #{x : COV(x) = 1} bestimmen. Dies ist, den Autoren zufolge, das erste kombinatorische Problem, dass mit Hilfe von BDDs gelöst wurde. Es ist eine Vorbereitung zur Bestimmung der Anzahl von Springer-Touren, also von #{x : TOUR(x) = 1}. In diesem Abschnitt
wird unter anderem gezeigt, wie COV(x) funktioniert.
Theorem 1. Die Anzahl der Kreis-Überdeckungen des Springer-Graphen beträgt
α2 := 8, 121, 130, 233, 568, 102, 400 ≈ 8 · 1018
mit α = 2, 849, 759, 680.
Proof. Der Springer-Graph S = S8 ist bipartit mit der Partitionierung S = {W, B} wobei
W ∼ {weiße Felder} und B ∼ {schwarze Felder} sind. Der Springer kann nämlich von einem
weißen (schwarzen) Feld nur auf ein schwarzes (weißes) ziehen. Sei Wi∈I ⊂ W die Menge der
32 disjunkten Kanten 6 die weißen Feldern entspringen und Bj∈J ⊂ B die Menge der 32 disjunkten Kanten die schwarzen Feldern entspringen. Dann ist S = Cij = Wi ∪ B j eine Kreis◦
Überdeckung. Es ist aber nach Konstruktion klar, dass jede Überdeckung eine solche, eindeutige
Zerlegung besitzt und somit #C ij = #I · #J gelten muss.
Aufgrund der Symmetrie des Springer-Graphen sind die Indexmengen I, J identisch. Damit
ist #C ij = (#I)2 =: α2 .
Dieses α, bzw. alle Wi werden mit COV bestimmt. COV(x1 , . . . , xi1 , . . . , xiδ , . . . , x32 ) ist
eine Funktion in 78 Variablen, die für 32 beliebige Kanten aus W entscheidet, ob diese disjunkt
sind. Eigentlich entscheidet es, ob alle 32 schwarze Felder genau einmal erreicht werden. Der
reduzierte OBDD von COV besteht aus 598,472 Knoten. Die Anzahl der erfüllenden Belegungen
wird berechnet, indem alle Pfade, die zur 0-Senke führen, zurückverfolgt werden (Backtracking).
Auf einer SUN 670/140 mit einer 128MB Festplatte wird α in 6,5 Minuten berechnet 7 .
Ein Entscheidungsbaum für COV hätte ca. 278 Knoten. Das wären mehr als 1017 mal mehr
Knoten als im reduzierten OBDD. Auch ohne die Funktion COV explizit zu kennen, sieht man,
dass COV für die OBDDs eine gute Gestalt haben muß. Nach eigenen Angaben, der Autoren,
brauchte ihre beste Implementierung eines Backtracking-Algorithmus, zur Bestimmung von α,
ca. 30 Tage Rechenzeit.
6
7
Gemeint ist, dass keine zwei Kanten sich einen Knoten teilen.
Es werden ZBDDs, eine den OBDDs ähnliche Datenstruktur, verwendet. (siehe [1],[2] oder [3])
3
ANZAHL DER KREIS-ÜBERDECKUNGEN
10
Beispiel 3. Diese Vorgehensweise ist am Beispiel des 3 × 3 Schachbretts 8 leicht nachzuvollziehen. Abbildung 8 zeigt den bipartiten Springer-Graphen und die Abbildung 9 die einzigen
Zerlegungen W1 und W2 . Aus der Symmetrie folgt, dass der Springer-Graph vier verschiedene
Kreis-Überdeckungen besitzt.
Bild 8: Aus dem 3 × 3 Schachbrett entsteht ein bipartiter Graph.
Bild 9: Die einzigen Zerlegungen W1 und W2 .
Bemerkung. Mit Möglichkeiten der Entscheidungsgraphen kann man leicht Zyklen der Länge 2
für unzulässig erklären und erhält damit schärfere obere Schranken für die Anzahl der SpringerTouren.
8
Für n = 3 ist die Überdeckung des Springer-Graphen nicht äquivalent zur Überdeckung des 3 × 3 Schachbretts,
für gerades n ist sie es. Jedoch wäre schon das 4 × 4 Schachbrett, als Beispiel, zu unübersichtlich.
4
ANZAHL DER SPRINGER-TOUREN
4
11
Anzahl der Springer-Touren
Man will #{x : TOUR(x) = 1} bestimmen.
Theorem 2. Die Anzahl der ungerichteten Springer-Touren auf einem 8 × 8 Schachbrett beträgt
13, 267, 364, 410, 532
Eigentlich geht man analog zur Bestimmung der Anzahl der Kreis-Überdeckungen vor. Man
zählt nur die Überdeckungen zusammen, die Hamilton-Kreise sind. Ein Problem ist, dass zu viele
der Überdeckungen keine Hamilton-Kreise sind. In der Tat ist nur jede 300.000 Überdeckung
ein Hamilton-Kreis 9 . Ein Grund für die vielen Überdeckungen ist, dass der Springer alleine auf
32 Feldern mehr als sechs verschiedene Züge machen kann (vgl. Bild 10). Durch eine geschickte
Aufteilung der (fiktiven) Springer-Tour (divide & conquer ) können leicht zu entscheidende Kriterien für die Existenz einer solchen angegeben werden. Diese Kriterien schränken die Anzahl
der Züge eines Springers und somit die Anzahl der zu untersuchenden Kreis-Überdeckungen
stark ein.
Bild 10:
Wie sieht divide & conquer in diesem Fall aus? Man betrachtet nicht ein Schachbrett sondern 383,358,644 ≈ 400 Millionen verschiedene Bretter. Diese schränken aufgrund der Konstruktion die Zahl der möglichen Züge stark ein. Viele dieser Bretter enthalten gar keine SpringerTouren und die Summe aller Springer-Touren entspricht, wieder nach Konstruktion, genau der
Anzahl der Springer-Touren des ursprünglichen, klassischen Schachbretts. Wie sehen diese
400 Millionen Bretter aus? Das Schachbrett wird in drei Bereiche L (lower-board), U
(upper-board) und M (middle-board) eingeteilt.
9
Die Anzahl der Kreis-Überdeckungen beträgt a2 ≈ 8 · 1018 . Die Anzahl der gerichteten Springer-Touren ist
nach Theorem 2, ca. 26 · 1012 . Somit folgt a2 ≈ 8 · 1018 = (26 · 1012 )(300.000).
4
ANZAHL DER SPRINGER-TOUREN
12
Bild 11:
Ein Springer kann kein Feld in U durch einen Zug aus L erreichen und umgekehrt kein Feld
in L aus U. Nun werden die Felder zusätzlich nach einem anderen Kriterium unterteilt. Ein
Feld gehört zur Menge LU, falls es durch einen Zug in L erreicht und mit einem Zug nach U
verlassen werden soll 11 . Analog werden die Mengen UL,LL und UU definiert. Die disjunkte
Vereinigung
◦
◦
◦
UL ∪ LU ∪ LL ∪ UU
ergibt das gesamte Brett. Das Tupel (UL, LU, LL, UU) bezeichen wir mit P. Ein Beispiel für
ein solches Tupel stellen die folgenden Abbildungen dar.
Bild 12: Rot steht für Felder aus LL, Grün für UL, Gelb für UU und Blau für Felder aus LU.
Die Einteilung der Felder außerhalb von M ist klar. Das impliziert, dass jede solche Einteilung
durch ihre Einschränkung auf M schon festgelegt ist.
10
In diesem Fall sind L und U jeweils die oberen und unteren 4 × 8 Teilbretter.
4
ANZAHL DER SPRINGER-TOUREN
13
Bild 13: Farbzuordnung entpricht Bild 12. Die grünen und die blauen Felder sind die Übergänge
der Springertour zwischen LL und UU.
Die folgende Abbildung 14 verdeutlicht, im Vergleich zu 10, wie sehr P die Anzahl der möglichen
Züge einschränkt.
Bild 14:
Jede Springer-Tour, die ein bestimmtes P berücksichtigt, hat schematisch die foglende Gestalt
4
ANZAHL DER SPRINGER-TOUREN
14
Bild 15:
Man sieht, dass die Einteilung in Felder aus LL und UU zwei voneinander abgeschottete Teilbretter definiert (rot und gelb) die nur über Übergangsfelder LU und UL (grün und blau) verbunden
werden. Auf Feldern aus LL und UU kann die Springer-Tour (Hamilton-Kreis) auf viele verschiedene Weisen verlaufen. In dem Fall, dass es mehrere Wege in LL und UU gibt und diese
jeweils mit P verträglich sind, ergibt jede Kombination dieser Wege eine Springer-Tour. Man
kann Kriterien angeben, wann P zulässig ist, also eine Springer-Tour existieren kann, die mit
P verträglich ist. Ein erstes Kriterium ist, dass |LU|=|UL| gelten muss. Denn die Mengen LL
und UU müssen gleich oft verlassen und erreicht werden.
Bild 16: Ein solches P ist unzulässig.
Das zweite Kriterium ist ebenfalls nur hinreichend. LL und UU müssen nicht nur gleich oft
verlassen und erreicht werden, es soll auch sichergestellt werden, dass die Überdeckung ein
Hamilton-Kreis ist. Es dürfen keine zwei disjunkte, geschlossene Kreise entstehen wie in Bild
17.
4
ANZAHL DER SPRINGER-TOUREN
15
Bild 17: Zwei disjunkte, geschlossene Touren und ein nicht gutes Tupel (f, g). Funktionen
f bzw. g stellen Abbildungen und symbolisch Wege dar.
Dazu definiert man zwei bijektive Abbildungen f und g. Sie bilden Eintrittspunkte eines (fiktiven) Hamilton-Kreises auf Austrittspunkte aus LL bzw. UU ab 11 .
f : UL → LU und
g : LU → UL
Zum Beispiel werden im Bild 17 und Bild 15 f bzw. g wie folgt festgelegt:
f (A5) = D5, f (F 4) = G4, g(D5) = A5, g(G4) = F 4
f (A5) = D5, f (F 4) = G4, g(G4) = A5, g(D5) = F 4
Definition. Das Tupel (f, g) ist gut genau dann, wenn f und g einen einzigen Zyklus bilden.
Im Bild 15 bildet (f, g) einen Zyklus A5 → D5 → F4 → G4 → A5 und ist somit gut. Hingegen
ist das Tupel im Bild 17 (f, g) nicht gut, denn A5 → D5→ A5 und F4 → G4→ F4 sind zwei
verschiedene Zyklen.
Bemerkung. Es kann einen Hamilton-Kreis nur dann geben, wenn (f, g) gut ist. Falls |LU|=|UL|=1
ist, ist (f, g) trivialerweise gut.
Hat man ein zulässiges P gefunden und ein entsprechendes Tupel (f, g), das gut ist, untersucht
man Wege(-Systeme) in LL, die mit P und (f, g)gut verträglich sind 12 . Dies geschieht auf
zwei Ebenen. In der ersten Ebene entscheidet TOUR analog zu COV, ob ein bestimmtes WegeSystem disjunkt ist. Das stellt sicher, dass jedes Feld genau einmal verlassen und einmal erreicht
wird. Falls dies erfüllt ist, überprüft TOUR, ob diese Wege-Systeme keine Kreise innerhalb vonn
LL enthalten.
11
Mit Ein- bzw. Austrittspunkten sind Felder aus UL und LU gemeint. Die Bezeichnung hängt davon ab, ob
der Springer sich in LL oder UU befindet.
12
Aufgrund von Symmetrie reicht es, LL zu betrachten, denn jedes Tupel (UL, LU, LL, UU) entspricht genau
einem Tupel (LU, UL, LL, UU)
4
ANZAHL DER SPRINGER-TOUREN
16
Bild 18: Eine Tour, die P und (f, g)gut berücksichtigt, aber trotzdem keine geschlossene SpringerTour ist.
Die Anzahl der Hamilton-Kreise für ein bestimmtes P erhält man durch
# (Teiltouren in LLP ) ·#(Teiltouren in UU P ) .
Die Zahl der Springer-Touren ergibt sich somit als
 

1 X X
# (Teiltouren in LLP ) · #(Teiltouren in UU P ) .
2
P
(f,g)gut
Diese Zahl wurde auf 20 SUN workstations innerhalb von vier Monaten berechnet. Wobei die
Rechner nur einen Bruchteil der Zeit zur Verfügung standen.
Bemerkung. Eigentlich hat Brendan McKay 1997 mit einem anderen Verfahren die exakte
Anzahl der Springer-Touren bestimmt. Löbbing und Wegener haben anscheinend Fehler in der
Implementierung gemacht und mussten das Ergebnis von 1995 neu berechnen. Die wiederholten
Berechnungen bestätigten McKay’s Resultat.
Zusammenfassung. Man sieht das OBDDs keine allmächtige Werzeuge sind. Für bestimmte
Funktionen mit guten Heuristiken für die Wahl der Variablenordung und bei geschickter Umformulierung eines Problems sind sie dennoch sehr hilfreich.
5
5
LITERATUR
17
Literatur
[1] Martin Löbbing, Ingo Wegener: The Number of Knight’s Tours Equals 33,439,123,484,294
Counting with Binary Decision Diagrams. (Die Zahl wurde später korregiert.)
[2] Martin Löbbing, Olaf Schröer, Ingo Wegener: The Theory of Zero-Suppressed BDDs and
the Number of Knight’s Tours.
[3] Christoph Meinel, Thorsten Theobald: Geordnete binäre Entscheidungsgraphen und ihre
Bedeutung im rechnergestützten Entwurf hochintegrierter Schaltkreise.
Herunterladen