Sie sind auf Seite 1von 40

Blatt 01

Donnerstag, 22. April 2021 12:47

ue01-nosol
ution

IN0011 - Einführung in die Theoretische Informatik Seite 1


IN0011 - Einführung in die Theoretische Informatik Seite 2
IN0011 - Einführung in die Theoretische Informatik Seite 3
Blatt 01.1
Dienstag, 3. August 2021 18:52

(a)

IN0011 - Einführung in die Theoretische Informatik Seite 4


(a) (b)

𝐺 = (𝑉, Σ, 𝑃, 𝑆) mit 𝐺 (𝑉, Σ, 𝑃, 𝑆) mit


𝑉 = {𝑆} 𝑉 ≔ {𝑆}
Σ = {0,1} Σ ≔ {0,1}
𝑃 ≔ 𝑆 → 00𝑆 | 01𝑆 | 10𝑆 | 11𝑆 | 𝜖 𝑃 ≔ 𝑆 → 0𝑆 | 1𝑆 | 0
𝑆≔𝑆 𝑆≔𝑆

(c) (d)

𝐺 𝐺 ≔ ({𝑆}, {𝑎, 𝑏}, 𝑃, 𝑆) mit


𝑉 ≔ {𝑆}
Σ ≔ {𝑎, 𝑏} P≔S→
𝑃 ≔ 𝑆 → 𝑎𝑆𝑎 | 𝑏𝑆𝑏 | 𝜖

IN0011 - Einführung in die Theoretische Informatik Seite 5


IN0011 - Einführung in die Theoretische Informatik Seite 6
Blatt 02
Freitag, 30. April 2021 10:19

ue02-nosolution

