Tetris ist NP-vollständig von Dietmar Mühmert

Ähnliche Dokumente
Tetris ist NP-vollständig. Vortrag zum Seminar über Algorithmen SS2007 von Dietmar Mühmert

Ist Tetris NP - Vollständig?

Seminar. Knowledge Engineering und Lernen in Spielen. Reinforcement Learning to Play Tetris. TU - Darmstadt Mustafa Gökhan Sögüt, Harald Matussek 1

Die NP-Vollständigkeit von Tetris

Sudoku ist NP-vollständig

Minesweeper ist NP-vollständig

Theoretische Grundlagen der Informatik

Satz 227 3SAT ist N P-vollständig. Info IV 2 N P-Vollständigkeit 375/388 c Ernst W. Mayr

Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z}

Übungsblatt 1. Lorenz Leutgeb. 30. März 2015

FH Gießen-Friedberg, FB 06 (MNI) Skript 8 Mathematik 1 für KMUB 5./7. November 2008 Prof. Dr. H.-R. Metz. Matrizen 1. a m1 a m2 a m3 a mn

Komplexitätsklassen P und NP

Theoretische Grundlagen der Informatik

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

Vorname Name Matrikelnummer 1. a) Benennen Sie die übrigen 6 Komponenten einer nicht-deterministischen Turingmaschine (TM): (3 Punkte)

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

Prüfung Lineare Algebra , B := ( ), C := 1 1 0

TECHNISCHE UNIVERSITÄT MÜNCHEN. Invertierung von Matrizen und Multilinearformen

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

Musterlösung Informatik-III-Nachklausur

Vorlesung Datenstrukturen

1. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Reduktion / Hilberts 10. Problem

Färbungsbeweise. 1 Aufgaben

Die Determinante eines Friesmuster

Es gibt ein Spielfeld mit 9x9 Feldern. Jedes Feld hat eine aus insgesamt 7 Farben.

NP-Vollständigkeit einiger Zahlprobleme

Vervollständigung Lateinischer Quadrate

Formale Grundlagen der Informatik 1 Kapitel 23 NP-Vollständigkeit (Teil 2)

1.8 Endlich erzeugte kommutative Gruppen

Leitfaden zum Erstellen eines Frogger -Spiels: Teil 2

Kapitel 15 Lineare Gleichungssysteme

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Mathematik II für Studierende der Informatik (Analysis und lineare Algebra) im Sommersemester 2018

Theoretische Grundlagen der Informatik

Praktikum Einführung in die Mathematik 1 WS 2010/2011 Blatt 2 Lösungen

Grundlagen der Künstlichen Intelligenz

Die Reduktion Hilberts 10. Problem

Probleme aus NP und die polynomielle Reduktion

Theoretische Grundlagen der Informatik

Seminarvortrag Schnitte von Fraktalen

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Halteproblem/Kodierung von Turing-Maschinen

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

WS 2009/10. Diskrete Strukturen

Universität Innsbruck WS 2013/2014. Brückenkurs. Formale Konzepte. 3. Auflage. Harald Zankl. 15. Januar 2014

Kochrezept für NP-Vollständigkeitsbeweise

Satz von Rice. Lemma 39

1. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

Darstellung von Gruppen

Algorithmische Geometrie: Voronoi Diagramme (Teil 2)

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)

Ferien-Übungsblatt 8 Lösungsvorschläge

Beispiellösungen zu Blatt 101

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017

Pentominos. Stefan Klessinger

Allgemeines Halteproblem Hilberts 10. Problem

Schnitte von Fraktalen

Maturaarbeit. Färbungsbeweise

Anordnungstechniken für konvektionsdominante Probleme im Ê 3. Dimensionsunabhängige Verfahren. Algorithmen für planare Graphen. Numerische Beispiele

Hamilton-Pfad auf Gittergraphen ist NP vollständig

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

Resolutionsalgorithmus

Theoretische Informatik 1

Umgekehrt kann eine Datenbank-Instanz in eine konjunktive Anfrage umgewandelt werden: hasairport. ans. fly n 1 n 2 n 3 n 2 Bonn n 4.

6. Texterkennung in Videos Videoanalyse

Projektarbeit. Java-Application zur Generierung von Zahlenrätseln

Vortrag 20: Kurze Vektoren in Gittern

2. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

