Übungsaufgaben Theoretische Informatik und Logik

INF-B-290

TU Dresden

Sommersemester 2024

Diese Notizen sind während meiner Vorbereitung für die Prüfung Theoretische Informatik und Logik entstanden.

Wenn Lösungen mit TODO markiert sind, sind diese nicht richtig ausgearbeitet und sollten eigentlich später nochmal genauer betrachtet werden.

Disclaimer: Das ganze hat für die Note 3,0 gereicht.

1. Übungsblatt

Aufgabe B

Zeigen Sie: Wenn es möglich ist, für zwei beliebige Turing-Maschinen zu entscheiden, ob sie dieselbe Sprache akzeptieren, so ist es auch möglich, für beliebige Turing-Maschinen zu entscheiden, ob sie die leere Sprache akzeptieren.

gesucht: Erkennt die Turing-Maschine MM die leere Sprache L(M)=L(M) = \emptyset?

Aufgabe 1.1

Zeigen Sie folgende Aussagen:
c) ||||\left|\mathbb{R}\right| \neq \left|\mathbb{N}\right|

siehe Cantors zweites Diagonalargument

Zeigen Sie folgende Aussagen:
d) für jede nicht-leere endliche Menge Σ\Sigma ist Σ*\Sigma^{*} abzählbar unendlich.

besser f:Σ*f : \mathbb{N} \rightarrow \Sigma^{*}:

wahrscheinlich falsch:

  1. Σ*={ε}ΣΣ2\Sigma^{*} = \{\varepsilon\} \cup \Sigma \cup \Sigma^2 \cup \ldots
  2. |Σ|=||\left|\Sigma\right| = \left|\mathbb{N}\right|
  3. |Σ*|=1+||+|×|+|××|+\left|\Sigma^{*}\right| = 1 + \left|\mathbb{N}\right| + \left|\mathbb{N} \times \mathbb{N}\right| + \left|\mathbb{N} \times \mathbb{N} \times \ldots\right| + \ldots
  4. |×|=||\left|\mathbb{N} \times \mathbb{N}\right| = \left|\mathbb{N}\right|
    |××|=||\Rightarrow \left|\mathbb{N} \times \mathbb{N} \times \mathbb{N}\right| = \left|\mathbb{N}\right|
    \Rightarrow \ldots
  5. ||+||=||\left|\mathbb{N}\right| + \left|\mathbb{N}\right| = \left|\mathbb{N}\right|
  6. |Σ*|=||\left|\Sigma^{*}\right| = \left|\mathbb{N}\right|

Aufgabe 1.2

Geben Sie für folgende Sprachen Aufzähler an:
a) L1={3n|n}L_1 = \{3n | n \in \mathbb{N}\}, wobei die Ausgabe unär kodiert sein soll

turingmachine.io

input: "11"
blank: _
start state: mark_input_end
table:
  mark_input_end:
    1: {R: mark_input_end}
    _: {write: S, L: move_left}
  move_left:
    [1, S]: L
    _: {R: take1}
  take1:
    1: {write: _, R: append3}
    S: {write: _, R: done}
  append3:
    [1, S]: R
    _: {write: 1, R: append2}
  append2:
    _: {write: 1, R: append1}
  append1:
    _: {write: 1, L: move_left}
  done:

(siehe auch 1.4 b)

Geben Sie für folgende Sprachen Aufzähler an:
b) L2={anbn|n}L_2 = \{a^n b^n | n \in \mathbb{N}\}

turingmachine.io

input: "111"
blank: _
start state: move_right
table:
  move_right:
    1: R
    [_, a]: {L: prepend_a}
  prepend_a:
    [a, b]: L
    _: {R: done}
    1: {write: a, R: append_b}
  append_b:
    [a, b]: R
    _: {write: b, L: prepend_a}
  done:

Aufgabe 1.3

a) Konstruieren Sie eine Turing-Maschine AmulA_{mul}, welche die Multiplikation zweier natürlicher Zahlen implementiert. Dabei sollen sowohl die Eingaben als auch die Ausgabe unär kodiert sein.

turingmachine.io

input: "11_111"
blank: _
start state: skip_right_a
table:
  skip_right_a:
    1: R
    _: {R: skip_right_b}
  skip_right_b:
    1: R
    _: {write: S, L: skip_left_b}
  # move left over the inputs
  skip_left_b:
    1: L
    _: {L: skip_left_a}
  skip_left_a:
    1: L
    _: {R: take1}
  # subtract one from a
  take1:
    1: {write: _, R: skip_input}
    _: {R: cleanup}
  # skip right over inputs and outputs
  skip_input:
    [_, 1]: R
    S: {R: skip_output}
  skip_output:
    1: R
    _: {L: skip_output_to_b}
  # add 1 to output for every 1 in b and turn 1 to 2 in b
  skip_output_to_b:
    1: L
    S: {L: flip_b}
  flip_b:
    2: L
    1: {write: 2, R: append_1}
    _: {R: unflip_b}
  append_1:
    [2, S, 1]: {R: append_1}
    _: {write: 1, L: skip_output_to_b}
  # turn 2 to 1 in b
  unflip_b:
    2: {write: 1, R: unflip_b}
    S: {L: skip_left_b}
  # erase up to and including "S"
  cleanup:
    [_, 1]: {write: _, R: cleanup}
    S: {write: _, R: done}
  done:

Aufgabe 1.4

Auf Folie 27 der 2. Vorlesung vom 11.4.2024 wird innerhalb des Widerspruchsbeweises zur Berechenbarkeit der Busy-Beaver-Funktion eine Turingmaschine M*2M_{*2} mit Alphabet {x,}\{x, ␣\} verwendet, welche die Funktion xnx2nx^n \rightarrow x^{2n} berechnet.
b) Geben Sie eine Einband-Turingmaschine über dem Alphabet {x,}\{x, ␣\} an, die die Funktion xnx2nx^n \rightarrow x^{2n} berechnet.

turingmachine.io

input: "xxxx"
blank: _
start state: add_space
table:
  add_space:
    x: {write: _, L: prepend_x}
    _: {R: skip_x0_right_x}
  prepend_x:
    _: {write: x, L: add_space}
  skip_x0_right_x:
    x: {R: skip_x0_right_0}
    _: {L: fill_space_left_0}
  skip_x0_right_0:
    _: {R: skip_x0_right_x}
    x: {L: add_space}
  fill_space_left_0:
    _: {write: x, L: fill_space_left_x}
  fill_space_left_x:
    x: {L: fill_space_left_0}
    _: {R: cleanup}
  cleanup:
    x: {write: _, R: done}
  done:

2. Übungsblatt

Aufgabe C

Zeigen Sie, dass {1}*\{1\}^{*} unentscheidbare Teilmengen besitzt.

Die Potenzmenge einer abzählbar unendlichen Menge ist überabzählbar.

Cantors Diagonalargument:

Aufgabe D

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
d) Die Ackermannfunktion ist total und damit LOOP-berechenbar.

siehe 3. Vorlesung, Seite 17ff

Aufgabe 2.1

Zeigen Sie, dass folgende Funktionen f:2f : \mathbb{N}^2 \rightarrow \mathbb{N} LOOP-berechenbar sind:
a) f(x,y):=max(xy,0)f(x, y) := \text{max}(x - y, 0)

While simulator

result := x + 0
LOOP y DO
  result := result - 1
END

Zeigen Sie, dass folgende Funktionen f:2f : \mathbb{N}^2 \rightarrow \mathbb{N} LOOP-berechenbar sind:
b) f(x,y):=xyf(x, y) := x \cdot y

result := 0
LOOP x DO
  LOOP y DO
    result := result + 1
  END
END

Zeigen Sie, dass folgende Funktionen f:2f : \mathbb{N}^2 \rightarrow \mathbb{N} LOOP-berechenbar sind:
c) f(x,y):=max(x,y)f(x, y) := \text{max}(x, y)

While simulator

result := x
LOOP x DO
  y := y - 1
END
LOOP y DO
  result := result + 1
END

Zeigen Sie, dass folgende Funktionen f:2f : \mathbb{N}^2 \rightarrow \mathbb{N} LOOP-berechenbar sind:
d) f(x,y):=ggT(x,y)f(x, y) := \text{ggT}(x, y)

While simulator, Euklidischer Algorithmus

(Beim Verwenden von IF x != 0 THEN scheint es einen Bug zu geben und das ganze Programm einfach nicht zu laufen.)

result := b
# <if a > 0>
nonzero := 0
LOOP a DO
  nonzero := 1
END
LOOP nonzero DO
# </if a > 0>
  LOOP b DO
    # <if b > 0>
    nonzero := 0
    LOOP b DO
      nonzero := 1
    END
    LOOP nonzero DO
    # </if b > 0>
      # now we are inside WHILE b != 0
      aminusb := a
      LOOP b DO
        aminusb := aminusb - 1
      END
      # <if aminusb > 0>
      nonzero := 0
      LOOP aminusb DO
        nonzero := 1
      END
      else := 1
      LOOP nonzero DO
      # </if aminusb > 0>
        # if a > b
        LOOP b DO
          a := a - 1
        END
        else := 0
      END
      LOOP else DO
        # if b <= a
        LOOP a DO
          b := b - 1
        END
      END
    END
  END
  result := a
END

Aufgabe 2.3

Zeigen Sie, dass es keine Many-One-Reduktion vom Halteproblem PhaltP_\text{halt} von Turing-Maschinen auf das Leerheitsproblem
Pleer:={enc(M)|L(M)=}P_\text{leer} := \{\text{enc}(M) | L(M) = \emptyset\}
von Turing-Maschinen gibt.

siehe auch:

Aufgabe 2.4

Zeigen Sie, dass jede semi-entscheidbare Sprache LL auf das Halteproblem PhaltP_\text{halt} many-one-reduziert werden kann.

Dazu muss eine totale turing-berechenbare Funktion f:LPhaltf : L \rightarrow P_\text{halt} gefunden werden. Da LL semi-entscheidbar ist existiert eine Turing-Maschine MLM_L, die alle Worte wLw \in L akzeptiert und ewig läuft, wenn wLw \notin L.

Idee: f(w)f(w) mit wLw \in L konstruiert einer Turing-Maschine MwM_w, die zuerst das Band löscht, dann wLw \in L auf das Band schreibt und anschließend das Halteproblem enc(ML,w)Phalt\text{enc}(M_L, w) \in P_\text{halt} simultiert.

Wenn MLM_L auf ww hält, hält auch MwM_w und die Eingabe wLw \in L wird akzeptiert. Ist wLw \notin L läuft MLM_L und damit auch MwM_w ewig.

3. Übungsblatt

Aufgabe E

Geben Sie eine Turing-Maschine Amod2A_{\mod 2} an, die die Funktion f:NNf : N \rightarrow N mit f(x)=(xmod2)f(x) = (x \mod 2) berechnet. Stellen Sie dabei die Zahlen in unärer Kodierung dar.

turingmachine.io

input: "11111"
blank: _
start state: even
table:
  even:
    1: {write: _, R: odd}
    _: {R: undo_move_right}
  odd:
    1: {write: _, R: even}
    _: {write: 1, R: undo_move_right}
  undo_move_right:
    _: {L: done}
  done:

Aufgabe G

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
a) Die Menge der Instanzen des Postschen Korrespondenzproblems, welche eine Lösung haben, ist semi-entscheidbar.

wahr, das PCP ist semi-enscheidbar. Wenn ein PCP mit nn “Dominosteinen” eine Lösung der Länge mm hat, dann kann diese Lösung mittels Brute-Force in O(nm)O(n^m) gefunden werden und die Turing-Maschine hält.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
b) Das Postsche Korrespondenzproblem ist bereits über dem Alphabet Σ={a,b}\Sigma = \left\{ a, b \right\} nicht entscheidbar.

wahr, TODO

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
c) Es ist entscheidbar, ob eine Turingmaschine nur Wörter akzeptiert, die Palindrome sind. (Ein Palindrom ist ein Wort w=(a1,,an)w = (a_1, \ldots, a_n) mit (a1,,an)=(an,,a1)(a_1, \ldots, a_n) = (a_n, \ldots, a_1).)

falsch, TODO PhaltmPPalindromP_\text{halt} \leq_m P_\text{Palindrom}

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
d) PhaltP_\text{halt} ist semi-entscheidbar.

wahr

Phalt:={enc(M,w)|M hält auf w}P_\text{halt} := \left\{ \text{enc}(M, w) | \text{$M$ hält auf $w$} \right\}

Konstruktion einer Turing-Maschine MhaltM_\text{halt} mit der Eingabe enc(M,w)\text{enc}(M, w) als Semi-Entscheider für PhaltP_\text{halt}:

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
e) Es ist nicht entscheidbar, ob die von einer deterministischen Turing-Maschine berechnete Funktion total ist.

wahr: Ist ff total? \Leftrightarrow Hält MfM_f für ww? enc(Mf,w)Phalt\Leftrightarrow \text{enc}(M_f, w) \in P_\text{halt}

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
f) Es gibt reguläre Sprachen, die nicht semi-entscheidbar sind.

Aufgabe 3.1

Besitzen folgende Instanzen PiP_i des Postschen Korrespondenzproblems Lösungen? Begründen Sie Ihre Antwort.

a) P1P1
aa abaaabaa abab
aaaaaa abab bb

Lösung für sa=(1,0),|sa|=2s_a = (1, 0), \left| s_a \right| = 2

Besitzen folgende Instanzen PiP_i des Postschen Korrespondenzproblems Lösungen? Begründen Sie Ihre Antwort.

b) P2P2
abab baabaa abaaba
abaaba aaaa baabaa

womöglich, aber keine Lösung für |sb|<16\left| s_b \right| < 16

Besitzen folgende Instanzen PiP_i des Postschen Korrespondenzproblems Lösungen? Begründen Sie Ihre Antwort.

c) P3P3
bbabba baba baba abab
bb baabaa abaaba bbabba

womöglich, aber keine Lösung für |sc|<12\left| s_c \right| < 12

import multiprocessing
from functools import cache

post = [
    # ("a", "aaa"),
    # ("abaa", "ab"),
    # ("ab", "b"),
    ("ab", "aba"),
    ("baa", "aa"),
    ("aba", "baa"),
    # ("bba", "a"),
    # ("ba", "baa"),
    # ("ba", "aba"),
    # ("ab", "bba"),
]


@cache
def path_to_strings(path):
    if not path:
        return ([], [])
    a, b = path_to_strings(path[:-1])
    i = path[-1]
    return (a + [post[i][0]], b + [post[i][1]])


def find_solution(worker_num, q, finished):
    depth = 0
    while True:
        path = q.get()
        if len(path) > depth:
            depth = len(path)
            print("worker", worker_num, "depth:", depth)
        assert depth < 20
        # generate both strings
        top, bottom = path_to_strings(path)
        if "".join(top) == "".join(bottom):
            finished.put(path)
            break
        # create new paths from the curent path plus each tuple
        for i in range(len(post)):
            q.put(path + (i,))