Für jedes endliches 𝑤 ∈ 𝒫(Σ∗ ) ist es möglich einen 𝜖 − 𝑁𝐹𝐴 zu bauen, der dieses Wort akzeptiert. Es
ist dann wiederum möglich alle diese NFAs zu zu vereinigen (mit neuem Startzustand und 𝜖-
Übergängen. Dieser neue Automat erkennt dann

IN0011 - Einführung in die Theoretische Informatik Seite 7


Blatt 02.1
Dienstag, 3. August 2021 21:28

IN0011 - Einführung in die Theoretische Informatik Seite 8


IN0011 - Einführung in die Theoretische Informatik Seite 9
IN0011 - Einführung in die Theoretische Informatik Seite 10
Alle 𝑤

IN0011 - Einführung in die Theoretische Informatik Seite 11


Blatt 03
Mittwoch, 4. August 2021 21:14

𝑒𝑚𝑝𝑡𝑦(∅) = 𝑡𝑟𝑢𝑒
𝑒𝑚𝑝𝑡𝑦(𝑎) = 𝑓𝑎𝑙𝑠𝑒
𝑒𝑚𝑝𝑡𝑦(𝜖) = 𝑓𝑎𝑙𝑠𝑒
𝑒𝑚𝑝𝑡𝑦(𝛼𝛽) = 𝑒𝑚𝑝𝑡𝑦(α) ∨ 𝑒𝑚𝑝𝑡𝑦(𝛽)
𝑒𝑚𝑝𝑡𝑦(𝛼 | 𝛽) = 𝑒𝑚𝑝𝑡𝑦(α) ∧ 𝑒𝑚𝑝𝑡𝑦(𝛽)
𝑒𝑚𝑝𝑡𝑦(𝛼 ∗ ) = 𝑓𝑎𝑙𝑠𝑒

Korrektheit
Fall 𝑟 = ∅ = 𝑎 = 𝜖. Trivial

Fall 𝑟 = 𝛼 ∗ . Wir haben 𝜖 ∈ 𝐿(α∗ ) ≠ ∅ ⇔ ¬𝑒𝑚𝑝𝑡𝑦(𝛼 ∗ ).

Fall 𝑟 = α𝛽. IH: 𝐿(𝛼) = ∅ ⇔ 𝑒𝑚𝑝𝑡𝑦(𝛼) und 𝐿(𝛽) = ∅ ⇔ 𝑒𝑚𝑝𝑡𝑦(𝛽). Es gilt also

𝐿(𝛼𝛽) = ∅ ⇔ 𝐿(𝛼)𝐿(𝛽) = ∅ ⇔ 𝐿(𝛼) = ∅ ∨ 𝐿(𝛽) = ∅ ⇔ (𝐼. 𝐻. ) 𝑒𝑚𝑝𝑡𝑦(𝛼) ∨ 𝑒𝑚𝑝𝑡𝑦(𝛽) = 𝑒𝑚𝑝𝑡𝑦(𝛼𝛽).

Fall 𝑟 = 𝛼 | 𝛽
IH: 𝐿(𝛼) = ∅ ⇔ 𝑒𝑚𝑝𝑡𝑦(𝛼) und 𝐿(𝛽) = ∅ ⇔ 𝑒𝑚𝑝𝑡𝑦(𝛽).

𝐿(𝛼 | 𝛽) = ∅ ⇔ 𝐿(𝛼) ∪ 𝐿(𝛽) = ∅ ⇔ 𝐿(𝛼) = ∅ ∧ 𝐿(𝛽) = ∅ ⇔ (𝐼. 𝐻. ) 𝑒𝑚𝑝𝑡𝑦(𝛼) ∧ 𝑒𝑚𝑝𝑡𝑦(𝛽) = 𝑒𝑚𝑝𝑡𝑦(𝛼 | 𝛽)

Sei 𝐿 regulär. Dann gibt es ein 𝑛 > 0, so dass sich jedes 𝑧 ∈ 𝐿 mit |𝑧| ≥ 𝑛 in 𝑧 = 𝑢𝑣𝑤 zerlegen lässt, dass
1. 𝑣≠𝜖
2. |𝑢𝑣| ≤ 𝑛
3. ∀𝑖 ≥ 0. 𝑢𝑣 𝑤 ∈ 𝐿

• Angenommen, 𝐿 wäre regulär.


• Dann können wir das Pumping-Lemma anwenden.
• Sei 𝑛 ∈ ℕ eine Pumping-Lemma-Zahl.

IN0011 - Einführung in die Theoretische Informatik Seite 12


• Sei 𝑛 ∈ ℕ eine Pumping-Lemma-Zahl.
• Dann gilt 𝑧 = 0 10 ∈ 𝐿 und |𝑧| ≥ 𝑛.
• Es gibt also für 𝑧 eine Zerlegung 𝑧 = 𝑢𝑣𝑤 mit 𝑣 ≠ 𝜀 und |𝑢𝑣| ≤ 𝑛, sodass 𝑢𝑣 𝑤 ∈ 𝐿 für alle 𝑖 ∈ ℕ (*).
• Durch unsere Wahl von 𝑧 folgt 𝑢𝑣 = 0 für 0 < 𝑘 < 𝑛. Also 𝑢 = 0 und 𝑣 = 0 für 𝑖 + 𝑗 = 𝑘 und 𝑗 > 0.
• Dann ist aber 𝑢𝑣 𝑤 = 0 0 10 ∉ 𝐿 , da (𝑛 − 𝑘) < 𝑛, damit 𝑤 ≠ 𝑤 uv. Dies steht im Widerspruch zu (∗)
• Das heißt unsere ursprüngliche Annahme ist falsch und 𝐿 ist nicht regulär.

• Angenommen, 𝐿 wäre regulär.


• Dann können wir das Pumping-Lemma anwenden.
• Sei 𝑛 ∈ ℕ eine Pumping-Lemma-Zahl.
• Dann gilt 𝑧 = 0 1 ∈ 𝐿 und |𝑧| ≥ 𝑛.
• Es gibt also für 𝑧 eine Zerlegung 𝑧 = 𝑢𝑣𝑤 mit 𝑣 ≠ 𝜀 und |𝑢𝑣| ≤ 𝑛, sodass 𝑢𝑣 𝑤 ∈ 𝐿 für alle 𝑖 ∈ ℕ (*).
• Durch unsere Wahl von 𝑧 folgt 𝑢𝑣 = 0 für 0 < 𝑘 < 𝑛. Also 𝑢 = 0 und 𝑣 = 0 für 𝑖 + 𝑗 = 𝑘 und 𝑗 > 0.
• Dann ist aber 𝑢𝑣 𝑤 = 0 0 1 ∉ 𝐿 , da (𝑛 − 𝑗 − 𝑖) < 𝑛, damit |𝑤| < |𝑤| . Dies steht im Widerspruch zu (∗)
• Das heißt unsere ursprüngliche Annahme ist falsch und 𝐿 ist nicht regulär.

• Angenommen, 𝐿 wäre regulär.


• Dann können wir das Pumping-Lemma anwenden.
• Sei 𝑛 ∈ ℕ eine Pumping-Lemma-Zahl.
• Dann gilt 𝑧 = 𝑎 ∈ 𝐿 und |𝑧| ≥ 𝑛.
• Es gibt also für 𝑧 eine Zerlegung 𝑧 = 𝑢𝑣𝑤 mit 𝑣 ≠ 𝜀 und |𝑢𝑣| ≤ 𝑛, sodass 𝑢𝑣 𝑤 ∈ 𝐿 für alle 𝑖 ∈ ℕ (*).
• Durch unsere Wahl von 𝑧 folgt 𝑢𝑣 = 𝑎 für 0 < 𝑘 ≤ 𝑛. Also 𝑢 = 𝑎 und 𝑣 = 𝑎 für 𝑖 + 𝑗 = 𝑘 und 𝑗 > 0.
• Dann ist aber 𝑢𝑣 𝑤 = 𝑎 ∉ 𝐿, da

2 <2 +j≤2 +n<2 +2 =2 . Dies steht im Widerspruch zu (∗)

• Das heißt unsere ursprüngliche Annahme ist falsch und 𝐿 ist nicht regulär.

𝑋 = 𝑎𝑋 | 𝑏𝑋
𝑋 = 𝑎𝑋 | 𝑏𝑋
𝑋 = 𝑎𝑋 | 𝑏𝑋 | 𝜖

𝑋 ≡ 𝑏 ∗ 𝑎𝑋
𝑋 ≡ 𝑎𝑏 ∗ 𝑎𝑋 | 𝑏𝑋
𝑋 ≡ 𝑎𝑏 ∗ 𝑎 𝑏 𝑋

IN0011 - Einführung in die Theoretische Informatik Seite 13


𝑋 ≡ (𝑎𝑏 ∗ 𝑎|𝑏)𝑋

𝑋 ≡ 𝑎𝑋 | 𝑏(𝑎𝑏 ∗ 𝑎|𝑏)𝑋 | 𝜖
𝑋 ≡ (𝑎|𝑏(𝑎𝑏 ∗ 𝑎|𝑏))𝑋 | 𝜖
𝑋 ≡ (𝑎|𝑏(𝑎𝑏 ∗ 𝑎|𝑏))∗
𝑋 ≡ (𝑎|𝑏𝑎𝑏 ∗ 𝑎|𝑏𝑏)∗

𝑋 ≡ (𝑎𝑏 ∗ 𝑎|𝑏)(𝑎|𝑏𝑎𝑏∗ 𝑎|𝑏𝑏)∗

𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, ∅) = 𝑡𝑟𝑢𝑒
𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝜖) = 𝑓𝑎𝑙𝑠𝑒
𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑥) = (𝑥 = 𝑎)
𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 𝑟 ) = 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 ) ∨ 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 )
𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 | 𝑟 ) = 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 ) ∧ 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 )
𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 ∗ ) = 𝑓𝑎𝑙𝑠𝑒

