Tetris - Komplexitätsbetrachtung
Tetris
Tetris ist ein beliebtes Computerspiel erstmals veröffentlicht in 1984[1]. Das Ziel des Spiels ist es nacheinander von oben nach unten fallende Spielsteine so zu verschieben und platzieren, dass möglichst viele horizontale Reihen gefüllt werden. Eine vollständig gefüllte Reihe wird gelöscht und die spielende Person erhält Punkte. Das Spiel endet, falls die Spielsteine zu hoch gestapelt werden und einer den oberen Spielfeldrand berührt.
Spielablauf
In Tetris erscheinen Spielsteine, auch Tetrominos genannt, in verschiedenen Formen, wobei stets nur ein Spielstein nach dem anderen erscheint.

Abb. 1: Alle Tetris Spielsteine mit beigefügten Namen (eigene Darstellung, Namen und Orientierungen adaptiert aus Tetris is hard, even to approximate[2])
In den meisten Versionen des Spiels ist die Reihenfolge dieser Spielsteine zufällig. Die spielende Person steuert aktiv den neuen Spielstein, der kontinuierlich von oben nach unten fällt, bis dieser entweder auf den unteren Rand den Spielfeldes oder von oben auf einen zuvor platzierten Spielstein stößt. Der fallende Spielstein kann beliebig oft nach links oder nach rechts verschoben oder um 90º rotiert werden. Die einzige Begrenzung hierbei ist, dass der Spielstein hierbei aber nicht durch andere Spielsteine wandern darf. Sobald eine Reihe vollständig gefüllt ist, verschwindet sie, die Reihen über der freigeräumten Reihe werden um eins nach unten verschoben und man erhält Punkte. Es können auch mehrere Reihen gleichzeitig freigeräumt werden. Werden mit Hilfe eines "I"-Steins vier Reihen gleichzeitig geräumt, bezeichnet man dies als Tetris. Das Ziel des Spiels ist es möglichst viele Reihen zu füllen und löschen. In Tetris kann meist nicht gewonnen werden, da das Spiel einfach so lange weiter geht, bis ein Spielstein den oberen Spielfeldrand berührt.
Die "Offline Version" von Tetris
Um den späteren Beweis für die NP-Vollständigkeit zu vereinfachen, verwenden wir eine sog. offline Version von Tetris. Diese offline Version unterscheidet sich vom herkömmlichen Tetris hauptsächlich in einem Aspekt. Die Reihenfolge der Spielsteine ist vollständig deterministisch und endlich, im Vergleich zur probabilistischen und unendlichen Spielsteinreihenfolge des üblichen Spiels. Da die Schwierigkeit von offline Tetris grundlegend einfacher ist als die des herkömmlichen Tetris, können wir somit die Komplexität des herkömmlichen Tetris erahnen.
Komplexität von Tetris-Spielzielen
Viele verschiedene Ziele sind in (offline) Tetris NP-Vollständig[2:1], darunter:
- Das Maximieren der Anzahl von freigeräumten Reihen bei einer gegeben Spielsteinreihenfolge
- Das Maximieren der Anzahl an platzierten Spielsteinen bevor das Spiel zu Ende geht
- Das Maximieren der Anzahl an Tetrisen
- Das Minimieren der maximal erreichten Höhe bei einer gegeben Spielsteinreihenfolge
Formalisierung des gesamten Spielablaufs
Für die Formulierung unseres
Das Spielfeld
Unser Spielfeld
Die Spielsteine

Abb. 2 Spielsteine mit markiertem Zentrum (eigene Darstellung, adaptiert aus Tetris is hard, even to approximate[2:2])
Wir können den Zustand jedes unserer sieben Spielsteine mit Hilfe eines 4-Tupels
t \in \{ \text{Sq, LG, RG, LS, RS, I, T} \} beschreibt hierbei um welche Art Spielstein es sich handleto \in \{0^{\circ},90^{\circ},180^{\circ},270^{\circ} \} beschreibt die Orientierungen ausgehend von dem Urzustand des Spielsteins\langle i,j \rangle die Position des Zentrums des Spielsteins (s. Abb. 2) auf unserem Spielfeldf \in \{ fixed,unfixed \} beschreibt ob der Spielstein sich noch bewegen kann oder nicht
Zum Beispiel wird der Zustand des folgenden Spielsteins mit dem Tupel