# intial paths of length 1 each starting with another PCP tuple
q = multiprocessing.Queue()
for i in range(len(post)):
    q.put((i,))

# start 8 processes that will write their results to finished
finished = multiprocessing.Queue()
workers = [
    multiprocessing.Process(target=find_solution, args=(i, q, finished))
    for i in range(8)
]
for worker in workers:
    worker.start()
try:
    # wait for the first result
    result = finished.get()
finally:
    # kill all workers
    for worker in workers:
        worker.kill()
        worker.join()
# print result
print(result)
top, bottom = path_to_strings(result)
print(top, "==", bottom)

Aufgabe 3.2

Zeigen Sie, dass das Postsche Korrespondenzproblem über einem einelementigen Alphabet entscheidbar ist.

Jede Instanz des Postschen Korrespondenzproblem über einem einelementigen Alphabet Σ={a}\Sigma = \{a\} ist durch eine Menge {p(i1,j1),p(i2,j2),,p(in,jn)}\{p_{(i_1,j_1)}, p_{(i_2,j_2)}, \ldots, p_{(i_n,j_n)}\}, wobei p(i,j)=(ai,aj)p_{(i,j)} = (a^i, a^j), gegeben. Die Lösung ist berechenbar, genau dann wenn eine Lösung s=(s1,s2,,sn)s = (s_1, s_2, \ldots, s_n) existiert:

Es ist also lediglich zu prüfen, ob die Instanz

Beispiele:

  1. P1={p(5,2),p(1,3)}P_1 = \{p_{(5,2)}, p_{(1,3)}\}
    5s1+1s2=2s1+3s2\Rightarrow 5 s_1 + 1 s_2 = 2 s_1 + 3 s2
    3s12s2=0\Rightarrow 3 s_1 - 2 s_2 = 0
    s1=2,s2=3\Rightarrow s_1 = 2, s_2 = 3

  2. P2={p(1,2),p(2,3)}P_2 = \{p_{(1,2)}, p_{(2,3)}\}
    1s1+2s2=2s1+3s2\Rightarrow 1 s_1 + 2 s_2 = 2 s_1 + 3 s2
    1s1+1s2=0\Rightarrow 1 s_1 + 1 s_2 = 0
    s1>0,s2>0\Rightarrow \nexists s_1 > 0, s_2 > 0

Aufgabe 3.3

Es sei T:={enc(M)|MT := \{\text{enc}(M) | M ist eine Turing-Maschine, welche wRw^R akzeptiert, falls sie ww akzeptiert}\}, wobei wRw^R das zu ww umgekehrte Wort ist. Zeigen Sie, dass TT nicht entscheidbar ist.

Beweis: PhaltmTP_\text{halt} \leq_m T

Redunktionsfunktion f:PhaltTf : P_\text{halt} \rightarrow T

Da PhaltP_\text{halt} nicht entscheidbar ist und PhaltmTP_\text{halt} \leq_m T existiert, ist TT nicht entscheidbar.

Aufgabe 3.4

Zeigen Sie, dass weder das Äquivalenzproblem PäquivP_\text{äquiv} für Turing-Maschinen noch dessen Komplement ¬Päquiv\neg P_\text{äquiv} semi-entscheidbar ist, wobei

Zeigen Sie dazu, dass PhaltmPäquivP_\text{halt} \leq_m P_\text{äquiv} und Phaltm¬PäquivP_\text{halt} \leq_m \neg P_\text{äquiv} gilt. Weshalb zeigt dies die Aussage?

PhaltmPäquivP_\text{halt} \leq_m P_\text{äquiv}

Phaltm¬PäquivP_\text{halt} \leq_m \neg P_\text{äquiv}

PhaltP_\text{halt} ist nicht co-semi-entscheidbar
Päquiv\Rightarrow P_\text{äquiv} ist nicht co-semi-entscheidbar
¬Päquiv\Rightarrow \neg P_\text{äquiv} ist nicht semi-entscheidbar

¬Phalt\neg P_\text{halt} ist nicht co-semi-entscheidbar
¬Päquiv\Rightarrow \neg P_\text{äquiv} ist nicht co-semi-entscheidbar
Päquiv\Rightarrow P_\text{äquiv} ist nicht semi-entscheidbar

4. Übungsblatt

Aufgabe H

Sei LL eine unentscheidbare Sprache. Zeigen Sie:
a) LL hat eine Teilmenge TLT \subseteq L, die entscheidbar ist.

T=T = \emptyset mit Entscheider MTM_T: MTM_T hat nur einen Zustand, der ein nicht-akzeptierender Endzustand ist.

Sei LL eine unentscheidbare Sprache. Zeigen Sie:
b) LL hat eine Obermenge OLO \supseteq L, die entscheidbar ist.

O=Σ*O = \Sigma^{*} mit Entschieder MOM_O: MOM_O hat nur einen Zustand, der ein akzeptierender Endzustand ist.

Sei LL eine unentscheidbare Sprache. Zeigen Sie:
c) Es gibt jeweils nicht nur eine sondern unendlich viele entscheidbare Teilmengen bzw. Obermengen wie in (a) und (b).

Jede überabzählbare Menge L(M)L(M) hat unendlich viele abzählbare Teilmengen TL(M)T \subseteq L(M). Wenn TT abzählbar ist, dann ist TT entscheidbar.

O=(ΣΣ+)*O = (\Sigma \cup \Sigma_{+})^{*} mit ΣΣ+=\Sigma \cap \Sigma_{+} = \emptyset (Das Alphabet von OO wird um weitere Zeichen, die nicht in Σ\Sigma liegen, erweitert.): Es existieren unendlich viele Σ+\Sigma_{+}.

Aufgabe 4.1

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
a) Falls PNP\text{P} \neq \text{NP} gilt, dann auch PNP\text{P} \cap \text{NP} \neq \emptyset

falsch, für eine deterministische Turing-Maschine in P lässt sich auch immer eine nicht-deterministische Turing-Maschine in NP konstruieren.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
b) Es gibt Probleme, die NP-hard, aber nicht NP-vollständig sind.

wahr, Gegenbeispiel PhaltP_\text{halt}: Jedes Problem in NP kann auf PhaltP_\text{halt} reduziert werden PhaltNP-hard\Rightarrow P_\text{halt} \in \text{NP-hard}, aber PhaltNPP_\text{halt} \notin \text{NP} (siehe Ackermann-Funktion, Busy-Beaver, …) und damit nicht NP-complete.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
c) Polynomielle Reduzierbarkeit ist nicht transitiv.

falsch, Many-One-Reduktionen sind transitiv: aus AmBA \leq_m B mit fa:ABf_a : A \rightarrow B und BmCB \leq_m C mit fb:BCf_b : B \rightarrow C folgt fa,b:ACf_{a,b} : A \rightarrow C mit fa,b(x):=fb(fa(x))f_{a,b}(x) := f_b(f_a(x)). Eine polynomielle Reduktion ist eine Many-One-Reduktion mit polynomieller Laufzeit. Eine Verkettung von polynomiellen Funktion erzeugt auch wieder eine polynomielle Funktion.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
d) Ist L2PL_2 \in \text{P} und L1pL2L_1 \leq_p L_2, dann ist auch L1PL_1 \in \text{P}.

wahr, für L2L_2 existiert eine deterministische Turing-Maschine mit polynomieller Laufzeit M2M_2 als Entscheider. Jedes Wort in w1w_1 in L1L_1 lässt sich entscheiden, indem man es mit einer Funktion ff in ein Wort w2w_2 in L2L_2 überführt und anschließend der Entscheider M2M_2 simuliert. Sowohl ff als auch M2M_2 laufen in polynomieller Zeit, also ist L1L_1 in P entscheidbar.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
e) Ist L1L_1 eine NP-vollständige Sprache und gilt L1pL2L_1 \leq_p L_2, dann ist auch L2L_2 eine NP-vollständige Sprache.

wahr, da L1L_1 polynomiell entscheidbar ist und L1L_1 mit einer polynomiellen Funktion in L2L_2 überführt werden kann, muss auch der Entscheider für L2L_2 ebenfalls polynomiell lange laufen. Damit liegt L2L_2 in NP. Da L1L_1 aber auch in NP-hard liegt, muss also auch L2L_2 in NP-hard liegen. Da L2L_2 in NP und NP-hard liegt, liegt es in NP-complete.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
f) Ist L2L_2 eine NP-vollständige Sprache und gilt L1pL2L_1 \leq_p L2, dann ist auch L1L_1 eine NP-vollständige Sprache.

falsch, L1NP\NP-completeL_1 \in \text{NP} \setminus \text{NP-complete} ist möglich.

Gegenbeispiel:

Aufgabe 4.2

Zeigen Sie, dass das Wortproblem deterministischer endlicher Automaten in LogSpace liegt:
ist PDFA:={enc(A)##enc(w)|AP_\text{DFA} := \{\text{enc}(A)\#\#\text{enc}(w) | A ist ein DFA, der ww akzeptiert}\}, dann gilt PDFALogSpaceP_\text{DFA} \in \text{LogSpace}

Der Speicherbedarf ist mit O(log|enc(A)##enc(w)|)O(\log{\left| \text{enc}(A)\#\#\text{enc}(w) \right|}) beschränkt. Der Automat ist wie folgt definiert A=(Q,Σ,δ,q0,F)A = (Q, \Sigma, \delta, q_0, F). Um PDFAP_\text{DFA} zu simulieren, muss die aktuelle Position in ww und der aktuelle Zustand von AA gespeichert werden. Da der Automat AA deterministisch ist, kann er sich immer nur in genau einem qQq \in Q befinden. Also i{0,1,,m1}i \in \{0, 1, \ldots, m - 1\} mit Q={q0,q1,,qm1}Q = \{q_0, q_1, \ldots, q_{m - 1}\} und j{0,1,,n1}j \in \{0, 1, \ldots, n - 1\} mit w=w0w1wn1w = w_0 w_1 \ldots w_{n - 1} zu speichern. Solange ii und jj nicht unär kodiert sind, ist |i|logi\left| i \right| \sim \log{i} mit |i|\left| i \right| als Länge der Kodierung der Zahl ii.

Aufgabe 4.3

Wir betrachten das folgende Problem KK: Gegeben sind zwei gerichtete Graphen G1=(V1,E1)G_1 = (V_1, E_1) und G2=(V2,E2)G_2 = (V_2, E_2) sowie eine Zahl kNk \in N. Gefragt ist, ob es Teilmengen V1V1V_1' \subseteq V_1 und V2V2V_2' \subseteq V_2 gibt, so dass |V1|=|V2|=k\left|V_1'\right| = \left|V_2'\right| = k ist und es eine Bijektion f:V1V2f : V_1' \rightarrow V_2' gibt, so dass gilt
(u,v)E1(f(u),f(v))E2(u, v) \in E_1 \Leftrightarrow (f(u), f(v)) \in E_2.
a) Zeigen Sie KNPK \in \text{NP}.

KK ermittelt, ob G1G_1 und G2G_2 isomorphe Subgraphen mit kk Knoten enthalten. KNPK \in \text{NP} genau dann, wenn eine Lösung V1V_1', V2V_2', ff in polynomieller Zeit überprüft werden kann:

def check(V1_, V2_, f):
    assert len(V1_) == len(V2_)
    for u in V1_:
        for v in V1_:
            u_v_in_E1 = False
            for e in E1:
                if (u, v) == e:
                    u_v_in_E1 = True
            if u_v_in_E1:

                u2 = f(u)
                u2_in_V2 = False
                for x in V2_:
                    if u2 == x:
                        u2_in_V2 = True
                assert u2_in_V2

                v2 = f(v)
                v2_in_V2 = False
                for x in V2_:
                    if v2 == x:
                        v2_in_V2 = True
                assert v2_in_V2

                u2_v2_in_E2 = False
                for e in E2:
                    if (u2, v2) == e:
                        u2_v2_in_E2 = True
                assert u2_v2_in_E2

check(V1_, V2_, f) hat eine Laufzeit O(|V1|2(|E1|+2(|f|+|V2|)+|E2|))O(\left| V_1' \right|^2 (\left| E_1 \right| + 2(\left| f \right| + \left| V_2' \right|) + \left| E_2 \right|)) mit ff der Laufzeit von O(|V1||V2|)O(\left| V_1' \right| \cdot \left| V_2' \right|). Damit ist check(V1_, V2_, f) polynomiell. Überprüfung der Lösung ist in polynomieller Zeit möglich, damit ist KNPK \in \text{NP}.

Wir betrachten das folgende Problem K: Gegeben sind zwei gerichtete Graphen G1=(V1,E1)G_1 = (V_1, E_1) und G2=(V2,E2)G_2 = (V_2, E_2) sowie eine Zahl kNk \in N. Gefragt ist, ob es Teilmengen V1V1V_1' \subseteq V_1 und V2V2V_2' \subseteq V_2 gibt, so dass |V1|=|V2|=k\left|V_1'\right| = \left|V_2'\right| = k ist und es eine Bijektion f:V1V2f : V_1' \rightarrow V_2' gibt, so dass gilt
(u,v)E1(f(u),f(v))E2(u, v) \in E_1 \Leftrightarrow (f(u), f(v)) \in E_2.
b) Zeigen Sie, dass KK ein NP-schweres Problem ist. Zeigen Sie dafür, dass das Problem CLIQUE auf K in polynomieller Zeit reduzierbar ist.

CLIQUE sucht für einen ungerichteten Graph G=(V,E)G = (V, E) und kk \in \mathbb{N} einen Subgraph G=(V,E)G' = (V', E') mit VVV' \subseteq V, |V|=k\left| V' \right| = k und E:={{u,v}|u,vV,uv,{u,v}E}E' := \{\{u, v\} | u, v \in V', u \neq v, \{u, v\} \in E\}, so dass jeder Knoten des Subgraphs mit jedem anderen Knoten des Subgraphs verbunden ist.

CLIQUEpK\text{CLIQUE} \leq_p K:

5. Übungsblatt

Aufgabe J

Zeigen Sie, dass NP unter Kleene-Stern abgeschlossen ist.

Es ist zu zeigen LNP:L*NP\forall L \in \text{NP}: L^{*} \in \text{NP}

gegeben: MM entscheidet in O(p(|w|))O(p(\left| w \right|)), ob wLw \in L oder wLw \notin L

gesucht: nicht-deterministische Turing Maschine M*M^{*}, die in O(p*(|w|))O(p^{*}(\left| w \right|)) entscheidet, ob wL*w \in L^{*} oder wL*w \notin L^{*}

Beweis:

Aufgabe 5.1

Wir betrachten das folgende Problem KK: Gegeben eine aussagenlogische Formel φ\varphi mit nn Variablen, gibt es eine erfüllende Belegung von φ\varphi, bei der mindestens die Hälfte aller in φ\varphi vorkommenden Variablen mit “true” belegt sind?
a) Formalisieren Sie dieses Problem als Sprache und zeigen Sie, dass KNPK \in \text{NP} gilt.