Korrektheit

Fall 𝑟 = ∅:
Es gilt 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, ∅) = 𝑡𝑟𝑢𝑒 ⇔ ∀𝑤 ∈ 𝐿(∅). 𝑃(𝑤), da 𝐿(∅) = ∅.

Fall r = ϵ:
Wir haben 𝐿(𝑟) = {𝜖} und es gilt 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝜖) = 𝑓𝑎𝑙𝑠𝑒 ⇔ 𝑃(𝜖) ⇔ ∀𝑤 ∈ 𝐿(𝜖). 𝑃(𝑤).

Fall 𝑟 = 𝑟 ∗ : Dann gilt 𝜖 ∈ 𝐿(𝑟 ∗ ) und da 𝑃(𝜖) = 𝑓𝑎𝑙𝑠𝑒, ist die Definition 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 ∗ ) = 𝑓𝑎𝑙𝑠𝑒 korrekt.

Fall 𝑟 | 𝑟 :

I.H.: 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 ) ⇔ ∀𝑤 ∈ 𝐿(𝑟 ). 𝑃(𝑤) und 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 ) ⇔ ∀𝑤 ∈ 𝐿(𝑟 ). 𝑃(𝑤).

∀𝑤 ∈ 𝐿(𝑟 |𝑟 ). 𝑃(𝑤) ⇔ ∀𝑤 ∈ 𝐿(𝑟 ) ∪ 𝐿(𝑟 ). 𝑃(𝑤) ⇔ ∀𝑤 ∈ 𝐿(𝑟 ). 𝑃(𝑤) ∧ ∀𝑤 ∈ 𝐿(𝑟 ). 𝑃(𝑤)


⇔ (𝐼. 𝐻. ) 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 ) ∧ 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 ) ⇔ 𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑠(𝑎, 𝑟 | 𝑟 )

IN0011 - Einführung in die Theoretische Informatik Seite 14


Blatt 04
Donnerstag, 5. August 2021 11:21

IN0011 - Einführung in die Theoretische Informatik Seite 15


IN0011 - Einführung in die Theoretische Informatik Seite 16
IN0011 - Einführung in die Theoretische Informatik Seite 17
IN0011 - Einführung in die Theoretische Informatik Seite 18
Blatt 05
Donnerstag, 5. August 2021 11:48

IN0011 - Einführung in die Theoretische Informatik Seite 19


Blatt 07
Freitag, 4. Juni 2021 10:51

IN0011 - Einführung in die Theoretische Informatik Seite 20


IN0011 - Einführung in die Theoretische Informatik Seite 21
Blatt 08
Montag, 14. Juni 2021 11:06

𝑆 → 𝑎𝑆𝑏 ∣ 𝑆𝑆 ∣ 𝑥

𝑆 → 𝑎𝑆𝐵 ∣ 𝑆𝑆 ∣ 𝑋
𝐵→𝑏
𝑋→𝑥

𝑆 → 𝑆𝑆 ∣ 𝑎𝑆𝑏 ∣ 𝑏𝑆𝑎 ∣ 𝑐

Greibach-Normalform:

𝑆 → 𝑆𝑆 ∣ 𝑎𝑆𝑋 ∣ 𝑏𝑆𝑋 ∣ 𝑐
𝑋 →𝑎
𝑋 →𝑏

PDA 𝑀 = ({𝑞}, {𝑎, 𝑏, 𝑐}, {𝑆, 𝑋_𝑎, 𝑋_𝑏 }, 𝑞, 𝛿) mit 𝛿:

𝑞𝑆 → 𝑞𝑆𝑆
𝑞𝑆 → 𝑞𝑆𝑋
𝑞𝑆 → 𝑞𝑆𝑋
𝑞𝑆 → 𝑞𝜖
𝑞𝑆 → 𝑞𝜖
𝑞𝑆 → 𝑞𝜖

𝐺 ≔ (𝑉, Σ, 𝑃, 𝑆)

𝑉 ≔ (𝑄 × Γ × Q ∪ {S}) wobei wir die Tripel mit [. , . , . ] notieren und 𝑃 die folgenden Produktionen enthält:

IN0011 - Einführung in die Theoretische Informatik Seite 22


𝑆 → [𝑞 , 𝑍 , 𝑞] für alle 𝑞 ∈ 𝑄

Für alle 𝛿(𝑞, 𝑏, 𝑍) ∋ (𝑟 , 𝑍 … 𝑍 ) und für alle 𝑟 , … , 𝑟 ∈ 𝑄:

[𝑞, 𝑍, 𝑟 ] → 𝑏[𝑟 , 𝑍 , 𝑟 ][𝑟 , 𝑍 , 𝑟 ] … [𝑟 ,𝑍 ,𝑟 ]

𝐺 = (({𝑝, 𝑞} × {𝑍 , 𝐴, 𝐵} × {𝑞, 𝑝} ∪ {𝑆}), {𝑎, 𝑏}, 𝑃, 𝑆) mit den Produktionen 𝑃:

𝑆 [𝑞 , 𝑍 , 𝑞] ∣ [𝑞 , 𝑍 , 𝑝]
[𝑞, 𝑍 , 𝑞] 𝑏 ∣ 𝑎[𝑞, 𝐴, 𝑞]
[𝑞, 𝑍 , 𝑝] 𝑎[𝑞, 𝐴, 𝑝]
[𝑞, 𝐴, 𝑞] 𝑎[𝑞, 𝐴, 𝑞][𝑞, 𝐴, 𝑞] ∣ 𝑎[𝑞, 𝐴, 𝑝][𝑝, 𝐴, 𝑞]
[𝑞, 𝐴, 𝑝] 𝑏 ∣ 𝑎[𝑞, 𝐴, 𝑝][𝑝, 𝐴, 𝑝] ∣ 𝑎[𝑞, 𝐴, 𝑞][𝑞, 𝐴, 𝑝]
[𝑝, 𝐴, 𝑝] 𝑏

𝑃𝐷𝐴 ≔ (𝑄, Σ, Γ, δ, S, Z , F)

𝑄=𝑄
Σ=Σ
Γ=ℕ
𝑆=0

IN0011 - Einführung in die Theoretische Informatik Seite 23


Blatt 09
Freitag, 18. Juni 2021 10:17

IN0011 - Einführung in die Theoretische Informatik Seite 24


IF x_1 = 0 DO
x_0 = 1
ELSE
WHILE x_1 MOD 10 = 0 DO
x_1 = x_1 DIV 10
END
END
IF x_1 = 1 DO
x_0 = 1
ELSE
x_0 = 0

IN0011 - Einführung in die Theoretische Informatik Seite 25


Blatt 10
Freitag, 25. Juni 2021 19:41

(b) (i)
(a) (ii)
(c) (iii)

(a)
Die Sprache 𝐿(𝐴 ∩ 𝐵) ist entscheidbar, da wir einfach eine Turingmaschine 𝑀 verwenden
können, die diese entscheidet. Dafür gibt 𝑀 1 zurück, wenn 𝜒 und 𝜒 1 zurückgeben, 0 sonst.

1, 𝜒 =1∧𝜒 =1
𝜒 ∩ (𝑤) =
0, 𝑠𝑜𝑛𝑠𝑡.

(b)
Falsch. Angenommen 𝐴 sei

