„Warehouseman's Problem“ ist PSPACE
schwer
Beitrag zum Seminar über Algorithmen
von:
Oliver Jelinski
Gliederung
(1) Einführung: Was ist „Warehouseman's
Problem“?
(2) Vorschau: Weg des Beweises über drei
Reduktionen
(3) Grundlage: PSPACE-vollständiges
Rewriting-Problem
(4) 3 Reduktionen, aus denen folgt:
„Möbelrücken“ ist PSPACE-schwer
(1) Was ist „Warehouseman's Problem“?
(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
(2) Weg des Beweises
Grundlage
RWP:
PSPACE-vollständiges Rewriting-Problem
(2) Weg des Beweises
1. Reduktion
RWP: PSPACE-vollständiges RewritingProblem
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:
RWP≤ P TPP≤ P 2DO≤ P WMP
daraus folgt:
Problem des Lagerarbeiters ist PSPACEschwer
(3) PSPACE-vollständiges RewritingProblem
(3) PSPACE-vollständiges RewritingProblem
1. Zeichenkette: {S=S1S2S3...Sn} mit allen Sm
aus einem Alphabet Σ.
2. Produktionen Pj; jeweils eine der folgenden
Formen: AB -> AC oder
AB -> CB mit A,
B, C ∑.
(3) PSPACE-vollständiges RewritingProblem
1. auf jede Zeichenkette S' genau zwei
Produktionen anwendbar:
eine der
Form AB -> AC, und eine der Form AB ->
CB.
(3) PSPACE-vollständiges RewritingProblem
1. 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 RewritingProblem
Wie ein solchen System aussähe:
???
Wichtig ist nur:
es ist PSPACE-vollständig!
(s. Hopcroft, Joseph, Whitesides 1982)
(4.1) Reduktion auf TPP
(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
1. 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:
den Index i mod 3
Si hat
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:
RWP≤ P TPP
TPP ist PSPACE-schwer
(4.2) Reduktion auf 2DO
(4.2) Reduktion auf 2DO
Verschiebe-Problem für Zeichenketten weit
entfernt vom Problem des Lagerarbeiters,
weil:
„Objekte“ sind abstrakte Zeichen.
(4.2) Reduktion auf 2DO
Verschiebe-Problem für 2D-Objekte schon
fast Problem des Lagerarbeiters,
außer dass die Objekte beim Problem des
Lagerarbeiters rechteckig sein müssen.
(4.2) Reduktion auf 2DO
also, Ziel:
Simulation des Verschiebe-Problems für
Zeichenketten als Verschiebe-Problem für
2D-Objekte
(4.2) Reduktion auf 2DO
1. Simulation des Verschiebens der
Position eines 2D-Objekts innerhalb einer
Reihe von 2D-Objekten
(wie TPP ohne Nachbarschaftsregeln)
kann folgendermaßen aussehen:
(4.2) Reduktion auf 2DO


einfache Simulation
blaugraue Objekte können beliebig
umgeordnet werden
(4.2) Reduktion auf 2DO

immer, wenn Lücke an dieser Stelle,
genau 2 Bewegungssequenzen mgl., so
dass die Lücke wieder dort entsteht
(4.2) Reduktion auf 2DO

1. Sequenz
(4.2) Reduktion auf 2DO

1. Sequenz
(4.2) Reduktion auf 2DO

1. Sequenz
(4.2) Reduktion auf 2DO

1. Sequenz
(4.2) Reduktion auf 2DO

1. Sequenz
(4.2) Reduktion auf 2DO

1. Sequenz kann wiederholt werden,
angezeigter Spalt wird verschoben:
(4.2) Reduktion auf 2DO

2. Sequenz
(4.2) Reduktion auf 2DO

2. Sequenz
(4.2) Reduktion auf 2DO

2. Sequenz
(4.2) Reduktion auf 2DO

2. Sequenz
(4.2) Reduktion auf 2DO

2. Sequenz
(4.2) Reduktion auf 2DO

2. Sequenz
(4.2) Reduktion auf 2DO

2. Sequenz
(4.2) Reduktion auf 2DO

2. Sequenz kann nicht wiederholt werden,
nur ein blaues Objekt passt
(4.2) Reduktion auf 2DO



beide Sequenzen sind genauso vorwärts
wie rückwärts zu vollziehen
in Kombination positionieren sie beliebige
blaue Objekte um
eine Art „Transportmaschine“
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO

Beispiel: 1. Objekt an 3. Position
(4.2) Reduktion auf 2DO


Beispiel: 1. Objekt an 3. Position
fertig.
(4.2) Reduktion auf 2DO
Problem:
(4.2) Reduktion auf 2DO
Problem:
bisher keine Nachbarschaftsregeln,
jedes Objekt darf neben jedes.
(4.2) Reduktion auf 2DO
Lösung:
(4.2) Reduktion auf 2DO
Lösung:
Einbuchtungen und Ausbuchtungen.
(4.2) Reduktion auf 2DO
Lösung:
Einbuchtungen und Ausbuchtungen...
(4.2) Reduktion auf 2DO
... von denen manche zusammen passen,
andere nicht.
(4.2) Reduktion auf 2DO
Die genaue Konstruktion spare ich mir, weil
sie recht beliebig gewählt ist.
(4.2) Reduktion auf 2DO
aber: Problem:
mit den Ausbuchtungen sind die Objekte
breiter und passen nicht mehr in die
Lücke.
Man muss die Lücke weiter machen.
(4.2) Reduktion auf 2DO
Lösung: modifizierte „Maschine“
(4.2) Reduktion auf 2DO
funktioniert so:
(4.2) Reduktion auf 2DO
funktioniert so:
(4.2) Reduktion auf 2DO
funktioniert so:
(4.2) Reduktion auf 2DO
funktioniert so:
(4.2) Reduktion auf 2DO
funktioniert so:
(4.2) Reduktion auf 2DO
funktioniert so:
(4.2) Reduktion auf 2DO
funktioniert!
(4.2) Reduktion auf 2DO
Damit ist die Simulation komplett:
(4.2) Reduktion auf 2DO
Damit ist die Simulation komplett:

„=>“ Jedes Verschiebe-Problems von
Zeichenketten ist eindeutig als Problem
von 2D-Objekten darstellbar
(4.2) Reduktion auf 2DO
Damit ist die Simulation komplett:

„<=“ Jede Instanz von 2DO stellt
eindeutig eine Instanz von TPP dar, weil:
alle ungewollten Bewegungen
ausgeschlossen (führen dazu, dass
weitere Bewegungen nicht möglich sind)
(4.2) Reduktion auf 2DO
Dass die Reduktion in polynomieller Zeit
vonstatten geht, dürfte offensichtlich sein.
(4.2) Reduktion auf 2DO
Also gilt:
RWP≤ P TPP≤ P 2DO
Das Verschiebeproblem für 2D-Objekte ist
damit PSPACE-schwer.
(4.3) Reduktion auf WMP
(4.3) Reduktion auf WMP


2DO ist schon fast Problem des
Lagerarbeiters
Nur die signifikanten Objekte sind noch
nicht rechteckig:
(4.3) Reduktion auf WMP


2DO ist schon fast „Möbelrücken“
Nur die signifikanten Objekte sind noch
nicht rechteckig:
(4.3) Reduktion auf WMP
also Ziel:


signifikante Blöcke durch Rechtecke
simulieren
alle ungewollten Bewegungen
ausschließen
(4.3) Reduktion auf WMP
1. Blöcke durch Rechtecke simulieren
Am Einfachsten durch horizontales
Zerteilen:
(4.3) Reduktion auf WMP
Problem: Blöcke können nach links
durchrutschen.
(4.3) Reduktion auf WMP
Beispiel: Der Block rechts sollte nicht
passen.
(4.3) Reduktion auf WMP
Beispiel: Der Block rechts sollte nicht
passen. Aber:
(4.3) Reduktion auf WMP
Lösungsansatz: Eine „Wirbelsäule“
zwischen die „Rippen“ schieben.
(4.3) Reduktion auf WMP
Funktioniert!
(4.3) Reduktion auf WMP
Reicht aber nicht hin:
Weitere ungewollte Bewegungen bei
geöffneter Lücke:


Austausch von „Rippen“ zweier Blöcke
Austausch von Rippen innerhalb der
linken bzw. rechten Seite eines Blocks
(4.3) Reduktion auf WMP
Voraussetzung der Lösung beider
Probleme:
Zwischenblöcke („Spacer“) einfügen:
(4.3) Reduktion auf WMP
Zwischenblöcke sind mindestens doppelt so
breit wie normale, passen also nie in die
Transportmaschine.
Normale und Zwischenblöcke werden
modifiziert, so das keine normalen Blöcke
nebeneinander passen:
(4.3) Reduktion auf WMP
Trennlagen (rot), in denen Rippen der
Zwischenblöcke kürzer, die normaler Blöcke
länger sind:
(4.3) Reduktion auf WMP
Trennlagen (rot), in denen Rippen der
Zwischenblöcke kürzer, die normaler Blöcke
länger sind.
Deshalb passen zwei normale Blöcke nicht
nebeneinander.
(4.3) Reduktion auf WMP
normale Lagen (grün), bei denen alle Blöcke
ihre normale Breite haben
(4.3) Reduktion auf WMP
normale Lagen (grün), bei denen alle Blöcke
ihre normale Breite haben
Deshalb bleiben die Regeln erhalten, nach
denen zwei Blöcke Blöcke hintereinander
passen, oder nicht. (Jetzt nur mit
Zwischenblock)
(4.3) Reduktion auf WMP
blaue Lage passt, weil der linke Block ein-, der
rechte ausgebuchtet ist, und der
Zwischenblock normal.
(4.3) Reduktion auf WMP
blaue Lage passt, weil der linke Block ein-, der
rechte ausgebuchtet ist, und der
Zwischenblock normal.
Wäre der linke nicht eingebuchtet, würden die
Blöcke auch weiterhin nicht passen.
(4.3) Reduktion auf WMP
um später Einfügen von Spezialzeichen
simulieren zu können:

immer zwei Zwischenblöcke zwischen
normalen Blöcken
(4.3) Reduktion auf WMP
Jetzt zurück zu den Problemen:
(4.3) Reduktion auf WMP
Weitere ungewollte Bewegungen bei
geöffneter Lücke:


Austausch von „Rippen“ zweier Blöcke
Austausch von Rippen innerhalb der
linken bzw. rechten Seite eines Blocks
(4.3) Reduktion auf WMP
1. Problem: Austausch von Rippen
innerhalb der linken bzw. rechten Seite
eines Blocks
Lösung: Einführung verschiedener Höhen der
Lagen („Rippen“).
Wenn die unterste (0-te) Lage die Höhe h hat,
dann die i-te die Höhe h/3i
(4.3) Reduktion auf WMP


jede Lage mehr als doppelt so
hoch wie alle höheren
zusammen
Weil sonst die Trennlagen nicht
mehr in die Zwischenblöcke
passten, Austausch
ausgeschlossen.
(4.3) Reduktion auf WMP
1. Problem: Austausch von Rippen
zwischen zwei Blöcken (nur, wenn sich
einer der beiden in der Transportlücke
befindet).
Lösung: Einführung minimaler
Höhenunterschiede
(4.3) Reduktion auf WMP
Rippen in Trennlagen: minimal weniger
hoch als die Lage
die anderen Rippen: minimal höher als die
Lage
(4.3) Reduktion auf WMP
zwei Regeln für die Unterschiede:


Alle Rippen der rechten Seite eines
Blocks zusammen genauso hoch wie der
Block. (genauso links)
Keine andere Kombination von Rippen
der beiden Blöcke ganz genau so hoch.
(4.3) Reduktion auf WMP
Deshalb ließe sich einer der beiden Blöcke
mit ausgetauschten Rippen nicht mehr
normal einpassen
Die Bewegung stoppte.
(4.3) Reduktion auf WMP
Damit alle ungewollten Bewegungen
ausgeschlossen.
2DO ist damit eineindeutig simuliert. („=>“
und „<=“)
Die Reduktion ist vollständig.
(4.3) Reduktion auf WMP
Dass die Reduktion in polynomieller Zeit
funktioniert, dürfte klar sein.
Einziges Problem: Die minimalen
Unterschiede sind schwierig zu
berechnen. Aber deren Zahl hängt nur von
der Größe des Alphabets und der Menge
der Produktionen (aus RWP) ab, nicht von
der Eingabelänge. Also konstant.
(4.3) Reduktion auf WMP
also:
RWP≤ P TPP≤ P 2DO≤ P WMP
daraus folgt:
Problem des Lagerarbeiters ist PSPACEschwer
(5) Anhang
Literatur
(1) J.E. Hopcroft, J.T. Schwartz, M. Sharir, „On the Complexity
of Motion Planning for Multiple Independent Objects;
PSPACE-Hardness of the „Warehouseman's Problem““, in:
The International Journal of Robotic Research, 1984
(2) J.E. Hopcroft, D. Joseph, S. Whitesides, „Movement
problems for 2-dimensional Linkages“, SIAM Journal
Computing, 1984 (erstmalig 1982)
(3) Ingo Wegener, Theoretische Informatik – eine
algorithmenorientierte Einführung, Stuttgart/Leipzig, 1999
(5) Anhang
Fragen?
(5) Anhang
Danke für die Aufmerksamkeit!

(4.2) Reduktion auf 2DO