Minimalpolynome und Implikanten

Technische Universität München Zentrum Mathematik. Optimierung 2, WS 2008/09 Übungsblatt 12

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Reelle Komplexität - Grundlagen II

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2006/07 in Trier. Henning Fernau Universität Trier

Verschlüsselungs- und Codierungstheorie PD Dr. Thomas Timmermann Westfälische Wilhelms-Universität Münster Sommersemester 2017

Logic Masters 2015 Runde 2: Schiffe versenken und Varianten

Grundbegriffe für dreiwertige Logik

Die Klasse NP und die polynomielle Reduktion

Dynamische Geometrie & Komplexitätstheorie. Céline Schöne und Gunther Kraut

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Polynomielle Verifizierer und NP

NP-vollständige Probleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme

In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N. Wenn (mit einem n > 1)

Distributed Algorithms. Image and Video Processing

1 Analytische Geometrie und Grundlagen

Effiziente Algorithmen (SS2015)

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

Einführung Mathematik Algorithmen Rekorde. Rubik s Cube. Höllinger, Kanzler, Widmoser WS 2016/17

Algorithmen zur Visualisierung von Graphen

PRIMES is in P. Ein Vortrag von Holger Szillat.

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität

Einführung in die Theoretische Informatik

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Transkript:

Tetris ist NP-vollständig von Dietmar Mühmert 14.06.2007 Das Spiel Tetris: Tetris ist ein sehr populäres Spiel aus den 80er Jahren. Es wurde von dem russischen Mathematiker Alexei Paschitnow erfunden. Aufgabe des Spiels ist es so genannte Tetrominos in einem Rechteck zu stapeln, so das eine oder mehrere Reihen komplett ausgefüllt werden. Diese verschwinden dann und der Spieler bekommt dafür Punkte. Die Bausteine fallen von oben herunter und können dabei gedreht und vertikal verschoben werden. Mit steigendem Level fallen die Teile immer schneller. Gewinnen kann man Tetris eigentlich nie! Das Spiel endet sobald ein Baustein nicht mehr auf das Spielfeld passt. In der original Version wird dem Spieler immer das nächste Tetromino in einem Vorschaufenster angezeigt. In diesem Vortrag befassen wir uns mit der Full-Information Variante (auch Offline Tetris genannt), bei der wir die komplette Sequenz bereits im voraus kennen. Dies ist quasi eine Generalisierung der Vorschau von nur einem Teil. Abbildung 1: Tetrominos Die bezeichnen Tetrominos im Folgenden mit (v.l.n.r.): I ( I), LG ( left gun ), RG ( right gun ), SQ ( square ), RS ( right snake ), T ( T ), LS ( left snake ) Formale Definition des Spiels: Das Spielfeld: ist ein rechteckiges Gitter von m Zeilen und n Spalten, indiziert von unten nach oben und von links nach rechts. Ein Feld <i,j> im Gitter ist entweder leer oder gefüllt. Ein gültiges Spielfeld hat keine komplett gefüllten Zeilen und es gibt keine komplett leeren Zeilen unterhalb eines gefüllten Feldes. Die Bausteine: bestehen aus vier gefüllten Felder wie sie in der Abbildung 1 zu sehen sind. Der Zustand eines Teils P = <t, o, <i,j>, f> ist ein 4-Tupel, wobei: (1) der Typ t {Sq, LG, RG, LS, RS, I, T} (2) die Orientierung o {0, 90, 180, 270 } (3) die Position <i,j> {1,..., m} {1,..., n} (4) der Wert f {fixed, unfixed} - 1 -