Wir zeigen ℋ ≤ ℋ mit einer Funktion 𝑓: {0,1, #} → {0,1, #}.

Die Funktion nimmt ein Wort 𝑤 = 𝑤 #𝑥 und transformiert es in die Form 𝑤′##𝑥, womit es der
Form eines Wortes in der Sprache ℋ entspricht. Wenn das Wort nicht korrekt kodiert ist, wird es
verworfen. Also:

𝑤 ##𝑥, 𝑤𝑒𝑛𝑛 𝑠𝑖𝑐ℎ 𝑤 𝑖𝑛 𝑤 ##𝑥 𝑧𝑒𝑟𝑙𝑒𝑔𝑒𝑛 𝑙ä𝑠𝑠𝑡.


𝑓 𝑤 =
0, 𝑠𝑜𝑛𝑠𝑡
IN0011 - Einführung in die Theoretische Informatik Seite 26
𝑤 ##𝑥, 𝑤𝑒𝑛𝑛 𝑠𝑖𝑐ℎ 𝑤 𝑖𝑛 𝑤 ##𝑥 𝑧𝑒𝑟𝑙𝑒𝑔𝑒𝑛 𝑙ä𝑠𝑠𝑡.
𝑓(𝑤) =
0, 𝑠𝑜𝑛𝑠𝑡

Die Funktion ist offensichtlich total, und die Transformation von 𝑤′#𝑥 zu 𝑤′##𝑥 ist in endlicher Zeit
durchführbar, also berechenbar. Dann entscheidet die TM 𝑀 [𝑢𝑣𝑢] die Sprache ℋ, da sie akzeptiert
wenn 𝑓(𝑤) ∈ ℋ und verwirft wenn 𝑓(𝑤) ∉ ℋ . Also:

𝑤 ∈ ℋ ⇔ 𝑀 [𝑥] ↓ ⇔ 𝑀 [𝜖𝑥𝜖] ↓ ⇔ 𝑓(𝑤) ∈ ℋ

Wir zeigen ℋ ≤ ℋ ∗ mit einer Funktion 𝑓: {0,1}∗ → {0,1}∗.

Wir wählen für 𝐿 eine Sprache, die in ℋ ∗ ist:

𝐿 = Σ∗

Sei also 𝐿 = 𝛴 ∗ und 𝑀 eine Turing-Maschine, die 𝐿 akzeptiert.

Reduktion:
( ) ( )
Gegeben 𝑀 , konstruiere eine 2-Band-Turing-Maschine 𝑀 ≔ 𝑀 𝑀 mit 𝑓(𝑤) ≔ 𝑤 , die
wie folgt arbeitet:
1. 𝑀 wird gestartet mit einer Eingabe 𝑥 auf Band 1 und einem leeren Band 2.
2. Sie arbeitet zunächst auf Band 2 wie 𝑀 (bei Eingabe 𝜖).
3. Falls 𝑀 hält, arbeitet sie dann auf Band 1 wie 𝑀 .

𝑀 akzeptiert also die Sprache

∅, 𝑓𝑎𝑙𝑙𝑠 𝑀 𝑏𝑒𝑖 𝐼𝑛𝑝𝑢𝑡 𝜖 𝑛𝑖𝑐ℎ𝑡 ℎä𝑙𝑡


𝐿 =
𝐿, 𝑓𝑎𝑙𝑙𝑠 𝑀 𝑏𝑒𝑖 𝐼𝑛𝑝𝑢𝑡 𝜖 ℎä𝑙𝑡.

Per Voraussetzung gilt aber ∅ ∉ ℋ ∗ und 𝐿 ∈ ℋ ∗ . Also gilt:

𝑓(𝑤) ∈ ℋ ∗ ⇔ 𝑤′ ∈ ℋ ∗ ⇔𝐿 = Σ∗ ⇔ 𝑀 [𝜖] ↓ ⇔ 𝑤 ∈ ℋ

Damit ist ℋ auf ℋ ∗ reduziert.

Erinnerung:

A ≤ B ⇔ ∀w ∈ {0,1}∗ . 𝑤 ∈ 𝐴 ⇔ 𝑓(𝑤) ∈ 𝐵

Falsch. Beweis durch Widerspruch.


⎯⎯
Sei 𝐴 = ∅, dann ist 𝐴 = Σ∗ . Dann muss für eine Reduktionsfunktion 𝑓 gelten:

IN0011 - Einführung in die Theoretische Informatik Seite 27


⎯⎯
Sei 𝐴 = ∅, dann ist 𝐴 = Σ∗ . Dann muss für eine Reduktionsfunktion 𝑓 gelten:
⎯⎯
∀𝑥 ∈ 𝐴. 𝑓(𝑥) ∉ Σ∗ .

Eine solche Funktion 𝑓 existiert aber nicht.

Wahr.
• Gelte 𝐴 ≤ 𝐵.
• Dann existiert ein totales und berechenbares 𝑓 mit: ∀𝑥 ∈ 𝛴 ∗ . 𝑥 ∈ 𝐴 ⇔ 𝑓(𝑥) ∈ 𝐵.
⎯⎯ ⎯⎯
• Somit gilt auch: ∀𝑥 ∈ 𝛴 ∗ . 𝑥 ∈ 𝐴 ⇔ 𝑓(𝑥) ∈ 𝐵.
⎯⎯ ⎯⎯
• Daraus folgt dann 𝐴 ≤ 𝐵.
• Die Rückrichtung geht analog.

Wahr. Gegeben 𝑓: 𝐴 → 𝐵 und 𝑔: 𝐵 → 𝐶, dann ist die Reduktion ℎ: 𝐴 → 𝐶 definiert als:

ℎ(𝑥) = 𝑓 𝑔(𝑥)

Die von der TM 𝑀 berechnete Funktion bezeichnen wir mit 𝜑

(a)
Sei ℱ = { 𝑓 ∣ 𝑓 𝑖𝑠𝑡 𝑏𝑒𝑟𝑒𝑐ℎ𝑒𝑛𝑏𝑎𝑟 ∧ 𝑓 (1) 𝑖𝑠𝑡 𝑟𝑒𝑔𝑢𝑙ä𝑟 }. Um zu zeigen, dass ℱ nach Rice
unentscheidbar ist, müssen wir zwei Funktionen finden, von der eine in ℱ ist, und eine nicht.

Sei nun 𝑔, ℎ mit 𝑔(𝑤) ≔ 1 und

1, 𝑓𝑎𝑙𝑙𝑠 ∃𝑖 ≥ 0. 𝑤 = 0 1
ℎ(𝑤) =
0, 𝑠𝑜𝑛𝑠𝑡

zwei berechenbare Funktionen. Wir sehen, dass 𝑔 ∈ ℱ und ℎ ∉ ℱ. Damit ist ℱ nicht die Menge
aller berechenbaren Funktionen. Damit foglt aus dem Satz von Rice, dass 𝐿 unentscheidbar ist.

(b)
Sei ℱ = {𝑓 | 𝑓 𝑖𝑠𝑡 𝑏𝑒𝑟𝑒𝑐ℎ𝑒𝑛𝑏𝑎𝑟 ∧ 𝑓(𝑛) = 𝑛 ⋅ (𝑛 + 23) + 42}. Sei 𝑔(𝑤) = 0 die Nullfunktion, und
damit 𝑔 ∉ ℱ. Außerdem ist die Funktion in der Definition berechenbar, also in ℱ. Damit ist die
Funktion laut Satz von Rice nicht entscheidbar.

(c)
Sei ℱ = { 𝑓 ∣ 𝑓 𝑖𝑠𝑡 𝑏𝑒𝑟𝑒𝑐ℎ𝑒𝑛𝑏𝑎𝑟 ∧ |𝑓(𝑥)| ≠ |𝑥| }

IN0011 - Einführung in die Theoretische Informatik Seite 28


𝑥 = −2
𝑥 = −21

IN0011 - Einführung in die Theoretische Informatik Seite 29


Blatt 10.1
Sonntag, 1. August 2021 19:29

(a)

Wahr. Wenn beide Sprachen entscheidbar sind, dann ist ihre charakteristische Funktion
berechenbar. Also können wir eine charakteristische Funktino für A schnitt B bauen, welche 1 zurück
gibt wenn A und B zurück gibt, 0 sonst.

(b)
Falsch.

Angenommen 𝐴 = Σ∗ und 𝐵 = ℋ, dann ist 𝐴 ∪ 𝐵 = Σ∗ und damit entscheidbar, 𝐵 ist aber


unentscheidbar.

Wir zeigen ℋ ≤ ℋ mithilfe einer totalen, berechenbaren Funktion 𝑓(𝑖) = 𝑗 die wie folgt
definiert ist:

𝑤##𝑥, 𝑤𝑒𝑛𝑛 𝑖 = 𝑤#𝑥


𝑓(𝑖) ≔
0, 𝑠𝑜𝑛𝑠𝑡

Die Funktion ist total, da sie für alle 𝑤 ∈ Σ ∗ definiert ist. Außerdem ist sie in begrenzter Zeit von
einer Turingmaschine berechenbar.

Dann gilt:

𝑖 ∈ ℋ ⇔ 𝑀 [𝑥] ↓ ⇔ 𝑀 [𝜖𝑥𝜖] ↓ ⇔ 𝑗 ∈ ℋ

Also ließe sich das allgemeine Halteproblem mit ℋ entscheiden, ein widerspruch. Deshalb ist
auch ℋ unentscheidbar.

IN0011 - Einführung in die Theoretische Informatik Seite 30


Sei 𝑀 eine Turing-Maschine die auf allen Eingaben hält.

Sei eine Turingmaschine 𝑀 gegeben. Daraus konstruiert man eine 2-Band-Turing-Maschine


( ) ( )
𝑀 ≔ 𝑀 𝑀 mit Gödelnummer 𝑓(𝑤) ≔ 𝑤 , die wie folgt arbeitet:
• 𝑀 wird gestartet mit einer Eingabe 𝑥 auf Band 1 und 𝜖 auf Band 2.
• Sie arbeitet zunächst auf Band 2 wie 𝑀 [𝜖].
• Falls 𝑀 [𝜖] ↓, arbeitet sie dann auf Band 1 wie 𝑀 .

𝑀 akzeptiert also die Sprache

∅, 𝑓𝑎𝑙𝑙𝑠 𝑀 𝑏𝑒𝑖 𝐼𝑛𝑝𝑢𝑡 𝜖 𝑛𝑖𝑐ℎ𝑡 ℎä𝑙𝑡


𝐿 =
Σ∗, 𝑓𝑎𝑙𝑙𝑠 𝑀 𝑏𝑒𝑖 𝐼𝑛𝑝𝑢𝑡 𝜖 ℎä𝑙𝑡

Also gilt:

𝑤 ∈ℋ ∗ ⇔𝐿 = Σ ∗ ⇔ 𝑀 [𝜖] ↓ ⇔ 𝑤 ∈ ℋ

Damit ist ℋ auf ℋ ∗ reduziert.

(a)
⎯⎯
Inkorrekt. Angenommen 𝐴 = ∅, dann wäre 𝐴 = Σ ∗ . Dann bräuchten wir zur Reduktion eine
⎯⎯
Funktion ∀𝑥 ∈ 𝐴 ⇔ 𝑓(𝑥) ∉ Σ ∗ . Eine solche Funktion 𝑓 existiert aber nicht.

(b)

Korrekt.

Wenn 𝐴 ≤ 𝐵, dann gibt es eine totale, berechenbare Funktion mit ∀𝑥 ∈ Σ ∗ . 𝑥 ∈ 𝐴 ⇔ 𝑓(𝑥) ∈ 𝐵.


⎯⎯ ⎯⎯ ⎯⎯
Deshalb muss es auch eine Funktion geben, für die ∀𝑥 ∈ Σ ∗ . 𝑥 ∈ 𝐴 ⇔ 𝑓(𝑥) ∈ 𝐵. Daraus folgt 𝐴 ≤
⎯⎯
𝐵. Rückrichtung analog.

IN0011 - Einführung in die Theoretische Informatik Seite 31


(a)

Sei ℱ ≔ {𝑓 | 𝑓 𝑖𝑠𝑡 𝑏𝑒𝑟𝑒𝑐ℎ𝑒𝑛𝑏𝑎𝑟 ∧ 𝑓 (1) 𝑖𝑠𝑡 𝑟𝑒𝑔𝑢𝑙ä𝑟}. Um zu zeigen, dass die Sprache 𝐿
unentscheidbar ist, müssen wir zwei Funktionen 𝑔, ℎ suchen, von der eine in der Sprache ist,
und die andere nicht.

Die leere Sprache ist in 𝐿 , also ℎ(𝑥) = ∅ ∈ ℱ. Nun suchen wir eine Funktion die nicht in der
Sprache ist. Sei 𝑔 diese Funktion, die wie folgt definiert ist:

1, 𝑤𝑒𝑛𝑛 𝑥 = 𝑎 𝑏 . 𝑛 > 0
𝑔(𝑥) ≔
0, 𝑠𝑜𝑛𝑠𝑡

Also ist 𝑔 ∉ ℱ. Damit ist ℱ nicht die Menge aller berechenbaren Funktionen, und damit durch
Satz von Rice unentscheidbar.

(b)

Sei ℱ ≔ {𝑓 | 𝑓 𝑖𝑠𝑡 𝑏𝑒𝑟𝑒𝑐ℎ𝑒𝑛𝑏𝑎𝑟 ∧ 𝑓(𝑥) = 𝑥 ⋅ (𝑥 + 23) + 42}. Sei 𝑔(𝑥) = 0 die Nullfunktion,
damit ist 𝑔 ∉ ℱ. Sei ℎ(𝑥) = 𝑥 ⋅ (𝑥 + 23) + 42, also ℎ ∈ ℱ.

IN0011 - Einführung in die Theoretische Informatik Seite 32


Freitag, 2. Juli 2021 10:20

(a)
<1 >≤< 2>

Gesucht: 𝑓 total und berechenbar mit

𝑓: 𝐺 → 𝐺′

𝐿(𝐺 ) ∩ 𝐿(𝐺 ) = ∅ ⇒ |𝐿(𝐺′ ) ∩ 𝐿(𝐺′ )| = 0

𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ≠ ∅ ⇒ |𝐿(𝐺′ ) ∩ 𝐿(𝐺′ )| = ∞

Wenn 𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ≠ ∅, dann gibt es ein 𝑤 ∈ 𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ⇒ 𝑤 ∈ 𝐿(𝐺 ) ∧ 𝑤 ∈ 𝐿(𝐺 ).

𝑓: 𝐺 → 𝐺′ sodass 𝐿(𝐺 ) = 𝐿(𝑎∗ 𝑑) ∘ 𝐿(𝐺)

𝑓 ist total und berechenbar:

Wir fügen ein neues Startsymbol hinzu mit 𝑆 → 𝑎𝑆 ∣ 𝑑𝑆

𝑓 ist korrekt:
𝐿(𝐺′ ) ∩ 𝐿(𝐺 ) = 𝐿(𝑎∗ 𝑑)𝐿(𝐺 ) ∩ 𝐿(𝑎∗ 𝑑)𝐿(𝐺 ) = 𝐿(𝑎∗ 𝑑) 𝐿(𝐺 ) ∩ 𝐿(𝐺 )

𝐿 = 𝐿(𝑎∗ 𝑑) 𝐿(𝐺 ) ∩ 𝐿(𝐺 )

Wenn 𝐿(𝐺 ) ∩ 𝐿(𝐺 ) = ∅ ⇒ 𝐿 = 𝐿(𝑎∗ 𝑑)∅ = ∅

Wenn 𝐿 , ≠ ∅ ⇒ |𝐿 | = 𝐿(𝑎∗ 𝑑)𝐿 , =∞

(b)
Gesucht: 𝑓 total und berechenbar mit

𝑓: 𝐺 → 𝐺′

IN0011 - Einführung in die Theoretische Informatik Seite 33


𝑓: 𝐺 → 𝐺′

𝐿(𝐺 ) ∩ 𝐿(𝐺 ) = ∅ ⇒ 𝐿(𝐺 ′) ∩ 𝐿(𝐺 ′) ist kontextfrei

𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ≠ ∅ ⇒ 𝐿(𝐺 ′) ∩ 𝐿(𝐺 ′) ist nicht kontextfrei

𝐿 , = 𝐿(𝐺 ) ∩ 𝐿(𝐺 )
𝐿 , = 𝐿(𝐺 ) ∩ 𝐿(𝐺 )

𝑓: 𝐺 → 𝐺 sodass 𝐿(𝐺 ) = 𝐿(𝐺 ){𝑑} 𝑎 𝑏 𝑐 𝑖, 𝑗 ∈ ℕ}