LK:={(φ,b)|b ist eine Belegung der aussagenlogische Formel bei der mindestens die Hälfte aller in φ vorkommenden Variablen mit *"true"* belegt sind}L_K := \left\{ (\varphi, b) | \text{$b$ ist eine Belegung der aussagenlogische Formel bei der mindestens die Hälfte aller in $\varphi$ vorkommenden Variablen mit *"true"* belegt sind} \right\}

nicht-deterministische Turing-Maschine:

Wir betrachten das folgende Problem KK: Gegeben eine aussagenlogische Formel φ\varphi mit nn Variablen, gibt es eine erfüllende Belegung von φ\varphi, bei der mindestens die Hälfte aller in φ\varphi vorkommenden Variablen mit “true” belegt sind?
b) Zeigen Sie, dass K ein NP-schweres Problem ist.

PSATmKP_\text{SAT} \leq_m K (PSATNP-completeNP-hardP_\text{SAT} \in \text{NP-complete} \subseteq \text{NP-hard}), Reduktionsfunktion:

Aufgabe 5.2

Im folgenden Solitaire-Spiel haben wir ein Spielbrett der Größe m×mm \times m gegeben. Als Ausgangsposition liegt auf jeder der m2m^2 Positionen entweder ein blauer Stein, ein roter Stein, oder gar nichts. Das Spiel wird nun so gespielt, dass Steine vom Brett genommen werden bis in jeder Spalte nur noch Steine einer Farbe liegen, und in jeder Zeile mindestens ein Stein liegen bleibt. In diesem Fall ist das Spiel gewonnen. Es ist möglich, dass man ausgehend von einer Ausgangsposition das Spiel nicht gewinnen kann.
a) Formalisieren Sie das Problem, für eine gegebene Ausgangsposition im Solitaire-Spiel zu entscheiden, ob es möglich ist, das Spiel zu gewinnen, als ein Entscheidungsproblem SOLITAIRE.

PSOLITAIRE={enc(B)|B ist eine Ausgangsposition, die gewonnen werden kann}P_\text{SOLITAIRE} = \left\{ \text{enc}(B) | \text{$B$ ist eine Ausgangsposition, die gewonnen werden kann} \right\}

Im folgenden Solitaire-Spiel haben wir ein Spielbrett der Größe m×mm \times m gegeben. Als Ausgangsposition liegt auf jeder der m2m^2 Positionen entweder ein blauer Stein, ein roter Stein, oder gar nichts. Das Spiel wird nun so gespielt, dass Steine vom Brett genommen werden bis in jeder Spalte nur noch Steine einer Farbe liegen, und in jeder Zeile mindestens ein Stein liegen bleibt. In diesem Fall ist das Spiel gewonnen. Es ist möglich, dass man ausgehend von einer Ausgangsposition das Spiel nicht gewinnen kann.
b) Zeigen Sie, dass SOLITAIRENP\text{SOLITAIRE} \in \text{NP} gilt.

nicht-deterministische Turing-Maschine:

Für eine gegebene Endposition lässt sich also in O(m2)O(m^2) überprüfen, ob diese zu der Ausgangsposition passt PSOLITAIRNP\Rightarrow P_\text{SOLITAIR} \in \text{NP}

Im folgenden Solitaire-Spiel haben wir ein Spielbrett der Größe m×mm \times m gegeben. Als Ausgangsposition liegt auf jeder der m2m^2 Positionen entweder ein blauer Stein, ein roter Stein, oder gar nichts. Das Spiel wird nun so gespielt, dass Steine vom Brett genommen werden bis in jeder Spalte nur noch Steine einer Farbe liegen, und in jeder Zeile mindestens ein Stein liegen bleibt. In diesem Fall ist das Spiel gewonnen. Es ist möglich, dass man ausgehend von einer Ausgangsposition das Spiel nicht gewinnen kann.
c) Zeigen Sie, dass SOLITAIRE ein NP-schweres Problem ist, indem Sie zeigen, dass 3-SAT in polynomieller Zeit auf SOLITAIRE reduzierbar ist.

P3-SATpPSOLITAIREP_\text{3-SAT} \leq_p P_\text{SOLITAIRE} TODO

Aufgabe 5.3

Sei Σ\Sigma ein Alphabet und A,BΣ*A, B \subseteq \Sigma^{*}. Wir sagen, dass AA auf BB in logarithmischen Platz reduzierbar ist, und schreiben ABA \leq_\ell B, falls es eine Many-One-Reduktion von AA nach BB gibt, die in logarithmischen Platz berechenbar ist. Begründen Sie: Gilt ABA \leq_\ell B und BCB \leq_\ell C, dann gilt auch ACA \leq_\ell C.
Anmerkung: Bei dieser Aufgabe ist nicht nach einem vollständigen Beweis, sondern eher nach einer Beweisidee gefragt.

Problem: lediglich das Arbeitsband der Reduktion gg bzw. MgM_g ist mit O(logn)O(\log{n}) beschränkt, die Ausgabe von gg bzw. MgM_g kann aber O(p(n))O(p(n)) sein.

Musterlösung

Wir zeigen, dass für zwei logspace-berechenbare Funktion f,g:Σ*Σ*f, g\colon \Sigma^{*} \to \Sigma^{*} auch fgf \circ g logspace-berechenbar ist. Seien dazu MfM_{f} und MgM_{g} Turing-Maschinen, die mit logarithmischer Platzbeschränkung die Funktionen ff und gg berechnen.

Eine erste Idee, eine Turing-Maschine MM zu erhalten, die fgf \circ g berechnet, ist, zuerst MgM_{g} auf der Eingabe aufzurufen, das Zwischenergebnis zu speichern, und dann MfM_{f} auf diesem Zwischenergebnis laufen zu lassen. Diese Idee funktioniert jedoch nicht: zwar benutzt MgM_{g} bei Eingabe wΣ*w \in \Sigma^{*} nur zusätzlich logarithmischen Platz zur Berechnung von g(w)g(w). Dieses Ergebnis kann jedoch polynomiell groß sein in der Länge von ww – und damit exponentiell in der Größe des zur Verfügung stehenden Platzes, der ja logarithmisch in der Größe von ww beschränkt ist. Damit kann das Zwischenergebnis g(w)g(w) nicht vollständig gespeichert werden und dieser Ansatz funktioniert nicht.

Wir können aber diese Idee so modifizieren, dass sie funktioniert! Dazu berechnen wir die Zeichen von g(w)g(w) “on demand”: wir verändern MgM_{g} so, dass sie nur das kk-te Symbol von g(w)g(w) berechnet. Dies kann erreicht werden, indem MgM_{g} mit einem weiteren Zähler pp versehen wird, der um eins hochgezählt wird, wann immer MgM_{g} ein Symbol ausgeben möchte. Ist der Wert von pp gleich kk, gibt MgM_{g} das entsprechende Zeichen aus und hält an.

Um f(g(w))f(g(w)) in LogSpace zu berechnen, gehen wir nun wie folgt vor: wir simulieren die Berechnung von MfM_{f}. Wann immer diese Berechnung ein Symbol von g(w)g(w) lesen möchte, simulieren wir MgM_{g} wie oben beschrieben. Beide Simulationen können in logspace durchgeführt werden, und damit kann auch f(g(w))f(g(w)) in logspace berechnet werden.

Diese Berechnung von f(g(w))f(g(w)) ist recht ineffizient, da Symbole von g(w)g(w) möglicherweise mehrfach berechnet werden. Wir haben aber potentiell nicht genug Platz, um das gesamte Wort g(w)g(w) zu speichern. Wir tauschen also “Platz gegen Zeit”.

Aufgabe 5.4

PCP-k ist das folgende Entscheidungsproblem:
Gegeben: eine Zahl kk \in \mathbb{N} in unärer Kodierung und eine Instanz PP des Postschen Korrespondenzproblems, d.h. eine endliche Folge von Wortpaaren P=(x1,x2),,(xn,yn)P = (x_1, x_2), \ldots, (x_n, y_n) über einem Alphabet Σ\Sigma, also xi,yiΣ+x_i, y_i \in \Sigma^{+} für 1in1 \leq i \leq n.
Gefragt: Gibt es eine Lösung für PP mit maximaler Länge kk? Oder genauer: Gibt es eine Folge von Zahlen i1,,ii_1, \ldots, i_\ell, so dass gilt: xi1xi=yi1yix_{i_1} \ldots x_{i_\ell} = y_{i_1} \ldots y_{i_\ell} wobei 0<k0 < \ell \leq k ist und ij{1,,n}i_j \in \{1, \ldots, n\} für alle j=1,,j = 1, \ldots, \ell?
a) Zeigen Sie, dass PCP-k entscheidbar ist.

PCP ist semi-entscheidbar. Da zusätzlich mit kk noch ein Abbruchkriterium gegeben ist, lassen sich in O(nk)O(n^k) alle möglichen Kombinationen durchprobieren. (Für jedes (xij,yij)(x_{i_j}, y_{i_j}) mit j{1,,k}j \in \{1, \ldots, k\} kann aus nn Dominosteinen des PCP-Problems gewählt werden.) Wenn also in den nkn^k möglichen Kombinationen keine Lösung gefunden wurde, kann eine Lösung des PCP-k ausgeschlossen werden. \Rightarrow PCP-k ist entscheidbar.

PCP-k ist das folgende Entscheidungsproblem:
Gegeben: eine Zahl kk \in \mathbb{N} in unärer Kodierung und eine Instanz PP des Postschen Korrespondenzproblems, d.h. eine endliche Folge von Wortpaaren P=(x1,x2),,(xn,yn)P = (x_1, x_2), \ldots, (x_n, y_n) über einem Alphabet Σ\Sigma, also xi,yiΣ+x_i, y_i \in \Sigma^{+} für 1in1 \leq i \leq n.
Gefragt: Gibt es eine Lösung für PP mit maximaler Länge kk? Oder genauer: Gibt es eine Folge von Zahlen i1,,ii_1, \ldots, i_\ell, so dass gilt: xi1xi=yi1yix_{i_1} \ldots x_{i_\ell} = y_{i_1} \ldots y_{i_\ell} wobei 0<k0 < \ell \leq k ist und ij{1,,n}i_j \in \{1, \ldots, n\} für alle j=1,,j = 1, \ldots, \ell?
b) Zeigen Sie, dass PCP-k in NP liegt.

Eine Lösung (i1,,i)(i_1, \ldots, i_\ell) des allgemeinen PCP lässt sich in polynomieller Zeit verifizieren. Damit lässt sich auch PCP-k mit k\ell \leq k in polynomieller Zeit verifizieren. PCP-kNP\Rightarrow \text{PCP-k} \in \text{NP}

6. Übungsblatt

Aufgabe 6.1

Zeigen Sie folgende Aussagen:
a) Ist L2PSpaceL_2 \in \text{PSpace} und gilt L1pL2L_1 \leq_p L_2, so ist auch L1PSpaceL_1 \in \text{PSpace}.

Zeigen Sie folgende Aussagen:
b) Ist L1L_1 ein PSpace-schweres Problem, und gilt L1pL2L_1 \leq_p L_2, dann ist auch L2L_2 ein PSpace-schweres Problem.

Aufgabe 6.2

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
a) Jedes PSpace-schwere Problem ist NP-schwer.

falsch, es existieren Probleme KPSpace,KNPK \in \text{PSpace}, K \notin \text{NP} für die keine Reduktion KpKNPNP-hardK \leq_p K_\text{NP} \in \text{NP-hard} existiert. (KpKPSpacePSpace-hardK \leq_p K_\text{PSpace} \in \text{PSpace-hard} muss existieren.)

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
b) Es gibt kein NP-schweres Problem, welches in PSpace liegt.

falsch, Gegenbeispiel: QBFNP-hard,QBFPSpace\text{QBF} \in \text{NP-hard}, \text{QBF} \in \text{PSpace}

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
c) Jedes NP-vollständige Problem liegt in PSpace.

wahr, NP-completeNPPSpace\text{NP-complete} \subseteq \text{NP} \subseteq \text{PSpace}

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
d) Es gilt NP=PSpace\text{NP} = \text{PSpace}, wenn es ein PSpace-schweres Problem in NP gibt.

wahr, wäre ein PSpace-schweres Problem PNPNPP_\text{NP} \in \text{NP}, dann würde die Reduktion PPSpacepPNPP_\text{PSpace} \leq_p P_\text{NP} für PPSpacePSpaceP_\text{PSpace} \in \text{PSpace} alle Probleme PPSpaceP_\text{PSpace} von PSpace in NP reduzieren.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
e) Wenn PNP\text{P} \neq \text{NP} gilt, dann gibt es kein NP-schweres Problem in P.

wahr, wäre ein NP-schweres Problem PNP-hardPP_\text{NP-hard} \in \text{P}, dann würde die Reduktion PNPpPNP-hardP_\text{NP} \leq_p P_\text{NP-hard} für PNPNPP_\text{NP} \in \text{NP} alle Probleme PNPP_\text{NP} von NP in P reduzieren.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
f) Sei LL ein PSpace-vollständiges Problem. Dann gilt LPP=PSpaceL \in \text{P} \Leftrightarrow \text{P} = \text{PSpace}.

wahr

Aufgabe 6.3

Zeigen Sie, dass PSpace unter Komplement, Durchschnitt, Vereinigung, Konkatenation und Kleene-Stern abgeschlossen ist.

L1,L2PSpace:\forall L_1, L_2 \in \text{PSpace}:

Aufgabe 6.4

Wir betrachten das japanische Spiel Gomoku, welches von zwei Spielern XX und OO auf einem 19×1919 \times 19-Brett gespielt wird. Die Spieler setzen abwechselnd ihre Steine auf das Brett, und derjenige Spieler, der zuerst fünf Steine in einer Reihe (horizontal, vertikal, oder diagonal) gelegt hat, gewinnt. Spieler XX beginnt.

Verallgemeinertes Gomoku wird statt auf einem Brett fester Größe auf einem beliebigen n×nn \times n-Brett gespielt. Eine Position in diesem Spiel ist eine Belegung der Felder des Spielbretts mit Steinen der Spieler XX und OO, wie sie in einem wirklichen Spiel auftreten könnte. Sei

GM:={enc(B)|B ist eine Position im verallgemeinerten Gomoku, in der X eine Gewinnstrategie hat}\text{GM} := \{\text{enc}(B) | \text{$B$ ist eine Position im verallgemeinerten Gomoku, in der $X$ eine Gewinnstrategie hat}\}

wobei enc(B)\text{enc}(B) die zeilenweise Kodierung der Position BB über einem festen Alphabet ist. Argumentieren Sie, warum GMPSpace\text{GM} \in \text{PSpace} gilt.

TODO

Aufgabe 6.5

Welche der folgenden Quantifizierten Booleschen Formeln (QBFs) sind wahr? Begründen Sie Ihre Antwort.
a) p1.p1\exists p_1.p_1

wahr, \exists verlangt, dass eine mögliche Belegung für p1p_1 existiert für die Formel p1p_1 wahr ist. Eine Möglichkeit ist p1=p_1 = \top.