Die Rotation: ist eine Funktion R: <P, θ, B> P' wobei P und P' den Zustand des Teils angibt und θ {-90, 90 } und B ein gültiges Spielfeld ist. Bausteine können rotiert werden, solange benachbarte Felder leer sind. Nach der Rotation darf das Teil keine bereits gefüllten Felder besetzen. Ein Spielzug: eines unfixierten Bausteins auf einem aktuellen Spielfeld B kann wie folgt aussehen: (1) eine Rotation R(P, ±90, B) (2) eine Translation, falls links oder rechts frei ist, der neue Zustand ist <t, o, <i,j ± 1>, unfixed> (3) ein Fall um eine Zeile nach unten, falls alle Felder unter dem Teil frei sind, der neue Zustand ist <t, o, <i - 1,j>, unfixed> (4) das Teil wird fixiert, falls ein Feld unter dem Teil gefüllt ist, der neue Zustand ist <t, o, <i,j>, fixed> Ein fixiertes Teil darf keine Bewegung mehr machen. Eine Sequenz von gültigen Zügen eines Teils bildet eine Trajektorie σ. Ein Spiel G = <B 0, P 1,..., P p > entsteht also durch eine Abfolge Σ von Trajektorien. σ i angewandt auf P i führt das Spielfeld B i-1 nach B i. Das Tetris Problem: Für Tetris gibt es verschiedene Optimierungsziele: (1) Maximale Anzahl der gelöschten Zeilen (2) Maximale Anzahl an platzierten Bausteinen, bevor das Spiel endet (3) Maximale Anzahl an Vierer-Reihen (Tetrisen) (4) Minimale Höhe des höchsten gefüllten Feldes während des Spiels alle vier Probleme sind NP-vollständig. Das Entscheidungsproblem für ein bestimmtes Optimierungsziel Φ lautet: Gegeben: Ein Spiel G = <B, P 1, P 2,..., P p >. Frage: Existiert eine Abfolge Σ, so dass Φ(G, Σ) erfüllt ist. Eine Abfolge Σ nennt man azyklisch, falls sich die Zustände der Teile nicht wiederholen. Im Grunde ist meistens nur die endgültige Platzierung eines Teils interessant. Die Funktion Φ für das Optimierungsziel wird überprüfbar genannt, falls für ein gegebenes Spiel G und eine Abfolge Σ in polynomieller Zeit bestimmt werden kann, ob Φ(G, Σ) wahr oder falsch ist. Lemma 1: Für jede überprüfbare und azyklische Funktion Φ gilt: TETRIS NP. Beweis: Gegeben ist ein Spiel G = <B, P 1, P 2,..., P p >. Es lässt sich in polynomieller Zeit prüfen, ob die Abfolge Σ gültig ist, sprich es werden die auftretenden Bewegungen und Rotation überprüft. Die Anzahl der möglichen Zustände in einer Trajektorie ist endlich (4* B +1, jede denkbare Position in beliebiger Rotation und ein fixierter Zustand). Also Σ = poly( G ). Da Φ überprüfbar ist, lässt sich in polynomieller Zeit überprüfen, ob Φ(G, Σ) erfüllt ist oder nicht. - 2 -

NP-Vollständigkeit von TETRIS: Die Reduktion: Für den Beweis der NP-Vollständigkeit wird 3-PARTITION benutzt. 3-PARTITION: Gegeben: Ein Multiset S mit n = 3m positiven Zahlen und eine positive Zahl T. Frage: Lässt sich S so in m Tripel partitionieren, dass die Summe aller Tripel gleich T ist. Das Problem 3-PARTITION ähnelt dem Problem PARTITION, bei dem die Menge in zwei Untermengen unterteilt wird, so dass die Summe gleich ist. Allerdings gilt hier zu beachten, dass die Menge nun nicht in drei Untermengen aufgeteilt wird, sondern in m Tripel deren Summe gleich ist. Für unseren Beweis fordern wir zusätzlich (aus technischen Gründen), das die Summer T ein Vielfaches von 4 sein soll. Dies lässt sich für jede Instanz von 3-PARTITION leicht ermöglichen, indem alle Zahlen und die Summe mit 4 multipliziert werden. (!) Im Folgenden erzeugen wir zu einer gegebenen Instanz P = <a 1,..., a 3s, T> von 3-PARTITION, mit T teilbar durch 4, ein Tetris Spiel G(P), dessen Spielfeld sich komplett leeren lässt, falls für P eine Lösung existiert! Abbildung 2: Aufbau des Spielfeldes - 3 -

