Theoretische Grundlagen der Informatik – 7. Tutorium

Tagesthemen

Probleme (Wiederholung)

Kodierungsschema (Wiederholung)

Sei \Pi ein Problem und \Sigma ein Alphabet. Ein Kodierungsschema ist eine Abbildung

  s: \Pi \to     \Sigma^*
     I   \mapsto \langle I \rangle

die jeder Instanz I des Problems eine Kodierung \langle I \rangle zuordnet.

Die Größe einer Probleminstanz I im Kodierungsschema s ist die Länge der Codierung |s(I)|.

Die Entscheidungssprache L[\Pi, s] enthält alle in s kodierten Ja-Instanzen von \Pi.

\mathcal{NP}-Vollständigkeit (Wiederholung)

Eine Sprache L ist \mathcal{NP}-vollständig genau dann wenn

Die Menge aller \mathcal{NP}-vollständigen Sprachen heißt \mathcal{NPC}.

Wichtig: SAT \in \mathcal{NPC} und \leq_\text{p} ist transitiv.

Polynomielle Transformation (Wiederholung)

Sei \Sigma ein Alphabet und B \subseteq \Sigma^* in Polynomialzeit entscheidbar, sowie A \subseteq \Sigma^*.

Wenn es eine in Polynomialzeit berechenbare Funktion f: \Sigma^* \to_p \Sigma^* gibt, sodass für alle w \in \Sigma^* gilt w \in A \Leftrightarrow f(w) \in B dann ist auch A in Polynomialzeit entscheidbar.

Man schreibt diesfalls A \leq_p B oder A \propto B.

Erstes Beispiel

Partition

Gegeben M = \{ m_1, \dots, m_n \} für n \in \mathbb{N} und \omega: M \to \mathbb{N}, existieren \Pi_1, \Pi_2 \subset M, sodass \Pi_1 \cup \Pi_2 = M, \Pi_1 \cap \Pi_2 = \emptyset und \sum_{m \in \Pi_1} \omega(m) = \sum_{m \in \Pi_2} \omega(m)?

BinPacking

Gegeben (a_1, \dots, a_n) \in \mathbb{N}^n für n \in \mathbb{N} und b, k \in \mathbb{N}, existiert \pi: \{1, \dots, n\} \to \{1, \dots, k\} sodass \forall i \in \{1, \dots, n\}: \sum_{j = 1}^{n} \delta_{i, \pi(j)} a_i \leq b?

Zu zeigen: Partition \in \mathcal{NPC} \Rightarrow BinPacking \in \mathcal{NPC}

Zweites Beispiel

HamiltonCycle

Gegeben Graphen G = (V, E) mit |V| = n, existiert eine Permutation v_1, \dots, v_n \equiv v_0 von V sodass \forall i \in \{0, \dots, n\}: \{ v_i, v_{i + 1} \} \in E?

TSP

Gegeben vollständigen Graphen G = (V, E) mit |V| = n und Kantengewichtungsfunktion \omega: E \to \mathbb{N} und k \in \mathbb{N}, existiert eine Permutation v_1, \dots, v_n \equiv v_0 von V sodass \sum_{i = 0}^{n} \omega(\{ v_i, v_{i + 1} \}) \leq k?

Zu zeigen: HamiltonCycle \in \mathcal{NPC} \Rightarrow TSP \in \mathcal{NPC}

Die Komplementklassen co-\mathcal{P} und co-\mathcal{NP}

Die Klasse co-\mathcal{P} enthält alle Sprachen L^c für die L \in \mathcal{P}.

Die Klasse co-\mathcal{NP} enthält alle Sprachen L^c für die L \in \mathcal{NP}.

Turing-Reduzierbarkeit

Sei \Sigma ein Alphabet, L \subset \Sigma^* und O ein magisches Gerät (Orakel), das für jedes Wort w \in \Sigma^* in konstanter Zeit entscheiden kann, ob w \in L. Eine Turingmaschine, deren Zustandsübergangsfunktion mitilfe von O berechnet wird, heißt Orakel-Turingmaschine.

Seien A und B Sprachen. A ist Turing-reduzierbar auf B genau dann wenn A von einer Orakel-Turingmaschine entschieden werden kann, die ein Orakel für B benutzt.

Man schreibt diesfalls A \leq_t B.

Es ist unklar, ob $\{ l \subseteq \Sigma^*: L[SAT, s] \leq_t l \} = \mathcal{NPC} (für ein sinnvolles Kodierungsschema s) gilt.


Valid XHTML 1.0 Strict