1.45k likes | 1.59k Views
„Warehouseman's Problem“ ist PSPACE schwer. Beitrag zum Seminar über Algorithmen von: Oliver Jelinski. Gliederung. Einführung : Was ist „Warehouseman's Problem“? Vorschau : Weg des Beweises über drei Reduktionen Grundlage : PSPACE-vollständiges Rewriting-Problem
E N D
„Warehouseman's Problem“ ist PSPACE schwer Beitrag zum Seminar über Algorithmen von: Oliver Jelinski
Gliederung • Einführung: Was ist „Warehouseman's Problem“? • Vorschau: Weg des Beweises über drei Reduktionen • Grundlage: PSPACE-vollständiges Rewriting-Problem • 3 Reduktionen, aus denen folgt: „Möbelrücken“ ist PSPACE-schwer
(1) Was ist „Warehouseman's Problem“ • übersetzt: „Problem des Lagerarbeiters“ • oder „Problem des Lagerverwalters“
(1) Was ist „Warehouseman's Problem“? Definition (1): Es seien beliebige rechteckige Objekte in einem 2-dimensionalen rechteckigen Bereich. • Rechtecke dürften sich frei bewegen • aber sich oder den Rand des Bereichs nicht schneiden
(1) Was ist „Warehouseman's Problem“? Definition (2): Problem: Ist eine Konfiguration unter diesen Voraussetzungen in eine andere überführbar?
(1) Was ist „Warehouseman's Problem“? Beispiel 1: Kommt man von hier ...
(1) Was ist „Warehouseman's Problem“? Beispiel 1: nach hier? Ja. (Einfach)
(1) Was ist „Warehouseman's Problem“? Beispiel 2: Kommt man von hier ...
(1) Was ist „Warehouseman's Problem“? Beispiel 2: ... nach hier? Ja, wie wir sehen werden.
(2) Weg des Beweises Grundlage RWP: PSPACE-vollständiges Rewriting-Problem
(2) Weg des Beweises 1. Reduktion RWP: PSPACE-vollständiges Rewriting-Problem auf: TPP: Transpositions- (bzw. Verschiebe-)-Problem für Zeichenketten
(2) Weg des Beweises 2. Reduktion TPP: Verschiebe-Problem für Zeichenketten auf: 2DO: Verschiebe-Problem für 2D-Objekte
(2) Weg des Beweises 3. Reduktion 2DO: Verschiebe-Problem für 2D-Objekte auf: WMP: Problem des Lagerarbeiters (Warehouseman's Problem)
(2) Weg des Beweises also: daraus folgt: Problem des Lagerarbeiters ist PSPACE-schwer
(3) PSPACE-vollständiges Rewriting-Problem • Zeichenkette: {S=S1S2S3...Sn} mit allen Sm aus einem Alphabet Σ. • Produktionen Pj; jeweils eine der folgenden Formen: AB -> AC oder AB -> CB mit A, B, C ∑.
(3) PSPACE-vollständiges Rewriting-Problem • auf jede Zeichenkette S' genau zwei Produktionen anwendbar: eine der Form AB -> AC, und eine der Form AB -> CB.
(3) PSPACE-vollständiges Rewriting-Problem • beide Produktionen in mindestens einem Zeichen überschneidend; wenn genau in einem, dann in dem, das sie beide verändern. (Also bei AB -> AC und DA -> EA das A)
(3) PSPACE-vollständiges Rewriting-Problem Wie ein solchen System aussähe: ??? Wichtig ist nur: es ist PSPACE-vollständig! (s. Hopcroft, Joseph, Whitesides 1982)
(4.1) Reduktion auf TPP Rewriting-System weit entfernt vom Problem des Lagerarbeiters, weil: „Objekte“ (Zeichen) verschwinden und tauchen aus dem Nichts auf. Dinge in Lagern verschwinden nicht!
(4.1) Reduktion auf TPP Näher am Problem des Lagerarbeiters: „Objekte“ (Zeichen), die irgendwo verschwinden, werden an anderer Stelle aufbewahrt. Sie werden nicht überschrieben, sondern verschoben.
(4.1) Reduktion auf TPP Was ist ein Verschiebesproblem für Zeichenketten? Beispiel 1: einfach ABC...AABBCC B wird verschoben: AC...AABBBCC
(4.1) Reduktion auf TPP Was ist ein Verschiebeproblem für Zeichenketten? Beispiel 2: einfache Simulation der Produktion AB -> AC ABC...AABBCC -> A C...AABBBCC -> ACC...AABBBC
(4.1) Reduktion auf TPP also, Ziel: Simulation der Rewriting-Problems als Verschiebeproblem
(4.1) Reduktion auf TPP 1. Erfordernis: genügend Zeichen zur Verfügung • jedes Zeichen |S| mal vorhanden • rechts des ursprünglichen S (ab hier: signifikanter Teil von STPP) gespeichert: STPP=ABCD...AA...ABB...BCC...CD.......
(4.1) Reduktion auf TPP • Erfordernis: alle Verschiebungen verboten, die nicht speziell erlaubt sind. • Regel: Es darf immer nur ein Zeichen verschoben werden • zwischen zwei Zeichen im signifikanten Teil darf sich die Anzahl der dazwischen stehenden Zeichen nicht verändern.
(4.1) Reduktion auf TPP Damit: Jede Verschiebung verboten! Dagegen: Erfordernis 2. eingeschränkt auf die Zeichen aus ∑. Zeichen aus ∑ ab hier: Standardzeichen
(4.1) Reduktion auf TPP Realisierung des Verbots: • Indizes: Standardzeichen indiziert: Si hat den Index i mod 3 • Nachbarschaftsregel: In jeder Folge AjBkCl von Standardzeichen: j = (k-1 mod 3) und l = (k+1 mod 3)
(4.1) Reduktion auf TPP also: A0B1C2D0E1... Jedes Einfügen eines Standardzeichens X0, X1 oder X2 würde die Nachbarschaftsregel verletzen.
(4.1) Reduktion auf TPP Folgen für die Gestalt der Zeichenkette: • Jedes Zeichen mit jedem Index |S|/3 mal (aufgerundet) speichern • Problem beim Speichern gleicher Zeichen hintereinander, wegen Nachbarschaftsregel.
(4.1) Reduktion auf TPP Problem beim Speichern gleicher Zeichen hintereinander, wegen Nachbarschaftsregel: Lösung: Klammerzeichen, für die die Nachbarschaftsregel nicht gilt: ΛA0B1C2...Γ... [A0][A0]...[][A1][A1]...[A2][A2]...[B0][B0]...
(4.1) Reduktion auf TPP Leere Klammerpaare für Zeichen vorhanden, die aktuell im signifikanten Teil sind: ΛA0B1C2...Γ... [A0][A0]...[][A1][A1]...[A2][A2]...[B0][B0]...
(4.1) Reduktion auf TPP Bis hier: • alle Voraussetzungen erfüllt • jede Verschiebung im signifikanten Teil verboten Es fehlen: • erlaubte Verschiebungen
(4.1) Reduktion auf TPP Realisierung von Verschiebungen: • 3 Sonderzeichen Mi01, Mi12, Mi20 für die i-te Produktionsregel der Gestalt AB -> AC. • 3 Sonderzeichen Nj01, Nj12, Nj20 für die j-te Produktionsregel der Gestalt AB -> CB.
(4.1) Reduktion auf TPP Nachbarschaftsregel M: • Mijk, das zur Produktion AB -> AC gehört, darf rechts von Aj stehen, und links von Bk oder Ck, oder links von jedem X(k+1 mod 3). (X ∑) • sonst nirgendwo zwischen Standardzeichen.
(4.1) Reduktion auf TPP Nachbarschaftsregel N: • Nijk, das zur Produktion AB -> CB gehört, darf links von Bk stehen, und rechts von Aj oder Cj oder rechts von jedem X(j-1 mod 3). (X ∑) • sonst nirgendwo zwischen Standardzeichen.
(4.1) Reduktion auf TPP Also folgendes erlaubt: ...A0B1C2... -> ...A0Mi01B1C2... -> ...A0Mi01C2... -> ...A0Mi01C1C2... -> ...A0C1C2... wenn M der Produktionsregel AB -> AC entspricht. ähnlich bei Nijk
(4.1) Reduktion auf TPP Damit Reduktion fast abgeschlossen, denn: Rewriteproblem erfüllbar, genau dann, wenn Transpositonsproblem erfüllbar.
(4.1) Reduktion auf TPP „=>“ Wenn im Rewriteproblem in S' genau zwei Produktionen möglich, dann im Verschiebeproblem im signifikanten Teil die diesen entsprechenden Verschiebungen mit Mi oder Nj möglich.
(4.1) Reduktion auf TPP „<=“ • Andere Verschiebungen als die mit Mi oder Nj nicht möglich. • Von beiden je nur eine möglich, weil im Fall des Einsetzens von Mi und Nj kein weiterer Fortschritt möglich wäre:
(4.1) Reduktion auf TPP „<=“ 1. Wenn Produktionen sich in mehr als einem Zeichen überschneiden, können gar nicht M und N eingesetzt werden, weil sie direkt nebeneinander gesetzt werden müssten – und das ist verboten.
(4.1) Reduktion auf TPP „<=“ 2. Wenn Produktionen sich in genau einem Zeichen überschneiden, folgendes möglich: ...A0Mi01B1Nj12C2... B darf jetzt aber nicht verschoben werden, weil sonst M und N nebeneinander
(4.1) Reduktion auf TPP Also: zu einem Zeitpunkt in TPP genau die Verschiebungen mit Mi oder Nj möglich, genau dann, wenn Produktionen i oder j in RWP möglich. Reduktion abgeschlossen!
(4.1) Reduktion auf TPP Zur Vollständigkeit: Mi und Nj werden in Klammerpaaren rechts des signifikanten Teils gespeichert. ΛA0B1C2...Γ... [M101][M112][M120]...[Mi01][Mi12][Mi20]... [N101][N112][N120]...[Nj01][Nj12][Nj20]... [A0][A0]...[][A1][A1]...[A2][A2]...[B0][B0]...
(4.1) Reduktion auf TPP Man sieht leicht, dass die Reduktion in poynomieller Zeit möglich ist. Also: TPP ist PSPACE-schwer
(4.2) Reduktion auf 2DO Verschiebe-Problem für Zeichenketten weit entfernt vom Problem des Lagerarbeiters, weil: „Objekte“ sind abstrakte Zeichen.