Dazu initialisieren wir das Spielfeld wie es in der Abbildung 2 zu sehen ist. Die Idee ist es, für jedes Tripel A 1,..., A s des 3-PARTITION Problems, ein Behälter zur Verfügung zu stellen. Für jedes a i werden ausgewählte Bausteine in die Behälter gefüllt, so dass bei einer gültigen Lösung für 3-PARTITION alle Behälter gleich voll sind! Die drei Spalten ganz rechts bilden eine Art Sicherung, damit nicht gleich alle Zeilen gelöscht werden. Die drei untersten Zeilen stellen sicher, das die ersten Blöcke richtig gesetzt werden. Die Höhe berechnet sich wie folgt: Jede Einbuchtung, wie man sie in der Abbildung 2 sieht, benötigt 5 Zeilen. Für jedes a i benötigt man a i + 1 Böcke á 5 Zeilen. In jeden Behälter kommen 3 Elemente mit der Summe T, also benötigt man 5(T+3) Zeilen plus die 3 untersten Zeilen zur Initialisierung. Die Breite berechnet sich aus vier Spalten pro Behälter plus 3 Spalten für die Sicherung ganz rechts. Die verwendeten Teile: Jede Zahl wird durch eine Abfolge bestimmter Bausteine dargestellt. Für jedes a i wird initialisiert, a i mal gefüllt und dann terminiert. Der Initiator right gun Der Füller square, left gun, square Der Terminator square I Abschließend werden die folgenden Teile verwendet: s mal right gun ein T (5T+16)/4 mal I Dies ist die Stelle, für die wir T teilbar durch 4 gefordert haben. Abbildung 3: Füllung eines Behälters Lemma 2: Das Spiel G(P) ist polynomiell in der Größe von P und kann in polynomieller Zeit aus P konstruiert werden. Beweis: Das Spielfeld hat eine feste, bekannte Größe. Die Anzahl der verwendeten Bauteile ist endlich und auch bekannt. Somit lässt sich das Spiel in polynomieller Zeit konstruieren. - 4 -

Lemma 3: Für jede Instanz P von 3-PARTITION, gibt es eine Abfolge Σ die das Spielfeld G(P) komplett leert, ohne dass man das Spiel verliert. Abbildung 4: Komplettes Spiel Beweis: Da P eine gültige Instanz von 3-PARTITION ist, gibt es eine Partition von {1,..., 3s} in A 1,..., A s mit der Summe T aller A i. Alle Teile eines Set A i = {x,y,z} werden wie in der Abbildung 3 in den i-ten Behälter gefüllt. In Abbildung 4 ist der Durchlauf des gesamten Spiels zu sehen. Zunächst wurden alle Behälter gefüllt und dann oben mit den right gun Teile versiegelt. Am Ende wird mit dem T die Sicherung geöffnet, damit dann mit den I Teilen abgeräumt werden kann. Das Spielfeld ist komplett leer. - 5 -

Korrektheit: Annahme 1: In jeder gültigen Abfolge wird kein Feld oberhalb der Zeile 5T + 18 gefüllt. Aus Lemma 3 lässt sich folgern, dass die Anzahl der ungefüllten Felder zu Beginn genau der Anzahl der Felder aller Teile entspricht. Da das Spielfeld am Ende leer ist, müssen alle Felder unterhalb der Zeilen 5T + 18 gefüllt worden sein. Es wird kein Feld oberhalb gefüllt. Annahme 2: In jeder gültigen Abfolge (1) werden alle Teile vor dem T in die Behälter gefüllt. (2) werden vor dem T keine Zeilen gelöscht (3) bleibt kein Behälter ungefüllt. Zu 1. sollte ein anderes Teil außer dem T in die Sicherung platziert werden, würde das gegen Annahme 1 verstoßen. Zu 2. folgt unmittelbar aus 1. keine Zeile kann gelöscht werden, bevor die Sicherung geöffnet wird Zu 3. sollten nicht alle Behälter gefüllt werden, wäre das ein Verstoß gegen Annahme 1 Annahme 3: Jeder Behälter mit einem Loch bleibt unfüllbar. Abbildung 5: Ein unvorbereiteter Behälter Annahme 4: Es ist nicht zulässig eines der Teile {Sq, LG, I} in einen unvorbereiteten Behälter zu platzieren. Siehe Abbildung 5. Quellen: Ron Breukelaar, Erik D. Demaine, Susan Hohenberger, Hendrik Jan Hoogeboom, Walter A. Kosters, and David Liben-Nowell, ``Tetris is Hard, Even to Approximate,'' International Journal of Computational Geometry and Applications, volume 14, number 1-2, 2004, pages 41-68. http://theory.csail.mit.edu/%7eedemaine/papers/tetris_ijcga/ http://de.wikipedia.org/wiki/tetris - 6 -