Welche der folgenden Quantifizierten Booleschen Formeln (QBFs) sind wahr? Begründen Sie Ihre Antwort.
b) p1.p1\forall p_1.p_1

falsch, \forall verlangt, dass für alle möglichen Belegungen für p1p_1 die Formel p1p_1 wahr ist. Gegenbeispiel: p1=p_1 = \bot

Welche der folgenden Quantifizierten Booleschen Formeln (QBFs) sind wahr? Begründen Sie Ihre Antwort.
c) p1.\exists p_1.\bot

falsch, es existiert kein p1p_1 für das \bot wahr ist.

Welche der folgenden Quantifizierten Booleschen Formeln (QBFs) sind wahr? Begründen Sie Ihre Antwort.
d) p1.p2.p2p1\forall p_1.\exists p_2.p_2 \rightarrow p_1

wahr, für jedes p1p_1 ist die Formel p2.p2p1\exists p_2.p_2 \rightarrow p_1 mit p2=p_2 = \bot erfüllt.

Welche der folgenden Quantifizierten Booleschen Formeln (QBFs) sind wahr? Begründen Sie Ihre Antwort.
e) p1.p2.p3.(p1p2)p3\forall p_1.\exists p_2.\forall p_3.(p_1 \lor p_2) \land p_3

falsch, für alle p1p_1 existiert zwar p2=p_2 = \top, damit p1p2p_1 \lor p_2 wahr ist, aber für p3=p_3 = \bot ist (p1p2)p3(p_1 \lor p_2) \land p_3 nicht wahr.

Welche der folgenden Quantifizierten Booleschen Formeln (QBFs) sind wahr? Begründen Sie Ihre Antwort.
f) p1.p2.p3.p4.((p1p2)p4)¬p3\forall p_1.\forall p_2.\exists p_3.\forall p_4.(\bm{(}p_1 \land p_2\bm{)} \rightarrow p_4) \lor \lnot p_3

wahr, mit p3=p_3 = \bot ist ((p1p2)p4)¬p3(\bm{(}p_1 \land p_2\bm{)} \rightarrow p_4) \lor \lnot p_3 immer erfüllt.

7. Übungsblatt

Aufgabe M

Wir betrachten folgende Position im Tic-Tac-Toe:

XX
OO
OO XX

Angenommen, Spieler XX ist am Zug. Beschreiben Sie eine Gewinnstrategie für XX.

XX X
OO
OO XX

Aufgabe N

Zeigen Sie, dass für jedes PSpace-vollständige Problem LL auch das Komplement LL ein PSpace-vollständiges Problem ist.

Die Entscheider MLM_L für LPSpace-completePSpaceL \in \text{PSpace-complete} \subseteq \text{PSpace} darf zum Entscheiden eines Wortes ww höchstens p(|w|)p(|w|) Speicher nutzen. Der Entscheider M¬LM_{\neg L} simuliert MLM_L auf und kehrt anschließend dessen Ergebnis um. Damit braucht M¬LM_{\neg L} genauso viel Speicher wie MLM_L.

Aufgabe O

Zeigen Sie: ist P=NP\text{P} = \text{NP}, dann sind alle Sprachen LP\{,Σ*}L \in P \setminus \{\emptyset, \Sigma^{*}\} NP-vollständig.

TODO

Aufgabe 7.1

Zeigen Sie, dass das Wortproblem für linear beschränkte Turingmaschinen (LBA) PLBA:={enc(M)##enc(w)| M ist ein LBA, der w akzeptiert}P_\text{LBA} := \{\text{enc}(M)\#\#\text{enc}(w) |\text{ $M$ ist ein LBA, der $w$ akzeptiert}\} ein PSpace-vollständiges Problem ist.
Zur Erinnerung (aus Formale Systeme): Ein linear beschränkte Turingmaschine (linear bounded automaton, LBA) ist eine nichtdeterministische Turingmaschine, die den Lese-/Schreibkopf nicht über das letzte Eingabezeichen hinaus bewegen kann. Versucht sie das, so bleibt der Kopf stattdessen an der letzten Bandstelle stehen.

Musterlösung

Wir zeigen zuerst PLBAPSpaceP_\text{LBA} \in \text{PSpace}. Dafür muss zuerst geprüft werden, ob eine gegeben Eingabe von der Form enc(M)##enc(w)\text{enc}(M)\#\#\text{enc}(w) ist, wobei MM ein LBA ist. Dabei ist leicht zu sehen, dass in polynomieller Zeit geprüft werden kann, ob enc(M)\text{enc}(M) die Kodierung einer Turing-Maschine ist. Um zu sehen, dass MM ein LBA ist, genügt es dann zu prüfen, ob MM niemals ein ␣ überschreibt, und bei Lesen des ␣ dieses nicht überschreibt und den Lesekopf nach links bewegt. Auch dies kann in polynomieller Zeit geprüft werden.

Als nächstes muss ein Entscheider für PLBAP_\text{LBA} prüfen, ob M=(Q,Σ,Γ,δ,q0,F)M = (Q, \Sigma, \Gamma, \delta, q_0, F) die Eingabe ww akzeptiert. Dazu beobachten wir, dass die Maschine MM höchstens |Q|n|Γ|n\left| Q \right| \cdot n \cdot \left| \Gamma \right|^n Konfigurationen durchläuft, bevor sie in eine Schleife gerät. Es genügt also, die Maschine MM für höchstens |Q|n|Γ|n\left| Q \right| \cdot n \cdot \left| \Gamma \right|^n Schritte zu simulieren um zu entscheiden, ob MM das Wort ww erkennt. Die Simulation von MM selbst benötigt nur linear Platz (da MM ein LBA ist), und hinzu kommt noch Platz für einen Zähler, dessen Wert höchstens |Q|n|Γ|n\left| Q \right| \cdot n \cdot \left| \Gamma \right|^n ist und der deswegen höchstens Platz log|Q|+logn+nlog|Γ|\log{\left| Q \right|} + \log{n} + n \cdot \log{\left| \Gamma \right|} benötigt. Dies gesamte Simulation kann also in polynomiellen Platz ausgeführt werden.

Wir zeigen nun, dass PLBAP_\text{LBA} PSpace-hart ist. Sei dazu LPSpaceL \in \text{PSpace} und sei MM eine polynomiell platzbeschränkte Turing-Maschine, die LL entscheidet. Sei pp ein Polynom, welches den Platzverbrauch von MM beschränkt. Ohne Einschränkung sei dabei p(n)np(n) \geq n für alle nn \in \mathbb{N}. Definiere dann pad(w)\text{pad}(w) durch pad(w)=wk,\text{pad}(w) = w\bot^{k}, wobei \bot ein neues Symbol ist, so dass |pad(w)|=p(|w|)\left| \text{pad}(w) \right| = p(\left| w \right|) gilt.

Sei nun MM' die Turing-Maschine, welche MM auf der Eingabe simuliert und dabei das \bot-Zeichen wie behandelt. Dies kann erreicht werden, indem in der Übergangsfunktion von MM jedes Vorkommen von durch \bot ersetzt wird, und zusätzlich noch die Transition hinzugefügt wird, dass MM' bei Lesen von den Lesekopf nach links bewegt und wieder schreibt. Dann ist MM' ein LBA und es gilt M akzeptiert wM akzeptiert w.M' \text{ akzeptiert } w \iff M \text{ akzeptiert } w. Also ist f(enc(w))=enc(M)##enc(pad(w))f(\text{enc}(w)) = \text{enc}(M')\#\#\text{enc}(\text{pad}(w)) eine polynomiell zeitbeschränkte Reduktion von LL auf PLBAP_\text{LBA}. Da LL beliebig gewählt war folgt, dass PLBAP_\text{LBA} PSpace-hart ist.

TODO

Aufgabe 7.2

Begründen Sie folgende Aussagen:
a) Ist P=NP\text{P} = \text{NP}, dann ist NP=coNP\text{NP} = \text{coNP}.

Begründen Sie folgende Aussagen:
b) Ist PNP\text{P} \neq \text{NP}, dann gilt PcoNP\text{P} \neq \text{coNP}, LNP\text{L} \neq \text{NP} und PPSpace\text{P} \neq \text{PSpace}.

Aufgabe 7.3

Wir betrachten folgendes Scheduling-Problem: Gegeben sind Prüfungen P1,,PkP_1, \ldots, P_k und Studierende S1,,SS_1, \ldots, S_\ell, so dass jede Prüfung von einer bestimmten Menge von Studierenden abgelegt wird. Die Aufgabe ist, die Prüfungen so in Zeitslots zu legen, dass niemand zwei Prüfungen im selben Zeitslot ablegen muss. Formalisieren Sie die Frage, ob solch ein Prüfungsplan mit höchstens hh Zeitslots möglich ist, als eine formale Sprache und zeigen Sie, dass diese NP-vollständig ist. Nutzen Sie dazu die Tatsache, dass Färbbarkeit von Graphen NP-vollständig ist.

P:={P1,,Pk}P := \{P_1, \ldots, P_k\}
S:={S1,,P}S := \{S_1, \ldots, P_\ell\}
L:={enc(P,S,h)|L := \{\text{enc}(P, S, h) | Es gibt eine Zuordnung von \ell Studenten auf kk Prüfungen in hh Zeitslots ohne Überschneidungen}\}

LL ist NP-complete, wenn PGraph-ColoringpLP_\text{Graph-Coloring} \leq_p L:

Polynomielle Reduktion mit O(|E|)O(\left| E \right|) existiert, damit ist LNP-completeL \in \text{NP-complete}.

Aufgabe 7.4

Zeigen Sie, dass folgendes Problem unentscheidbar ist: Gegeben eine Turing-Maschine MM und eine Zahl kk \in \mathbb{N}, ist MM eine O(nk)O(n^k)-zeitbeschränkte Turing-Maschine?

TODO

8. Übungsblatt

Aufgabe P

Geben Sie für die Formel F=x.y.(p(c1,z)(q(x,c2,z)p(c2,y)))F = \forall x.\exists y.(p(c_1, z) \land (q(x, c_2, z) \lor p(c_2, y))) wobei c1c_1, c2c_2 Konstanten sind, folgendes an:
a) die Menge aller Teilformeln;

  1. p(c1,z)p(c_1, z)
  2. q(x,c2,z)q(x, c_2, z)
  3. p(c2,y)p(c_2, y)
  4. q(x,c2,z)p(c2,y)q(x, c_2, z) \lor p(c_2, y)
  5. p(c1,z)(q(x,c2,z)p(c2,y))p(c_1, z) \land (q(x, c_2, z) \lor p(c_2, y))
  6. y.(p(c1,z)(q(x,c2,z)p(c2,y)))\exists y.(p(c_1, z) \land (q(x, c_2, z) \lor p(c_2, y)))
  7. x.y.(p(c1,z)(q(x,c2,z)p(c2,y)))\forall x.\exists y.(p(c_1, z) \land (q(x, c_2, z) \lor p(c_2, y)))

Geben Sie für die Formel F=x.y.(p(c1,z)(q(x,c2,z)p(c2,y)))F = \forall x.\exists y.(p(c_1, z) \land (q(x, c_2, z) \lor p(c_2, y))) wobei c1c_1, c2c_2 Konstanten sind, folgendes an:
b) die Menge aller Terme;

Geben Sie für die Formel F=x.y.(p(c1,z)(q(x,c2,z)p(c2,y)))F = \forall x.\exists y.(p(c_1, z) \land (q(x, c_2, z) \lor p(c_2, y))) wobei c1c_1, c2c_2 Konstanten sind, folgendes an:
c) die Menge aller Variablen, mit Unterscheidung freier und gebundener Variablen;

Geben Sie für die Formel F=x.y.(p(c1,z)(q(x,c2,z)p(c2,y)))F = \forall x.\exists y.(p(c_1, z) \land (q(x, c_2, z) \lor p(c_2, y))) wobei c1c_1, c2c_2 Konstanten sind, folgendes an:
d) ein Interpretation II und eine Zuweisung ZZ für II, so dass I,ZFI, Z \models F.

x.y.(\forall x.\exists y. ( p(c1,z)p(c_1, z) (\land ( q(x,c2,z)q(x, c_2, z) \lor p(c2,y)p(c_2, y) ))))
x.y.(\forall x.\exists y. ( p(a,z)p(a, z) (\land ( q(x,b,z)q(x, b, z) \lor p(b,y)p(b, y) ))))
x.y.(\forall x.\exists y. ( \top (\land ( \bot \lor \top ))))

Aufgabe Q

Zeigen Sie die folgenden Aussagen:
a) Es gilt {F}G\left\{ F \right\} \models G genau dann, wenn FGF \rightarrow G allgemeingültig ist.

{F}G\left\{ F \right\} \models G: jedes Modell von FF ist auch ein Modell von GG

I⊭FI \not\models F I⊭GI \not\models G erfüllt
I⊭FI \not\models F IGI \models G erfüllt
IFI \models F I⊭GI \not\models G nicht erfüllt
IFI \models F IGI \models G erfüllt

TODO

siehe 14. Vorlesung, Seite 9: Formeln interpretieren

Zeigen Sie die folgenden Aussagen:
b) Es gilt {F1,,Fk}G\{F_1, \ldots, F_k\} \models G genau dann, wenn i=1kFiG\displaystyle \bigwedge_{i=1}^k F_i \rightarrow G allgemeingültig ist.

siehe Deduktionstheorem auf Wikipedia

TODO

Aufgabe R

Seien FF, GG Formeln und xx eine Variable. Zeigen Sie, dass dann gilt x.(FG)x.Fx.G\exists x.(F \rightarrow G) \equiv \forall x.F \rightarrow \exists x.G.

Aufgabe 8.1

Gegeben sei ein Universum aus verschiedenen Personen und Speisen und ein Prädikat mag\text{mag}, so dass mag(x,y)\text{mag}(x, y) ausdrückt “x mag y”.
a) “Übersetzen” Sie folgende prädikatenlogische Formeln in natürlichsprachlich formulierte Aussagen:

  1. x.mag(x,Eiscreme)\forall x.\text{mag}(x, \text{Eiscreme}).
  2. x.y.mag(x,y)\forall x.\exists y.\text{mag}(x, y).
  3. x.y.mag(x,y)¬mag(x,y)\forall x.\forall y.\text{mag}(x, y) \lor \lnot \text{mag}(x, y).
  1. Jeder mag Eiscreme.
  2. Jeder mag irgendwas.
  3. TODO

Gegeben sei ein Universum aus verschiedenen Personen und Speisen und ein Prädikat mag\text{mag}, so dass mag(x,y)\text{mag}(x, y) ausdrückt “x mag y”.
a) “Übersetzen” Sie folgende natürlichsprachlich formulierte Aussagen in prädikatenlogische Formeln:

  1. Tom mag keinen Fisch.
  2. Jeder, der Pizza mag, mag auch Spaghetti.
  3. Es gibt niemanden, der alles mag.
  1. ¬mag(Tom,Fisch)\lnot \text{mag}(\text{Tom}, \text{Fisch})
  2. x.mag(x,Pizza)mag(x,Spaghetti)\forall x.\text{mag}(x, \text{Pizza}) \rightarrow \text{mag}(x, \text{Spaghetti})
  3. x.y.¬mag(x,y)\forall x.\exists y.\lnot \text{mag}(x, y)