𝑓: 𝐺 → 𝐺 sodass 𝐿(𝐺 ) = 𝐿(𝐺 ){𝑑} 𝑎 𝑏 𝑐 𝑖, 𝑗 ∈ ℕ}

𝑓 ist total und berechenbar:

Wir fügen ein neues Startsymbol hinzu mit 𝑆 → 𝑎𝑆 ∣ 𝑑𝑆

𝑓 ist korrekt:
𝐹𝑎𝑙𝑙 𝐿 , = ∅:
⇒ 𝐿 , = 𝐿 , ∘ {𝑑} 𝑎 𝑏 𝑐 𝑖 ∈ ℕ = ∅

𝐹𝑎𝑙𝑙 𝐿 , ≠ ∅: Angenommen 𝐿 , wäre kontextfrei.

𝐿 , =𝐿 , ∘ {𝑑} 𝑎 𝑏 𝑐 𝑖 ∈ ℕ

Wir wissen ∃𝑤 ∈ 𝐿 , und wissen auch Residualsprachen von CFLs sind auch CFLs.

( )
⇒𝐿 , = 𝑎 𝑏 𝑐 𝑖 ∈ ℕ ist CFL ← das ist ein widerspruch.
⇒𝐿 , ist keine CFL.

ℋ, 𝒦, 𝑃𝐶𝑃, 𝒱
{𝑥 ∈ ℕ|𝑥 = 𝑓(1)}, 𝑎𝑙𝑙𝑒 𝐿 ∈ 𝑃

