Und-Anfragen: Auswertung - LS1

Werbung
Datenbanktheorie
Sommersemester 2012 - Thomas Schwentick
Teil C: Anfrageauswertung und Statische Analyse
8: Anfrageauswertung: Komplexität
Version von: 19. Mai 2012 (09:24)
Inhalt
8.1 Auswertungskomplexität: Und-Anfragen
8.1.1 Vorüberlegungen
8.1.2 Worst-Case-Komplexität
8.1.3 Parametrisierte Komplexität
8.2 Auswertungskomplexität: Relationale Algebra
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 1
Und-Anfragen: Auswertung
• Wie effizient lassen sich Und-Anfragen
auswerten?
(„CQ“ steht für „conjunctive queries“)
• Um diese Frage zu präzisieren wiederholen wir die folgende Definition für beliebige
Klassen C von Anfragen und Anfragen q
• Statt „Und-Anfragen“ sagen wir manchmal
auch „konjunktive Anfragen“
• Präzisere Fragen:
– Wie effizient lässt sich das Problem
KOMBI(CQ) lösen?
– Wie effizient lässt sich für Und-Anfragen
q das Problem DATA(q) lösen?
Definition: DATA(q)
Gegeben: Datenbank D
Gesucht:
• CQ : Menge aller Und-Anfragen
JqK(D)
Definition: KOMBI(C)
Gegeben: Datenbank D , Anfrage q
Gesucht:
∈C
JqK(D)
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 2
Auswertung von Und-Anfragen: Vorüberlegungen (1/4)
Definition: KOMBI(CQ)
Gegeben: Datenbank D ,
Und-Anfrage q
Gesucht:
JqK(D)
• Wir betrachten zunächst das Problem KOMBI(CQ)
• Wünschenswert: Anfragen effizient auswerten
– Was heißt effizient berechenbar?
– Antwort aus GTI: in polynomieller Zeit
– Also: Das Ergebnis JqK(D) sollte in Zeit
O((|q| + |D|)k ) berechnet werden
(für ein festes k, das von D und q unabhängig
ist)
– Dabei:
∗ |q|: Länge der Anfrage (als Zeichenkette)
∗ |D|: Größe von D
(Anzahl aller „Tabellenfelder“)
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 3
Auswertung von Und-Anfragen: Vorüberlegungen (2/4)
Beispiel
• Wir betrachten eine Beispielanfrage q :
R ESULT(x1 , . . . ,xm ) :- R(x1 ), . . . ,R(xm )
– |q| = θ(m log m)
– Sei D eine DB, die nur die Relation RD mit n
Tupeln enthält
– Dann enthält JqK(D) genau nm Tupel
➞ nm Tupel lassen sich nicht in Zeit O((n +
m log m)k ), für ein festes k, ausgeben (zumindest nicht ohne Kodierung der Ausgabe)
➞ Auswertung in polynomieller Zeit im Allgemeinen
nicht möglich erreichbar
➞ Modifizierte Frage:
– Sei BCQ die Menge der konjunktiven ja/neinAnfragen
(BCQ steht für „Boolean Conjunctive Queries“)
– Wie effizient lässt sich das Problem
KOMBI(BCQ) lösen?
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 4
Auswertung von Und-Anfragen: Vorüberlegungen (3/4)
• Beispielanfrage q1 : „Bietet Gödel eine LogikVorlesung an?“:
– R ESULT() :- P ROFESSOREN(y1 ,„Gödel“,y2 ),
VORLESUNGEN(y3 ,„Logik“,y1 )
• Wir verwenden im Folgenden die folgende (teilweise
schon definierte) Notation:
adom(D) =def Menge aller in der Datenbank D
vorkommenden Werte
(adom steht für „active
domain“)
adom(q) =def Menge aller in der Anfrage q vorkommenden Werte
(adom(q1 ) = {„Gödel“,„Logik“})
adom(q,D) =def adom(q) ∪ adom(D)
var(q) =def
Menge aller in q vorkommenden Variablen
(var(q1 ) = {y1 ,y2 ,y3 })
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 5
Auswertung von Und-Anfragen: Vorüberlegungen (4/4)
• Nach Definition gilt hi ∈ JqK(D) genau
dann, wenn es eine Belegung v der Variablen von q gibt, die alle Relationsatome im
Rumpf von q wahr macht
• Also: hi ∈ Jq1 K(DUni ), falls
es Werte für y1 ,y2 ,y3 gibt, die
P ROFESSOREN(y1 ,„Gödel“,y2 ) und
VORLESUNGEN(y3 ,„Logik“,y1 ) wahr machen
• Nebenbei bemerkt: das zeigt, dass unsere
Entscheidung, die Antwortrelation {hi} als
„ja“ zu werten, sinnvoll war
• Klar: nur Werte, die in DUni vorkommen,
kommen für y1 ,y2 ,y3 in Frage
• Es gibt also nur |DUni |3 Variablenbelegun-
• Ein naiver Algorithmus:
– Teste systematisch alle diese Variablenbelegungen
(3 verschachtelte FOR-Schleifen)
• Allgemein:
– |adom(q,D)||var(q)|
≤ (|q| + |D|)|q|
Variablenbelegungen
– (var(q) verschachtelte FOR-Schleifen)
➨ Grober Aufwand des naiven Algorithmus:
O(|D||q| |q||D|)
• Geht das nicht deutlich besser?
Wahrscheinlich nicht...
gen, die in Frage kommen
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 6
Inhalt
8.1 Auswertungskomplexität: Und-Anfragen
8.1.1 Vorüberlegungen
8.1.2 Worst-Case-Komplexität
8.1.3 Parametrisierte Komplexität
8.2 Auswertungskomplexität: Relationale Algebra
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 7
Wiederholung aus Logik: Aussagenlogische Formeln
• Aussagenlogische Formeln:
– x1 ,x2 ,x3 , . . . seien Variablen
– Jedes xi ist eine aussagenlogische Formel
– Ist ϕ eine aussagenlogische Formel, so
auch ¬ϕ
– Sind ϕ,ψ aussagenlogische Formeln, so
auch ϕ ∧ ψ und ϕ ∨ ψ
• Eine Wahrheitsbelegung
θ : {x1 ,x2 , . . .} → {0,1}
ordnet jeder Variablen einen Wahrheitswert
zu
• θ |= ϕ : Die Formel ϕ erhält durch die
Wahrheitsbelegung θ den Wert 1
• Eine Formel ϕ ist erfüllbar, wenn es ein θ
gibt mit θ |= ϕ
DBT / Schwentick / SoSe 12
• Beispiel:
(x3 ∨ x1 )∧
(¬x2 ∨ ((x3 ∧ ¬x1 ) ∨ (x2 ∨ ¬x1 )))
• Wir beschränken uns auf Formeln in konjunktiver Normalform (KNF):
(x3 ∨ x1 ) ∧ (¬x2 ∨ x3 ∨ x2 )∧
(¬x2 ∨ ¬x3 ∨ x2 ) ∧ (¬x2 ∨ x3 )
• Die xi und ¬xi heißen Literale
• Die Disjunktionen heißen Klauseln
Definition: 3-SAT
Gegeben: Aussagenlogische Formel ϕ in
KNF mit ≤ 3 Literalen je Klausel
Frage: Ist ϕ erfüllbar?
C 8. Anfrageauswertung: Komplexität
. Folie 8
Wiederholung aus GTI: NP
• Ein Problem L ist in NP , falls (intuitiv)
– es für jede Eingabe x eine Menge polynomiell
großer Lösungskandidaten y gibt,
– x ∈ L genau dann gilt, wenn einer dieser Lösungskandidaten eine Lösung ist,
– in polynomieller Zeit getestet werden kann, ob ein
String eine Lösung (und ein Lösungskandidat) ist
Beispiel
• Beispiel: 3-SAT ∈ NP, denn:
– Zu jeder Formel ϕ mit Variablen x1 , . . . ,xm
ist jede Wahrheitsbelegung θ von
{x1 , . . . ,xm } ein Lösungskandidat,
– ϕ ∈ 3-SAT ⇐⇒ es gibt eine Lösung θ , also
eine Belegung mit θ |= ϕ, und
– es kann in polynomieller Zeit getestet werden,
ob für gegebene, ϕ, θ gilt: θ |= ϕ
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 9
Auswertungskomplexität von Und-Anfragen: obere Schranke
Proposition 8.1
• KOMBI(BCQ) ∈ NP
Beweisskizze
• Sei q eine sichere regelbasierte Boolesche UndAnfrage der Form R() :- L1 , . . . ,Lk
• Sei D eine passende Datenbank
• hi ∈ JqK(D) gilt genau dann, wenn es eine Variablenbelegung β gibt, die alle Relationsatome
von q wahr macht
• Eine Variablenbelegung β hat die Größe
O(k|D|), wobei k die Anzahl der Variablen von
q ist
• Ein Algorithmus kann also die Zusatzeingabe der
Größe O(k|D|) als Variablenbelegung β interpretieren und dann in Zeit O(|q||D|) testen, ob
β alle Atome von q wahr macht.
➨ KOMBI(BCQ) ∈ NP
• Wir sehen jetzt: das ist optimal
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 10
Wiederholung aus GTI: NP-vollständige Probleme
• L ist NP-schwierig, falls gilt:
• L ist NP-vollständig, falls:
– intuitiv: Kein Problem L′ ∈ NP ist
– L ∈ NP und
„schwieriger“ als L
– L ist NP-schwierig
– formal: Jedes Problem L′ ∈ NP
• Beispiel: 3-SAT ist NP-vollständig
lässt sich in polynomieller Zeit auf
• Um zu zeigen, dass ein Problem L NP-vollständig
L reduzieren
– Noch formaler: Für jedes
L′ ∈ NP gibt es eine Funktion
f : Σ∗ → Σ∗ , so dass:
∗ für alle x ∈ Σ∗ :
L′
ist, genügt es zu zeigen:
– L ∈ NP
– es gibt ein NP-vollständiges L′ mit L′
≤p L
• Die Begriffe „NP-schwierig“ und „NP-vollständig“
⇐⇒ f (x) ∈ L,
lassen sich für beliebige Komplexitätsklassen C
x∈
∗ und f ist in polynomieller Zeit
berechenbar
– Falls es eine solche Funktion
zu L′ ,L gibt schreiben wir:
L′ ≤ p L
verallgemeinern
Definition
• Sei C eine Komplexitätsklasse (= Menge von
Sprachen) und L eine Sprache
• L ist C -schwierig, wenn für jedes L′ ∈ C gilt:
L′ ≤ p L
• L ist C -vollständig, wenn es in C und C schwierig ist
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 11
Auswertung von Und-Anfragen: Komplexität (1/5)
Satz 8.2 [Chandra, Merlin 77]
• KOMBI(BCQ) ist NP-vollständig
Beweisidee
• Noch zu zeigen: KOMBI(BCQ) ist NPschwierig
• Dazu: Reduktion von 3-SAT auf
KOMBI(BCQ):
– Aus 3-SAT-Formel ϕ konstruiere q und
D
– Die Datenbank D ist dabei völlig unabhängig von ϕ:
Beweisidee (Forts.)
• Intuition:
– Wir verwenden für jede Variable x von
ϕ zwei Variablen y + ,y − in q
– Mithilfe von R1 wird dafür gesorgt,
dass y + = 1 − y − ist
– Mithilfe von R2 wird dafür gesorgt,
dass keine Klausel unerfüllt bleibt
∗ Zu diesem Zweck ist h0,0,0i nicht
in R2
R1
R2
A1 A2 B1 B2 B3
1
0
0
1
DBT / Schwentick / SoSe 12
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
C 8. Anfrageauswertung: Komplexität
. Folie 12
Auswertung von Und-Anfragen: Komplexität (2/5)
Beispiel
• Sei ϕ die Formel
(x3 ∨ ¬x2 ∨ x1 ) ∧ (¬x3 ∨ x2 ∨ ¬x1 )∧
(x2 ∨ x1 ∨ ¬x3 ) ∧ (¬x2 ∨ ¬x1 ∨ x3 )
– q : R ESULT() :R1 (y1+ ,y1− ), R1 (y2+ ,y2− ), R1 (y3+ ,y3− ), R2 (y3+ ,y2− ,y1+ ),
R2 (y3− ,y2+ ,y1− ), R2 (y2+ ,y1+ ,y3− ), R2 (y2− ,y1− ,y3+ )
– DB D mit Relationen
R1
R2
A1 A2 B1 B2 B3
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
• Die Wahrheitsbelegungelegung x1 7→ 1, x2 7→ 0, x3 7→ 0,
die ϕ wahr macht, entspricht der Variablenbelegung
y1+ 7→ 1, y1− 7→ 0, y2+ 7→ 0, y2− 7→ 1, y3+ 7→ 0, y3− 7→ 1
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 13
Auswertung von Und-Anfragen: Komplexität (3/5)
Satz 8.2 [Chandra, Merlin 77]
• KOMBI(BCQ) ist NP-vollständig
Beweisskizze
• Sei ϕ = C1 ∧ · · · ∧ Cm eine 3-SATFormel mit Variablen x1 , . . . ,xn
– Jedes Cj ist eine Klausel
2 ∨ L3 )
(L1
∨
L
j
j
j
– Jedes Lij ist ein Literal xl oder ¬xl
• Wir konstruieren q und D
• DB D besteht aus den Relationen:
Beweisskizze (Forts.)
• Die Anfrage q verwendet die Variablen
+ ,y − , . . . ,y −
y1+ , . . . ,yn
1
n
• q hat Kopf Ans() und enthält im Rumpf
+ −
– R1 (yi ,yi ) für jedes xi und
–
R2 (L̂1j ,L̂2j ,L̂3j ) für jedes Cj , wobei
(
+
i = x
y
falls
L
l
j
l
L̂ij =def
yl− falls Lij = ¬xl
• Bleibt zu zeigen:
ϕ ist erfüllbar ⇐⇒ JqK(D) = {hi}
R1
R2
A1 A2 B1 B2 B3
1
0
0
1
DBT / Schwentick / SoSe 12
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
C 8. Anfrageauswertung: Komplexität
. Folie 14
Auswertung von Und-Anfragen: Komplexität (4/5)
Beweisskizze (Forts.)
Beweisskizze (Forts.)
• Behauptung:
ϕ ist erfüllbar ⇐⇒ JqK(D) = {hi}
• „⇒“
– Sei ϕ erfüllbar und
θ : {x1 , . . . ,xn } → {0,1}
eine erfüllende Wahrheitsbelegung für ϕ
– Wir setzen, für alle i ≤ n:
∗ β(yi+ ) =def θ(xi )
∗ β(yi− ) =def 1 − θ(xi )
– Klar: für alle i,j ist β(L̂ij )
∈ {0,1}
➨ für jedes i ≤ n: β(hyi+ ,yi− i) ∈ R1
– Sei nun j ≤ m
– Zu zeigen: es gibt ein i ∈ {1,2,3} mit
β(L̂ij ) = 1
2 ,L̂3 i)
– Dann: β(hL̂1
,
L̂
j
j
j
DBT / Schwentick / SoSe 12
∈ R2
• Da θ die Klausel Cj wahr macht, gibt es
ein i ∈ {1,2,3} mit θ(Lij ) = 1
• 1. Fall: Lij = xl (dann: θ(xl ) = 1):
➨ β(L̂ij ) = β(yl+ ) = θ(xl ) = 1
• 2. Fall: Lij = ¬xl (dann: θ(xl ) = 0):
➨ β(L̂ij ) = β(yl− ) =
1 − θ(xl ) = 1
• In beiden Fällen ist β(L̂ij ) = 1
• Also ist β(hL̂1j ,L̂2j ,L̂3j i) ∈ R2
➨ für alle j ≤ m ist
β(hL̂1j ,L̂2j ,L̂3j i) ∈ R2
➨ hi ∈ JqK(D)
C 8. Anfrageauswertung: Komplexität
. Folie 15
Auswertung von Und-Anfragen: Komplexität (5/5)
Beweisskizze (Forts.)
Beweisskizze (Forts.)
• Es bleibt zu zeigen:
JqK(D) = {hi} ⇒ ϕ ist erfüllbar
• Sei also JqK(D) = {hi}
➨ Es gibt eine Variablenbelegung β , die alle
Relationsatome von q wahr macht:
– Für alle i ≤ n ist
β(hyi+ ,yi− i) ∈ R1
➨ insbesondere: für alle i ist
β(yi+ ) ∈ {0,1} und
β(yi− ) = 1 − β(yi+ )
– Für alle j ≤ m ist
β(hL̂1j ,L̂2j ,L̂3j i) ∈ R2
➨ Für jedes j ≤ m gibt es ein
i ∈ {1,2,3}, so dass β(L̂ij ) = 1
• Sei nun Cj eine Klausel von ϕ
• Zu zeigen: θ macht Cj wahr
• Da β(hL̂1j ,L̂2j ,L̂3j i) ∈ R2 gibt es ein
i ∈ {1,2,3} mit β(L̂ij ) = 1
• 1. Fall: Lij = xl (dann: β(yl+ ) = 1):
➨ θ(Lij ) = θ(xl ) = β(yl+ ) = 1
• 2. Fall: Lij = ¬xl (dann: β(yl− ) = 1):
➨ θ(Lij ) = 1 − θ(xl ) =
1 − β(yl+ ) = 1 − 0 = 1
• Also: jede Klausel von ϕ wird durch θ
➨
wahr gemacht
ϕ ist erfüllbar
• Wir definieren für jedes i ≤ n:
θ(xi ) =def β(yi+ )
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 16
Auswertung von Und-Anfragen: Bemerkungen
• Satz 8.2 steht im Gegensatz zur Alltagserfahrung
• Wie ist das zu erklären?
– Im Beweis der NP-Schwierigkeit wurde
eine feste Datenbank gewählt
– Nur die Anfrage q hing von ϕ ab
➞ Die Kompliziertheit und Größe der Anfragen steigt mit der Kompliziertheit und
Größe von ϕ
– In der Praxis sind von Menschen gestellte Und-Anfragen meistens sehr einfach
und relativ kurz
DBT / Schwentick / SoSe 12
• Was ist mit DATA(q) für Und-Anfragen q ?
– Dann ist k =def var(q) eine Konstante
– Also hat der naive Algorithmus die polynomielle Laufzeit O(|D|k |q||D|)
– Die Variablenbelegungen können unabhängig voneinander getestet werden
➞ Der naive Algorithmus lässt sich sogar
hochgradig parallelisieren
– Sehr befriedigend ist das k im Exponenten aber nicht
• Auf alle diese Aspekte werden wir nochmal
zurückkommen
C 8. Anfrageauswertung: Komplexität
. Folie 17
Inhalt
8.1 Auswertungskomplexität: Und-Anfragen
8.1.1 Vorüberlegungen
8.1.2 Worst-Case-Komplexität
8.1.3 Parametrisierte Komplexität
8.2 Auswertungskomplexität: Relationale Algebra
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 18
Wiederholung aus KT: Dr. O
Beispiel
• Dr. O hat ca. 1000 Experimente durchgeführt
• Einige Ergebnisse widersprechen sich
• Er sucht eine möglichst kleine Zahl von Ex-
B
A
perimenten, deren Elimination alle Widersprüche beseitigt
• Vermutung: es genügt 20-50 Experimente zu
entfernen
– Ungerichteter Graph G = (V,E)
– V = Menge der Experimente
– (u,v) ∈ E : Experimente u und v haben widersprüchliche Ergebnisse
Definition: M IN -V ERTEX C OVER
= (V,E)
Gesucht: Menge U ⊆ V , so dass gelten:
(1) (u,v) ∈ E ⇒ u ∈ U oder v ∈ U
(2) |U | minimal?
DBT / Schwentick / SoSe 12
C
D
G
F
Definition: V ERTEX C OVER
Gegeben: Graph G
• Modellierung:
Gegeben: Graph G
E
= (V,E), k
Frage: Gibt es U ⊆ V , so dass gelten:
(1) (u,v) ∈ E ⇒ u ∈ U oder v ∈ U
(2) |U | ≤ k?
• Schlechte Nachrichten:
– V ERTEX C OVER ist NP-schwierig
– Für festes k ist k-V ERTEX C OVER zwar in
polynomieller Zeit O(nk ) lösbar:
∗ Teste alle Teilmengen der Größe ≤ k
– Aber das ist für etwas größere k schon
nicht praktikabel
C 8. Anfrageauswertung: Komplexität
. Folie 19
Wiederholung aus KT: Algorithmus für V ERTEX C OVER
• Frage: Gibt es Algorithmen für V ERTEX C OVER, deren Aufwand wesentlich besser als O(nk ) ist?
• Beobachtung:
Ist (u,v) eine Kante von G, so muss u oder v
(oder beide) in U vorkommen
➞ Das legt eine Verzweigung zu zwei Teilproblemen
nahe:
∗ (G−u,k−1) und (G−v,k−1)
∗ Dabei bezeichnet G−u den Graphen, der aus
G durch Entfernen von u und allen Kanten mit
u entsteht
– (G,k) hat genau dann eine Lösung, wenn eines
• Der Algorithmus ist also immer noch
nicht polynomiell
• Aber: die exponentielle Abhängigkeit der Laufzeit ist auf den Parameter k eingeschränkt
• Diese Art der „Isolation“ von kritischen Parametern werden wir in
diesem Kapitel systematisch betrachten
der beiden Teilprobleme eine Lösung hat
– Die Rekursionstiefe dieses Algorithmus ist k
➞ Suchbaum mit 2k Blättern
➞ Aufwand O(2k n2 )
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 20
Wiederholung aus KT: Parametrisierte Probleme und FPT
Definition: Parametrisiertes Problem
Definition: FPT
• Ein parametrisiertes Problem ist eine Menge L
von Paaren (x,k), wobei x ∈ Σ∗ und k ∈ N
• Ein parametrisiertes Problem L
• Lk =def {(x,i) ∈ L | i = k ∈ L} „k-te
Scheibe“ von L
Definition: P-V ERTEX C OVER
Gegeben: Graph G
= (V,E), k
Parameter: k
Frage: Gibt es U ⊆ V , so dass gelten:
(1) (u,v) ∈ E ⇒ u ∈ U oder v ∈
(2) |U | ≤ k?
U
• Bei der Definition parametrisierte Probleme werden
wir im Folgenden den ausgewählten Parameter gesondert ausweisen
heißt fp-effizient („fixed parameter tractable“), falls es einen
Algorithmus A, ein Polynom p
und eine berechenbare Funktion
f : N → N gibt, so dass gilt:
(a) A entscheidet L
(b) A hat bei Eingabe (x,k)
Laufzeit f (k)p(|x|)
• FPT ist die Klasse aller fpeffizienten parametrisierten Probleme
• Also: P-V ERTEX C OVER ∈ FPT
• Dem Problemnamen stellen wir ein P- vor
• Zu beachten: algorithmische Probleme lassen sich in
der Regel auf verschiedene Weisen parametrisieren
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 21
P-KOMBI(CQ)
• Da wir erwarten, dass Anfragen deutlich klei- • P-KOMBI(CQ) scheint nicht in FPT zu sein
ner als Datenbanken sind, ist die folgende
• Es ist vollständig für die parametrisierte
Parametrisierung von KOMBI(CQ) sinnvoll
Komplexitätsklasse W [1]
Definition: P-KOMBI(CQ)
Gegeben: Datenbank D ,
Und-Anfrage q
|q|
Gesucht: JqK(D)
Parameter:
DBT / Schwentick / SoSe 12
– (und damit äquivalent zum parametrisierten Clique-Problem)
• Intuitiv bedeutet dies:
– Wenn FPT 6= W [1]
– dann gibt es keinen Algorithmus (beliebiger Komplexität), der Anfragen q in äquivalente „optimierte“ Anfragen q ′ umwandelt, so dass Jq ′ K(D) in polynomieller
Zeit in |D| ausgewertet werden kann
C 8. Anfrageauswertung: Komplexität
. Folie 22
Inhalt
8.1 Auswertungskomplexität: Und-Anfragen
8.2 Auswertungskomplexität: Relationale Algebra
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 23
Komplexität der Anfrageauswertung: DATA(q)
• Wie ist die Komplexität von DATA(q) für Anfragen der Relationenalgebra?
– Jeder einzelne Operator der Relationenalgebra hat höchstens quadratische Komplexität
– Wenn die Anfrage fest ist, müssen also nur
konstant viele Operatoren mit jeweils polynomieller Laufzeit hintereinander ausgeführt
werden
➨ Polynomielle Laufzeit
• Aus Sicht der Komplexitätstheorie lässt sich das
aber noch sehr verbessern:
– Bei der Auswertung kann sehr stark parallel
gearbeitet werden
– Intuitiv kann ein Quantor des Relationenkalküls als ein (Und- oder Oder-) Gatter eines
Schaltkreises aufgefasst werden
– Zu beachten: Für DATA(q) kann die günstigste Repräsentation der Anfrage angenommen werden
(da die Anfrage ja nicht Teil der Eingabe ist!)
DBT / Schwentick / SoSe 12
• Etwas genauer:
– Wir betrachten Schaltkreise mit Und-,
Oder- und Nicht-Gattern
– Die Und- und Oder-Gatter dürfen beliebig viele Eingänge haben
– AC0 :
∗ Klasse aller Probleme, die sich
durch eine Familie C1 ,C2 , . . .
von Schaltkreisen mit konstanter
Tiefe und polynomieller Größe berechnen lassen
∗ Schaltkreis Ci verarbeitet Eingaben mit i Bits
∗ Zusätzlich: Schaltkreise müssen
einem „einheitlichen Konstruktionsprinzip“ folgen
Satz 8.3[Immerman 89]
• Für jede Anfrage q der relationalen
Algebra ist DATA(q) ∈ AC0
C 8. Anfrageauswertung: Komplexität
. Folie 24
Wiederholung aus KT: QBF und PSPACE (1/3)
• Wir betrachten jetzt die Komplexität von
KOMBI(RAlg)
• Dazu müssen wir zunächst die Komplexitätsklasse
PSPACE definieren
• Wie soll Speicherplatz gemessen werden?
– wir zählen die benutzten „Felder“ der Strings einer
TM
• Komplikation:
– Zuweilen sind Berechnungen mit sehr kleinem
Speicherplatz interessant (O(log n))
– Aber: allein die Eingabe nimmt n Felder in Anspruch
➞ Deshalb zählen wir den Eingabestring nicht mit
und erlauben der TM keine Änderungen auf
dem Eingabestring
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 25
Wiederholung aus KT: QBF und PSPACE (2/3)
Definition
Definition
• Eine k-string TM mit read-only Eingabestring (RO-TM) ist eine k-string TM
M = (Q,Σ,Γ,δ,s) mit folgenden
• S : N 7→ R heißt Platzschranke für
M , falls es ein n0 gibt, so dass für alle x
mit |x| > n0 gilt: sM (x) ≤ S(|x|)
Eigenschaften:
– Ist δ(q,σ1 , . . . ,σk )
so ist
=
(q ′ ,σ1′ , . . . ,σk′ ,d1 , . . . ,dk ),
′ , und
(a) σ1 = σ1
(b) falls σ1 = ⊔, so d1
=←.
• Ist (q,(u1 ,σ1 ,v1 ), . . . ,(uk ,σk ,vk ))
die Haltekonfiguration von M bei Eingabe
x so ist der Speicherplatzaufwand von
M bei Eingabe x:
Pk
sM (x) =def i=2 |ui σi vi |
DBT / Schwentick / SoSe 12
• SPACEk (S) =def Menge aller Sprachen
L, die von RO-k-TM mit Platzschranke
O(S) entschieden werden
[
• SPACE(S) =def
SPACEk (S)
k≥2
• PSPACE =def
C 8. Anfrageauswertung: Komplexität
[
SPACE(n
c
)
c≥1
. Folie 26
Wiederholung aus KT: QBF und PSPACE (3/3)
• Die Frage, ob die SAT-Formel
ϕ = (x1 ∨ x2 ) ∧ (¬x1 ∨ ¬x2 )
erfüllbar ist, ist äquivalent zu der Frage, ob
∃x1 ∃x2 ϕ wahr ist
– wobei die Quantoren über {0,1} „laufen“
• Wir erlauben nun auch Allquantoren in aussagenlogischen Formeln, z.B.:
∀x1 ∃x2 (x1 ∨ x2 ) ∧ (¬x1 ∨ ¬x2 )
• Die Menge der wahren quantifizierten aussagenlogischen Formeln (in Pränex-Normalform) bezeichnen
wir mit QBF
– Auf eine formale Definition der Semantik von
QBF-Formeln verzichten wir
Satz 8.4 [Stockmeyer, Meyer, 1973]
• QBF ist vollständig für PSPACE
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 27
Komplexität der Anfrageauswertung: KOMBI(RAlg) (1/3)
Beweisskizze
• Hinsichtlich der kombinierten Komplexität verhalten sich die bisher betrachteten Anfragen weniger günstig
• Wir haben schon gesehen:
– KOMBI(BCQ) ist NP-vollständig
• Für relational vollständige Anfragen
sieht es noch etwas schlimmer aus:
Satz 8.5 [Stockmeyer, Meyer, 1973]
• KOMBI(BCALCsr ) ist vollständig für
PSPACE
• BCALC: Boolesche Anfragen
Beweisidee
• KOMBI(BCALCsr ) ∈ PSPACE:
Alle Belegungen der quantifizierten
Variablen ausprobieren
• KOMBI(BCALCsr ) ist PSPACEschwierig: Reduktion von QBF
DBT / Schwentick / SoSe 12
• KOMBI(BCALCsr ) ∈ PSPACE:
– Wichtig: in polynomieller Zeit testbar, ob eine
eingegebene Anfrage aus BCALCsr ist
– Idee: Probiere alle Variablenbelegungen aus
– s(ϕ,D) bezeichne den maximal benötigten
zusätzlichen Speicherplatz zur Auswertung
von JϕK(D)
– Behauptung: s(ϕ,D) = O(|ϕ||D|)
– Beweis durch Induktion nach ϕ:
∗ (Hier nur ∧ und ∃)
∗ ϕ = ψ ∧ θ : Teste, für jedes Tupel u
~,
D |= ψ(~
u) und D |= θ(~
u) unter
Verwendung des selben Platzes
➞ s(ϕ,D) = max(s(ψ,D),s(θ,D))
∗ ∃x ψ : Teste für jedes a ∈ adom(ϕ,D),
ob D |= ψ(~
u[x/a])
➞ s(ϕ,D) = O(|D| + s(ψ,D))
– (gilt auch für höherstellige Anfragen)
C 8. Anfrageauswertung: Komplexität
. Folie 28
Komplexität der Anfrageauswertung: KOMBI(RAlg) (2/3)
Beispiel
• Die Formel
∀y1 (∃y2 VORL(y2 ,x,y1 ) → ∃y3 VORL(y3 ,„Logik“,y1 ))
lässt sich wie folgt auswerten:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
Algorithmus CALC-Auswertung
for all a in adom(ϕ,D) do {Mögliche Ergebniswerte}
OK1 := TRUE
for all a1 in adom(ϕ,D) do {∀y1 · · · }
OK2 := FALSE
for all a2 in adom(ϕ,D) do {∃y2 · · · }
if ha2 ,a,a1 i ∈ VORL then
OK2 := TRUE
if OK2 then
OK3 := FALSE
for all a3 in adom(ϕ,D) do {∃y3 · · · }
if ha3 ,„Logik“,a1 i ∈ VORL then
OK3 := TRUE
if OK2 AND NOT OK3 then
OK1 := FALSE
if OK1 then
Ausgabe a
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 29
Komplexität der Anfrageauswertung: KOMBI(RAlg) (3/3)
Beispiel
Beweisskizze (Forts.)
• KOMBI(BCALCsr ) ist schwierig für
PSPACE:
– Reduktion von QBF
– Sei also θ = ∃p1 ∀p2 ∃p3 · · · χ
eine quantifizierte Boolesche Formel
(χ quantorenfrei)
– Dabei können die pi nur die Werte
TRUE und FALSE annehmen
– Sei ϕ die Formel
∃x1 ∀x2 ∃x3 · · · χ′ wobei χ′
aus χ durch Ersetzen jedes pi durch
das Atom R1 (xi ) entsteht
– Sei D die Datenbank mit der 1-stelligen
Relation R1 , die das Tupel h1i enthält,
und der 1-stelligen Relation R2 , die das
Tupel h0i enthält
– Dann gilt:
θ hat den Wert TRUE ⇐⇒
• Für θ =
∀p1 ∃p2 ∃p3 ∀p4 ∃p5 (p1 ∨ ¬p2 )
∧(¬p3 ∨ p4 ) ∧ (p5 ∨ ¬p1 )
• ist ϕ =
∀x1 ∃x2 ∃x3 ∀x4 ∃x5
(R1 (x1 ) ∨ ¬R1 (x2 ))
∧(¬R1 (x3 ) ∨ R1 (x4 ))
∧(R1 (x5 ) ∨ ¬R1 (x1 ))
J{hi | ϕ}K(D) 6= ∅
• Da ϕ in polynomieller Zeit in |θ| berechnet werden kann, ist dies eine polynomielle
Reduktion von QBF auf KOMBI(BCALCsr )
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 30
P-KOMBI(RAlg)
Definition: P-KOMBI(RAlg)
Gegeben: Datenbank D ,
RAlg-Anfrage q
|q|
Gesucht: JqK(D)
Parameter:
• P-KOMBI(RAlg) ist vollständig für die parametrisierte Klasse AW [∗]
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 31
Auswertungskomplexität: Fazit
C
DATA(C)
KOMBI(C)
Para
Und-Anfragen
AC0
NP-vollst.
W [1]-vollst.
Semijoin
AC0
in P
in P
RelAlg
AC0
PSPACE-vollst.
AW [∗]-vollst.
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 32
Literaturhinweise
• Wie immer: [AHV95]
• Weitere Literaturhinweise:
– KOMBI(BCQ) ist NP-vollständig
∗ A. Chandra and P. Merlin. Optimal implementation of conjunctive queries in relational data bases. In Proceedings 9th ACM
Symposium on Theory of Computing, pages 77–90. ACM,
1977
– DATA(CALCsr ) ist in AC0 :
∗ N. Immerman. Expressibility and parallel complexity. SIAM
Journal on Computing, 18:625–638, 1989
– QBF und KOMBI(CALCsr ) sind vollständig für PSPACE:
∗ L. J. Stockmeyer and A. R. Meyer. Word problems requiring
exponential time: Preliminary report. pages 1–9, 1973
• P-KOMBI(RAlg) ist AW [∗]-vollständig:
– Rodney G. Downey, Michael R. Fellows, and Udayan Taylor. The
parameterized complexity of relational database queries and an
improved characterization of W[1]. In Combinatorics, Complexity, and Logic, volume 39 of Proceedings of DMTCS, pages
194–213. Springer-Verlag, 1996
• P-KOMBI(CQ) ist W [1]-vollständig:
– Christos H. Papadimitriou and Mihalis Yannakakis. On the complexity of database queries. Journal of Computer and System
Sciences, 58(3):407–427, 1999
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 33
Änderungslog
19.5.12 Auf Folie 28 BCALC statt CALC
DBT / Schwentick / SoSe 12
C 8. Anfrageauswertung: Komplexität
. Folie 34
Herunterladen