Aufgabe 8.2

Welche der angegebenen Strukturen sind Modelle der folgenden Formel? x.p(x,x)x,y.((p(x,y)p(y,x))xy)x,y,z.((p(x,y)p(y,z))p(x,z))\forall x. p(x, x) \land \forall x, y. ((p(x, y) \land p(y, x)) \rightarrow x \approx y) \land \forall x, y, z. ((p(x, y) \land p(y, z)) \rightarrow p(x, z)) a) I1I_1 mit Grundmenge \mathbb{N} und pI1={(m,n)|m<n}p^{I_1} = \{(m, n) | m < n\};

I1I_1 ist kein Modell, da x.p(x,x)\forall x.p(x, x) (p(a,b):=(a<b)p(a, b) := (a < b)) nicht erfüllt ist.

Welche der angegebenen Strukturen sind Modelle der folgenden Formel? x.p(x,x)x,y.((p(x,y)p(y,x))xy)x,y,z.((p(x,y)p(y,z))p(x,z))\forall x. p(x, x) \land \forall x, y. ((p(x, y) \land p(y, x)) \rightarrow x \approx y) \land \forall x, y, z. ((p(x, y) \land p(y, z)) \rightarrow p(x, z)) b) I2I_2 mit Grundmenge \mathbb{N} und pI2={(n,n+1)|n}p^{I_2} = \{(n, n + 1) | n \in \mathbb{N}\};

I2I_2 ist kein Modell, da x.p(x,x)\forall x.p(x, x) (p(a,b):=(a+1=b)p(a, b) := (a + 1 = b)) nicht erfüllt ist.

Welche der angegebenen Strukturen sind Modelle der folgenden Formel? x.p(x,x)x,y.((p(x,y)p(y,x))xy)x,y,z.((p(x,y)p(y,z))p(x,z))\forall x. p(x, x) \land \forall x, y. ((p(x, y) \land p(y, x)) \rightarrow x \approx y) \land \forall x, y, z. ((p(x, y) \land p(y, z)) \rightarrow p(x, z)) c) I3I_3 mit Grundmenge \mathbb{N} und pI3={(m,n)|m teilt n}p^{I_3} = \{(m, n) | \text{$m$ teilt $n$}\};

I3I_3 ist ein Modell.

Welche der angegebenen Strukturen sind Modelle der folgenden Formel? x.p(x,x)x,y.((p(x,y)p(y,x))xy)x,y,z.((p(x,y)p(y,z))p(x,z))\forall x. p(x, x) \land \forall x, y. ((p(x, y) \land p(y, x)) \rightarrow x \approx y) \land \forall x, y, z. ((p(x, y) \land p(y, z)) \rightarrow p(x, z)) d) I4I_4 mit Grundmenge Σ*\Sigma^{*} für ein Alphabet Σ\Sigma und pI4={(x,y)|x ist Präfix von y}p^{I_4} = \{(x, y) | \text{$x$ ist Präfix von $y$}\};

I4I_4 ist ein Modell.

Welche der angegebenen Strukturen sind Modelle der folgenden Formel? x.p(x,x)x,y.((p(x,y)p(y,x))xy)x,y,z.((p(x,y)p(y,z))p(x,z))\forall x. p(x, x) \land \forall x, y. ((p(x, y) \land p(y, x)) \rightarrow x \approx y) \land \forall x, y, z. ((p(x, y) \land p(y, z)) \rightarrow p(x, z)) e) I5I_5 mit Grundmenge 𝒫(M)\mathcal{P}(M) für eine Menge MM und pI5={(X,Y)|XY}p^{I_5} = \{(X, Y) | X \subseteq Y\};

I5I_5 ist ein Modell.

Aufgabe 8.3

a) Geben Sie je eine erfüllbare Formel in Prädikatenlogik mit Gleichheit an, so dass alle Modelle

  1. höchstens drei,
  2. mindestens drei,
  3. genau drei

Elemente in der Grundmenge besitzen.

  1. TODO
  2. TODO
  3. TODO

b) Geben Sie je eine erfüllbare Formel in Prädikatenlogik mit Gleichheit an, so dass das zweistellige Prädikatensymbol pp in jedem Modell als der Graph einer

  1. injektiven Funktion,
  2. surjektiven Funktion,
  3. bijektiven Funktion

interpretiert wird. (Der Graph einer Funktion f:ABf : A \rightarrow B ist die Relation {(x,y)A×B|f(x)=y}\{(x, y) \in A \times B | f(x) = y\}.)

  1. x1A,x2A,yB.((p(x1,y)p(x2,y))x1x2\forall x_1 \in A, x_2 \in A, y \in B. ((p(x_1, y) \land p(x_2, y)) \rightarrow x_1 \approx x_2
  2. yB.xA.p(x,y)\forall y \in B. \exists x \in A. p(x, y)
  3. (x1A,x2A,yB.((p(x1,y)p(x2,y))x1x2)(yB.xA.p(x,y))(\forall x_1 \in A, x_2 \in A, y \in B. ((p(x_1, y) \land p(x_2, y)) \rightarrow x_1 \approx x_2) \land (\forall y \in B. \exists x \in A. p(x, y))

Aufgabe 8.4

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
a) Sind Γ\Gamma und Γ\Gamma' Mengen von prädikatenlogischen Formeln, dann folgt aus ΓΓ\Gamma \subseteq \Gamma' und ΓF\Gamma \models F auch ΓF\Gamma' \models F.

wahr TODO

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
b) Jede aussagenlogische Formel ist eine prädikatenlogische Formel.

wahr, Aussagenlogik ist Prädikatenlogik ohne Prädikate, Variablen oder Quantoren

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
c) Eine prädikatenlogische Formel FF ist genau dann allgemeingültig, wenn ¬F\lnot F unerfüllbar ist.

wahr TODO

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
d) Es gilt {x,y.(p(x,y)p(y,x)),x,y,z.((p(x,y)p(y,z))p(x,z))}x.p(x,x)\{\forall x, y. (p(x, y) \rightarrow p(y, x)), \forall x, y, z. ((p(x, y) \land p(y, z)) \rightarrow p(x, z))\} \models \forall x. p(x, x)

wahr

9. Übungsblatt

Aufgabe S

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
a) Jede Formel in Pränexform ist in Skolemform.

falsch, Formeln in Pränexform können einen \exists-Quantor enthalten.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
b) Jede Formel in Skolemform ist in Pränexform.

wahr, alle \forall-Quantoren stehen am Anfang der Formel.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
c) Jede Formel ist äquivalent zu einer bereinigten Formel.

wahr, gebundene Variablen können umbenannt werden.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
d) Jede Formel ist äquivalent zu einer bereinigten Formel in Pränexform.

wahr, bei Umwandlung in Pränexform finden nur äquivalenzerhaltende Operation statt.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
e) Jede Formel ist äquivalent zu einer bereinigten Formel in Skolemform.

falsch, eine Formel in Skolemform ist nur erfüllbarkeits-äquivalent.

Aufgabe T

Formalisieren Sie die folgenden Aussagen in Prädikatenlogik:
a) Jeder Drache ist glücklich, wenn alle seine Drachen-Kinder fliegen können.

d.((drache(d)k.(kind(k,d)fliegen(k)))glücklich(d))\forall d. ((\text{drache}(d) \land \forall k. (\text{kind}(k, d) \rightarrow \text{fliegen}(k))) \rightarrow \text{glücklich}(d))

Formalisieren Sie die folgenden Aussagen in Prädikatenlogik:
b) Grüne Drachen können fliegen.

d.((drache(d)grün(d))fliegen(d))\forall d. ((\text{drache}(d) \land \text{grün}(d)) \rightarrow \text{fliegen}(d))

Formalisieren Sie die folgenden Aussagen in Prädikatenlogik:
c) Ein Drache ist grün, wenn er Kind mindestens eines grünen Drachen ist.

d.((drache(d)(e.(drache(e)(grün(e)kind(d,e)))))grün(d))\forall d. ((\text{drache}(d) \land (\exists e. (\text{drache}(e) \land (\text{grün}(e) \land \text{kind}(d, e))))) \rightarrow \text{grün}(d))

Formalisieren Sie die folgenden Aussagen in Prädikatenlogik:
d) Alle grünen Drachen sind glücklich.
Zeigen Sie, dass die letzte Aussage aus den ersten drei folgt.

d.((drache(d)grün(d))glücklich(d)\forall d. ((\text{drache}(d) \land \text{grün}(d)) \rightarrow \text{glücklich}(d)

Aufgabe 9.1

Formalisieren Sie Bertrand Russells Barbier-Paradoxon

Der Barbier rasiert genau diejenigen Personen, die sich nicht selbst rasieren.

als eine prädikatenlogische Formel und zeigen Sie, dass diese unerfüllbar ist.

Nehmen Sie dafür an, dass der Barbier durch eine Konstante bb repräsentiert wird und dass für die Relation * rasiert y durch ein zweistelliges Prädikatensybol rr ausgedrückt wird.

Aufgabe 9.2

Bestimmen Sie zu jeder der folgenden Formeln eine äquivalente bereinigte Formel in Pränexform.
a) x.(p(x,x)¬y.q(x,y))\forall x. (p(x, x) \leftrightarrow \lnot \exists y. q(x, y))

  1. x.(p(x,x)¬y.q(x,y))\forall x. (p(x, x) \leftrightarrow \lnot \exists y. q(x, y))
  2. Äquivalenz auflösen: x.((p(x,x)¬y.q(x,y))(¬y.q(x,y)p(x,x)))\forall x. ((p(x, x) \rightarrow \lnot \exists y. q(x, y)) \land (\lnot \exists y. q(x, y) \rightarrow p(x, x)))
  3. Bereinigung: x.((p(x,x)¬y1.q(x,y1))(¬y2.q(x,y2)p(x,x)))\forall x. ((p(x, x) \rightarrow \lnot \exists y_1. q(x, y_1)) \land (\lnot \exists y_2. q(x, y_2) \rightarrow p(x, x)))
  4. Implikationen auflösen: x.((¬p(x,x)¬y1.q(x,y1))(y2.q(x,y2)p(x,x)))\forall x. ((\lnot p(x, x) \lor \lnot \exists y_1. q(x, y_1)) \land (\exists y_2. q(x, y_2) \lor p(x, x)))
  5. ¬x.Ax.¬A\lnot \exists x. A \Leftrightarrow \forall x. \lnot A:
    x.((¬p(x,x)y1.¬q(x,y1))(y2.q(x,y2)p(x,x)))\forall x. ((\lnot p(x, x) \lor \forall y_1. \lnot q(x, y_1)) \land (\exists y_2. q(x, y_2) \lor p(x, x)))
  6. Quantoren nach vorne ziehen: x.y1.y2.((¬p(x,x)¬q(x,y1))(q(x,y2)p(x,x)))\forall x. \forall y_1. \exists y_2. ((\lnot p(x, x) \lor \lnot q(x, y_1)) \land (q(x, y_2) \lor p(x, x)))

Bestimmen Sie zu jeder der folgenden Formeln eine äquivalente bereinigte Formel in Pränexform.
b) x.p(f(x,x))(q(x,z)x.p(g(x,y,z)))\forall x. p(f(x, x)) \lor (q(x, z) \rightarrow \exists x.p(g(x, y, z)))

  1. x.p(f(x,x))(q(x,z)x.p(g(x,y,z)))\forall x. p(f(x, x)) \lor (q(x, z) \rightarrow \exists x. p(g(x, y, z)))
  2. Bereinigung: x1.p(f(x1,x1))(q(x1,z)x2.p(g(x2,y,z)))\forall x_1. p(f(x_1, x_1)) \lor (q(x_1, z) \rightarrow \exists x_2. p(g(x_2, y, z)))
  3. Implikation auflösen: x1.p(f(x1,x1))(¬q(x1,z)x2.p(g(x2,y,z)))\forall x_1. p(f(x_1, x_1)) \lor (\lnot q(x_1, z) \lor \exists x_2. p(g(x_2, y, z)))
  4. Quantoren nach vorne ziehen: x1.x2.p(f(x1,x1))(¬q(x1,z)p(g(x2,y,z)))\forall x_1. \exists x_2. p(f(x_1, x_1)) \lor (\lnot q(x_1, z) \lor p(g(x_2, y, z)))

Bestimmen Sie zu jeder der folgenden Formeln eine äquivalente bereinigte Formel in Pränexform.
c) x.p(x)(y.x.q(x,g(y))y.(r(f(y))¬q(y,x)))\forall x. p(x) \land (\forall y. \exists x. q(x, g(y)) \rightarrow \exists y. (r(f(y)) \lor \lnot q(y, x)))

  1. x.p(x)(y.x.q(x,g(y))y.(r(f(y))¬q(y,x)))\forall x. p(x) \land (\forall y. \exists x. q(x, g(y)) \rightarrow \exists y. (r(f(y)) \lor \lnot q(y, x)))
  2. Bereinigung: x1.p(x1)(y1.x2.q(x2,g(y1))y2.(r(f(y2))¬q(y2,x1)))\forall x_1. p(x_1) \land (\forall y_1. \exists x_2. q(x_2, g(y_1)) \rightarrow \exists y_2. (r(f(y_2)) \lor \lnot q(y_2, x_1)))
  3. Implikationen auflösen: x1.p(x1)(¬y1.x2.q(x2,g(y1))y2.(r(f(y2))¬q(y2,x1)))\forall x_1. p(x_1) \land (\lnot \forall y_1. \exists x_2. q(x_2, g(y_1)) \lor \exists y_2. (r(f(y_2)) \lor \lnot q(y_2, x_1)))
  4. ¬y1.x2.Ay1.x2.¬A\lnot \forall y_1. \exists x_2. A \Leftrightarrow \exists y_1. \forall x_2. \lnot A:
    x1.p(x1)(y1.x2.¬q(x2,g(y1))y2.(r(f(y2))¬q(y2,x1)))\forall x_1. p(x_1) \land (\exists y_1. \forall x_2. \lnot q(x_2, g(y_1)) \lor \exists y_2. (r(f(y_2)) \lor \lnot q(y_2, x_1)))
  5. Quantoren nach vorne ziehen: x1.y1.x2.y2.(p(x1)(¬q(x2,g(y1))(r(f(y2))¬q(y2,x1))))\forall x_1. \exists y_1. \forall x_2. \exists y_2. (p(x_1) \land (\lnot q(x_2, g(y_1)) \lor (r(f(y_2)) \lor \lnot q(y_2, x_1))))

Aufgabe 9.3