entscheidbar semi-entscheidbar
semi-entscheidbar rekursiv-aufzählbar
co-semi-entscheidbar unentscheidbar
rekursiv-aufzählbar

co-semi-entscheidbar nulli-entscheidbar
unentscheidbar unentscheidbar

IN0011 - Einführung in die Theoretische Informatik Seite 34


co-semi-entscheidbar nulli-entscheidbar
unentscheidbar unentscheidbar

⎯⎯ ⎯⎯⎯ ⎯⎯ ⎯⎯⎯⎯ ⎯⎯ ⎯⎯⎯ ⎯⎯⎯⎯⎯


ℋ , ℋ , 𝒦 , 𝑃𝐶𝑃, 𝒱 ℋ ∗, ℋ ∗, ℋ ,ℋ

IN0011 - Einführung in die Theoretische Informatik Seite 35


Blatt 11.1
Montag, 2. August 2021 15:19

Wir zeigen, dass die Sprache ℋ unentscheidbar ist, indem wir sie mit einer Funktion 𝑓 auf auf
das Halteproblem auf leerem Wort ℋ reduzieren. Dazu definieren wir eine TM 𝑀 , welche auf
keiner Eingabe hält. Die Gödelnummer zu 𝑀 = 𝑤 . Jetzt definieren wir eine Funktion 𝑓, welche ein
belibieges Eingabewort 𝑤 so modifiziert, dass 𝑀 die Eingabe verwirft und sich dann wie 𝑀
verhält. Die Funktion 𝑓(𝑖) = 𝑗 sieht dabei so aus:

𝑤 #𝑤 , 𝑤𝑒𝑛𝑛 𝑖 = 𝑤
𝑓(𝑖) =
0, 𝑠𝑜𝑛𝑠𝑡

Die Funktion ist total, und die Modifikation des Eingabewortes ist in begrenzter Zeit berechenbar.
Daraus folgt:

𝑖 ∈ ℋ ⇔ 𝑀 [𝜖] ↓ ⇔ 𝑀 [𝜖] ↓ ∧ ¬𝑀 ↓ ⇔ 𝑗 ∈ ℋ

Wir zeigen, dass ⟨1⟩ ≤ ⟨2⟩ mithilfe einer Funktion 𝑓.


Gesucht: 𝑓 total und berechenbar mit 𝑓: 𝐺 → 𝐺

