Tabellen von Elementen Komplexitätstheorie Datenbanken und Deskriptive Komplexität Helmut Veith Technische Universität München E: A B ========= 1 2 2 1 3 4 2 3 1 4 3 1 1 1 1 3 2 4 SQL: Anfragen über Tabellen Tabellen haben verschiedene Breite: Stelligkeit Einfaches Datenbankschema: Signatur Tabellennamen und Stelligkeit zb E:2, D:3, F:4 Queries / Anfragen: SQL verwendet Namen für Spalten: select A,B from E where A=B Relationenalgebra: A=B(E) Prädikatenlogik 1. Stufe: E(x,y) x = y Datenbanken & Queries Datenbankschema / Signatur E 1 :r 1, E 2 : r 2,..., E k : r k Datenbank / (Relationale) Struktur: 1. Universum U 2. E 1 U r 1,..., E k U rk Query = Anfrage an die Datenbank Generizität: Resultat unabhängig von interner Datendarstellung. Relationale Algebra = SQL ohne Aggregatfunktionen = Prädikatenlogik 1. Stufe (First Order Logic) Beweis: einfache Übersetzungen. Wir wissen: First Order Logic kann in LOGSPACE ausgewertet werden. Datenbankabfragen komplexitätsbeschränkt. Datenbank-Semantik ebenfalls beschränkt. Boolesche Queries und Entscheidungsprobleme Queries mit Ja/Nein Antworten zb Ergebnistabelle leer/nicht leer Eingaben von Entscheidungsproblemen können als relationale Strukturen modelliert werden. zb Graphen Boolesche Queries entsprechen dann den Queries im Instance/Query Schema von Garey/Johnson zb Ist der Graph 3-färbbar? 1
Komplexität von Queries Für eine Query Language untersuchen wir: Datenkomplexität: Komplexität in der Grösse der Datenbank Ausdruckskomplexität: Komplexität in der Grösse der Query Kombinierte Komplexität: Komplexität in der Grösse der Query und der Datenbank Komplexität von Queries SQL / Relationale Algebra / FO Datenkomplexität: in LOGSPACE Komplexität in der Grösse der Datenbank Ausdruckskomplexität: PSPACE-vollständig Komplexität in der Grösse der Query Kombinierte Komplexität: PSPACE-vollständig Komplexität in der Grösse der Query und der Datenbank Reduktion von QBF auf FO Ausdruckskomplexität. FO/SQL und LOGSPACE Datenkomplexität: FO LOGSPACE: jeder Quantor entspricht einer for-schleife. Formel konstanter Grösse fixer Algorithmus. FO LOGSPACE: Erreichbarkeit nicht ausdrückbar! 0/1 Law Für ein fixes Schema T, und eine FO Boolean Query f, sei V n die Menge aller Strukturen mit Universum der Grösse n, und F n die Menge aller Strukturen mit Universum der Grösse n, für die Query f wahr ist. Dann gilt: lim F n n / V n ist 0 oder 1. D.h. nur asymptotisch wahre oder falsche Eigenschaften definierbar. (ohne Beweis) FO LOGSPACE Datalog Query / Eigenschaft / Problem EVEN: Universum hat gerade Anzahl von Elementen Trivialerweise in LOGSPACE. Limit existiert nicht. Wegen 0/1 Law nicht in FO. Auch Erreichbarkeit / REACH nicht in FO. Datenbanksprache in Anlehnung an Prolog Logic Programming Style Typisches Datalog Programm: R(x,y) :- E(x,y) R(x,y) :- R(x,z), E(z,y) Extensionales Schema (Input): E Intensionales Schema (Output): R Was berechnet R? Datalog nicht einfacher als NL. 2
Circuit Evaluation in Datalog Extensionales Schema: A(x,y,z): Gatter x ist AND von y und z. O(x,y,z): Gatter x ist OR von y und z. I(x): Input-Gatter x hat Wert 1. Intensionales Schema: V(x): Gatter x hat Wert 1. Datalog Programm: V(x) :- I(x). V(x) :- A(x,y,z), V(y), V(z). V(x) :- O(x,y,z), V(y). V(x) :- O(x,y,z), V(z). Datalog nicht einfacher als PTIME! Ist Datalog genau PTIME? Datalog Auswertung ist in PTIME. Warum? Kann jede polynomiell berechenbare Boolesche Query in Datalog ausgedrückt werden? Nein! Auch Datalog hat ein 0/1 Law. Wie kann man EVEN über dem leeren Schema in Datalog ausdrücken? Offenbar nicht möglich. Negation in Datalog: Stratifiziertes Datalog Negation von extensionalen Relationen immer erlaubt. Rekursion durch Negation ist verboten: A(x) :- NOT B(x) B(x) :- NOT A(x) Spezielle KI-Semantiken erforderlich. EVEN in Datalog? Generizität: Elemente des Universums können nur durch Relationen unterschieden werden Mit Hilfsrelation succ(x,y) x+1 = y über dem Universum Unterscheidung möglich: Stratifizierte Negation: d.h. keine Rekursion durch Negation möglich. zb F(x,y) :- NOT E(x,y) Berechnet das Komplement eines Graphen. Last(x) :- NOT succ(x,y) First(x) :- NOT succ(z,x) Odd(x) :- Last(x) Even(x) :- E(x,y), Odd(y) Odd(x) :- E(x,y), Even(y) Result :- First(x), Even(x). < und succ succ kann aus < berechnet werden: far(x,y) :- x < z, z < y succ(x,y) :- x < y, NOT far(x,y) Polynomielle Arithmetik Universum der Groesse n stellt Zahlen 0...n-1 dar. Vektor (a,b) stellt Zahlen 0..n 2-1 dar. k-vektor stellt Zahlen 0.. n k -1 dar. < kann aus succ berechnet werden: x < y :- succ(x,y) x < y :- succ(x,z), z < y Datalog mit Ordnung ist ein eindeutiger Begriff. Nicht generische Queries! Lineare Ordnung auf k-vektoren: lexikographisch definiert. (Programm Kleiner(a,b,c,d) :- a < c. Kleiner(a,b,c,d) :- a=c, b < d. Übung) 3
Datalog captures PTIME Sei f eine Boolesche Query. Dann gilt f ist in PTIME gdw f ist in Datalog mit Ordnung ausdrückbar. Languages that capture complexity classes. Korollar: Datenkomplexität ist PTIME. Datalog captures PTIME Beweisidee: Eingabe Graph G = (V,E) Datalog Programm beschreibt Konfigurationen der Turing Maschine. Extensionale Relationen: S q (x,t): Zustand q zur Zeit t H(x,t): Kopf zur Zeit t am Ort x S a (x,t): Symbol a zur Zeit t am Ort x x,t: Variablenvektoren: drücken Zahlen polynomieller Grösse aus. Fragments of Datalog Unter Voraussetzung einer linearen Ordnung gelten folgende Äquivalenzen: Datalog = PTIME Stratifiziertes Datalog = PTIME Datalog mit Tail Rekursion = NL Datalog mit deterministischer Tail Rekursion = L Korollar: Datenkomplexität in derselben Klasse. Ausdruckskomplexität Datalog = PTIME Ausdruckskomplexität: EXPTIME Stratifiziertes Datalog = PTIME Ausdruckskomplexität: EXPTIME Datalog mit Tail Rekursion = NL Ausdruckskomplexität: PSPACE Datalog mit deterministischer Tail Rekursion = L Ausdruckskomplexität: PSPACE Kombinierte Komplexität i.a. gleich Ausdruckskomplexität. Second Order Logic Logik 2. Stufe. Quantifizierung nicht nur über Knoten, sondern auch über Mengen und Relationen: R,G,B x,y: (R(x) G(x) B(x)) (R(x) G(x)) (R(x) B(x)) (G(x) B(x)) ( E(x,y) (R(x) R(y)) (B(x) B(y)) (G(x) G(y)) ) 3-Colorability Hamiltonian Path Second Order Logic R: R ist lineare Ordnung x,y: succ(x,y) E(x,y) R ist lineare Ordnung x,y,z : (R(x,y) R(y,z) R(x,z)) (R(x,y) R(y,x)) (R(x,y) R(y,x)) succ(x,y) : R(x,y) z. R(x,z) R(z,y) 4
Fagin s Theorem Fagin 1974: NP = existentielle Second Order Logic. (ohne Voraussetzung einer Ordnung.) Beweisidee: : Guess and Check Algorithmus. : PTIME Maschine zur Überprüfung Datalog Programm mit Ordnung SOL Formel definiert Ordnung und simuliert Datalog Programm. PTIME = NP? Zeige, dass PTIME nur durch Logiken mit Ordnung ausgedrückt werden kann. P verschieden von NP. 5