Bestimmen Sie zu jeder der folgenden Formeln eine erfüllbarkeitsäquivalente bereinigte Formel in Skolemform.
a) p(x)x.q(x,x)x.p(f(x))p(x) \lor \exists x. q(x, x) \lor \forall x. p(f(x))

  1. p(x)x.q(x,x)x.p(f(x))p(x) \lor \exists x. q(x, x) \lor \forall x. p(f(x))
  2. p(x)x1.q(x1,x1)x2.p(f(x2))p(x) \lor \exists x_1. q(x_1, x_1) \lor \forall x_2. p(f(x_2))
  3. x1.x2.(p(x)q(x1,x1)p(f(x2)))\exists x_1. \forall x_2. (p(x) \lor q(x_1, x_1) \lor p(f(x_2)))
  4. x1a1x_1 \Rightarrow a_1:
    x2.(p(x)q(a1,a1)p(f(x2)))\forall x_2. (p(x) \lor q(a_1, a_1) \lor p(f(x_2)))

Bestimmen Sie zu jeder der folgenden Formeln eine erfüllbarkeitsäquivalente bereinigte Formel in Skolemform.
b) x.y.q(f(x),g(y))x.(p(x,y,y)q(h(y),x))\forall x. \exists y. q(f(x), g(y)) \land \forall x. (p(x, y, y) \lor q(h(y), x))

  1. x.y.q(f(x),g(y))x.(p(x,y,y)q(h(y),x))\forall x. \exists y. q(f(x), g(y)) \land \forall x. (p(x, y, y) \lor q(h(y), x))
  2. x1.y1.q(f(x1),g(y1))x2.(p(x2,y,y)q(h(y),x2))\forall x_1. \exists y_1. q(f(x_1), g(y_1)) \land \forall x_2. (p(x_2, y, y) \lor q(h(y), x_2))
  3. x1.y1.x2.(q(f(x1),g(y1))(p(x2,y,y)q(h(y),x2)))\forall x_1. \exists y_1. \forall x_2. (q(f(x_1), g(y_1)) \land (p(x_2, y, y) \lor q(h(y), x_2)))
  4. y1f1(x1)y_1 \Rightarrow f_1(x_1):
    x1.x2.(q(f(x1),g(f1(x1)))(p(x2,y,y)q(h(y),x2)))\forall x_1. \forall x_2. (q(f(x_1), g(f_1(x_1))) \land (p(x_2, y, y) \lor q(h(y), x_2)))

Bestimmen Sie zu jeder der folgenden Formeln eine erfüllbarkeitsäquivalente bereinigte Formel in Skolemform.
c) x.x.(p(x)q(x,x))x.y.(q(x,g(y,z))z.q(z,z))\forall x. \forall x. (p(x) \leftrightarrow q(x, x)) \lor \exists x. \forall y. (q(x, g(y, z)) \land \exists z. q(z, z))

  1. x.x.(p(x)q(x,x))x.y.(q(x,g(y,z))z.q(z,z))\forall x. \forall x. (p(x) \leftrightarrow q(x, x)) \lor \exists x. \forall y. (q(x, g(y, z)) \land \exists z. q(z, z))
  2. x.x.((p(x)q(x,x))(q(x,x)p(x)))x.y.(q(x,g(y,z))z.q(z,z))\forall x. \forall x. ((p(x) \rightarrow q(x, x)) \land (q(x, x) \rightarrow p(x))) \lor \exists x. \forall y. (q(x, g(y, z)) \land \exists z. q(z, z))
  3. x1.x2.((p(x2)q(x2,x2))(q(x2,x2)p(x2)))x3.y1.(q(x3,g(y1,z))z1.q(z1,z1))\forall x_1. \forall x_2. ((p(x_2) \rightarrow q(x_2, x_2)) \land (q(x_2, x_2) \rightarrow p(x_2))) \lor \exists x_3. \forall y_1. (q(x_3, g(y_1, z)) \land \exists z_1. q(z_1, z_1)) (yy1y \Rightarrow y_1 ist nicht notwendig, schadet aber auch nicht.)
  4. x1.x2.((¬p(x2)q(x2,x2))(¬q(x2,x2)p(x2)))x3.y1.(q(x3,g(y1,z))z1.q(z1,z1))\forall x_1. \forall x_2. ((\lnot p(x_2) \lor q(x_2, x_2)) \land (\lnot q(x_2, x_2) \lor p(x_2))) \lor \exists x_3. \forall y_1. (q(x_3, g(y_1, z)) \land \exists z_1. q(z_1, z_1))
  5. x1.x2.x3.y1.z1.(((¬p(x2)q(x2,x2))(¬q(x2,x2)p(x2)))(q(x3,g(y1,z))q(z1,z1)))\forall x_1. \forall x_2. \exists x_3. \forall y_1. \exists z_1. (((\lnot p(x_2) \lor q(x_2, x_2)) \land (\lnot q(x_2, x_2) \lor p(x_2))) \lor (q(x_3, g(y_1, z)) \land q(z_1, z_1)))
  6. x3fx3(x1,x2)x_3 \Rightarrow f_{x_3}(x_1, x_2):
    x1.x2.y1.z1.(((¬p(x2)q(x2,x2))(¬q(x2,x2)p(x2)))(q(fx3(x1,x2),g(y1,z))q(z1,z1)))\forall x_1. \forall x_2. \forall y_1. \exists z_1. (((\lnot p(x_2) \lor q(x_2, x_2)) \land (\lnot q(x_2, x_2) \lor p(x_2))) \lor (q(f_{x_3}(x_1, x_2), g(y_1, z)) \land q(z_1, z_1)))
  7. z1fz1(x1,x2,y1)z_1 \Rightarrow f_{z_1}(x_1, x_2, y_1):
    x1.x2.y1.(((¬p(x2)q(x2,x2))(¬q(x2,x2)p(x2)))(q(fx3(x1,x2),g(y1,z))q(fz1(x1,x2,y1),fz1(x1,x2,y1))))\forall x_1. \forall x_2. \forall y_1. (((\lnot p(x_2) \lor q(x_2, x_2)) \land (\lnot q(x_2, x_2) \lor p(x_2))) \lor (q(f_{x_3}(x_1, x_2), g(y_1, z)) \land q(f_{z_1}(x_1, x_2, y_1), f_{z_1}(x_1, x_2, y_1))))

Aufgabe 9.4

Zeigen Sie, dass Allgemeingültigkeit von Formeln der Prädikatenlogik erster Stufe in Skolemform entscheidbar ist.

Musterlösung

Es sei FF eine quantorenfreie Formel mit Variablen x1,,xnx_1, \dots, x_n. Dann gilt x1,,xn.F\forall x_1, \ldots, x_n. F ist allgemeingültig x1,,xn.¬F\Leftrightarrow \exists x_1, \ldots, x_n. \lnot F ist unerfüllbar ¬F[x1/a1,,xn/an]\Leftrightarrow \lnot F [x_1/a_1, \ldots, x_n/a_n] ist unerfüllbar (Skolemisierung mit Konstanten a1,,ana_1, \ldots, a_n).

Es ist also x1,,xn.F\forall x_1, \ldots, x_n. F allgemiengültig genau dann, wenn ¬F[x1/a1,...,xn/an]\lnot F[x_1/a_1, ... , x_n/a_n] unerfüllbar ist. Letzteres ist aber essentiell eine aussagenlogische Formel, und deren Erfüllbarkeit ist entscheidbar.

10. Übungsblatt

Aufgabe U

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
a) Zwei prädikatenlogische Formeln FF und GG sind äquivalent, wenn die Formel FGF \leftrightarrow G allgemeingültig ist.

wahr, TODO

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
b) Jede erfüllbare Formel der Prädikatenlogik erster Stufe hat ein endliches Modell.

falsch, ΔI\Delta^I kann unendlich sein.

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
c) Jede erfüllbare Formel der Prädikatenlogik erster Stufe hat ein abzählbares Modell.

wahr, siehe Satz von Löwenheim-Skolem

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
d) Jede Skolemformel hat höchstens eine Herbrand-Interpretation.

TODO

Welche der folgenden Aussagen sind wahr? Begründen Sie Ihre Antwort.
e) Jede Skolemformel hat mindestens ein Herbrand-Modell.

falsch, lediglich jede erfüllbare Skolemform hat ein Herbrand-Modell.

Aufgabe V

Zeigen Sie, dass man das Resolutionsverfahren der Prädikatenlogik erster Stufe auch zum Nachweis von semantischen Konsequenzen nutzen kann, indem Sie die Äquivalenz der folgenden Aussagen nachweisen:
a) ΓF\Gamma \models F.

TODO

Zeigen Sie, dass man das Resolutionsverfahren der Prädikatenlogik erster Stufe auch zum Nachweis von semantischen Konsequenzen nutzen kann, indem Sie die Äquivalenz der folgenden Aussagen nachweisen:
b) Γ¬F\Gamma \cup {\lnot F} ist unerfüllbar.

TODO

Zeigen Sie, dass man das Resolutionsverfahren der Prädikatenlogik erster Stufe auch zum Nachweis von semantischen Konsequenzen nutzen kann, indem Sie die Äquivalenz der folgenden Aussagen nachweisen:
c) ΓF\bigwedge \Gamma \rightarrow F ist allgemeingültig.
Hierbei sei Γ=γ1γn\bigwedge \Gamma = \gamma_1 \land \ldots \land \gamma_n für Γ={γ1,,γn}\Gamma = \{\gamma_1, \ldots, \gamma_n\}.

TODO

Zeigen Sie, dass man das Resolutionsverfahren der Prädikatenlogik erster Stufe auch zum Nachweis von semantischen Konsequenzen nutzen kann, indem Sie die Äquivalenz der folgenden Aussagen nachweisen:
d) Γ¬F\bigwedge \Gamma \land \lnot F ist unerfüllbar.
Hierbei sei Γ=γ1γn\bigwedge \Gamma = \gamma_1 \land \ldots \land \gamma_n für Γ={γ1,,γn}\Gamma = \{\gamma_1, \ldots, \gamma_n\}.

TODO

Aufgabe 10.1

Bestimmen Sie jeweils einen allgemeinsten Unifikator für die folgenden Unifikationsprobleme, oder begründen Sie, warum kein allgemeinster Unifikator existiert. Verwenden Sie hierfür den Algorithmus aus der Vorlesung. Dabei sind xx, yy Variablen und aa, bb Konstanten.
a) {f(x)=̇g(x,y),y=̇f(a)}\{ f(x) \dot= g(x, y), y \dot= f(a) \}

  1. {f(x)=̇g(x,y),y=̇f(a)}\{ f(x) \dot= g(x, y), y \dot= f(a) \}
  2. Eliminierung: {f(x)=̇g(x,f(a)),y=̇f(a)}\{ f(x) \dot= g(x, f(a)), y \dot= f(a) \}
  3. Löschen, Zerlegung, Orietierung oder Eliminierung nicht möglich

Bestimmen Sie jeweils einen allgemeinsten Unifikator für die folgenden Unifikationsprobleme, oder begründen Sie, warum kein allgemeinster Unifikator existiert. Verwenden Sie hierfür den Algorithmus aus der Vorlesung. Dabei sind xx, yy Variablen und aa, bb Konstanten.
b) {f(g(x,y))=̇f(g(a,h(b)))}\{ f(g(x, y)) \dot= f(g(a, h(b))) \}

  1. {f(g(x,y))=̇f(g(a,h(b)))}\{ f(g(x, y)) \dot= f(g(a, h(b))) \}
  2. Zerlegung: {g(x,y)=̇g(a,h(b))}\{ g(x, y) \dot= g(a, h(b)) \}
  3. Zerlegung: {x=̇a,y=̇h(b)}\{ x \dot= a, y \dot= h(b) \}
  4. {xa,yh(b)}\{ x \mapsto a, y \mapsto h(b) \}

Bestimmen Sie jeweils einen allgemeinsten Unifikator für die folgenden Unifikationsprobleme, oder begründen Sie, warum kein allgemeinster Unifikator existiert. Verwenden Sie hierfür den Algorithmus aus der Vorlesung. Dabei sind xx, yy Variablen und aa, bb Konstanten.
c) {f(x,y)=̇x,y=̇g(x)}\{ f(x, y) \dot= x, y \dot= g(x) \}

  1. {f(x,y)=̇x,y=̇g(x)}\{ f(x, y) \dot= x, y \dot= g(x) \}
  2. Eliminierung: {f(x,g(x))=̇x,y=̇g(x)}\{ f(x, g(x)) \dot= x, y \dot= g(x) \}
  3. Orientierung: {x=̇f(x,g(x)),y=̇g(x)}\{ x \dot= f(x, g(x)), y \dot= g(x) \}
  4. Löschen, Zerlegung, Orietierung oder Eliminierung nicht möglich

Bestimmen Sie jeweils einen allgemeinsten Unifikator für die folgenden Unifikationsprobleme, oder begründen Sie, warum kein allgemeinster Unifikator existiert. Verwenden Sie hierfür den Algorithmus aus der Vorlesung. Dabei sind xx, yy Variablen und aa, bb Konstanten.
d) {f(g(x),y)=̇f(g(x),a),g(x)=̇g(h(a))}\{ f(g(x), y) \dot= f(g(x), a), g(x) \dot= g(h(a)) \}

  1. {f(g(x),y)=̇f(g(x),a),g(x)=̇g(h(a))}\{ f(g(x), y) \dot= f(g(x), a), g(x) \dot= g(h(a)) \}
  2. Zerlegung: {g(x)=̇g(x),y=̇a,g(x)=̇g(h(a))}\{ g(x) \dot= g(x), y \dot= a, g(x) \dot= g(h(a)) \}
  3. Löschen: {g(x)=̇g(x),g(x)=̇g(h(a))}\{ g(x) \dot= g(x), g(x) \dot= g(h(a)) \}
  4. Zerlegung: {y=̇a,x=̇h(a)}\{ y \dot= a, x \dot= h(a) \}
  5. {xh(a),ya}\{ x \mapsto h(a), y \mapsto a \}

Aufgabe 10.2

Sei pp ein kk-stelliges Prädikatssymbol und seien s1,,sks_1, \ldots, s_k, t1,,tkt_1, \ldots, t_k Terme. Ferner sei θ\theta eine Substitution. Hierbei bezeichne [F]\exists [F] und [F]\forall [F] jeweils den Existenz- bzw. Allabschluss über alle in FF syntaktisch vorkommenden Variablen. Welche der folgenden Aussagen sind richtig? Begründen Sie jeweils Ihre Antwort.
a) Falls p(t1,,tk)p(t_1, \ldots, t_k) und p(s1,,sk)p(s_1, \ldots, s_k) unifizierbar sind, so ist folgende Formel der Prädikatenlogik mit Gleichheit allgemeingültig: [(s1t1)(sktk)]\exists [(s_1 \approx t_1) \land \ldots \land (s_k \approx t_k)] b) Falls [(s1t1)(sktk)]\exists [(s_1 \approx t_1) \land \ldots \land (s_k \approx t_k)] erfüllbar ist, so sind p(t1,,tk)p(t_1, \ldots, t_k) und p(s1,,sk)p(s_1, \ldots, s_k) unifizierbar.