𝐿(𝐺 ) ∩ 𝐿(𝐺 ) = ∅ ⇒ |𝐿(𝐺 ) ∩ 𝐿(𝐺 )| < ∞


𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ≠ ∅ ⇒ |𝐿(𝐺 ) ∩ 𝐿(𝐺 )| = ∞

Sei 𝑓: 𝐺 → 𝐺′, sodass 𝐿(𝐺 ) = 𝐿(𝑎∗ 𝑏)𝐿(𝐺)

𝑓 fügt ein neues Startsymbol 𝑆 und folgende Produktionsregeln hinzu:

IN0011 - Einführung in die Theoretische Informatik Seite 36


𝑓 fügt ein neues Startsymbol 𝑆 und folgende Produktionsregeln hinzu:

𝑆 → 𝑎𝑆 | 𝑏𝑆

Dies ist in endlicher Zeit berechenbar.

𝐿(𝐺 ) ∩ 𝐿(𝐺 ) = 𝐿(𝑎∗ 𝑏)𝐿(𝐺 ) ∩ 𝐿(𝑎∗ 𝑏)𝐿(𝐺 ) ⇒ 𝐿(𝑎∗ 𝑏) 𝐿(𝐺 ) ∩ 𝐿(𝐺 )

Daraus folgt, wenn 𝐿(𝐺 ) ∩ 𝐿(𝐺 ) = ∅:

𝐿(𝑎∗ 𝑏)∅ = ∅ ⇒ |𝐿(𝑎∗ 𝑏)∅| = |∅| = 0 < ∞

Und wenn 𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ≠ ∅:

𝐿(𝑎∗ 𝑏)𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ≠ ∅ ⇒ |𝐿(𝑎 ∗ 𝑏)𝐿(𝐺 ) ∩ 𝐿(𝐺 )| = ∞

Damit ist 𝑓 korrekt.

(b)

Wir zeigen ⟨1⟩ ≤ ⟨3⟩ mithilfe einer Funktion f.

Gesucht: 𝑓 total und berechenbar mit 𝑓: 𝐺 → 𝐺

𝐿(𝐺 ) ∩ 𝐿(𝐺 ) = ∅ ⇒ 𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ist kontextfrei


𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ≠ ∅ ⇒ 𝐿(𝐺 ) ∩ 𝐿(𝐺 ) ist nicht kontextfrei

𝐿 , ≔ 𝐿(𝐺 ) ∩ 𝐿(𝐺 )
𝐿 , ≔ 𝐿(𝐺 ) ∩ 𝐿(𝐺 )

𝑓: 𝐺 → 𝐺 , sodass 𝐿(𝐺 ) = 𝐿(𝐺 ){𝑑} 𝑎 𝑏 𝑐 𝑖, 𝑗 ∈ ℕ}

𝑓: 𝐺 → 𝐺 , sodass 𝐿(𝐺 ) = 𝐿(𝐺 ){𝑑} 𝑎 𝑏 𝑐 𝑖, 𝑗 ∈ ℕ}

𝐿(𝐺 ){𝑑} 𝑎 𝑏 𝑐 𝑖, 𝑗 ∈ ℕ} ∩ 𝐿(𝐺 ){𝑑} 𝑎 𝑏 𝑐 𝑖, 𝑗 ∈ ℕ} = 𝐿(𝐺 ) ∩ 𝐿(𝐺 )

𝑓 ist total und berechenbar:


Wir fügen ein neues Startsymbol hinzu mit 𝑆 → 𝑎𝑆 | 𝑑𝑆

𝑓 ist korrekt:
Fall: 𝐿 , = ∅

𝐿 , {𝑑}{

IN0011 - Einführung in die Theoretische Informatik Seite 37


IN0011 - Einführung in die Theoretische Informatik Seite 38
Blatt 13
Freitag, 16. Juli 2021 10:17

Angenommen 𝐿(𝐴) wäre semi-entscheidbar, dann gäbe es eine TM 𝑀 welche diese Sprache semi-
entscheidet.

Sei 𝑀′ nun eine TM mit folgenden Eigenschaften:


1. 𝑀′ kopiert das Eingabewort 𝑤 auf ein separates Band
2. 𝑀 simuliert 𝑀.
3. Wenn 𝑀 anhält, führe eine DTM aus welche alles akzeptiert
4. Verwirf sonst

Gesucht:
𝑓: {0,1}∗ → {0,1}∗
⎯⎯⎯
𝑤∈𝐻 ⇔𝑤 ∈𝐴

Zu zeigen
⎯⎯⎯
𝑤 ∈ 𝐻 ⇒ 𝑤 ∈ 𝐴 heißt 𝑀 [𝜖] ⇒ |𝐿(𝑀 )| ≤ 42
⎯⎯⎯
𝑤 ∉ 𝐻 ⇒ 𝑤 ∉ 𝐴 heißt 𝑀 [𝜖]↓ ⇒ |𝐿(𝑀 ) > 42

𝑓: Konstruiere 𝑤′ sodass 𝑀 die Eingabe löscht und führt dann 𝑀 aus.


Falls 𝑀 terminiert, akzeptiere.

IN0011 - Einführung in die Theoretische Informatik Seite 39


Korrekt:

⎯⎯⎯
𝑤 ∈ 𝐻 ⇒ ¬𝑀 [ϵ]↓ ⇒ |𝐿(𝑀 )| = |∅| = 0 ≤ 42
⎯⎯⎯
𝑤 ∉ 𝐻 ⇒ 𝑀 [𝜖]↓ ⇒ |𝐿(𝑀 )| = |Σ ∗ | = ∞ > 42
⎯⎯⎯
⇒𝐻 ⊆𝐴
⇒ 𝐴 ist nicht semi-entscheidbar

IN0011 - Einführung in die Theoretische Informatik Seite 40