BuK/IIm20/Vorlesung 7 Lemke

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>FLACI_c2889grozq3oug</language>
== Kreativaufgabe S. 8 ==

=== Sprache der Turingmaschinenkodierung ===

Die Definition der formalen Sprache auf FLACI: https://flaci.com/Trozq3oug

Hier kann man Eingaben testen:

<run id="6096a86351288">
q1q2q3$abc$abc€$q1$€$q2q3$q1abRq2$q2bcLq1$$$
</run>

== Übungsaufgabe S. 15 ==

=== Teil der Reduktionsmaschine des Reduktionsalgorithmus, prüft, ob Wort Form uu hat und hinterlässt u ===

Ein Entwurf eines Algorithmus:

[[Bild:Abc-TM-Algorithmus.jpg]]

Die Implementation mit einem Zustandsdiagramm:

[[Bild:Abc-tm.png]]

Zum Ausprobieren, hier der Link zum Zustandsdiagramm auf FLACI: https://flaci.com/Aiqx00tiz

== Übungsaufgabe S. 18 ==

=== Beweis zur Kontraposition des Reduzierbarkeitssatzes ===

[[Bild:Beweis-mit-Wahrheitstafel.jpg]]

== Die Entscheidungsprobleme als charakteristische Funktionen ==

$L_H = \{<M>w\ |\ M(w)$ stoppt nach endlicher Zeit$\}$

<code id="60969a2e6d1bb">
def chi_LH(kodierung_TM, wort):
	if eval(kodierung_TM, wort) == True or eval(kodierung_TM, wort) == False:
		return True
	else:
		return False
</code>

$L_{H_ε} = \{<M> |\ M(ε)$ stoppt nach endlicher Zeit$\}$

<code id="60969a2e6d255">
def chi_LHepsilon(kodierung_TM):
	epsilon = ''
	if eval(kodierung_TM, epsilon) == True or eval(kodierung_TM, epsilon) == False:
		return True
	else:
		return False
</code>

$L_{LBP} = \{<M> |\ M$ hält auf dem (anfangs) leeren Band$\}$

<code id="60969a2e6d2cf">
def chi_LBP(koderierung_TM):
	if eval(kodierung_TM) == True or eval(kodierung_TM) == False:
		return True
	else:
		return False
</code>

$L_f = \{<M> |\ M(w ) = f (w )\}$

<code id="60969a2e6d32c">
def chi_Lf(kodierung_TM):
	w = 'blabla'
	f = random_function
	if eval(kodierung_TM, w) == f(w):
		return True
	else:
		return False
</code>

$L_ε = \{<M> |\ ε ∈ L(M)\}$

<code id="60969a2e6d388">
def chi_Lepsilon(kodierung_TM):
	epsilon = ''
	if eval(kodierung_TM, epsilon) == True:
		return True
	else:
		return False
</code>

$L_∅ = \{<M> |\ L(M) = ∅\}$

<code id="60969a2e6d3fc">
def chi_Lleer(kodierung_TM):
	eingabewortmenge = wortmenge(eingabe_alphabet_aus_kodierung(kodierung_TM))
	for w in eingabewortmenge:
		if eval(kodierung_TM, w) == True:
			return False
	else:
		return True
</code>

$L_{reg} = \{<M> |\ L(M)$ ist regulär$\}$

<code id="60969a2e6d453">
def chi_Lregulaer(kodierung_TM):
	return ist_tm_zu_endlichem_automaten_reduzierbar(kodierung_TM)
</code>

$L_{Σ^∗} = \{<M> |\ L(M) = Σ^∗ \}$

<code id="60969a2e6d4a6">
def chi_Ltotal(kodierung_TM):
	eingabewortmenge = wortmenge(eingabe_alphabet_aus_kodierung(kodierung_TM))
	for w in eingabewortmenge:
		if eval(kodierung_TM, w) == False:
			return False
	else:
		return True
</code>