Abb. 3: T auf dem Spielfeld (eigene Darstellung)
Rotieren
Unser Rotationsmodell ist eine berechenbare Funktion
Breukelaar et al formulierten für
- Falls die Rotation legal ist, dann gilt für ein
P = \langle t,o, \langle i,j \rangle , f \rangle ,P'= \langle t,(o +\theta) \mod 360^{\circ}, \langle i',j' \rangle , f \rangle wobeii' undj' die neue Position des Zentrums nach der Rotation sind. Falls die Rotation nicht legal ist, giltP' = P - Die Legalität hängt nur von der
O(1) -großen Nachbarschaft des Spielsteins ab - Für eine "leere" Nachbarschaft gilt also, dass die Rotation legal ist
- Falls eine Rotation legal ist, dann belegt
P' kein Feld was bereits inB belegt ist - Die Funktion
R muss "angemessen" sein:
5.1 Ein Spielstein kann nicht von einer Region des Spielfelds zu einer anderen springen. Es muss ein Pfad von leeren Feldern vonP zuP' inB existieren
5.2 Ein Spielstein kann nicht an einer übermäßig eingeengten Stelle des Spielfelds vorbeikommen. In anderen Worten, wenn eine ein Feld breite Lücke existiert, darf keiner unserer Steine außer möglicherweise ein I-Stein hindurchkommen
Der Spielablauf
Jetzt können wir also den Spielablauf an sich beschreiben. Unsere legalen Spielzüge für ein Spielstein
- Eine Rotationen mit
P' = R(P,\pm 90^{\circ}, B) - Eine Verschiebung um eine Spalte, sofern die benachbarten Felder von
P inB hinreichend frei sind und keine Blockaden oder anderen Spielsteine die Bewegung verhindern. Hier ist unser neuer ZustandP' = \langle t,o, \langle i,j \pm 1 \rangle , unfixed \rangle - Unseren Spielstein um eine Reihe fallen lassen, falls alle Felder direkt unterhalb unseres Spielsteins frei sind in
B . Der neue Zustand istP' = \langle t,o, \langle i-1,j \rangle , unfixed \rangle - Eine Fixierung, falls unser Spielstein den unteren Spielfeldrand oder einen anderen Speilstein unter sich berührt.
P' = \langle t,o, \langle i,j \rangle , fixed \rangle
Für einen fixierten Spielstein gibt es logischerweise keinen legalen Zug, da wir immer nur unseren einen nicht fixierten Spielstein kontrollieren.
Wir definieren uns außerdem noch einen Ablauf (trajectory)
Da in unserer offline Version von Tetris, alle Spielsteine im vorhinein bekannt sind. Definieren wir unser Tetris Spiel
Unser Spielablauf kann somit also mit Hilfe einer Ablaufssequenz (trajectory sequence)
Die NP-Vollständigkeit von Tetris
Tetris liegt in NP
Wie zuvor erwähnt, gibt es in Tetris mehrere Ziele welche wir betrachten können. Formal definieren wir also unser
Eingabe: Ein Tetris Spiel
Frage: Existiert eine Ablaufssequenz
Breukelaar et al zeigen, dass für jedes azyklische Ziel
Angenommen wir haben also ein Spiel
Reduktionsbeweis
3-PARTITION
In diesem Reduktionsbeweis reduzieren Breukelaar et al von
Eingabe: Eine Reihe von nicht-negativen, ganzen Zahlen
Frage: Existiert eine Partitionierung in Dreiermengen
Aufgrund der späteren Konstruktion unseres Spielfelds, wollen wir nur ein
Konstruktion des Spielfelds
Hier beginnen wir zuerst mit dem Ziel "Maximieren der Anzahl an freigeräumten Reihen", auf mehr Ziele wird später eingegangen. Die Höhe und Breite unseres Spielfelds ist immer abhängig von unserer Partitionsinstanz und es gibt mehrere Wege es aufzubauen. Eine Methode wurde von Demaine et al in 2003 vorgestellt[4]. Hier konzentrieren wir uns aber auf die überarbeitete, vereinfachte Methode aus 2004, nach der Zusammenführung der Paper von Demaine et al und Breukelaar et al[2:6]. Die Idee ist hierbei, dass unser Spielfeld
- Die erste Spalte ist leer bis auf die letzten zwei Reihen
- Die zweite Spalte ist vollkommen leer
- In der dritten Spalte, sind immer abwechselnd drei Reihen gefüllt und zwei Reihen leer
- Die vierte Spalte ist vollkommen gefüllt
Was zu diesem Ergebnis führt:

Abb. 4: Ein Bucket, bearbeitet[2:7]
Zusätzlich benötigen wir für die spätere Vollständigkeit und Korrektheit unseres Tetris Ziels eine sogenannte Lock. Diese ist
- Die erste Spalte ist gefüllt, bis auf die oberste Reihe
- Die zweite Spalte ist gefüllt, bis auf die obersten zwei Reihen
- Die dritte Spalte ist leer, bis auf die zweitoberste Reihe

Abb. 5: Die Lock, bearbeitet[2:8]
Wie bereits erwähnt repräsentieren unsere Buckets die Dreiermengen, weshalb wir

Abb. 6: Das Spielfeld[2:9]
Idee und Ablauf
Um nun von unserer
- Den sog. Initiator, welcher aus einem
\text{RG} -Stein besteht - Den Filler, wo wir
a_i mal die Sequenz\langle \text{Sq, LG, Sq}\rangle erhalten - Den Terminator, welcher aus einem
\text{Sq} -Stein und einem\text{I} -Stein besteht.
Sei z.B. unsere erste Zahl die wir abarbeiten
\langle \text{RG} \rangle \langle\text{Sq, LG, Sq, Sq, LG, Sq, Sq, LG, Sq, Sq, LG, Sq}\rangle \langle \text{Sq, I} \rangle

Abb. 7: Füllen eines Buckets mit
Das Ziel der spielenden Person ist es, alle Buckets auf die gleiche Höhe zu füllen. Intuitiv finden wir dabei die Dreiermengen, repräsentiert durch die Buckets, in die die Zahlen gehören. Genau dann wenn wir eine "Ja"-Instanz unseres

(Abb. 8: Alle Buckets gefüllt[2:10])
Nun erhalten wir zum Abschluss noch folgende Spielsteine:
s -mal einRG -Stein- Ein
T -Stein \frac{5T+16}{4} -mal einI -Stein
Wir benötigen die
Vollständigkeit und Korrektheit
Breukelaar et al beginnen hierbei zuerst mit der Annahme, dass wir eine "Ja"-Instanz unseres
Da wir eine "Ja"-Instanz vor uns haben, können unsere Zahlen
Danach folgt unsere "Abschlusssequenz". Mit unseren
Um zu sehen, dass der genannte Ablauf der einzig valide ist, genügt es die Kombinationen zu betrachten, welche der spielenden Person zur Verfügung stehen.

Abb. 9: Initiator Stellung, alle nicht-Initiator Spielsteine[2:12]
Betrachten wir einen Bucket der einen Initiator erwartet, führen die
Haben wir eine "Nein"-Instanz, können wir keine Dreiermengen bilden, wo alle Elemente immer zu
Andere Ziele und Begrenzungen
Für andere Ziele wird der Ablauf der Reduktion von Breukelaar et al lediglich leicht angepasst.
Maximieren der Anzahl an platzierten Spielsteinen bevor das Spiel zu Ende geht
Die Idee hinter der Modifikation des Spielfelds für das Ziel der Maximierung der Anzahl bevor das Spiel zu Ende geht ist, dass wir eine Niederlage für eine "Nein"-Instanz erzwingen wollen. Wir erweitern unser Spielfeld um

Abb. 10: Das Spielfeld für das Maximieren der Anzahl an platzierten Spielsteinen[2:13], bearbeitet
Zusätzlichlich erhalten wir nach unser originalen Spielsteinsequenz noch ein
Maximieren der Anzahl an Tetrisen
Hierfür wird unser Spielfeld nur leicht angepasst. Wir fügen einfach

Abb. 11: Modifiziertes Feld für das Maximieren der Anzahl an Tetrisen[2:14], bearbeitet
Oberer Bereich unseres Spielfelds
Der Grund warum wir unser originales Spielfeld so definierten, dass die Höhe
Referenzen
History of Tetris: https://tetris.com/history-of-tetris ↩︎
Breukelaar, R., Demaine, E. D., Hohenberger, S., Hoogeboom, H. J., Kosters, W. A., & Liben-Nowell, D. (2004). Tetris is hard, even to approximate. International Journal of Computational Geometry & Applications, 14(01n02), 41-68. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Garey, Michael R. and David S. Johnson (1979), Computers and Intractability; A Guide to the Theory of NP-Completeness. ISBN 0-7167-1045-5. Pages 96–105 and 224. ↩︎
Demaine, E. D., Hohenberger, S., & Liben-Nowell, D. (2003). Tetris is hard, even to approximate. In Computing and Combinatorics: 9th Annual International Conference, COCOON 2003 Big Sky, MT, USA, July 25–28, 2003 Proceedings 9 (pp. 351-363). Springer Berlin Heidelberg. ↩︎