beide wahr, p(t1,,tk)p(t_1, \ldots, t_k) und p(s1,,sk)p(s_1, \ldots, s_k) sind unifizierbar genau dann, wenn es eine Substitution gibt, sodass p(t1,,tk)p(s1,,sk)p(t_1, \ldots, t_k) \equiv p(s_1, \ldots, s_k). Wenn [(s1t1)(sktk)]\exists [(s_1 \approx t_1) \land \ldots \land (s_k \approx t_k)] erfüllt ist, gibt es eine Substitution bei der sitis_i \approx t_i und damit muss auch p(t1,,tk)p(s1,,sk)p(t_1, \ldots, t_k) \equiv p(s_1, \ldots, s_k) gelten.

Sei pp ein kk-stelliges Prädikatssymbol und seien s1,,sks_1, \ldots, s_k, t1,,tkt_1, \ldots, t_k Terme. Ferner sei θ\theta eine Substitution. Hierbei bezeichne [F]\exists [F] und [F]\forall [F] jeweils den Existenz- bzw. Allabschluss über alle in FF syntaktisch vorkommenden Variablen. Welche der folgenden Aussagen sind richtig? Begründen Sie jeweils Ihre Antwort.
c) Ist θ\theta ein Unifikator für p(t1,,tk)p(t_1, \ldots, t_k) und p(s1,,sk)p(s_1, \ldots, s_k), so ist folgende Formel der Prädikatenlogik mit Gleichheit allgemeingültig: [(s1θt1θ)(skθtkθ)]\forall [(s_1 \theta \approx t_1 \theta) \land \ldots \land (s_k \theta \approx t_k \theta)] d) Ist [(s1θt1θ)(skθtkθ)]\forall [(s_1 \theta \approx t_1 \theta) \land \ldots \land (s_k \theta \approx t_k \theta)] allgemeingültig, so ist θ\theta ein Unifikator für p(t1,,tk)p(t_1, \ldots, t_k) und p(s1,,sk)p(s_1, \ldots, s_k).

TODO

beide falsch, wenn θ={s1c,t1c,s2a2,t2b2,}\theta = \left\{ s_1 \mapsto c, t_1 \mapsto c, s_2 \mapsto a_2, t_2 \mapsto b_2, \ldots \right\} mit aibia_i \neq b_i und p={(c,a2,a3,),(c,b2,b3,)}p = \left\{ (c, a_2, a_3, \ldots), (c, b_2, b_3, \ldots) \right\} dann wäre zwar p(t1θ,,tkθ)p(s1θ,,skθ)p(t_1 \theta, \ldots, t_k \theta) \equiv p(s_1 \theta, \ldots, s_k \theta) aber siθtiθs_i \theta \neq t_i \theta für i2i \geq 2.

Sei pp ein kk-stelliges Prädikatssymbol und seien s1,,sks_1, \ldots, s_k, t1,,tkt_1, \ldots, t_k Terme. Ferner sei θ\theta eine Substitution. Hierbei bezeichne [F]\exists [F] und [F]\forall [F] jeweils den Existenz- bzw. Allabschluss über alle in FF syntaktisch vorkommenden Variablen. Welche der folgenden Aussagen sind richtig? Begründen Sie jeweils Ihre Antwort.
e) Ist θ={x1u1,,xnun}\theta = \{ x_1 \mapsto u_1, \ldots, x_n \mapsto u_n \} ein Unifikator für p(t1,,tk)p(t_1, \ldots, t_k) und p(s1,,sk)p(s_1, \ldots, s_k), so ist folgende Formel der Prädikatenlogik mit Gleichheit allgemeingültig: [((x1u1)(xkuk))((s1t1)(sktk))]\forall [((x_1 \approx u_1) \land \ldots \land (x_k \approx u_k)) \rightarrow ((s_1 \approx t_1) \land \ldots \land (s_k \approx t_k))]

TODO

Sei pp ein kk-stelliges Prädikatssymbol und seien s1,,sks_1, \ldots, s_k, t1,,tkt_1, \ldots, t_k Terme. Ferner sei θ\theta eine Substitution. Hierbei bezeichne [F]\exists [F] und [F]\forall [F] jeweils den Existenz- bzw. Allabschluss über alle in FF syntaktisch vorkommenden Variablen. Welche der folgenden Aussagen sind richtig? Begründen Sie jeweils Ihre Antwort.
f) Ist θ={x1u1,,xnun}\theta = \{ x_1 \mapsto u_1, \ldots, x_n \mapsto u_n \} ein Unifikator für p(t1,,tk)p(t_1, \ldots, t_k) und p(s1,,sk)p(s_1, \ldots, s_k), so ist folgende Formel der Prädikatenlogik mit Gleichheit allgemeingültig: [((s1t1)(sktk))((x1u1)(xkuk))]\forall [((s_1 \approx t_1) \land \ldots \land (s_k \approx t_k)) \rightarrow ((x_1 \approx u_1) \land \ldots \land (x_k \approx u_k))]

TODO

Aufgabe 10.3

Zeigen Sie mittels prädikatenlogischer Resolution folgende Aussagen:
a) Die Aussage “Der Professor ist glücklich, wenn alle seine Studenten Logik mögen” hat als Folgerung “Der Professor ist glücklich, wenn er keine Studenten hat”.

P(x)P(x)xx ist ein Professor
S(x,y)S(x, y)xx ist Student von yy
L(x)L(x)xx mag Logik
G(x)G(x)xx ist glücklich

  1. “Der Professor ist glücklich, wenn alle seine Studenten Logik mögen”
    1. p.((P(p)s.(S(s,p)L(s)))G(p))\forall p. ((P(p) \land \forall s. (S(s, p) \rightarrow L(s))) \rightarrow G(p))
    2. p.(¬(P(p)s.(S(s,p)L(s)))G(p))\forall p. (\lnot (P(p) \land \forall s. (S(s, p) \rightarrow L(s))) \lor G(p))
    3. p.((¬P(p)¬s.(¬S(s,p)L(s)))G(p))\forall p. ((\lnot P(p) \lor \lnot \forall s. (\lnot S(s, p) \lor L(s))) \lor G(p))
    4. p.((¬P(p)s.¬(¬S(s,p)L(s)))G(p))\forall p. ((\lnot P(p) \lor \exists s. \lnot (\lnot S(s, p) \lor L(s))) \lor G(p))
    5. p.((¬P(p)s.(S(s,p)¬L(s)))G(p))\forall p. ((\lnot P(p) \lor \exists s. (S(s, p) \land \lnot L(s))) \lor G(p))
    6. p.s.((¬P(p)(S(s,p)¬L(s)))G(p))\forall p. \exists s. ((\lnot P(p) \lor (S(s, p) \land \lnot L(s))) \lor G(p))
    7. p.s.((¬P(p)S(s,p)G(p))(¬P(p)¬L(s)G(p)))\forall p. \exists s. ((\lnot P(p) \lor S(s, p) \lor G(p)) \land (\lnot P(p) \lor \lnot L(s) \lor G(p)))
    8. p.((¬P(p)S(fs(p),p)G(p))())\forall p. ((\lnot P(p) \lor S(f_s(p), p) \lor G(p)) \land ())
    9. {{¬P(p),S(fs(p),p),G(p)},{¬P(p),¬L(fs(p)),G(p)}}\{ \{ \lnot P(p), S(f_s(p), p), G(p) \}, \{ \lnot P(p), \lnot L(f_s(p)), G(p) \} \}
  2. “Der Professor ist glücklich, wenn er keine Studenten hat”
    1. p.((P(p)¬s.S(s,p))G(p))\forall p. ((P(p) \land \lnot \exists s. S(s, p)) \rightarrow G(p))
    2. p.(¬(P(p)¬s.S(s,p))G(p))\forall p. (\lnot (P(p) \land \lnot \exists s. S(s, p)) \lor G(p))
    3. p.(¬P(p)s.S(s,p)G(p))\forall p. (\lnot P(p) \lor \exists s. S(s, p) \lor G(p))
    4. p.s.(¬P(p)S(s,p)G(p))\forall p. \exists s. (\lnot P(p) \lor S(s, p) \lor G(p))
    5. p.(¬P(p)S(fs(p),p)G(p))\forall p. (\lnot P(p) \lor S(f_s(p), p) \lor G(p))
    6. {{¬P(p),S(fs(p),p),G(p)}}\{ \{ \lnot P(p), S(f_s(p), p), G(p) \} \}

Formel 2.6 ist in 1.7 enthalten, bzw. {{¬P(p),S(fs(p),p),G(p)}}{{¬P(p),S(fs(p),p),G(p)},{¬P(p),¬L(fs(p)),G(p)}}\{ \{ \lnot P(p), S(f_s(p), p), G(p) \} \} \subseteq \{ \{ \lnot P(p), S(f_s(p), p), G(p) \}, \{ \lnot P(p), \lnot L(f_s(p)), G(p) \} \}.

Zeigen Sie mittels prädikatenlogischer Resolution folgende Aussagen:
b) In Aufgabe T von Übungsblatt 9 folgt die letzte Aussage 4 aus den ersten drei 1-3:

  1. Jeder Drache ist glücklich, wenn alle seine Drachen-Kinder fliegen können.
  2. Grüne Drachen können fliegen.
  3. Ein Drache ist grün, wenn er Kind mindestens eines grünen Drachen ist.
  4. Alle grünen Drachen sind glücklich.

Zur Vereinfachung darf hier angenommen werden, dass alle Individuen Drachen sind.

K(x,y)K(x, y)xx ist ein Kind von yy
F(x)F(x)xx kann fliegen
H(x)H(x)xx ist glücklich
G(x)G(x)xx ist grün

  1. d.(k.(K(k,d)F(k))H(d))\forall d. (\forall k. (K(k, d) \rightarrow F(k)) \rightarrow H(d))
    1. d.(k.(K(k,d)F(k))H(d))\forall d. (\forall k. (K(k, d) \rightarrow F(k)) \rightarrow H(d))
    2. d.¬(k.(¬K(k,d)F(k))H(d))\forall d. \lnot (\forall k. (\lnot K(k, d) \lor F(k)) \lor H(d))
    3. d.(k.¬(¬K(k,d)F(k))H(d))\forall d. (\exists k. \lnot (\lnot K(k, d) \lor F(k)) \lor H(d))
    4. d.(k.(K(k,d)¬F(k))H(d))\forall d. (\exists k. (K(k, d) \land \lnot F(k)) \lor H(d))
    5. d.((K(fk(d),d)¬F(fk(d)))H(d))\forall d. ((K(f_k(d), d) \land \lnot F(f_k(d))) \lor H(d))
    6. d.((K(fk(d),d)H(d))(¬F(fk(d))H(d)))\forall d. ((K(f_k(d), d) \lor H(d)) \land (\lnot F(f_k(d)) \lor H(d)))
    7. {{K(fk(d),d),H(d)},{¬F(fk(d)),H(d)}}\left\{ \left\{ K(f_k(d), d), H(d) \right\}, \left\{ \lnot F(f_k(d)), H(d) \right\} \right\}
  2. d.(G(d)F(d))\forall d. (G(d) \rightarrow F(d))
    1. d.(¬G(d)F(d))\forall d. (\lnot G(d) \lor F(d))
    2. {{¬G(d),F(d)}}\left\{ \left\{ \lnot G(d), F(d) \right\} \right\}
  3. d.(e.(G(e)K(d,e))G(d))\forall d. (\exists e. (G(e) \land K(d, e)) \rightarrow G(d))
    1. d.(¬e.(G(e)K(d,e))G(d))\forall d. (\lnot \exists e. (G(e) \land K(d, e)) \lor G(d))
    2. d.(e.¬(G(e)K(d,e))G(d))\forall d. (\forall e. \lnot (G(e) \land K(d, e)) \lor G(d))
    3. d.(e.(¬G(e)¬K(d,e))G(d))\forall d. (\forall e. (\lnot G(e) \lor \lnot K(d, e)) \lor G(d))
    4. d.e.(¬G(e)¬K(d,e)G(d))\forall d. \forall e. (\lnot G(e) \lor \lnot K(d, e) \lor G(d))
    5. {{¬G(e),¬K(d,e),G(d)}}\left\{ \left\{ \lnot G(e), \lnot K(d, e), G(d) \right\} \right\}

Klauseln:

  1. {K(fk(d),d),H(d)}\left\{ K(f_k(d), d), H(d) \right\}
  2. {¬F(fk(d)),H(d)}\left\{ \lnot F(f_k(d)), H(d) \right\}
  3. {¬G(d),F(d)}\left\{ \lnot G(d), F(d) \right\}
  4. {¬G(e),¬K(d,e),G(d)}\left\{ \lnot G(e), \lnot K(d, e), G(d) \right\}
  5. 2 + 3: {¬G(fk(d)),H(d)}\left\{ \lnot G(f_k(d)), H(d) \right\}
  6. 4 + 5: {¬G(d),¬K(fk(d),d),H(d)}\left\{ \lnot G(d), \lnot K(f_k(d), d), H(d) \right\}
  7. 1 + 6: {¬G(d),H(d)}\left\{ \lnot G(d), H(d) \right\}

d.(G(d)H(d))\forall d. (G(d) \rightarrow H(d)) Alle grünen Drachen sind glücklich.

Aufgabe 10.4

Gegeben sind die folgenden Formeln in Skolemform. F=x,y,z.p(x,f(y),g(z,x))F = \forall x, y, z. p(x, f(y), g(z, x)) G=x,y.(p(a,f(a,x,y))q(b))G = \forall x, y. (p(a, f(a, x, y)) \lor q(b)) wobei aa und bb Konstanten sind.
a) Geben Sie die zugehörigen Herbrand-Universen ΔF\Delta_F und ΔG\Delta_G an.

FF: keine Konstanten; Funktionen ff, gg:

  1. Δ0={a}\Delta_0 = \left\{ a \right\}
  2. Δ1=Δ0{f(a),g(a,a)}\Delta_1 = \Delta_0 \cup \left\{ f(a), g(a, a) \right\}
  3. Δ2=Δ1{\Delta_2 = \Delta_1 \cup \{ }\}
  4. \ldots
  5. ΔF={f(x),f(f(x)),g(x,y),g(x,f(y)),g(f(x),y),g(f(x),f(y)),}\Delta_F = \left\{ f(x), f(f(x)), g(x, y), g(x, f(y)), g(f(x), y), g(f(x), f(y)), \ldots \right\}

GG Konstanten aa, bb; Funktionen ff:

  1. Δ0={a,b}\Delta_0 = \left\{ a, b \right\}
  2. Δ1=Δ0{f(a,a,a),f(a,a,b),f(a,b,a),f(a,b,b),f(b,a,a),f(b,a,b),f(b,b,a),f(b,b,b)}\Delta_1 = \Delta_0 \cup \left\{ f(a, a, a), f(a, a, b), f(a, b, a), f(a, b, b), f(b, a, a), f(b, a, b), f(b, b, a), f(b, b, b) \right\}
  3. Δ2=Δ1{\Delta_2 = \Delta_1 \cup \{ }\}
  4. \dots
  5. ΔG={a,b,f(a,a,a),f(a,a,b),f(a,b,a),f(a,b,b),f(b,a,a),f(b,a,b),f(b,b,a),f(b,b,b),}\Delta_G = \left\{ a, b, f(a, a, a), f(a, a, b), f(a, b, a), f(a, b, b), f(b, a, a), f(b, a, b), f(b, b, a), f(b, b, b), \ldots \right\}

Gegeben sind die folgenden Formeln in Skolemform. F=x,y,z.p(x,f(y),g(z,x))F = \forall x, y, z. p(x, f(y), g(z, x)) G=x,y.(p(a,f(a,x,y))q(b))G = \forall x, y. (p(a, f(a, x, y)) \lor q(b)) wobei aa und bb Konstanten sind.
b) Geben Sie je ein Herbrand-Modell an oder begründen Sie, warum kein solches existiert.

11. Übungsblatt

Aufgabe 11.1

Gegeben sei die folgende Kino-Datenbank bestehend aus den drei Tabellen Filme, Spielstätten und Kinoprogramm. Geben Sie die nachfolgenden Anfragen jeweils in Form einer prädikatenlogische Formel an:
a) Wer ist der Regisseur von Der Hobbit 1?

Q=r.(s.Filme(H1,r,s))Q = \exists r. (\exists s. \text{Filme}(H_1, r, s))
Z={H1"Der Hobbit 1"}Z = \left\{ H_1 \mapsto \text{"Der Hobbit 1"} \right\}

Gegeben sei die folgende Kino-Datenbank bestehend aus den drei Tabellen Filme, Spielstätten und Kinoprogramm. Geben Sie die nachfolgenden Anfragen jeweils in Form einer prädikatenlogische Formel an:
b) Welche Kinos spielen Der Hobbit 1?

Q=k.(z.Kinoprogramm(k,H1,z))Q = \exists k. (\exists z. \text{Kinoprogramm}(k, H_1, z))
Z={H1"Der Hobbit 1"}Z = \left\{ H_1 \mapsto \text{"Der Hobbit 1"} \right\}

Gegeben sei die folgende Kino-Datenbank bestehend aus den drei Tabellen Filme, Spielstätten und Kinoprogramm. Geben Sie die nachfolgenden Anfragen jeweils in Form einer prädikatenlogische Formel an:
c) Gibt es ein Kino welches einen Film von Christopher Nolan zeigt?

Q=k.(f.(s.Filme(f,CNolan,s)z.Kinoprogramm(k,f,z)))Q = \exists k. (\exists f. (\exists s. \text{Filme}(f, C_\text{Nolan}, s) \land \exists z. \text{Kinoprogramm}(k, f, z)))
Z={CNolan"Christopher Nolan"}Z = \left\{ C_\text{Nolan} \mapsto \text{"Christopher Nolan"} \right\}

Gegeben sei die folgende Kino-Datenbank bestehend aus den drei Tabellen Filme, Spielstätten und Kinoprogramm. Geben Sie die nachfolgenden Anfragen jeweils in Form einer prädikatenlogische Formel an:
d) Welche Paare von Schauspielern spielen gemeinsam in mindestens einem Film?

Q=a,b.(f,r.(Filme(f,r,a)Filme(f,r,b))(ab))Q = \exists a, b. (\exists f, r. (\text{Filme}(f, r, a) \land \text{Filme}(f, r, b)) \land (a \not\approx b))

Gegeben sei die folgende Kino-Datenbank bestehend aus den drei Tabellen Filme, Spielstätten und Kinoprogramm. Geben Sie die nachfolgenden Anfragen jeweils in Form einer prädikatenlogische Formel an:
e) Welche Paare von Schauspielern spielen gemeinsam in genau einem Film?

  1. Q=a,b.((ab)f1,r1.(Filme(f1,r1,a)Filme(f1,r1,b)¬f2,r2.((f2f1)Filme(f2,r2,a)Filme(f2,r2,b))))Q = \exists a, b. ((a \not\approx b) \land \exists f_1, r_1. (\text{Filme}(f_1, r_1, a) \land \text{Filme}(f_1, r_1, b) \land \lnot \exists f_2, r_2. ((f_2 \not\approx f_1) \land \text{Filme}(f_2, r_2, a) \land \text{Filme}(f_2, r_2, b))))
  2. Q=a,b.((ab)f1,r1.(Filme(f1,r1,a)Filme(f1,r1,b)f2,r2.¬((f2f1)Filme(f2,r2,a)Filme(f2,r2,b))))Q = \exists a, b. ((a \not\approx b) \land \exists f_1, r_1. (\text{Filme}(f_1, r_1, a) \land \text{Filme}(f_1, r_1, b) \land \forall f_2, r_2. \lnot ((f_2 \not\approx f_1) \land \text{Filme}(f_2, r_2, a) \land \text{Filme}(f_2, r_2, b))))
  3. Q=a,b.((ab)f1,r1.(Filme(f1,r1,a)Filme(f1,r1,b)f2,r2.((f2f1)¬Filme(f2,r2,a)¬Filme(f2,r2,b))))Q = \exists a, b. ((a \not\approx b) \land \exists f_1, r_1. (\text{Filme}(f_1, r_1, a) \land \text{Filme}(f_1, r_1, b) \land \forall f_2, r_2. ((f_2 \approx f_1) \lor \lnot \text{Filme}(f_2, r_2, a) \lor \lnot \text{Filme}(f_2, r_2, b))))

Aufgabe 11.2

Gegeben sind die folgenden Formeln in Skolemform. F=x,y,z.p(x,f(y),g(z,x))F = \forall x, y, z. p(x, f(y), g(z, x)) G=x,y.(p(a,f(a,x,y))q(b))G = \forall x, y. (p(a, f(a, x, y)) \lor q(b)) wobei aa und bb Konstanten sind.
Geben Sie die Herbrand-Expansion HE(F)\text{HE}(F) und HE(G)\text{HE}(G) an.

Aufgabe 11.3

Führen Sie für die folgenden Formeln eine Resolution durch, um zu zeigen:
a) Für F1=x.(weg(x)führtNachRom(x))x.(autobahn(x)weg(x))autobahn(a4)F_1 = \forall x. (\text{weg}(x) \rightarrow \text{führtNachRom}(x)) \land \forall x. (\text{autobahn}(x) \rightarrow \text{weg}(x)) \land \text{autobahn}(\text{a4}) und G1=führtNachRom(a4)G_1 = \text{führtNachRom}(\text{a4}) gilt F1G1F_1 \models G_1.

  1. {¬weg(x1),führtNachRom(x1)}\{ \lnot \text{weg}(x_1), \text{führtNachRom}(x_1) \}
  2. {¬autobahn(x2),weg(x2)}\{ \lnot \text{autobahn}(x_2), \text{weg}(x_2) \}
  3. {autobahn(a4)}\{ \text{autobahn}(\text{a4}) \}
  4. 3 + 2: {weg(a4)}\{ \text{weg}(\text{a4}) \}
  5. 1 + 4: {führtNachRom(a4)}\{ \text{führtNachRom}(\text{a4}) \}

Führen Sie für die folgenden Formeln eine Resolution durch, um zu zeigen:
b) Für F2=x.(känguru(x)y.hatMutter(x,y))z.w.(hatMutter(z,w)liebt(w,z))F_2 = \forall x. (\text{känguru}(x) \rightarrow \exists y. \text{hatMutter}(x, y)) \land \forall z. \forall w. (\text{hatMutter}(z, w) \rightarrow \text{liebt}(w, z)) und G2=x.(känguru(x)(y.liebt(y,x)))G_2 = \forall x. (\text{känguru}(x) \rightarrow (\exists y. \text{liebt}(y, x))) gilt F2G2F_2 \models G_2.

F2=F_2 =

  1. x.(känguru(x)y.hatMutter(x,y))z.w.(hatMutter(z,w)liebt(w,z))\forall x. (\text{känguru}(x) \rightarrow \exists y. \text{hatMutter}(x, y)) \land \forall z. \forall w. (\text{hatMutter}(z, w) \rightarrow \text{liebt}(w, z))
  2. x.(¬känguru(x)y.hatMutter(x,y))z.w.(¬hatMutter(z,w)liebt(w,z))\forall x. (\lnot \text{känguru}(x) \lor \exists y. \text{hatMutter}(x, y)) \land \forall z. \forall w. (\lnot \text{hatMutter}(z, w) \lor \text{liebt}(w, z))
  3. x.y.z.w.((¬känguru(x)hatMutter(x,y))(¬hatMutter(z,w)liebt(w,z)))\forall x. \exists y. \forall z. \forall w. ((\lnot \text{känguru}(x) \lor \text{hatMutter}(x, y)) \land (\lnot \text{hatMutter}(z, w) \lor \text{liebt}(w, z)))
  4. x.z.w.((¬känguru(x)hatMutter(x,fyF(x)))(¬hatMutter(z,w)liebt(w,z)))\forall x. \forall z. \forall w. ((\lnot \text{känguru}(x) \lor \text{hatMutter}(x, f_{y_F}(x))) \land (\lnot \text{hatMutter}(z, w) \lor \text{liebt}(w, z)))

G2=G_2 =

  1. x.(känguru(x)(y.liebt(y,x)))\forall x. (\text{känguru}(x) \rightarrow (\exists y. \text{liebt}(y, x)))
  2. x.(¬känguru(x)(y.liebt(y,x)))\forall x. (\lnot \text{känguru}(x) \lor (\exists y. \text{liebt}(y, x)))
  3. x.y.(¬känguru(x)(liebt(y,x)))\forall x. \exists y. (\lnot \text{känguru}(x) \lor (\text{liebt}(y, x)))
  4. x.(¬känguru(x)liebt(fyG(x),x))\forall x. (\lnot \text{känguru}(x) \lor \text{liebt}(f_{y_G}(x), x))

Resolution:

  1. {¬känguru(x),hatMutter(x,fyF(x))}\left\{ \lnot \text{känguru}(x), \text{hatMutter}(x, f_{y_F}(x)) \right\}
  2. {¬hatMutter(z,w),liebt(w,z)}\left\{ \lnot \text{hatMutter}(z, w), \text{liebt}(w, z) \right\}
  3. 1 + 2: {¬känguru(x),liebt(fyF(x),x)}\left\{ \lnot \text{känguru}(x), \text{liebt}(f_{y_F}(x), x) \right\}
  4. Mit fyF(x)=fyG(x)f_{y_F}(x) = f_{y_G}(x) gilt F2G2F_2 \models G_2.

12. Übungsblatt

Aufgabe 12.1

Wir betrachten das folgende Datalog-Programm PP:

T(x)e(x)T(x) \leftarrow e(x)
T(x)a(x,y)T(y)b(x,z)T(z)T(x) \leftarrow a(x, y) \land T(y) \land b(x, z) \land T(z)

e(1)e(1), e(2)e(2), e(6)e(6)
a(3,1),a(4,3),a(5,3),a(7,5)a(3, 1), a(4, 3), a(5, 3), a(7, 5)
b(3,2),b(5,3),b(7,6)b(3, 2), b(5, 3), b(7, 6)

a) Geben Sie einen Ableitungsbaum für T(5)T(5) an.

Wir betrachten das folgende Datalog-Programm PP:

T(x)e(x)T(x) \leftarrow e(x)
T(x)a(x,y)T(y)b(x,z)T(z)T(x) \leftarrow a(x, y) \land T(y) \land b(x, z) \land T(z)

e(1)e(1), e(2)e(2), e(6)e(6)
a(3,1),a(4,3),a(5,3),a(7,5)a(3, 1), a(4, 3), a(5, 3), a(7, 5)
b(3,2),b(5,3),b(7,6)b(3, 2), b(5, 3), b(7, 6)

b) Berechnen Sie die Mengen TP0T_P^0, TP1T_P^1, TP2T_P^2, \ldots. An welchem Punkt wird der Grenzwert erreicht?

TPi+1T_P^{i+1} … welche T(x)T(x) lassen sich mit den bereits berechneten T(y)TPiT(y) \in T_P^i berechnen?

Aufgabe 12.2

Sei EV×VE \subseteq V \times V die Kantenrelation eines gerichteten Graphen G=(V,E)G = (V, E) mit (endlicher) Knotenmenge VV. Weiter sei ee das dazugehörige Datalog-Prädikat mit e(v1,v2)(v1,v2)Ee(v_1, v_2) \Leftrightarrow (v_1, v_2) \in E für alle v1,v2Vv_1, v_2 \in V.

Formalisieren Sie die nachfolgenden Probleme als Datalog-Programme, d.h. geben Sie Regeln an, die für einen gegebenen Graphen eine Lösung für das jeweilige Problem liefern.

a) Nicht-Terminiertheit: Alle Paare von Knoten, die über eine Kante miteinander verbunden sind, so dass der Knoten mit der eingehenden Kante wieder verlassen werden kann.

T(x,y)e(x,y)e(y,z)T(x, y) \leftarrow e(x, y) \land e(y, z)

Sei EV×VE \subseteq V \times V die Kantenrelation eines gerichteten Graphen G=(V,E)G = (V, E) mit (endlicher) Knotenmenge VV. Weiter sei ee das dazugehörige Datalog-Prädikat mit e(v1,v2)(v1,v2)Ee(v_1, v_2) \Leftrightarrow (v_1, v_2) \in E für alle v1,v2Vv_1, v_2 \in V.

Formalisieren Sie die nachfolgenden Probleme als Datalog-Programme, d.h. geben Sie Regeln an, die für einen gegebenen Graphen eine Lösung für das jeweilige Problem liefern.

b) Erreichbare Knoten: Alle Knoten, die von einem festen Startknoten ss erreichbar sind.

T(s)T(s)
T(x)e(s,x)T(x) \leftarrow e(s, x)
T(x)e(y,x)T(y)T(x) \leftarrow e(y, x) \land T(y)

Sei EV×VE \subseteq V \times V die Kantenrelation eines gerichteten Graphen G=(V,E)G = (V, E) mit (endlicher) Knotenmenge VV. Weiter sei ee das dazugehörige Datalog-Prädikat mit e(v1,v2)(v1,v2)Ee(v_1, v_2) \Leftrightarrow (v_1, v_2) \in E für alle v1,v2Vv_1, v_2 \in V.

Formalisieren Sie die nachfolgenden Probleme als Datalog-Programme, d.h. geben Sie Regeln an, die für einen gegebenen Graphen eine Lösung für das jeweilige Problem liefern.

c) Alternative Wege: Alle Paare von Knoten, die sowohl über einen Weg der Länge eins als auch über einen Weg der Länge zwei verbunden sind.

T(x,y)e(x,y)e(x,z)e(z,y)T(x ,y) \leftarrow e(x, y) \land e(x, z) \land e(z, y)