<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Theoretische Informatik Archive - Maximilian Krieg</title>
	<atom:link href="https://maximiliankrieg.de/category/studium/bachelor-of-science/2-semester-b-sc/theoretische-informatik/feed/" rel="self" type="application/rss+xml" />
	<link>https://maximiliankrieg.de/category/studium/bachelor-of-science/2-semester-b-sc/theoretische-informatik/</link>
	<description>Wissen, Technik &#38; Erfahrungen</description>
	<lastBuildDate>Tue, 24 Feb 2026 21:56:11 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://maximiliankrieg.de/wp-content/uploads/2026/05/cropped-20260524_logo_2_512-2-32x32.png</url>
	<title>Theoretische Informatik Archive - Maximilian Krieg</title>
	<link>https://maximiliankrieg.de/category/studium/bachelor-of-science/2-semester-b-sc/theoretische-informatik/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Theoretische Informatik (Vorlesung 12)</title>
		<link>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-12/</link>
					<comments>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-12/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 15 Jun 2012 20:43:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1333</guid>

					<description><![CDATA[<p>Chomsky-Normalform t1n tik K=1 k=2 K=3 k=4 i = 1 A Ø Ø S (t14&#160;= t1n) i =2 A S C &#160;&#8211; i =3 B&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-12/">Theoretische Informatik (Vorlesung 12)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Chomsky-Normalform</h3>



<ul class="wp-block-list">
<li>Eine kontextfreie Grammatik G = (N, Σ, S, P) liegt in Chomsky-Normalform vor, falls jede Produktion die Form
<ul class="wp-block-list">
<li>A → a mit A ∈ N und a ∈ Σ oder</li>



<li>A → BC mit A, B, C ∈ N</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">t<sub>1n</sub></h3>



<ul class="wp-block-list">
<li>Die Menge der NTS von denen sich das Teilwort von w, das an erster Stelle beginnt und Länge n hat, ableiten lässt ( t<sub>1n</sub> =  w )</li>



<li>Dann gilt w ∈ L(G) (S|-<sub>g</sub>* w ) → S ∈ t<sub>1n</sub>.</li>



<li><strong>Wie konstrukiert man t<sub>1n</sub> in endlichen Schritten?</strong>
<ol class="wp-block-list">
<li>Bestimme t<sub>11</sub>, t<sub>21</sub>, t<sub>31</sub>, .. , t<sub>n1</sub> (t<sub>11</sub> ist die Menge aller NTS von denen aus sich das Teilwort von w, das an erster Stelle beginnt und Länge 1 hat) ableiten lässt ( w=w<sub>1</sub> .. w<sub>n</sub> ) t<sub>11</sub> = { A ∈ N, A → w<sub>1</sub> ∈ P} t<sub>21</sub> = { A ∈ N, A → w<sub>2</sub> ∈ P} &#8230; t<sub>n1</sub> = { A ∈ N, A → wn ∈ P}</li>
</ol>
</li>



<li><strong>Wie bestimmen wir t<sub>ik</sub> für k>=2?</strong>
<ul class="wp-block-list">
<li>t<sub>ik</sub> = { A ∈ N, es existiert ein z ∈ { 1,&#8230;, k-1} und B,C ∈ N so, dass A → BC ∈ P, B,C ∈ N so, dass A → BC ∈ P, B |-<sub>g</sub>* w<sub>i</sub> .. w<sub>(i + z -1)</sub> und C |-<sub>g</sub>* w<sub>(i+z)</sub> &#8230; w<sub>(i+k-1)</sub></li>



<li>B |-<sub>g</sub>* w<sub>i</sub> .. w<sub>(i+z-1)</sub> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> B ∈ t<sub>iz</sub> und C |-<sub>g</sub>* w<sub>(i+z)</sub> .. w<sub>i+k-1</sub> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />  C ∈ t<sub>(i+z, k-z)</sub> also</li>



<li>t<sub>ik</sub> = { A ∈ N, es ex. z ∈ { 1,..,k-1} und B,C ∈ N so, dass A → BC ∈ P, B ∈ t<sub>iz</sub> und C ∈ t<sub>(i+z, k-z)</sub> , also = U<sup>(k-1)__z</sup>=1 { A ∈ N, € B,C ∈ N mit A → BC  ∈ P, B ∈ t<sub>iz</sub> und ( ∈ t<sub>(i+z,k-z) </sub>)</li>
</ul>
</li>



<li><strong>Algorithmus CYK-Algorithmus</strong> Eingabe: Eine kontextfreie Grammatik G = (N, Σ, S, P) in Chomsky-Normalform, ein Wort w ∈ Σ*</li>
</ul>



<ol class="wp-block-list">
<li>n := |w|</li>



<li>for i = 1 to n do</li>



<li>t<sub>i1</sub> = {A ∈ N; A −→ w<sub>i</sub> ∈ P}</li>



<li>od // od = end // Wir wandeln das Wort in einzelne Zeichen um und leiten diese in NTS zurück ab</li>



<li>for k = 2 to n do</li>



<li>for i = 1 to n − k + 1 do</li>



<li>t<sub>ik</sub> = ∅</li>



<li>for z = 1 to k − 1 do // Wir laufen mit größer werdendem Bereich, beginnend bei 2 durch das Wort, erzeugen dabei Teilworte und schauen, ob die Paare von einem einzelnen NTS erzeugt werden können</li>



<li>tik = tik ∪ {A ∈ N; ∃B, C ∈ N : A −→ BC ∈ P, B ∈ t<sub>iz</sub>, C ∈ t<sub>i+z,k−z </sub>}</li>



<li> od</li>



<li> od</li>



<li> od</li>



<li> if S ∈ t<sub>1n</sub> then</li>



<li>return wahr</li>



<li>else</li>



<li>return falsch</li>



<li>fi</li>
</ol>



<ul class="wp-block-list">
<li><strong>Satz 3.17.</strong>
<ul class="wp-block-list">
<li>Das Wortproblem fur kontextfreie Sprachen, die durch Grammatiken in Chomsky  -Normalform gegeben sind, sind in Zeit O(n<sup>3</sup>) entscheidbar</li>
</ul>
</li>



<li><strong> Beispiel 3.18.</strong>
<ul class="wp-block-list">
<li>Wir betrachten die Grammatik G = (N, Σ, S, P) mit N = {A, B, C, S}, Σ = {0, 1} und den Produktionen<ul><li>S → AC,</li><li>S → AB,</li><li>C → SB,</li><li>A → 0,</li><li>B → 1</li><li>Für das Wort w = 0011 ∈ Σ* wollen wir überprüfen, ob w ∈ L(G). Dazu berechnen wir wie der CYK-Algorithmus die Menge t<sub>1n</sub>.</li><li>w = 0011</li></ul>
<ol class="wp-block-list">
<li>n = 4</li>



<li>t<sub>11</sub> = { x ∈ N; x → w<sub>1</sub> ∈ P } = { x ∈ N; x → 0 ∈ P } = { A } // =0 t<sub>21</sub> = { x ∈ N; x → w<sub>2</sub> ∈ P } = { x ∈ N; x → 0 ∈ P } = { A } // =0 t<sub>31</sub> = { B } t<sub>41</sub> = { B } </li>



<li>t<sub>12</sub> = U<sup>2-1_z = 1 =  { X ∈ N; E Y,Z ∈ N mit X → YZ ∈ P, Y ∈ t<sub>iz</sub> und Z ∈ t<sub>(i+1,1)</sub>} = <em>{ X ∈ N,E Y,Z ∈ N mit X→ YZ ∈ P, Y ∈ t<sub>11</sub> und z ∈ t<sub>21</sub> } = { X ∈ N,E Y,Z ∈ N mit X → YZ ∈ P, Y ∈ { A }, Z ∈ { A } } → <strong>Gibt es eine Regel x → AA? <em>→ Nein → = Ø </em></strong></em></sup><strong><em>t<sub>22</sub> = [ &#8230; ] = Regel S → AB der Form X → AB)</em></strong></li>
</ol>
</li>
</ul>
</li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>t<sub>ik</sub></td><td>K=1</td><td>k=2</td><td>K=3</td><td>k=4</td></tr><tr><td>i = 1</td><td>A</td><td>Ø</td><td>Ø</td><td><strong>S (t<sub>14</sub>&nbsp;= t<sub>1n</sub>)</strong></td></tr><tr><td>i =2</td><td>A</td><td>S</td><td>C</td><td>&nbsp;&#8211;</td></tr><tr><td>i =3</td><td>B</td><td>Ø</td><td>&nbsp;&#8211;</td><td>&nbsp;&#8211;</td></tr><tr><td>i =4</td><td>B</td><td>&nbsp;&#8211;</td><td>&nbsp;&#8211;</td><td>&nbsp;&#8211;</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Chomsky-NF</h3>



<ul class="wp-block-list">
<li>A → BC</li>



<li>A → a</li>



<li><strong>Typ 0:</strong> rek. abzählbar</li>



<li><strong>Typ 1:</strong>KS
<ul class="wp-block-list">
<li>u<sub>1</sub> A u<sub>2</sub> → u<sub>1</sub> l u<sub>2</sub> mit |l| >=1,0</li>



<li>S → E, dann darf S auf keiner rechten Regelseite vorkommen</li>
</ul>
</li>



<li><strong>Typ 2:</strong>KF
<ul class="wp-block-list">
<li>A → l mit A <em>∈</em> N und l <em>∈</em> ( N u E)*</li>
</ul>
</li>



<li><strong>Typ 3:</strong> RL</li>
</ul>



<ul class="wp-block-list">
<li>rechtslinear → kontextfrei</li>



<li>kontextsensitiv → rek. abzählbar</li>



<li>kontestfreie <strong>Sprache</strong> → kontextsensitive <strong>Sprache</strong> // Gilt nicht für Grammatiken</li>



<li><strong>Satz 3.19.</strong>
<ul class="wp-block-list">
<li>Zu jeder kontextfreien Grammatik G = (N, Σ, S, P) gibt es eine kontextfreie Grammatik G′ = (N, Σ, S, P) ohne Regeln der Form A → E mit L(G′) = L(G)\{E} // Wir erzeugen die gleiche Sprache ohne das leere Wort</li>
</ul>
</li>



<li><strong>Satz 3.20.</strong>
<ul class="wp-block-list">
<li>(i) Zu jeder kontextfreien Grammatik G gibt es eine kontextfreie Grammatik G′, in der es keine Regeln der Form A → E für A ≠ S gibt. Ist S → E eine Regel in G′, so kommt S nicht auf der rechten Seite einer Regel in G′ vor. //( mit L(G)\{E} = L(G&#8216;)}</li>



<li>(ii) Jede kontextfreie Sprache ist auch kontextsensitiv (d.h. L<sub>2</sub> ⊆ L<sub>1</sub>)</li>
</ul>
</li>



<li><strong>Beweis 3.20</strong>
<ul class="wp-block-list">
<li>(i) Wir konstruieren aus G wie in Satz 3.19 zunachst eine kontextfreie Grammatik G′ ohne Regeln der Form A → E mit  L(G)\{E} = L(G&#8216;)}</li>



<li>Ist nun E <em>∈</em> L(G), so führen wir ein neues NTS S&#8216; zu G&#8216; hinzu, ersetzen in allen Regeln aus G&#8216; S durch S&#8216; und fügen die Regeln S → S&#8216; und S→E zu G&#8216; hinzu. Die so definierte Grammatik erfüllt dann die Behauptung.</li>
</ul>
</li>



<li><strong>Beweis 3.19 </strong>
<ul class="wp-block-list">
<li><em>Sei N<sub>ε</sub> = { A ∈ N; A |-<sub>g</sub>* E }</em></li>



<li><em>P&#8216; = { A → l&#8216;; € A → l ∈ P und l&#8216; entsteht aus l durch Streichung beliebig vieler NTS B ∈ N<sub>ε</sub> }</em></li>



<li><em>P&#8216; = { A → ε, A ∈ N } dann erfüllt G = ( N, Σ, S, P ) die Bedingung</em></li>



<li><em>→ Beispiel 3.21 im Skript </em>
<ul class="wp-block-list">
<li><em>→ N<sub>ε</sub> = {C,A}</em></li>



<li>S → ACB und A→C und C→E zusammenfassen [ S → AB, S→CB und S→B ]</li>



<li><del>C → E</del></li>
</ul>
</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Herleitung Chomsky NF</h3>



<ul class="wp-block-list">
<li>Sei also ab jetzt G = (N, Σ, S, P) eine kontextfreie Grammatik ohne Regeln der Form A → ε</li>



<li><strong>Ziel:</strong> Konstruiere aus G eine Grammatik G&#8216; in Chomsky NF</li>



<li><strong>Bsp.:</strong> G = (N = {S, A, B, C}, Σ = {a, b}, S, P)
<ul class="wp-block-list">
<li>mit den Produktionen
<ul class="wp-block-list">
<li>S → ab|aA|A</li>



<li>A → B|C|aBb</li>



<li>B → S</li>



<li>C → abS</li>
</ul>
</li>
</ul>
</li>



<li><strong>1. Schritt: </strong>Die Nichtterminalsymbole S, A, B sind also gleichwertig (von jedem dieser Nichtterminalsymbole aus lassen sich in der Grammatik wegen des Zyklus die selben Worter ableiten). Wir können also S = A = B setzen und passen die Regeln entsprechend an. Dies führt zu den Produktionen
<ul class="wp-block-list">
<li>S → ab|aS|S</li>



<li>S → S|C|aSb</li>



<li>S → S</li>



<li>C → abS</li>



<li>Zusätzlich können wir die Produktion S → S streichen und erhalten somit die Produktionen
<ul class="wp-block-list">
<li>S → ab|aS|C|aSb</li>



<li>C → abS // wird im nächsten Schritt weggekürzt, da S → C → abS eindeutig ist</li>
</ul>
</li>
</ul>
</li>



<li><strong>2. Schritt:</strong>Regeln der Form A → B weiter untersuchen und die rechte Regelseite durch lange rechte Regelseiten aus den Regeln B → l mit |l| ≥ 2 ersetzen. In unser Beispielgrammatik gibt es nur noch eine Regel von dieser Form (S → C).
<ul class="wp-block-list">
<li>S → C => S → abS und erhalten damit S → ab|aS|aSb und  C → abS</li>
</ul>
</li>



<li><strong>3. Schritt</strong>In den Regeln der Form A → l mit |l| ≥ 2 ersetzen wir jedes Terminalsymbol a ∈ Σ durch ein zusatzliches Nichtterminalsymbol H<sub>a</sub> und nehmen die Regel H<sub>a</sub>→ a auf.
<ul class="wp-block-list">
<li>S → ab =>
<ul class="wp-block-list">
<li>S→ H<sub>a</sub> H<sub>b</sub></li>



<li>H<sub>a</sub> → a</li>



<li>H<sub>b</sub> → b</li>
</ul>
</li>



<li>S → aS =>
<ul class="wp-block-list">
<li>S → H<sub>a</sub> S</li>
</ul>
</li>



<li>S→ abS =>
<ul class="wp-block-list">
<li>S → H<sub>a</sub> H<sub>b</sub> S // im nächsten Schritt auf Länge 2 bringen</li>
</ul>
</li>



<li>S → aSb =>
<ul class="wp-block-list">
<li> S → H<sub>a</sub> S H<sub>b</sub> // im nächsten Schritt auf Länge 2 bringen</li>
</ul>
</li>



<li>C → abS =>
<ul class="wp-block-list">
<li>C → H<sub>a</sub> H<sub>b</sub> S // im nächsten Schritt auf Länge 2 bringen</li>
</ul>
</li>
</ul>
</li>



<li><strong>4. Schritt </strong>Für jede Regel der Form A → l mit |l| ≥ 3 (und damit, wie wir oben gesehen haben besteht l nur noch aus Nichtterminalsymbolen, es gilt also l = A<sub>1</sub> &#8230; A<sub>n</sub> mit A<sub>1</sub>, . . . , A<sub>n</sub> ∈ N und n ≥ 3) ersetzen wir sukzessive A<sub>1</sub>A<sub>2</sub> durch V (V ist ein neues Nichtterminalsymbol), streichen A → A<sub>1</sub> &#8230; A<sub>n</sub> und führen die neuen Regeln A → VA<sub>3</sub> .. V<sub>n</sub> und V → A<sub>1</sub>A<sub>2</sub>zu P hinzu. Dies wird solange durchgeführt, bis es keine Regeln der Form A → l mit |l| ≥ 3 mehr gibt.<ul><li>S→ H<sub>a</sub> H<sub>b</sub></li><li>H<sub>a</sub> → a</li><li>H<sub>b</sub> → b</li><li>S → H<sub>a</sub> S</li></ul>
<ul class="wp-block-list">
<li>S → V<sub>1</sub> S, V<sub>1</sub> →  H<sub>a</sub> H<sub>b</sub></li>



<li>S → V<sub>2</sub> H<sub>b</sub>, V<sub>2</sub> → H<sub>a</sub> S</li>



<li>C → V<sub>3</sub> S, V<sub>3</sub> → H<sub>a</sub> H<sub>b</sub></li>
</ul>
</li>



<li><strong>Satz 3.23</strong> Das Wortproblem für KF-Sprachen ist entscheidbar.</li>



<li><strong>Beweis: </strong>
<ul class="wp-block-list">
<li>1. Prüfe ob ε ∈ L(G) ( Prüfe ob S ∈ N<sub>ε</sub> (vgl. Beweis von Satz 3.19))</li>



<li>2. Konstruiere eine Grammatik G&#8216; ohne Regeln der Form A → ε mit L(G) \ {ε} = L(G&#8216;) ( wieder mit Satz 3.19 )</li>



<li>3. Konstruiere aus G&#8216; eine Grammatik G&#8216; in Chomsky NF mit L(G&#8216;) = L(G&#8220;)</li>



<li>4. Wende den CYK &#8211; Algorithmus auf G&#8220; an</li>
</ul>
</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-12/">Theoretische Informatik (Vorlesung 12)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-12/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 11)</title>
		<link>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-11/</link>
					<comments>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-11/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Thu, 14 Jun 2012 20:44:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1335</guid>

					<description><![CDATA[<p>Aufgabe 1 Sei&#160;Σ = {0,1} ein Alphabet und L = { w&#160;∈&#160;Σ, w ist ein palindrom}.Geben Sie eine Grammatik für L an. S → 0S0&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-11/">Theoretische Informatik (Vorlesung 11)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Aufgabe 1</h3>



<p class="wp-block-paragraph">Sei&nbsp;Σ = {0,1} ein Alphabet und L = { w&nbsp;∈&nbsp;Σ, w ist ein palindrom}.<br>Geben Sie eine Grammatik für L an.</p>



<p class="wp-block-paragraph">S → 0S0 | 1S1 | 0 | 1 |&nbsp;Σ</p>



<p class="wp-block-paragraph"><strong>Von welchem Typ ist die Grammatik?</strong><br>→ Kontextfrei,&nbsp;(Nur Regeln der Form A&nbsp;→ l<br>mit A&nbsp;∈ N und l&nbsp;∈ (N&nbsp;∪&nbsp;Σ)*)<br>→&nbsp;nicht&nbsp;Kontextsensitiv&nbsp;(Nur Regeln der Form u1Au2&nbsp;→ u1wu2<br>mit A ∈ N, w&nbsp;∈ (N&nbsp;∪&nbsp;Σ)* und |w| &gt;= 1<br>oder S →&nbsp;ε, dann darf S auf keiner rechten Regelseite vorkommen.)<br>denn S&nbsp;→&nbsp;ε&nbsp;∈ P und z.B. S&nbsp;→ 1S1&nbsp;∈ P,<br>S kommt also auf der rechten Seite einer Produktion vor.</p>



<p class="wp-block-paragraph"><strong>Einschub</strong>:<br>Konstruiere aus der kontextfreien Grammatik für L eine Grammatik, die sowohl kontextfrei als auch kontextsensitiv ist:</p>



<p class="wp-block-paragraph">1) Führe ein neues Nichtterminalsymbol S&#8216; ein.<br>2) Ersetze in jeder Regel A → l mit l =&nbsp;ε S durch S&#8216;.<br>3) Führe die neue Regel S → S&#8216; ein<br>4) Führe neue Regeln wie folgt ein:<br>In jeder Regel der Form A → l&#8216; durch streichen&nbsp;beliebug vieler S&#8216;.</p>



<p class="wp-block-paragraph"><strong>Ursprungsgrammatik</strong>:<br>S&nbsp;→ 0S0<br>S&nbsp;→ 1S1<br>S&nbsp;→ 0<br>S&nbsp;→ 1</p>



<p class="wp-block-paragraph"><strong>neue Grammatik:</strong><br>S&#8216; → 0S&#8217;0<br>S&#8216; → 00<br>S&#8216; → 1S&#8217;1<br>S&#8216; → 11<br>S&#8216; → 0<br>S&#8216; → 1<br>S → S&#8216;<br>S →&nbsp;ε</p>



<p class="wp-block-paragraph"><strong>Tipp: Anschauen für die Klausur!</strong></p>



<ul class="wp-block-list">
<li>L = { w ∈ Σ*, w Palindrom und w ≠ ε}</li>



<li>L = { w ∈ Σ*, w Palindrom und w ist gerade / ist ungerade}</li>



<li>L = { w ∈ Σ*, w ist ungerades Palindrom mit 1 in der Mitte}</li>
</ul>



<p class="wp-block-paragraph">Ende_Einschub</p>



<h3 class="wp-block-heading">Aufgabe 2</h3>



<p class="wp-block-paragraph">Konstruieren Sie einen DEA für die Menge L = {w&nbsp;∈ {0,1}*; w hat Präfix 01}.<br>Entwickeln Sie hieraus, wie in der Vorlesung, eine &nbsp;rechtslineare Grammatik G<br>mit L(G) = L.</p>



<p class="wp-block-paragraph"><strong>Automat:</strong></p>



<p class="wp-block-paragraph">A = { Q={q0,q1,q2,q3},&nbsp;Σ={0,1}, q0, d, F={q2} }<br>G = (N, Σ, S, P} soll rechtslineare Grammatik<br>mit L(G) = L, N = Q, Σ =&nbsp;Σ, S = q0,<br>P = { q0 → 0=q1, q0&nbsp;&nbsp;→ 1=q3, q1&nbsp;→ 0=q3, q1&nbsp;→ 1=q2, q2&nbsp;→ 0=q2, q2&nbsp;→ 1=q2,<br>q3&nbsp;→ 0=q3, q3&nbsp;→ 1=q3,&nbsp;q2&nbsp;→&nbsp;ε}</p>



<h3 class="wp-block-heading">Aufgabe 3</h3>



<p class="wp-block-paragraph">S&nbsp;→ 0B | 1A<br>A → 0 | 0s | 1AA<br>B → 1 | 1S | 0BB</p>



<p class="wp-block-paragraph"><strong>a) Welche Wörter sind in G aus 0S1ABS in&nbsp;einem&nbsp;Schritt ableitbar?</strong></p>



<p class="wp-block-paragraph">10 Wörter:</p>



<p class="wp-block-paragraph">0S1ABS&nbsp;→ 00B1ABS<br>0S1ABS&nbsp;→ 01A1ABS<br>0S1ABS&nbsp;→ 0S10BS<br>0S1ABS&nbsp;→ 0S10sBS<br>0S1ABS&nbsp;→ 0S11AABS<br>0S1ABS&nbsp;→ 0S1A1S<br>0S1ABS&nbsp;→ 0S1A1SS<br>0S1ABS&nbsp;→ 0S1A0BBS<br>0S1ABS&nbsp;→&nbsp;0S1AB0B<br>0S1ABS&nbsp;→&nbsp;0S1AB1A</p>



<p class="wp-block-paragraph"><strong>b) Ist 0S1ABS aus S in G ableitbar?</strong></p>



<p class="wp-block-paragraph">Nein. Um ein Wort l&nbsp;∈ (N&nbsp;∪&nbsp;Σ*) mit l1 = 0 ableiten zu können, muss am Anfang die Regel&nbsp;S&nbsp;→ 0B&nbsp;genutzt werden.<br>Es gibt keine Regel der Form B →&nbsp;S&#8230;, d.h. kein Wort der Form 0S&#8230; kann in G abgeleitet werden.</p>



<p class="wp-block-paragraph"><strong>c) Zeigen Sie, dass das Wort&nbsp;10101&nbsp;nicht in G ableitbar ist.</strong></p>



<p class="wp-block-paragraph">1.&nbsp;An erster Stelle steht eine&nbsp;1: Nutzung der Regel S&nbsp;→ 1A &nbsp; &nbsp;=1A<br>2.&nbsp;An zweiter Stelle steht eine&nbsp;0: Nutzung der Regel A&nbsp;→ 0S &nbsp;&nbsp;=10S<br>3.&nbsp;An dritter Stelle steht eine&nbsp;1: Nutzung der Regel&nbsp;S&nbsp;→ 1A &nbsp; &nbsp;&nbsp;=101A<br>4.&nbsp;An vierter Stelle steht eine&nbsp;0: Nutzung der Regel A&nbsp;→ 0S &nbsp; &nbsp;&nbsp;=1010S<br>5.&nbsp;An fünfter Stelle steht eine&nbsp;1: Nutzung der Regel&nbsp;S&nbsp;→ 1A &nbsp; &nbsp;&nbsp;=10101A</p>



<p class="wp-block-paragraph">Da für alle Regeln A&nbsp;→ l in G gilt | l | &gt;= 1,<br>d.h. für ein Wort w mit 10101A -&gt; w gilt |w| &gt; 5</p>



<p class="wp-block-paragraph"><strong>d) Zeigen Sie, dass für alle w&nbsp;∈ (N&nbsp;∪&nbsp;Σ)* mit S |-* w gilt:</strong><br>w enthält die Zeichen 0 und A genauso oft wie die Zeichen 1 und B.<br>( |w|0 + |w|A = |w|1 + |w|B)</p>



<p class="wp-block-paragraph">Beweis per Induktion über die Anzahl n der Ableitungen</p>



<p class="wp-block-paragraph">Induktionsanfang:&nbsp;Gelte n=1. Also gilt: S|-(1) w &nbsp;[w ist in einem Schritt aus S ableitbar] , d.h. w=0B oder w=1A. In beiden Fällen gilt:<br>|w|0 + |w|A = |w|1 + |w|B</p>



<p class="wp-block-paragraph">Induktionsschritt:&nbsp;(n&nbsp;→ n+1). Es gelte die Behauptung für n.<br>zu zeigen: &nbsp;Die Behauptung gilt auch für n+1.</p>



<p class="wp-block-paragraph">Sei w&nbsp;∈ (N&nbsp;∪&nbsp;Σ)* mit S|-(n+1) w. [w ist in n+1 Schritten aus S ableitbar].<br>Sei w ∈&nbsp;(N&nbsp;∪&nbsp;Σ)* mit S|-(n) w&#8216; |-(1) w.<br>Laut Induktionsvoraussetzung gilt |w&#8217;|0 + |w&#8217;|A = |w&#8217;|1 + |w&#8217;|B.</p>



<p class="wp-block-paragraph">w entsteht aus w&#8216; durch das Anwenden einer Regel aus G.</p>



<p class="wp-block-paragraph"><strong>Fallunterscheidung nach den Regeln</strong></p>



<p class="wp-block-paragraph">1. Fall: w entsteht aus w&#8216; durch anwenden der Regel S→0B:<br>|w|0 + |w|A = 1 + |w&#8217;|0 + |w&#8217;|A = 1 + |w&#8217;|1 + |w&#8217;|B = |w|0 + |w|B</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-11/">Theoretische Informatik (Vorlesung 11)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-11/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 10)</title>
		<link>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-10/</link>
					<comments>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-10/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Sun, 03 Jun 2012 20:46:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1338</guid>

					<description><![CDATA[<p>Tipp vom Prof: Aufgabe 1 kommt nicht in der Klausur dran&#8230; &#8211;&#62;&#160;Sollte &#160;nochmal nachgefragt werden, um sicher zu gehen&#8230; Aufgabe 2 konstruieren Sie einen DEA&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-10/">Theoretische Informatik (Vorlesung 10)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Tipp vom Prof: Aufgabe 1 kommt nicht in der Klausur dran&#8230; &#8211;&gt;&nbsp;<strong>Sollte &nbsp;nochmal nachgefragt werden, um sicher zu gehen&#8230;</strong></em></p>



<h3 class="wp-block-heading">Aufgabe 2</h3>



<p class="wp-block-paragraph">konstruieren Sie einen DEA über&nbsp;Σ = {0,1} für</p>



<p class="wp-block-paragraph">L1 = {w&nbsp;∈&nbsp;Σ*; w hat Präfix&nbsp;01}</p>



<p class="wp-block-paragraph">L2 = {w ∈&nbsp;Σ*; w hat Suffix&nbsp;10}</p>



<p class="wp-block-paragraph"><strong>L1</strong>&nbsp;&nbsp;</p>



<p class="wp-block-paragraph">A = (Q,&nbsp;Σ, q0, d, F)</p>



<p class="wp-block-paragraph">d: Q x Σ&nbsp;→ Q</p>



<p class="wp-block-paragraph">d(q0, 0) = q1</p>



<p class="wp-block-paragraph">d(q0, 1) = q3</p>



<p class="wp-block-paragraph">L(A) = {w ∈&nbsp;Σ*; d*(q0, w)&nbsp;∈ F}</p>



<p class="wp-block-paragraph"><strong>L2</strong>&nbsp;&nbsp;</p>



<p class="wp-block-paragraph"><strong>Einschub (Zum festigen des Stoffes)</strong></p>



<p class="wp-block-paragraph">Entwickeln sie einen DEA für&nbsp;<strong>Präfix 00&nbsp;</strong>und einen DEA für&nbsp;<strong>Suffix 00</strong></p>



<h3 class="wp-block-heading">Aufgabe 3&nbsp;(stark klausurrelevant)</h3>



<p class="wp-block-paragraph">Konstruieren Sie einen DEA für die Sprache L = { w&nbsp;∈&nbsp;Σ*; w hat Präfix 01 und Suffix 10} mittels Produktautomat L = L1 ∧ L2</p>



<p class="wp-block-paragraph">A1 = (Q,&nbsp;Σ, q0, d1, F1)</p>



<p class="wp-block-paragraph">A2 = (Z, Σ, z0, d2, F2)</p>



<p class="wp-block-paragraph"><em><strong>Produktautomat (Definition / Erinnerung)</strong></em></p>



<p class="wp-block-paragraph"><em>A = (Q x Z,&nbsp;Σ, (q0, z0), d, F1 x F2)</em></p>



<ul class="wp-block-list">
<li><em>Q x Z = {(q,z) ; q ∈ Q, z ∈ Z}</em></li>



<li><em>d: (Q x Z) x Σ → Q x Z;</em> <em>((q, z), a) → (d1(q, a), d2(z, a))</em></li>
</ul>



<p class="wp-block-paragraph">weiter mit A3&#8230;&nbsp;</p>



<h3 class="wp-block-heading">Aufgabe 4</h3>



<p class="wp-block-paragraph">Konstruieren Sie einen DEA für L1 = {w ∈ {0,1}* ; w enthält&nbsp;nicht&nbsp;das Teilwort 11}</p>



<p class="wp-block-paragraph">L2 = {w&nbsp;∈ {0,1}*; |w| &gt; 0}</p>



<p class="wp-block-paragraph">A = (Q,&nbsp;Σ, q0, d, F) mit L(A) = L</p>



<p class="wp-block-paragraph">¬L =&nbsp;Σ*\L ¬A = (Q,&nbsp;Σ, q0, d, ¬F) ist ein DEA für&nbsp;¬L</p>



<p class="wp-block-paragraph">Automat für</p>



<p class="wp-block-paragraph">¬L1 = {w&nbsp;∈ {0,1}*; w enthält das Teilwort 11}&nbsp;<strong>→ Komplementautomat</strong>&nbsp;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-10/">Theoretische Informatik (Vorlesung 10)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/06/theoretische-informatik-vorlesung-10/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 9)</title>
		<link>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-9/</link>
					<comments>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-9/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 25 May 2012 20:47:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1340</guid>

					<description><![CDATA[<p>3. Grammatiken 3.1 Chomsky-Hierarchie Grammatik Automaten/Maschinen ℒ0 Turingmaschinen ℒ1 Linear beschränkte Automaten ( beschränkte Turingmaschinen) ℒ2 Kellerautomaten (DEA mit zusätzlichem Speicher) ℒ3 DEA 3.2 Grammatiken&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-9/">Theoretische Informatik (Vorlesung 9)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">3. Grammatiken</h3>



<ul class="wp-block-list">
<li>Eine Grammatik G = (N, Σ, S, P)
<ul class="wp-block-list">
<li>N, Σ sind Alphabete</li>



<li>S ist Startsymbol</li>



<li>P ist eine Menge von Regeln u → v</li>



<li>Erzeugen von Wörtern aus dem Alphabet Σ</li>



<li>Sind mächtiger als DEA ( können mehr Sprachen beschreiben )</li>
</ul>
</li>



<li><strong>Bsp:  </strong>
<ul class="wp-block-list">
<li>G = ({S}, {a,b}, S, P) <strong>// G*</strong></li>



<li>P = {S → Σ, S → a S b }</li>



<li>S Ⱶ<sub>g</sub> a S b Ⱶ<sub>g</sub> a ( a S b ) b Ⱶ<sub>g</sub> a<sup>2</sup> b<sup>2</sup></li>



<li>L(G) = { w ∈ Σ*; S Ⱶ<sub>g</sub>* w } ist die von G erzeugte Sprache</li>



<li>L(G) = { a<sup>n</sup> b<sup>n</sup>, n ∈ ℕ }</li>
</ul>
</li>



<li><strong>Bsp:</strong>
<ul class="wp-block-list">
<li>G = (N, Σ, S, P)  mit N = {S,B}<strong> // G**</strong></li>



<li>E = {a,b,c}</li>



<li>P = {S → a S b c, S → a b c, cB → Bc, bB → bb}</li>



<li>L(G) = {a<sup>n</sup> b<sup>n</sup> c<sup>n</sup>, n ∈ ℕ}</li>
</ul>
</li>



<li><strong>Ziel:</strong>
<ul class="wp-block-list">
<li>Für welche formalen Sprachen ist das Wortproblem entscheidbar?</li>



<li><strong>Geg.:</strong> L ⊆ Σ*; w ∈ Σ*</li>



<li><strong>Frage:</strong> Gilt w ∈ L ?</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">3.1 Chomsky-Hierarchie</h3>



<ul class="wp-block-list">
<li><strong>Definition 3.6 Chomsky-Hierarchi für Grammatiken</strong>
<ul class="wp-block-list">
<li>Sei G = (N, Σ, S, P)</li>



<li>Jede Grammatik heißt vom Typ 0 ( rekursiv aufzählbar )</li>



<li>G heißt vom Typ 1 ( kontextsensitiv ) wenn jede Produktion die Form (schwer)
<ul class="wp-block-list">
<li>u<sub>1</sub> A u<sub>2</sub> → u<sub>1</sub> w u<sub>2</sub> mit A ∈ N, u<sub>1</sub>, u<sub>2</sub>, w ∈ (N ∪ Σ)* und |w| ≥ 1 oder</li>



<li> S → E ( dann kommt S in keiner Produktion auf der rechten Seite vor )</li>
</ul>
</li>
</ul>
</li>



<li>G heißt vom Typ 2 (kontextfrei), wenn jede Produktion die Form ( mittel )
<ul class="wp-block-list">
<li>A → w mit A ∈ N und w ∈ (N u Σ)*</li>
</ul>
</li>



<li>G heißt vom Typ 3 (rechtslinear), wenn jede Produktion die Form ( leicht )
<ul class="wp-block-list">
<li>A → u B mit A,B ∈ N und u ∈ Σ*, oder</li>



<li>A → u mit A ∈ N und u ∈ Σ*</li>
</ul>
</li>



<li>Verschiedene Typen von Grammatiken anhand von Bedingungen an die Form der Produktionen</li>



<li><strong>Definition 3.7</strong></li>



<li><strong>kontextsensitiv:</strong>
<ul class="wp-block-list">
<li>u<sub>1</sub> A u<sub>2</sub> → u<sub>1</sub> w u<sub>2</sub> (Ersetzung von A hängt vom Kontext ab. Links muss u<sub>1</sub> und rechts u<sub>2</sub> stehen)</li>



<li><strong>Bsp:</strong>
<ul class="wp-block-list">
<li>cB → Bc</li>



<li>bB → bb</li>



<li>= B kann nur dann ersetzt werden, wenn links c oder b steht</li>
</ul>
</li>



<li><strong>Bedingung:</strong>
<ul class="wp-block-list">
<li>|w| ≥ 1 sorgt dafür, dass Wörter während des Ableitungsprozesses nicht kleiner werden.</li>



<li>S → Σ ist zwar erlaubt, aber S darf dann nicht auf der rechten Seite einer Produktion vorkommen. Die Regel kann also nur genutzt werden um E abzuleiten. <strong>← gilt für kontextsensitive</strong></li>
</ul>
</li>
</ul>
</li>



<li><strong>kontextfrei</strong>
<ul class="wp-block-list">
<li>A → w ( A kann unabhängig davon, was links oder rechts von A steht ersetzt werden )</li>



<li><strong>Bsp. 3.8: </strong>Die Grammatik * ist kontextfrei ( und auch rekursiv abzählbar, aber weder rechtslinear, noch kontextsensitiv )</li>



<li>Die Grammatik ** ist kontextsensitiv ( und rekursiv abzählbar, aber nichts rechtslinear und nicht kontextfrei )</li>



<li>Die Grammatik *** ist rechtslinear, kontextfrei, rekursiv abzählbar, aber nicht kontextsensitiv ( wegen B → E )</li>



<li><strong>Bsp. </strong>
<ul class="wp-block-list">
<li>G = (N, Σ, S, P) mit <strong>//G***</strong>
<ul class="wp-block-list">
<li>N = {S,B}</li>



<li>E = {a,b}</li>



<li>P = { S → aS|bS|abB, B → aB|bB|E}</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>



<li><strong>Definition 3.9:</strong>
<ul class="wp-block-list">
<li>Eine Sprache L heißt rechtslinear ( kontextfrei, kontextsensitiv, rekursiv abzählbar), wenn es eine rechtslineare (kf, ks, ra) Grammatik G mit L = L(G) gibt.</li>



<li>Sei ℒ<sub>1</sub> ( altdeutsches L ) = { L(G); G ist eine Typ &#8211; 1 Grammatik}</li>



<li>ℒ<sub>3</sub> = Menge aller rechtslinearen Sprachen</li>



<li>ℒ<sub>3</sub> ⊂ ℒ<sub>2</sub></li>



<li>ℒ<sub>1</sub> ⊂ ℒ<sub>0</sub></li>



<li><strong>Frage:</strong> Gilt ℒ<sub>2</sub> ⊂ ℒ<sub>1</sub></li>



<li>Wir werden noch sehen ℒ<sub>2</sub> ⊂ ℒ<sub>1</sub> ( und damit ℒ<sub>3</sub> ⊂ ℒ<sub>2</sub> ⊂ ℒ<sub>1</sub> ⊂ ℒ<sub>0</sub>)</li>
</ul>
</li>



<li><strong>Wir stellen uns die folgenden Kernfragen:</strong>
<ul class="wp-block-list">
<li>Bilden diese Sprachklassen eine echte Hierarchie (d.h. sind alle Inklusionen echt) → <strong>Ja</strong> ( sog. Chomsky-Hierarchie )</li>



<li>Gibt es andere Charakterisierungen, z.B. über Automaten? → <strong>Ja</strong></li>
</ul>
</li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Grammatik</strong></td><td><strong>Automaten/Maschinen</strong></td></tr><tr><td>ℒ<sub>0</sub></td><td>Turingmaschinen</td></tr><tr><td>ℒ<sub>1</sub></td><td>Linear beschränkte Automaten ( beschränkte Turingmaschinen)</td></tr><tr><td>ℒ<sub>2</sub></td><td>Kellerautomaten (DEA mit zusätzlichem Speicher)</td></tr><tr><td>ℒ<sub>3</sub></td><td>DEA</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li>Bezüglich welcher Operationen ( Vereinigung, Schnitt, Komplement ) sind diese Klassen abgeschlossen? <strong>→ Das Verhalten ist sehr unterschiedlich.</strong></li>



<li>Kann man auf einfachere Regelformen reduzieren (Normalform) <strong>→ Ja, für kontextfreie werden wir das untersuchen</strong></li>



<li>Wie verhalten sich die Entscheidungsprobleme Wort-, Äquivalenz- und Leerheitsproblem? <strong>→ Das Verhalten ist sehr unterschiedlich.</strong> </li>
</ul>



<h3 class="wp-block-heading">3.2 Grammatiken und das Wortproblem</h3>



<ul class="wp-block-list">
<li><strong>Wortproblem ( L ⊆ Σ* )</strong>
<ul class="wp-block-list">
<li>Gegeben: w ∈ Σ*</li>



<li>Frage: Gilt w ∈ L</li>
</ul>
</li>



<li><strong>Wir suchen einen Algorithmus, der </strong>
<ol class="wp-block-list">
<li>bei jeder Eingabe terminiert</li>



<li>die richtige Antwort liefert</li>
</ol>
</li>



<li><strong>Algorithmus für das Wortproblem für DEAs</strong><ul><li>Eingabe: w ∈ Σ*; DEA A = (Q, Σ, q<sub>0</sub>, δ, F)</li></ul>
<ol class="wp-block-list">
<li>q = δ*(q<sub>0</sub>, w)</li>



<li>IF q ∈ F then Return wahr else return falsch</li>
</ol>
</li>



<li><strong>Algorithmus für das Wortproblem für Grammatiken</strong><ul><li>Eingabe: G = ( N, E, S, P ) und w ∈ Σ*</li><li><strong>Beachte Algorithmus aus Script! Besser!</strong></li></ul><ol><li>Erzeuge die Wörter von L(G) schrittweise durch Ableiten</li><li>Prüfe, ob w erzeugt wurde.</li><li>Wenn ja, gib wahr aus und stoppe.</li><li>Wenn nein, gehe zu 1. ←<strong> Suboptimal mit vielen Durchläufen</strong></li></ol>
<ul class="wp-block-list">
<li>Wenn w ∈ L(G), dann wird w irgendwann erzeugt und der Algorithmus terminiert mit wahr.</li>



<li>Wenn w ∉ L(G), dann wird w nicht erzeugt und der Algorithmus terminiert nicht. ( somit nur Semi-Entscheidbar )
<ul class="wp-block-list">
<li><em>Über das Komplement ¬G = L(¬G) = ¬(L(G)) könnte man herangehen. </em></li>
</ul>
</li>



<li>Somit brauchen wir eine Abbruchbedingung.</li>
</ul>
</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-9/">Theoretische Informatik (Vorlesung 9)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-9/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 8)</title>
		<link>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-8/</link>
					<comments>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-8/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 11 May 2012 20:48:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1342</guid>

					<description><![CDATA[<p>Organisatorisches Klausur 2.4 Das Leerheits-, Wort- und das Äquivalenzproblem 3. Grammatiken</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-8/">Theoretische Informatik (Vorlesung 8)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Organisatorisches</h3>



<ul class="wp-block-list">
<li>Skript wurde online gestellt</li>



<li>Skript hält sich weitestgehend an die Vorlesung</li>



<li>Beweise z.B. stehen im Skript genauer</li>



<li>Notation ( Index ) wird nun vom Skript genommen</li>
</ul>



<h3 class="wp-block-heading">Klausur</h3>



<ol class="wp-block-list">
<li>Definitionen ( <em>&#8222;Was ist ein DEA?&#8220; </em>)</li>



<li><strong>Gegeben:</strong> A = (Q, Σ, q<sub>0</sub>, δ, F) → <strong>Gesucht:</strong> Graph. Darstellung</li>



<li><strong>Gegeben:</strong> Graph. Darstellung → <strong>Gesucht:</strong> A = (Q, Σ, q<sub>0</sub>, δ, F)</li>



<li><strong>Gegeben:</strong> Sprache → <strong>Gesucht: </strong>Konstruiere A ( Konstruktionsprinzipien Produktautomat, komplementärer Automat )</li>



<li><strong>Gegeben:</strong> Automat → <strong>Gesucht: </strong>L(A)</li>



<li><strong>Gegeben:</strong> Sprache → <strong>Gesucht: </strong>Warum wird diese Sprache nicht von einem DEA akzeptiert?</li>
</ol>



<h3 class="wp-block-heading">2.4 Das Leerheits-, Wort- und das Äquivalenzproblem</h3>



<ul class="wp-block-list">
<li>Ein Problem heißt Entscheidbar, wenn es einen Algorithmus (z.B.: Computerprogramm) gibt, der das Problem löst, d.h.
<ol class="wp-block-list">
<li>für jede Eingabe terminiert ( immer etwas ausgeben )</li>



<li>die richtige Antwort liefert.</li>
</ol>
</li>



<li>Für durch DEA gegebene Sprachen sind alle drei Probleme entscheidbar.</li>



<li><strong>Leerheitsproblem:</strong>
<ul class="wp-block-list">
<li><strong>Gegeben:</strong> Eine formale Sprache L.</li>



<li><strong>Frage:</strong> Gilt L ≠ ε?</li>
</ul>
</li>



<li><strong>Satz 2.23 Leerheitsproblem für DEAs</strong>
<ul class="wp-block-list">
<li><strong>Gegeben:</strong> Ein DEA A = (Q, Σ, q<sub>0</sub>, δ, F)</li>



<li><strong>Frage:</strong> Gilt L(A) ≠ ε?</li>



<li>Dieses Problem ist entscheidbar.</li>
</ul>
</li>



<li><strong>Beweis: </strong>
<ul class="wp-block-list">
<li>Offensichtlich gilt L(A) ≠ ε genau dann, wenn w ∈ L(A) existiert.</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>Erste Idee:</strong> Der gesuchte Algorithmus überprüft für verschiedene Wörter w ∈ Σ*, ob w ∈ L(A) gilt (d.h. er berechnet δ*(q<sub>0</sub>, w) ∈ F?).</li>



<li>Wenn der Algorithmus terminiert, hat er ein Wort w ∈ L(A) gefunden, aber der Algorithmus terminiert nicht, wenn L(A) = ∅ gilt.</li>



<li><strong>Bsp.:</strong> Für Σ = {0,1}
<ul class="wp-block-list">
<li>w<sub>0</sub> = leer</li>



<li>w<sub>1</sub> = 0</li>



<li>w<sub>2</sub> = 1</li>



<li>w<sub>3</sub> = 00</li>



<li>w<sub>4</sub> = 01</li>



<li><em>&#8230; usw.</em></li>
</ul>
</li>



<li>Ist A = (Q, Σ, q<sub>0</sub>, δ, F) ein DEA mit n<sub>0</sub> = |Q| verschiedenen Zuständen. Dann gilt L(A) ≠ ε genau dann, wenn ein Wort der Länge höchstens n<sub>0</sub>-1 akzeptiert wird.
<ul class="wp-block-list">
<li>Sei w ein Wort der Länge ≥ n<sub>0</sub>. <strong>Dann gilt:</strong> Der Automat besucht beim Lesen des Wortes mindestens einen Zustand mehrmals.</li>



<li><strong>graph_1</strong></li>



<li>01 ∈ L(A)</li>
</ul>
</li>



<li><strong>Allgemein für das Leerheitsproblem:</strong><ul><li>Eingabe: A=(Q, Σ, q<sub>0</sub>, δ, F)</li></ul>
<ol class="wp-block-list">
<li>n<sub>0</sub> = |Q|</li>



<li>  Σ&#8216; = { w ∈ Σ*; |w| = n<sub>0</sub>-1 }</li>



<li>  q = q<sub>0</sub></li>



<li>  FOR ALL w ∈ Σ DO</li>



<li>    FOR i=1 TO n<sub>0</sub>-1 DO</li>



<li>      q = δ*(q<sub>0</sub>,w<sub>1</sub>..w<sub>i</sub>)</li>



<li>      IF q ∈ F THEN</li>



<li>        RETURN <strong>true</strong></li>



<li>        END</li>



<li>      ENDIF</li>



<li>  END FOR</li>



<li>END FOR</li>



<li>END FOR ALL</li>



<li>RETURN <strong>false</strong></li>
</ol>
</li>



<li><strong>Wortproblem</strong>
<ul class="wp-block-list">
<li>Gegeben: Eine formale Sprache L und ein Wort w.</li>



<li>Frage: Gilt w ∈ L?</li>
</ul>
</li>



<li><strong>Satz 2.24. Wortproblem für DEAs</strong>
<ul class="wp-block-list">
<li>Gegeben: Ein DEA A = (Q, Σ, <sub>0</sub>, δ, F) und w ∈ Σ*</li>



<li>Frage: Gilt w ∈ L(A)?</li>



<li>Dieses Problem ist <strong>entscheidbar</strong>.</li>
</ul>
</li>



<li><strong>Beweis: </strong>
<ul class="wp-block-list">
<li>Algorithmus für das Wortproblem DEA.</li>



<li>Eingabe A = (Q, Σ, q<sub>0</sub>, δ, F) und w ∈ Σ*
<ol class="wp-block-list">
<li>q = δ*(q<sub>0</sub>,w) <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Wort in erweiterter Übergangsfunktion</li>



<li>IF q ∈ F THEN  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Ist es ein Endzustand?</li>



<li>Return <strong><em>true</em></strong></li>



<li>else  Return <strong><em>false</em></strong></li>



<li>ENDIF</li>
</ol>
</li>
</ul>
</li>



<li><strong>Äquivalenzproblem</strong>
<ul class="wp-block-list">
<li>Gegeben: Zwei formale Sprachen L<sub>1</sub>, L<sub>2</sub></li>



<li>Frage: Gilt L<sub>1</sub> = L<sub>2</sub>?</li>
</ul>
</li>



<li><strong>Satz 2.25 Äquivalenzproblem für DEAs</strong>
<ul class="wp-block-list">
<li>Gegeben: Zwei DEAs</li>



<li>A1 = (Q<sub>1</sub>, Σ, q<sub>1</sub>, d<sub>1</sub>, F<sub>1</sub>)</li>



<li>A2 = (Q<sub>2</sub>, Σ, q<sub>2</sub>, d<sub>2</sub>, F<sub>2</sub>)</li>



<li>Frage: Gilt L(A<sub>1</sub>) = L(A<sub>2</sub>)</li>



<li>Dieses Problem ist entscheidbar.</li>



<li>Wir reduzieren dieses Problem auf das Leerheitsproblem.</li>
</ul>
</li>



<li><strong>Beweis:</strong>
<ul class="wp-block-list">
<li>Für je zwei Mengen L<sub>1</sub>, L<sub>2</sub> ⊆ Σ* gilt L<sub>1</sub> = L<sub>2</sub> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (L<sub>1</sub> ∩ ¬L<sub>2</sub> ) ∪ (¬L<sub>1</sub> ∩ L<sub>2</sub> ) = ∅</li>



<li>Entscheidbar mit dem Leerheitsproblem, wenn die Sprache (L<sub>1</sub> ∩ ¬L<sub>2</sub>) ∪ (¬L<sub>1</sub> ∩ L<sub>2</sub> ) von einem DEA akzeptiert wird.
<ol class="wp-block-list">
<li>Erst ¬L<sub>1</sub> ∩ L<sub>2</sub> beweisen</li>



<li>Dann (L<sub>1</sub> ∩ ¬L<sub>2</sub> ) ∪ (¬L<sub>1</sub> ∩ L<sub>2</sub> ) beweisen</li>



<li>Dadurch ist L<sub>1</sub> = L<sub>2</sub> bewiesen</li>
</ol>
</li>
</ul>
</li>



<li><strong>Satz 2.21 ( laut Skript )</strong>
<ul class="wp-block-list">
<li>Werden L<sub>1</sub>, L<sub>2</sub> von DEA akzeptiert, dann auch ¬L<sub>1</sub>, L<sub>1</sub> ∩ L<sub>2</sub> ( Produktautomat ), L<sub>1</sub> ∪ L<sub>2</sub></li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">3. Grammatiken</h3>



<ul class="wp-block-list">
<li>Grammatiken werden genutzt, um Wörter zu erzeugen. Hierzu werden Regeln benutzt, die es erlauben ein Wort aus einem anderen Wort abzuleiten.</li>



<li>Es gibt eine Reihe von Sprachen, die nicht von DEAs akzeptiert werden.
<ol class="wp-block-list">
<li>L = { a<sup>n</sup> b<sup>n</sup>; n ∈ ℕ<sub>0</sub> }</li>



<li>L = { a<sup>n</sup> b<sup>m</sup>; n ≠ m }</li>



<li>Aber L = { a<sup>n</sup> b<sup>m</sup>; n, m ∈ ℕ<sub>0</sub> } wird von einem DEA akzeptiert. Der Begriff / das Berechnungsmodell DEA ist nicht besonders mächtig.</li>
</ol>
</li>



<li><strong>Beispiel 3.1: </strong>Eine Grammatik für die Sprache L= {a<sup>n</sup> b<sup>n</sup>; n ∈ ℕ<sub>0</sub> }
<ul class="wp-block-list">
<li>S → a S b</li>



<li>S → ε</li>



<li>S → a S b → a a S b b → a a a S b b b → a a a ε b b b → a<sup>3</sup> b<sup>3</sup></li>
</ul>
</li>



<li><strong>Definition 3.2 Grammatik</strong>
<ul class="wp-block-list">
<li>Eine Grammatik ist von der Form G = (N, Σ, P, S), wobei:<ol><li>N und Σ endliche Alphabete mit Σ n N = ∅ sind (disjunkt )<ul><li>Die Elemente von N heißen <strong>Nichtterminalsymbole</strong></li><li>Die Elemente von Σ heißen <strong>Terminalsymbole</strong></li></ul></li><li>S ∈ N das Startsymbol ist,</li><li>P ⊆ ( N u Σ )<sup>+</sup>  x ( N u Σ)<sup>*</sup> eine endliche Menge von Ersetzungsregeln ( Produktionen )</li></ol>
<ul class="wp-block-list">
<li><strong>Σ* { w = w<sub>1</sub> &#8230; w<sub>n</sub>, n ∈ ℕ mit w<sub>i</sub> ∈ Σ für alle i&lt;= n } u { ε}</strong></li>



<li><strong>( N u Σ )<sup>*</sup></strong></li>



<li><strong>( N u Σ )<sup>+</sup> = ( N u leer )* \ { ε}</strong></li>
</ul>
</li>
</ul>
</li>



<li>(u,v) ∈ P schreiben wir auch u → v</li>



<li><strong>Beispiel 3.3:</strong>
<ul class="wp-block-list">
<li>N = {S}, Σ = {a,b}, P = { S → a S b, S → ε }</li>



<li>Startsymbol S</li>



<li>Sprache ist somit a<sup>n</sup> b<sup>n</sup></li>
</ul>
</li>



<li><strong>Weiteres Beispiel</strong>
<ul class="wp-block-list">
<li>G = ( N, Σ, P, S )</li>



<li>N = {S,B}</li>



<li>E = {a,b,c}</li>



<li>Produktionen P = {
<ul class="wp-block-list">
<li>S → a S B c,</li>



<li>S → a b c,</li>



<li>cB → Bc,</li>



<li>bB → bb } = { a<sup>n</sup> b<sup>n</sup> c<sup>n</sup>, n ∈ ℕ }</li>
</ul>
</li>
</ul>
</li>



<li><strong>Defintion 3.4:</strong><ul><li>Sei G = ( N, Σ, P, S ) eine Grammatik und x,y ∈ ( N u Σ )</li><li>y ist aus x direkt ableitbar ( x Ⱶ<sub>G</sub> y ) wenn x<sub>1</sub>, x<sub>2</sub> ∈ ( N u Σ)* und eine Produktion u → v ∈ P mit x = x<sub>1</sub> u x<sub>2</sub> und y = x<sub>1</sub> v x<sub>2</sub> existiert<ul><li><strong>a  S  B c</strong> Ⱶ<sub>G</sub> <strong>a  a b c</strong> <strong>B c</strong></li></ul></li></ul>
<ul class="wp-block-list">
<li><strong>x<sub>1</sub> u x2   </strong>Ⱶ<sub>G  </sub><strong>x<sub>1</sub>    v    x2</strong>  <em>// somit wird u → v</em></li>



<li>y ist aus x in n ∈ ℕ Schritten ableitbar ( x Ⱶ<sub>G</sub><sup>n</sup> y ), wenn x<sub>0</sub>, x<sub>1</sub>, .., x<sub>n</sub> ∈ ( N u Σ )* so existieren, dass x=x<sub>0</sub>, x<sub>n</sub>=y und x<sub>i</sub> Ⱶ<sub>G</sub> x<sub>i+1</sub> für alle 0 ≤ i ≤ n</li>



<li>y ist aus x ableitbar ( x Ⱶ<sub>G</sub><sup>*</sup> y ), wenn n ∈ ℕ mit x Ⱶ<sub>G</sub><sup>n</sup> y existiert.</li>



<li>Die Sprache L(G) = { w ∈ Σ<strong>*</strong>; S Ⱶ<sub>G</sub><sup>*</sup> } heißt die von G erzeugte Sprache.</li>



<li>Wir sind nur an Σ<strong>*</strong> Wörtern aus S interessiert.</li>
</ul>
</li>



<li><strong>Beispiel 3.5</strong>
<ol class="wp-block-list">
<li>S Ⱶ<sub>G</sub> abc ( Weil abc ∈ Σ* gilt abc ∈ L(G) )</li>



<li>S Ⱶ_G a<strong>S</strong>Bc ( ∈ L(G)? → nein, weil S und B ∉ Σ* ) Ⱶ<sub>G</sub> aaab<strong>cB</strong>cBc Ⱶ<sub>G</sub> aaa<strong>bB</strong>ccBc Ⱶ<sub>G</sub><sup>2</sup> aaab<strong>bB</strong>ccc Ⱶ<sub>G</sub> aaab<strong>bB</strong>ccc Ⱶ<sub>G</sub> aaabbbccc = a<sup>3</sup> b<sup>3</sup> c<sup>3</sup></li>
</ol>
</li>



<li>Wir zeigen: Für alle n ∈ ℕ gilt S Ⱶ<sub>G</sub><sup>*</sup> a<sup>n</sup> b<sup>n</sup> c<sup>n</sup>
<ol class="wp-block-list">
<li>Für n=1 gilt S Ⱶ<sub>G</sub><sup>*</sup> a<sup>1</sup> b<sup>1</sup> c<sup>1</sup></li>



<li>Sei n > 1:
<ul class="wp-block-list">
<li>S  <strong>Ⱶ<sub>G</sub><sup>n-1</sup></strong> a<sup>n-1</sup> S ( Bc)<sup>n-1 &#8230;</sup> <strong>.. Ⱶ<sub>G</sub> </strong>a<sup>n-1</sup> abc (Bc)<sup>n-1 ..</sup> <strong>.. Ⱶ<sub>G</sub><sup>*</sup></strong> a<sup>n</sup> b B<sup>n-1</sup> c<sup>n .. </sup><strong>.. Ⱶ<sub>G</sub><sup>*</sup></strong> a<sup>n</sup> b<sup>n</sup> c<sup>n</sup></li>
</ul>
</li>
</ol>
</li>



<li>( Wiederholtes Anwenden der Produktion S → aSBc ) ( Einmalige Anwendung der Regel S → abc ) ( Wiederholtes Anwenden von cB → Bc ) ( Wiederholte Anwendung von bB → bb ) </li>



<li>Wir haben gezeigt { a<sup>n</sup> b<sup>n</sup> c<sup>n</sup>; n ∈ ℕ } ⊆ L(G) <strong>Wir haben nicht gezeigt L(G) ⊆ { a<sup>n</sup> b<sup>n</sup> c<sup>n</sup>; n ∈ ℕ }</strong></li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-8/">Theoretische Informatik (Vorlesung 8)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 7)</title>
		<link>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-7/</link>
					<comments>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-7/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Thu, 10 May 2012 20:49:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1344</guid>

					<description><![CDATA[<p>Wortproblem:&#160; Wiederholungsaufgabe Aufgabe 1.1 Aufgabe 1.2 Wiederholung Aufgabe 2</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-7/">Theoretische Informatik (Vorlesung 7)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><strong>Wortproblem:&nbsp;</strong></h3>



<ul class="wp-block-list">
<li><strong>geg:</strong> Eine Sprache L und ein Wort W</li>



<li><strong>Frage:</strong> Gilt w ∈ L?</li>
</ul>



<h3 class="wp-block-heading">Wiederholungsaufgabe</h3>



<ul class="wp-block-list">
<li>L = { 001w; w ∈ {0,1}* } <strong>←</strong><strong> Klausurrelevant</strong> Alle Wörter über dem Alphabet Σ = {0,1} mit dem Präfix 001.</li>



<li>Dies ist kein DEA, weil wenn δ*(q<sub>0</sub>, 1100) eingegeben wird. Es muss für jeden Buchstaben eine Übergangsfunktion in jeden Zustand geben. Nicht deterministische Automaten können z.B. für den selben Buchstaben zwei Ziele haben. δ(q<sub>0</sub>,1) → q<sub>0</sub> oder q<sub>1</sub></li>



<li><strong>Begründung</strong>
<ul class="wp-block-list">
<li>L(A) = { w ∈ Σ*; δ* (q<sub>0</sub>, w ) ∈ F }</li>



<li>A = ( Q, Σ, q<sub>0</sub>, δ, F )</li>



<li>δ: QxΣ → Q (totale Funktion, d.h. δ(q,a) ist definiert für alle Paare (q,a) ∈ QxΣ.</li>



<li>δ(q<sub>0</sub>, 0) = q<sub>1</sub></li>



<li>δ(q<sub>0</sub>,1) = <strong>?? ← Zustandswechsel fehlt</strong></li>
</ul>
</li>



<li><strong>Lösung</strong></li>
</ul>



<ul class="wp-block-list">
<li>Erzeugung eines Zustands zur Aufnahme eines fehlenden Zustandswechsel, sog. Papierkorb-Zustand <strong>← </strong><strong>Klausurrelevant</strong></li>



<li>Dauerschleife mit vollständigem Alphabet verhindert, dass man jemals in einen Endzustand kommt</li>



<li>Durch den Papierkorb-Zustand wird keine neue gültige Sprache erzeugt</li>
</ul>



<h3 class="wp-block-heading">Aufgabe 1.1</h3>



<ul class="wp-block-list">
<li>DEA A = ( Q, Σ, q<sub>0</sub>, δ, F)</li>



<li>Q = {q<sub>0</sub>,q<sub>1</sub>,q<sub>2</sub>}, Σ = {0,1}, Anfangszustand q<sub>0</sub>, F= {q<sub>0</sub>}</li>



<li><strong>Übergangsfunktionen</strong>
<ul class="wp-block-list">
<li>δ(q<sub>0</sub>,0) = q<sub>0</sub></li>



<li>δ(q<sub>0</sub>,1) = q<sub>1</sub></li>



<li>δ(q<sub>1</sub>,0) = q<sub>2</sub></li>



<li>δ(q<sub>1</sub>,1) = q<sub>0</sub></li>



<li>δ(q<sub>2</sub>,0) = q<sub>1</sub></li>



<li>δ(q<sub>2</sub>,1) = q<sub>1</sub></li>
</ul>
</li>



<li><strong>Welche Worte sind teil der Sprache?</strong>
<ul class="wp-block-list">
<li>w<sub>1</sub> = 101</li>



<li>w<sub>2</sub> = 111</li>



<li>w<sub>3</sub> = 110</li>



<li><strong>δ*(q<sub>0</sub>,101) = q<sub>2</sub>  ( falsch )</strong></li>



<li><strong>δ*(q<sub>0</sub>, 111) = q<sub>1</sub> ( falsch )</strong></li>



<li><strong>δ*(q<sub>0</sub>, 110 ) = q<sub>0</sub> ( wahr )</strong></li>
</ul>
</li>



<li><strong>Was ist die akzeptierte Sprache?</strong>
<ul class="wp-block-list">
<li>Durch drei teilbare Zahlen ( binär )</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Aufgabe 1.2</h3>



<ul class="wp-block-list">
<li><strong>Bestimme:</strong>
<ul class="wp-block-list">
<li>Q = {q<sub>0</sub>,q<sub>1</sub>,q<sub>2</sub>}</li>



<li>Σ = {a,b}</li>



<li>q<sub>0</sub> = q<sub>0</sub></li>



<li>F = {q<sub>0</sub>,q<sub>1</sub>}</li>



<li>δ = &#8230;
<ul class="wp-block-list">
<li>δ(q<sub>0</sub>,a) = q<sub>1</sub></li>



<li>δ(q<sub>0</sub>,b) = q<sub>0</sub></li>



<li>δ(q<sub>1</sub>,a) = q<sub>1</sub></li>



<li>δ(q<sub>1</sub>,b) = q<sub>2</sub></li>



<li>δ(q<sub>2</sub>,a) = q<sub>2</sub></li>



<li>δ(q<sub>2</sub>,b) = q<sub>2</sub></li>
</ul>
</li>
</ul>
</li>



<li><strong>Welche Sprache wird akzeptiert?</strong>
<ul class="wp-block-list">
<li>L(A) = { b<sup>n</sup> a<sup>m</sup>; n,m ∈ N0 }</li>



<li>b<sup>0</sup> a<sup>m</sup> = a<sup>m</sup></li>



<li>b<sup>n</sup> a<sup>0</sup> = b<sup>n</sup></li>



<li>b<sup>0</sup> a<sup>0</sup> = leeres Wort // δ(q<sub>0</sub>, leer ) = q<sub>0</sub> → q<sub>0</sub> ∈ F</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Wiederholung</h3>



<ul class="wp-block-list">
<li>L(A) = ( w ∈ Σ*; δ*(q<sub>0</sub>,w) ∈ F }</li>



<li>δ*(q, ε ) = q <strong>← &#8222;Wer nichts liest, bleibt wo er ist&#8220;</strong></li>
</ul>



<h3 class="wp-block-heading">Aufgabe 2</h3>



<ul class="wp-block-list">
<li>Konstruktion eines DEAs über Σ = {0,1}, der die Sprache L<sub>1</sub> = { w ∈ {0,1}*; w hat eine gerade Anzahl von Einsen } akzeptiert.</li>



<li>L&#8216; = { w ∈ {0,1}*; w hat eine gerade Anzahl von Einsen und mindestens eine Eins }</li>



<li>Konstruktion eines DEAS über Σ = {0,1}, der die Sprache L<sub>2</sub> = { w ∈ {0,1}*; w hat eine gerade Anzahl von Nullen} akzeptiert.</li>



<li>Ein Automat für L<sub>1</sub> ∩ L<sub>2</sub> = { w ∈ {0,1}*; w hat gerade viele Einsen und gerade viele Nullen }</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-7/">Theoretische Informatik (Vorlesung 7)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 6)</title>
		<link>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-6/</link>
					<comments>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-6/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 04 May 2012 20:50:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1346</guid>

					<description><![CDATA[<p>2.3) Pumping-Lemma ε (leeres Wort) 0 1 1 0 0 0 &#160; q0 q1 q1 q1 q2 q1 q2 ∈&#160;F ( w = aa&#8230;ab &#8230;..b&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-6/">Theoretische Informatik (Vorlesung 6)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">2.3) Pumping-Lemma</h3>



<ul class="wp-block-list">
<li>Sei Σ ein Alphabet</li>



<li>L ∈ Σ* eine Sprache</li>



<li>Wortproblem L
<ul class="wp-block-list">
<li><strong>Gegeben: </strong>w ∈ Σ*</li>



<li><strong>Frage: </strong>Gilt w ∈ L?</li>
</ul>
</li>



<li><strong>Fragen:</strong>
<ul class="wp-block-list">
<li>Für durch DEAs gegebene Sprachen einfach: δ*(q<sub>0</sub>, w) ∈ F ?</li>



<li>Gibt es Sprachen, die nicht von einem DEA akzeptiert werden?</li>



<li>Wie zeigt man, dass eine Sprache von <strong>keinem</strong> DEA akzeptiert wird?</li>
</ul>
</li>



<li><strong>Beispiel:</strong>
<ul class="wp-block-list">
<li>Q = { q<sub>0</sub>,q<sub>1</sub>,q<sub>2</sub>}</li>



<li>Anfangszustand = q<sub>0</sub></li>



<li>F = {q<sub>2</sub>} (Endzustände)</li>



<li>= A</li>



<li>L(A) = { w ∈ Σ*, δ(δ<sub>0</sub>,w) ∈ F } = { w ∈ { 0,1}* w hat mehr als eine Null und die Anzahl der Nullen ist gerade }</li>
</ul>
</li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-left" data-align="left">ε (leeres Wort)</td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left">&nbsp;</td></tr><tr><td>q<sub>0</sub></td><td><strong>q<sub>1</sub></strong></td><td><strong>q<sub>1</sub></strong></td><td><strong>q<sub>1</sub></strong></td><td><strong>q<sub>2</sub></strong></td><td><strong>q<sub>1</sub></strong></td><td><strong>q<sub>2</sub></strong></td><td>∈&nbsp;F</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li>Der Graph muss manche Zustände öfters besuchen, wenn ein Wort eine Länge hat, die größer ist als die Anzahl der Zustände. Es bilden sich dabei also <strong>Schleifen (rot markiert zur Hervorhebung)</strong>.</li>



<li>Theoretisch lassen sich die Teilabschnitte der Zustände in Bereiche mit Schleifen zusammenfassen lassen: <strong>x</strong> <strong>y z</strong>, es wäre z.B. auch <strong>x</strong> <strong>y<sup>2</sup></strong> <strong>z </strong>oder <strong>x</strong> <strong>y<sup>4</sup></strong> <strong>z</strong> auch ein gültiges Wort der Sprache.</li>



<li><strong>Definition 2.10 ( Pumping Lemma)</strong>
<ul class="wp-block-list">
<li>Sei L eine von einem DEA akzeptierte Sprache.</li>



<li>Dann existiert n<sub>0</sub> ∈ ℕ so, dass gilt: Jedes Wort w ∈ L mit |w| ≥ n<sub>0</sub> lässt sich zerlegen in x y z mit:
<ol class="wp-block-list">
<li>y ≠ ε (leeres Wort) und</li>



<li>x y<sup>k</sup> z ∈ L für alle k ∈ N</li>
</ol>
</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>Beispiel: </strong>Die Sprache L = {  a<sup>n</sup> b<sup>n</sup>; n ∈ ℕ<sub>0</sub> } wird von keinem DEA akzeptiert.</li>



<li><strong>Beweis: </strong>Angenommen, L wird von einem DEA azeptiert ( <strong>Widerspruch herleiten</strong> ). Dann existiert nach dem Pumping-Lemma eine natürliche Zahl n<sub>0</sub> ∈ ℕ so, dass für alle w ∈ L mit |w| ≥ n<sub>0</sub> ( Mehr Buchstaben als Zustände) eine Zerlegung xyz mit &#8230;
<ol class="wp-block-list">
<li>y ≠ ε (leeres Wort)</li>



<li>x y<sup>k</sup> z ∈ L für alle k ∈ ℕ &#8230; existiert</li>
</ol>
</li>
</ul>



<ul class="wp-block-list">
<li>Sei w ∈ L mit |w| ≥ n<sub>0</sub>, dann gilt w = a<sup>n</sup> b<sup>n</sup> mit 2n ≥ n<sub>0</sub>.</li>



<li>Sei weiter x y z = w eine Zerlegung von w mit y ≠ ε (leeres Wort)</li>



<li><strong>Ziel: </strong>Zeige  ( x y<sup>2</sup> z ∉ L ) Dann ist das Pumping-Lemma nicht erfüllt und wir haben einen Widerspruch zur Voraussetzung ( = <em>&#8222;L wird von einem DEA akzeptiert&#8220;</em> )</li>



<li><strong>Fallunterscheidung: </strong>
<ol class="wp-block-list">
<li>Fall: y liegt ganz in a<sup>n</sup></li>



<li>Fall: y liegt ganz in b<sup>n</sup></li>



<li>Fall: y hat sowohl a&#8217;s als auch b&#8217;s</li>
</ol>
</li>



<li><strong>zu 1:</strong> Dann existieren n<sub>1</sub>+n<sub>2</sub>+n<sub>3</sub> mit x=a<sup>n<sub>1</sub></sup>, y=a<sup>n<sub>2</sub></sup>, z=a<sup>n<sub>3</sub></sup>*b<sup>n</sup> und n<sub>1</sub>+n<sub>2</sub>+n<sub>3</sub> = n. Laut Pumping Lemma gilt dann auch x y<sup>2</sup> z ∈ L. Da x y<sup>2</sup> z = a<sup>n<sub>1</sub></sup> * a<sup>2n<sub>2</sub></sup> * a<sup>n<sub>3</sub></sup>b<sup>n</sup>. Da n<sub>1</sub>+2*n<sub>2</sub>+n<sub>3</sub> > n, ist das ein Widerspruch.</li>
</ul>



<p class="wp-block-paragraph"><em>( w = aa&#8230;ab &#8230;..b // a<sup>n</sup>&nbsp;= x, z=b<sup>n</sup>&nbsp;&#8211;&gt; y kann in x, z oder in beiden liegen )</em></p>



<h3 class="wp-block-heading">2.4 Abschlusseigenschaften</h3>



<ul class="wp-block-list">
<li><strong>Definition 2.11: </strong>
<ul class="wp-block-list">
<li>Seien L<sub>1</sub> und L<sub>2</sub>Sprachen über dem Alphabet Σ, die jeweils von einem DEA akzeptiert werden. Dann werden auch die folgenden Sprachen akzeptiert:</li>



<li>L<sub>1</sub> ∪ L<sub>2</sub></li>



<li>¬L<sub>1</sub> = { w ∈ Σ*; w ∉ L<sub>1</sub> }</li>



<li>L<sub>1</sub> ∩ L<sub>2</sub></li>



<li>L<sub>1</sub> \ L<sub>2</sub></li>



<li>L<sub>1 </sub>* L<sub>2</sub> = { w<sub>1</sub>w<sub>2</sub>; w<sub>1</sub> ∈ L<sub>1</sub> und w<sub>2</sub> ∈ L<sub>2</sub> } </li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>Beweise:</strong>
<ol class="wp-block-list">
<li><em>1 &amp; 5 kommen später</em></li>



<li>Sei A = ( Q, Σ, q<sub>0</sub>, δ, F ) ein DEA für L<sub>1</sub> (d.h. die von A akzeptierte Sprache ist L<sub>1</sub> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> L(A) = L<sub>1</sub> ) Dann akzeptiert ¬A = (Q, Σ, q<sub>0</sub>, δ, Q\F ) die Sprache ¬L<sub>1</sub>.
<ol class="wp-block-list">
<li><em>L (¬A) = { w ∈ Σ*; δ* (q<sub>0</sub>, w) ∈ Q\F } <strong>ist das Gegenteil von </strong>L(A) = { w ∈ Σ*; δ* (q<sub>0</sub>, w) ∈ F }</em></li>
</ol>
</li>



<li>3 zeigen wir gleich</li>



<li>L<sub>1</sub> \ L<sub>2</sub> = L<sub>1</sub> ∩ ¬L<sub>2</sub></li>
</ol>
</li>



<li><strong>Aufgabe:</strong>
<ul class="wp-block-list">
<li>Seien L<sub>1</sub> und L<sub>2</sub> jeweils von den DEA A<sub>1</sub>=(Q<sub>1</sub>, Σ, q<sub>0</sub><sup>1</sup>,d<sub>1</sub>,F<sub>1</sub>) und A<sub>2</sub> = (Q<sub>2</sub>, Σ, q<sub>0</sub><sup>2</sup>, δ<sub>2</sub>, F<sub>2</sub>) akzeptiert.</li>



<li><strong>Ziel:</strong> Konstruktion eines DEAs für L<sub>1</sub> ∩ L<sub>2</sub></li>
</ul>
</li>



<li><strong>Beispiel:</strong>
<ul class="wp-block-list">
<li>L = { w ∈ {0,1}*; w hat gerade viele Nullen und gerade viele Einsen }</li>



<li>L<sub>1</sub> = { w ∈  { 0,1 }*; w hat gerade viele Nullen }</li>



<li>L<sub>2</sub> = { w ∈ {0,1}*; w hat gerade viele Einsen}</li>



<li>L=L<sub>1</sub> ∩ L<sub>2</sub></li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>Wir definieren den sog. Produkautomaten:</strong>
<ul class="wp-block-list">
<li> A=(Q<sub>1</sub>xQ<sub>2</sub>, Σ, (q<sub>0</sub><sup>1</sup>, q<sub>0</sub><sup>2</sup>), δ, F<sub>1</sub>xF<sub>2</sub>).</li>



<li>d: (Q<sub>1</sub>xQ<sub>2</sub>) x Σ → (Q<sub>1</sub>xQ<sub>2</sub>); ((q,p)a) → (d1, (q,a), δ2(q,a))</li>



<li>Q<sub>1</sub>xQ<sub>2</sub> = { (q,z); q ∈ Q<sub>1</sub>, z ∈ Q<sub>2</sub> }</li>
</ul>
</li>



<li><strong>Im Beispiel:</strong>
<ul class="wp-block-list">
<li>Q<sub>1</sub>xQ<sub>2</sub>= {(q<sub>0</sub>,z<sub>0</sub>), (q<sub>0</sub>,z<sub>1</sub>) , (q<sub>1</sub>,z<sub>0</sub>), (q<sub>1</sub>,z<sub>1</sub>) }</li>



<li>F<sub>1</sub>xF<sub>2</sub> = { q<sub>0</sub> } x { z<sub>0</sub> } = { (q<sub>0</sub>,z<sub>0</sub>)}</li>



<li>δ((q<sub>0</sub>,z<sub>0</sub>),0) = (δ1, (q<sub>0</sub>,0), δ2(z<sub>0</sub>, 0)) → q<sub>1, </sub>z<sub>0</sub></li>



<li>δ((q<sub>0</sub>,z<sub>0</sub>),1) = (δ1, (q<sub>0</sub>,1), δ2(z<sub>0</sub>, 1)) → q<sub>0</sub>, z<sub>1</sub></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"><em>Erläuterung: &#8222;Man verknüpft jeden Zustand aus Q1 mit jedem Zustand aus Q2 und setzt dann in die kombinierten&nbsp;Zustände die Buchstaben des Wortes ein. Man führt die Übergangsfunktion für die einzelnen Teile wie gewohnt mit dem Buchstaben aus, aber überführt dann aber wieder in den gemeinsamen Zustand&#8220;.</em></p>



<p class="wp-block-paragraph">L<sub>1</sub>&nbsp;∩ L<sub>2</sub></p>



<h3 class="wp-block-heading">Bsp.:</h3>



<ul class="wp-block-list">
<li>L<sub>1</sub>= { a<sup>n</sup> b<sup>m</sup>; n,m ∈ ℕ und n ≠ m } → nein</li>



<li>L<sub>2</sub> =  { a<sup>n</sup> b<sup>n</sup>; n ∈ ℕ } → nein</li>



<li>L<sub>3</sub> = { a<sup>n</sup> b<sup>m</sup>; n, m ∈ ℕ } → ja</li>



<li>¬L<sub>1</sub> = L<sub>2</sub> </li>
</ul>



<h3 class="wp-block-heading">3) Produktautomaten</h3>



<ul class="wp-block-list">
<li>Sei A<sub>1</sub> = ( Q<sub>1</sub>, Σ, q<sub>0</sub><sup>1</sup>, δ<sub>1</sub>, F<sub>1</sub>) ein DEA für L<sub>1</sub></li>



<li>Sei A<sub>2</sub> = (Q<sub>2</sub>, Σ, q<sub>0</sub><sup>2</sup>, δ<sub>2</sub>, F<sub>2</sub>) ein DEA für L<sub>2</sub></li>



<li><strong>Produktautomat :</strong> A=(Q<sub>1</sub>xQ<sub>2</sub>, Σ, (q<sub>0</sub><sup>1</sup>, q<sub>0</sub><sup>2</sup>) δ, F<sub>1</sub>xF<sub>2</sub>)</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-6/">Theoretische Informatik (Vorlesung 6)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/05/theoretische-informatik-vorlesung-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 5)</title>
		<link>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-5/</link>
					<comments>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-5/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 27 Apr 2012 20:51:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1348</guid>

					<description><![CDATA[<p>&#160;2. Endliche Automaten und reguläre Sprachen Allgemein 2.2 Minimierungsalgorithmus</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-5/">Theoretische Informatik (Vorlesung 5)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">&nbsp;2. Endliche Automaten und reguläre Sprachen</h3>



<ul class="wp-block-list">
<li>A = ( Q, Σ, q<sub>0</sub>, δ, F )
<ul class="wp-block-list">
<li>Q = Zustandsmenge</li>



<li>Σ = Alphabet</li>



<li>q<sub>0</sub> = Anfangszustand</li>



<li>δ = Übergangsfunktion</li>



<li>F = Endzustände</li>
</ul>
</li>



<li><strong>Beispiel: E</strong><strong>ndlichen Automat</strong>
<ul class="wp-block-list">
<li>Q = { q<sub>0</sub>, q<sub>1</sub>, q<sub>2</sub> }, Σ = { 0,1 }, q<sub>0</sub> Anfangszustand, Endzustand F = {q<sub>2</sub>}</li>



<li>δ: Q x Σ → Q</li>



<li>δ ( q<sub>0</sub>, 0 ) = q<sub>1</sub></li>



<li>δ ( q<sub>0</sub>, 1 ) = q<sub>0</sub></li>



<li>δ ( q<sub>1</sub>, 0 ) = q<sub>0</sub></li>



<li>δ ( q<sub>1</sub>,1 ) = q<sub>1</sub></li>



<li>δ ( q<sub>2</sub>,0 ) = q<sub>1</sub></li>



<li>δ ( q<sub>2</sub>, 1 ) = q<sub>2</sub></li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Allgemein</h3>



<ul class="wp-block-list">
<li>( . ) = Anfangszustand</li>



<li>(   ) = Zustände</li>



<li>((  )) = Endzustände</li>



<li>Für q&#8216; = d(q,x) kann man auch schreiben:</li>
</ul>



<ul class="wp-block-list">
<li><strong>Für uns interessant: </strong>Nutzung von PEAS für das Wortproblem</li>



<li><strong>Definition 2.2 ( Erweiterte Übergangsfunktion)</strong>
<ul class="wp-block-list">
<li>Sei A = (Q, Σ, q<sub>0</sub>, δ, F) ein DEA.</li>



<li>Die erweiterte Übergangsfunktion: δ* : Q x Σ* (Wort) → Q wird iterativ wie folgt definiert:
<ul class="wp-block-list">
<li>1. δ*(q,Σ) = q</li>



<li>2. δ*(q, a)=δ(q, a) für alle a ∈ Σ</li>



<li>3. δ*(q,w) = δ* ( δ( q,x ),w&#8216; ) mit w = x w&#8216; und w = Σ*, x ∈ Σ</li>
</ul>
</li>
</ul>
</li>



<li><strong>Beispiel:</strong>
<ul class="wp-block-list">
<li>δ*( q<sub>0</sub>, 100110 )  </li>



<li>= δ* ( q<sub>0</sub>,  00110 )</li>



<li>= δ* ( δ ( q<sub>0</sub>, 0)  0110 )  </li>



<li>= δ* ( δ ( q<sub>1</sub>, 0)  110 )  </li>



<li>= δ* ( δ ( q<sub>2</sub>, 1)  10 )  </li>



<li>= δ* ( δ ( q<sub>2</sub>, 1)  0 )  </li>



<li>= δ* ( δ ( q<sub>2</sub>, 0)  Σ ) </li>



<li>= δ* (q<sub>1</sub>, Σ ) = q<sub>1</sub></li>



<li>δ*( q<sub>0</sub>, 100110 ) = q<sub>1</sub></li>
</ul>
</li>



<li><strong>Def 2.3 Akzeptierte Sprache</strong>
<ul class="wp-block-list">
<li>Sei A = ( Q, Σ, q<sub>0</sub>, δ, F) ein DEA, dann heißt L(A) = { w ∈ Σ*, δ*(q,w) ∈ F } die von A akzeptierte Sprache.</li>



<li>L(A) = { w ∈ { 0,1 }*, die Anzahl der Nullen ist gerade und ungleich 0.</li>
</ul>
</li>



<li><strong>Beispiel:</strong>
<ul class="wp-block-list">
<li>Ein DEA für die Sprache L = { w ∈ {0,1}*, w ist eine Binärdarstellung einer durch 3 teilbaren Zahl }</li>



<li>Für ein Wort w = w<sub>n</sub> &#8230; w<sub>1</sub> ∈  { 0,1 }* sei nat(w) = ∑(i=1 bis n) z<sup>(i-1)</sup>*w<sub>i</sub></li>
</ul>
</li>



<li>Wir setzen weiter:<ul><li>nat(Σ)=0 ( Leere Menge )</li><li>nat (1 0 1 1 ) = ∑ (i=1 bis 4) = 2<sup>0</sup> * 1+2<sup>1 </sup>* 1+2<sup>2 </sup>* 0+2<sup>3 </sup>* 1 ( Es sind dabei w4, w3, w2, w1 )</li><li>Für eine natürliche Zahl n ∈ ℕ gilt:</li></ul>
<ul class="wp-block-list">
<li>n mod 3 = {0,1,2}  ( 0 = Durch drei teilbar )</li>
</ul>
</li>



<li><strong>Für DEAs ist das Wortproblem lösbar:Gegeben:</strong> Eine durch 3 teilbare Zahl, z.B.:
<ul class="wp-block-list">
<li>11 = 3</li>



<li>110 = 6 // hat (w0) = 2nat(w)</li>



<li>111 = 7 // hat (w1) = 2nat(w)+1</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>Gegeben: </strong>Ein DEA A und ein Wort w.</li>



<li><strong>Frage: </strong>Gilt w ∈ L(A)</li>



<li><strong>Definition 2.4</strong>
<ul class="wp-block-list">
<li>Sei A ein DEA, für jedes Wort aus w ∈ Σ* kann in |w| Schritten geprüft werden ( |w| = Länge von w ), ob w ∈ L(A)</li>



<li>Beweis: Berechne δ*(q<sub>0</sub>,w) Diese Berechnung erfordert |w| Schritte, dann gilt:</li>



<li>1) Ist δ*(q<sub>0</sub>, w) ∈ F, so ist  w ∈ L(A)</li>



<li>2) sonst nicht</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">2.2 Minimierungsalgorithmus</h3>



<ul class="wp-block-list">
<li><strong>Definition 2.5: </strong>
<ul class="wp-block-list">
<li>Zwei DEA A und A&#8216; heißen äquivalent, wenn L(A) = L(A&#8216;)</li>



<li>Zwei Automaten erzeugen die gleiche Sprache, sind aber anders aufgebaut</li>
</ul>
</li>



<li><strong>Beispiel 1:</strong></li>



<li><strong>Beispiel 2:Die Sprache L(A) lautet wie folgt:</strong>
<ul class="wp-block-list">
<li>L(A)=(a+ba)* bb (a+b)*</li>



<li>L(A) = { w ∈ {a,b}, w enthält das Teilwort bb}</li>



<li>L(A, q<sub>0</sub>) = L(A)</li>



<li>L(A, q<sub>1</sub>) = L(A) u {bw, w ∈ Σ*}</li>



<li>L(A,q<sub>2</sub>) = {a,b}*</li>



<li>Es gibt keine äquivalenten Zustände ( nichts zu kürzen)</li>
</ul>
</li>



<li><strong><br>Wie konstruiert man einen minimalen DEA für eine Sprache. ( Minimal in der Anzahl der Zustände )Die Sprache L(A&#8216;) lautet ebenso:</strong>
<ul class="wp-block-list">
<li>L(A&#8216;) = (a+ba)*bb(a+b)*</li>



<li>A und A&#8216; sind somit äquivalent.</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>Erste Beobachtung:</strong> q<sub>7</sub> kann vom Anfangszustand q<sub>0</sub> nicht erreicht werden und kann somit gestrichen werden</li>



<li><strong>Zweite Beobachtung:</strong> Für alle w ∈ {a,b}* gilt δ*(q<sub>3</sub>,w) ∈ F und δ* (q<sub>5</sub>, w) ∈ F. Wir können also die Zustände geeignet zusammenfassen, ohne dass sich an der akzeptierten Sprache etwas ändert. </li>
</ul>



<ul class="wp-block-list">
<li>L(A, q<sub>3</sub>) = {a,b}*</li>



<li>L(A, q<sub>5</sub>) = {a,b}*</li>



<li>d.h. q<sub>3</sub> ~ q<sub>5</sub> ( Äquivalenz ist gegeben! )</li>
</ul>



<ul class="wp-block-list">
<li><strong>Definition 2.6:</strong>
<ul class="wp-block-list">
<li>Sei A = (Q, Σ, q<sub>0</sub>, δ, F) ein DEA. Ein Zustand heißt erreichbar, falls ein Wort w ∈ Σ* mit δ* (q<sub>0</sub>, w ) = q existiert. Sonst heißt q nicht erreichbar.</li>
</ul>
</li>



<li><strong>Definition 2.7:</strong>
<ul class="wp-block-list">
<li>Sei A = (Q, Σ, q<sub>0</sub>, δ, F) ein DEA. Zwei Zustände heißen äquivalent (q<sub>1</sub>~q<sub>2</sub>), wenn L(A, q<sub>1</sub>) = L(A,q<sub>2</sub>), dabei ist L(A,q) = {w ∈ Σ*; δ(q,w) ∈ F} (d.h. die von A akzeptierte Sprache, wenn q der Anfangszustand wäre)</li>
</ul>
</li>



<li><strong>Definition 2.8:</strong>
<ol class="wp-block-list">
<li>Es gilt<strong> ~</strong> ist eine Äquivalenzrelation, d.h.
<ol class="wp-block-list">
<li>reflexiv ( d.h. q ~ q für alle q ∈ Q )</li>



<li>symmetrisch ( d.h. aus  q<sub>1 </sub>~ q<sub>2</sub> → q<sub>2</sub> ~ q<sub>1</sub>)</li>



<li>transitiv ( d.h. aus q<sub>1 </sub>~ q<sub>2</sub> und q<sub>2 </sub>~ q<sub>3</sub> → q<sub>1 </sub>~ q<sub>3</sub>)</li>
</ol>
</li>



<li>~ ( die Relation) ist verträglich  mit der Übergangsfunktion, d.h. ist q<sub>1</sub> ~ q<sub>2</sub> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> d (q<sub>1</sub>, a) ~ d(q<sub>2</sub>, a) für alle a ∈ Σ.</li>
</ol>
</li>



<li><strong>Beweis: </strong>
<ul class="wp-block-list">
<li>1A) Wegen L(A, q) = L(A, q) gilt q ~ q.</li>



<li>1B) Ist q<sub>1</sub> ~ q<sub>2</sub>, dann gilt L(A, q<sub>1</sub>) = L(A, q<sub>2</sub>), also q<sub>2 </sub>~ q<sub>1</sub></li>



<li>1C) Ist q<sub>1</sub>~q<sub>2</sub> und q<sub>2</sub>~q<sub>3</sub>, dann gilt L(A,q<sub>1</sub>)  = L(A, q<sub>2</sub>) = L(A,q<sub>3</sub>). Insbesondere gilt also L(A, q<sub>1</sub>) = L(A,q<sub>3</sub>), d.h. q<sub>1</sub>~q<sub>3</sub>.</li>



<li>2) Es gilt nämlich q<sub>1 </sub>~ q<sub>2</sub> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> L(A,q<sub>1</sub>) = L(A,q<sub>2</sub>) <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ∀ w ∈ Σ* : δ*(q<sub>1</sub>,w) ∈ F <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> δ*(q<sub>2</sub>, w) ∈ F <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ∀ a ∈ Σ ∀ v ∈ Σ* : [ d* (δ(q<sub>1</sub>, a),v) ∈ F  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> δ*(δ(q<sub>2</sub>, a), v) ∈ F] ( setze einfach w=av; v = Wort; a= Buchstabe ) <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ∀ a ∈ Σ : L(A,δ(q<sub>1</sub>,a))=L(A,δ(q<sub>2</sub>,a)) <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> δ(q<sub>1</sub>,a) ~ δ(q<sub>2</sub>,a)</li>
</ul>
</li>



<li><strong>Definition 2.9 Quotientenautomat</strong>
<ul class="wp-block-list">
<li>Sei A = (Q, Σ, q<sub>0</sub>, δ, F) ein DEA.</li>



<li>Der Quotientenautomat A<sup>~</sup> = ( Q<sup>~</sup>, E, q<sup>~</sup>, d<sup>~</sup>, F<sup>~</sup>) mit
<ol class="wp-block-list">
<li> Q<sup>~</sup> = {q~, q ∈ Q } wobei q<sup>~</sup> = { q&#8216; ∈ Q; q ~ q&#8216; }</li>



<li>d<sup>~</sup>(q<sup>~</sup>,a) = d~~~(q,a)</li>



<li>F<sup>~</sup> = {q<sup>~</sup>, q ∈ F }</li>
</ol>
</li>



<li>q~ = { q&#8216; ∈ Q; q ~ q&#8216; } ( Die Äquivalenzklasse von q ) ( q<sub>0</sub><sup>~</sup> = Äquivalenzklasse von q<sub>0</sub> → für / mit allen Elementen aus q<sub>0</sub> )</li>



<li>q<sub>0</sub><sup>~</sup> = { q<sub>0</sub> }</li>



<li>q<sub>1</sub><sup>~</sup> = { q<sub>1</sub> }</li>



<li>q<sub>2</sub><sup>~</sup> = { q<sub>2</sub> }</li>
</ul>
</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-5/">Theoretische Informatik (Vorlesung 5)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 4)</title>
		<link>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-4/</link>
					<comments>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-4/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Thu, 26 Apr 2012 20:54:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1350</guid>

					<description><![CDATA[<p>Ziele Aufgabe 1 Aufgabe 2 Äquivalenzrelationen Aufgabe 3&#160;Äquivalenzrelationen Hiermit haben wir bewiesen, dass die definierte Relation eine Äquivalenzrelation ist. Äquivalenzklasse</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-4/">Theoretische Informatik (Vorlesung 4)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Ziele</h3>



<ul class="wp-block-list">
<li>Vertiefend in die Inhalte der Vorlesungen gehen</li>
</ul>



<h3 class="wp-block-heading">Aufgabe 1</h3>



<ul class="wp-block-list">
<li>Sei M eine Menge. Eine zweistellige Relation R ist eine Teilmenge R ⊂&nbsp;MxM. Für ( x, y) ∈&nbsp;R schreiben wir xRy ( x steht in Relation zu y)</li>



<li><strong>Bsp.:</strong>&nbsp;&nbsp;&lt;, =, &gt; = {(x,y) ∈&nbsp;NxN, x&nbsp;= y}&nbsp;= N x N</li>



<li><strong>Eine Relation heißt:</strong>
<ol class="wp-block-list">
<li><strong>reflexiv</strong>, wenn für alle x ∈&nbsp;M : xRx
<ol class="wp-block-list">
<li>≤&nbsp;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;ja</li>



<li>= <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;ja</li>



<li>&lt; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;nein&nbsp;( da z.B.:&nbsp;<strong>3 &lt; 3&nbsp;</strong>falsch ist )</li>
</ol>
</li>



<li><strong>symmetrisch</strong>, wenn für alle x,y ∈&nbsp;M: xRy&nbsp;<strong>→</strong>&nbsp;yRx
<ol class="wp-block-list">
<li>≤&nbsp;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;nein&nbsp;(&nbsp;da&nbsp;<strong>3&nbsp;= 5</strong>&nbsp;aber&nbsp;<strong>5&nbsp;= 3 !</strong>&nbsp; )</li>



<li>= <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;ja</li>



<li>&lt; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;nein</li>
</ol>
</li>



<li><strong>asymmetrisch</strong>, wenn für alle x,y ∈&nbsp;M: xRy&nbsp;<strong>→</strong>&nbsp;¬(yRx)
<ol class="wp-block-list">
<li>≤&nbsp;<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;nein&nbsp;( da&nbsp;<strong>5&nbsp;= 5&nbsp;→&nbsp;wahr</strong>,&nbsp;aber&nbsp;<strong>¬ (&nbsp;5 =&nbsp;5 ) →&nbsp;falsch&nbsp;</strong>)</li>



<li>= <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;nein</li>



<li>&lt; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;ja</li>
</ol>
</li>



<li><strong>antisymmetrisch</strong>, wenn für alle x,y ∈&nbsp;M: xRy und yRx folgt: x = y
<ol class="wp-block-list">
<li>&nbsp;≤ <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;ja</li>



<li>&nbsp;= <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;ja</li>



<li>&nbsp;&lt; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;ja&nbsp;( da es keine gültige Lösung für die Vorbedingung gibt →&nbsp;leere Menge,&nbsp;für diese ist es wieder wahr&nbsp;)</li>
</ol>
</li>



<li><strong>transitiv</strong>, wenn für alle x,y,z ∈&nbsp;M aus xRy und yRz =&gt; xRz
<ol class="wp-block-list">
<li>gilt für alle Operationen</li>
</ol>
</li>
</ol>
</li>
</ul>



<h3 class="wp-block-heading">Aufgabe 2 Äquivalenzrelationen</h3>



<ul class="wp-block-list">
<li>Sei R eine zweistellige Relation auf M. Dann heißt R eine Äquivlanzrelation, wenn R:
<ol class="wp-block-list">
<li>reflexiv,</li>



<li>symmetrisch und</li>



<li>transitiv ist</li>
</ol>
</li>



<li><strong>Beispiel:&nbsp;</strong>Drei Parallele Geraden im ℝ<sup>2</sup>&nbsp;(&nbsp;Parallelität ist eine Äquivalenzrelation )</li>
</ul>



<h3 class="wp-block-heading">Aufgabe 3&nbsp;Äquivalenzrelationen</h3>



<ul class="wp-block-list">
<li>Sei M die Menge aller Schüler eine Schule. Ein Schüler X stehe in Relation zu Schüler Y, wenn X und Y die selbe Klassen besuchen. ( X ~ Y )</li>
</ul>



<ul class="wp-block-list">
<li><strong>Reflexivität: &nbsp;( X ~ X )</strong>
<ul class="wp-block-list">
<li>Schüler X steht in Relation zu sich selbst</li>
</ul>
</li>



<li><strong>Symmetrie: X ~ Y&nbsp;→&nbsp;Y ~ X</strong>
<ul class="wp-block-list">
<li>Wenn X die Klasse besucht, besucht auch Y diese</li>
</ul>
</li>



<li><strong>Transitivität: X ~ Y&nbsp;→&nbsp;Y ~ Z →&nbsp;X ~ Z</strong>
<ul class="wp-block-list">
<li>Wenn X die Klasse mit Y besucht und Y die Klasse mit Z, dann besucht X und Z die gleiche Klasse</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"><em>Hiermit haben wir bewiesen, dass die definierte Relation eine Äquivalenzrelation ist.</em></p>



<h3 class="wp-block-heading">Äquivalenzklasse</h3>



<ul class="wp-block-list">
<li>[X]<sup>~</sup>&nbsp;= { y ∈&nbsp;M, X~Y ) = Wenn X ein Schüler der Klasse 6c ist, dann sind [X]<sup>~</sup>&nbsp;alle Schüler der Klasse 6c.&nbsp;Alle Schüler einer bestimmten Eigenschaft (Schulklasse) werden in Äquivalenzklassen zusammengefasst.</li>



<li>X ∈&nbsp;[X]<sup>~</sup>&nbsp;( X ist immer Teil seiner eigenen Äquivalenzklasse )</li>



<li><strong>a)</strong>&nbsp;Für alle x,y ∈&nbsp;M mit X ~ Y gilt [X]<sup>~</sup>&nbsp;= [Y]<sup>~</sup>
<ul class="wp-block-list">
<li><strong>zz.:</strong>
<ul class="wp-block-list">
<li>[X]<sup>~</sup>&nbsp;⊂&nbsp;[Y]<sup>~</sup>, [Y]<sup>~</sup>&nbsp;⊂&nbsp;[X]<sup>~</sup>&nbsp;sei z&nbsp;∈&nbsp;[X]<sup>~</sup>, also gilt X ~ Z.</li>



<li>Aus der Symmetrie folgt Z ~ X.&nbsp;</li>



<li>Da X ~ Y, folgt aus der Transitivität Z ~ Y.</li>



<li>Wieder aus der Symmetrie folgt Y ~ Z und damit Z ∈&nbsp;[Y]<sup>~</sup></li>
</ul>
</li>
</ul>
</li>



<li><strong>b)</strong>&nbsp;Für alle&nbsp;x,y ∈&nbsp;M mit x ~/~ y gilt [X]<sup>~</sup>&nbsp;∩ [Y]<sup>~</sup>&nbsp;=&nbsp;Ø ( leere Menge )
<ul class="wp-block-list">
<li>Da X in keiner Relation zu Y steht, handelt es sich bei deren Äquivalenzklassen um 2 verschiedene Teilmengen aus M. Diese Teilmengen repräsentieren disjunkten Äquivalenzklassen und erzeugen bei der Schnittmengen-Operation die leere Menge.</li>
</ul>
</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-4/">Theoretische Informatik (Vorlesung 4)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Theoretische Informatik (Vorlesung 3)</title>
		<link>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-3/</link>
					<comments>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-3/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Fri, 20 Apr 2012 20:54:00 +0000</pubDate>
				<category><![CDATA[Theoretische Informatik]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=1353</guid>

					<description><![CDATA[<p>1.2 Zwei Beispiele Optimierungsproblem Clique Entscheidungsproblem Clique Optimierungsproblem Saturability ( Sat ) Entscheidungsproblem Saturability ( Sat ) 1.3 Optimierungs-, Entscheidungs- und Wortprobleme und formale Sprachen&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-3/">Theoretische Informatik (Vorlesung 3)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">1.2 Zwei Beispiele</h3>



<ul class="wp-block-list">
<li><strong>Beispiel 1:</strong>
<ul class="wp-block-list">
<li>Graph g = (V,E)</li>



<li>Eine Teilmenge C ⊆ V heißt Clique, wenn je zwei Knoten aus C mit einer Kante verbunden sind.</li>



<li>Wenn alle mit allen verbunden sind, dann ist der Graph eine Clique</li>



<li>Wenn das Entscheidungsproblem nicht lösbar ist, dann ist das Optimierungsproblem auch nicht lösbar.</li>



<li>Das Entscheidungsproblem greift auf den Lösungsalgorithmus des Optimierungsproblems zurück.</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Optimierungsproblem Clique</h3>



<ul class="wp-block-list">
<li><strong>Eingabe:</strong> Ein Graph G</li>



<li><strong>Ausgabe:</strong> Größte Clique in G</li>
</ul>



<h3 class="wp-block-heading">Entscheidungsproblem Clique</h3>



<ul class="wp-block-list">
<li><strong>Einbgabe: </strong>Ein Graph G, k ∈ ℕ (natürliche Zahlen)</li>



<li><strong>Ausgabe: </strong>Gibt es in G eine Clique der Größe k? → ja / nein</li>



<li><strong>Beispiel 2: </strong>
<ul class="wp-block-list">
<li><strong>Def. 1.3: </strong>Aussagenlogische Formeln<ul><li>Seien x<sub>1</sub>, &#8230;, x<sub>n</sub> boolesche Variablen ( können nur die Werte falsch oder wahr annehmen)</li><li>Seien weiter ∧ (UND), ∨ (ODER), ¬ ( Negation) Operationen mit</li></ul><ol><li>wahr ∧ wahr = wahr</li><li>wahr ∧ falsch = falsch ∧ wahr = falsch ∧ falsch = falsch</li><li>wahr ∨ wahr = wahr ∨ falsch = falsch ∨ wahr= wahr</li><li> falsch ∨ falsch = falsch</li><li>wahr = ¬ falsch</li><li>falsch = ¬ wahr</li></ol><ul><li>Die Variablen x<sub>1</sub> und ¬x<sub>1</sub> heißen auch <strong>Literale</strong>.</li><li>Ein Ausdruck (y<sub>1</sub> ∨ y<sub>2</sub> &#8230; ∨ y<sub>n</sub> ) mit Literalen y<sub>1</sub>, .., y<sub>n</sub> heißt <strong>Klausel  </strong>und ein ein Ausdruck α = c<sub>1</sub> ∧ c<sub>2</sub> &#8230; ∧ <sub>cm</sub> mit Klauseln c<sub>1</sub>, &#8230;, c<sub>n</sub> heißt Ausdruck in konjunktiver Normalform.</li><li><strong>Beispiel 1:  </strong><ul><li><strong>α =  (x<sub>1</sub> v x<sub>2</sub> v x<sub>3</sub> ) ∧ ( x<sub>1</sub> v ¬x<sub>2</sub> v ¬x<sub>3</sub> )</strong></li><li>x<sub>1</sub>, x<sub>2</sub>, x<sub>3</sub> = <strong>Literal</strong></li></ul></li></ul>
<ul class="wp-block-list">
<li>Nur mit ∨ (ODER) Verknüpfung verbunden = <strong>Klausel</strong></li>



<li>Eine Belegung der Variablen x<sub>1</sub>, .., x<sub>n</sub> ist eine Abbildung  μ{x<sub>1</sub>, .. , x<sub>n</sub> } → {wahr, falsch}</li>



<li>Eine Belegung μ erfüllt den Ausdruck α, wenn α den Wert wahr bekommt.</li>



<li><strong>Bsp. (zu oben):</strong>
<ul class="wp-block-list">
<li>μ(x<sub>1</sub>) = μ(x<sub>2</sub>) = μ(x<sub>3</sub>) = wahr<strong> </strong>
<ul class="wp-block-list">
<li>(wahr ∨ wahr ∨ wahr) ∧ (wahr ∨ falsch ∨ falsch) = wahr</li>



<li>somit ist μ eine erfüllende Bedinung für α</li>
</ul>
</li>



<li>μ(x<sub>1</sub>) = μ(x<sub>2</sub>) = μ(x<sub>3</sub>) = falsch
<ul class="wp-block-list">
<li>(falsch ∨ falsch ∨ falsch)∧ (falsch ∨ wahr ∨ wahr) = falsch</li>



<li>somit ist μ keine erfüllende Bedingung für α</li>
</ul>
</li>
</ul>
</li>



<li><strong>Beispiel 2:</strong>
<ul class="wp-block-list">
<li>α = ( x<sub>1</sub> ∨ x<sub>2</sub> ) ∧ ( x<sub>1</sub> ∨ ¬ x<sub>2</sub> ) ∧ (¬ x<sub>1</sub> ∨ x<sub>2</sub>) ∧ (¬ x<sub>1</sub> v ¬ x<sub>2</sub>)</li>



<li>hat keine erfüllende Bedingung</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Optimierungsproblem Saturability ( Sat )</h3>



<ul class="wp-block-list">
<li><strong>Eingabe: </strong>Ein Ausdruck α in konjunktiver Normalform</li>



<li><strong>Ausgabe: </strong>Eine Belegung, die die meißten Klauseln erfüllt</li>
</ul>



<h3 class="wp-block-heading">Entscheidungsproblem Saturability ( Sat )</h3>



<ul class="wp-block-list">
<li><strong>Eingabe: </strong>Ein Ausdruck α in KNF</li>



<li><strong>Ausgabe: </strong>Gibt es eine erfüllende Belegung für α? → ja / nein</li>
</ul>



<h3 class="wp-block-heading">1.3 Optimierungs-, Entscheidungs- und Wortprobleme und formale Sprachen</h3>



<ul class="wp-block-list">
<li><em>&#8222;Warum interessieren wir uns für Formale sprachen?&#8220;</em></li>



<li>Sei Σ ein endliches Alphabet z.B. Σ = { 0,1 } mit Σ* = { (W<sub>1</sub>,&#8230;,W<sub>n</sub>), n ∈ ℕ , W<sub>1</sub>,&#8230;, W<sub>n</sub>, ∈ Σbezeichnen wir die Menge aller Wörter über Σ.</li>



<li>Für eine Sprache L ⊆  Σ* sei das Wortproblem L.
<ul class="wp-block-list">
<li><strong>Eingabe:</strong> Ein Wort w ∈ Σ*</li>



<li><strong>Ausgabe:</strong> Gilt w ∈ L?</li>
</ul>
</li>



<li><strong>Aufgabe:</strong> Wie codiert man Eingaben zu einem Problem in einer für Computer verständlichen Sprache?</li>



<li><strong>Bsp.: </strong>Eingabe des Optimierungsprogrammes Clique sind Graphen G = (V,E)
<ul class="wp-block-list">
<li>V = {V<sub>1</sub>,..,V<sub>n</sub>}</li>



<li>E={E<sub>1</sub>,..,E<sub>n</sub>}</li>



<li>Dann kann der Graph durch folgende m x n &#8211; Matrix (Indizenz-Matrix) repräsentiert werden:</li>
</ul>
</li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-left" data-align="left">&nbsp;</td><td class="has-text-align-left" data-align="left"><strong>v1</strong></td><td class="has-text-align-left" data-align="left"><strong>v2</strong></td><td class="has-text-align-left" data-align="left"><strong>v3</strong></td><td class="has-text-align-left" data-align="left"><strong>v4</strong></td></tr><tr><td class="has-text-align-left" data-align="left"><strong>e1</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td></tr><tr><td class="has-text-align-left" data-align="left"><strong>e2</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td></tr><tr><td class="has-text-align-left" data-align="left"><strong>e3</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td></tr><tr><td class="has-text-align-left" data-align="left"><strong>e4</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td></tr><tr><td class="has-text-align-left" data-align="left"><strong>e5</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>0</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td><td class="has-text-align-left" data-align="left"><strong>1</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Bzw.:</strong></p>



<ul class="wp-block-list">
<li><strong>Dabei bedeutet:</strong>
<ul class="wp-block-list">
<li>x<sub>ij</sub> = 1 : v<sub>j</sub> ∈ e<sub>i</sub></li>



<li>x<sub>ij</sub> = 0 : v<sub>j</sub> ∉ e<sub>i</sub></li>



<li>Wenn eine Kante existiert, dann ist dies mit einer 1 gekennzeichnet.</li>



<li>Wenn keine Kante existiert, dann ist es mit einer 0 gekennzeichnet.</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>Ziel:</strong>
<ul class="wp-block-list">
<li>Kodierung eines Graphen als Bitstring, d.h. als ein Wort über dem Alphabet Σ = {0,1}</li>



<li><strong>Lösung = G → ( 1 &#8230; 1 0 1 &#8230; 1 0 x<sub>11</sub>  x<sub>12</sub> .. x<sub>mn</sub>)</strong></li>



<li>n-mal die 1  = Anzahl der Knuten in G</li>



<li>Schließende 0</li>



<li>n-mal die 1 = Anzahl der Kanten in G</li>
</ul>
</li>



<li><strong>Bsp.:</strong></li>



<li>Eingaben des Entscheidungsproblems Clique sind von der Form (G, K) → ( 1<sup>n</sup> 0 1<sup>m</sup> 0 x<sub>11</sub> &#8230; x<sub>mn</sub>  k<sub>1</sub> &#8230; k<sub>t</sub> )
<ul class="wp-block-list">
<li>G = Graph</li>



<li>k = natürliche Zahl</li>



<li>Binärdarstellung von k</li>
</ul>
</li>



<li>Für das Entscheidungsproblem Clique zerfällt die Menge Σ* ( Menge aller Wörter ) in drei Teilmengen.
<ul class="wp-block-list">
<li>Teilmenge 1:
<ul class="wp-block-list">
<li>Wörter, die keine Eingaben des Entscheidungsproblems repräsentieren. ( 1 1 1 0 1 1 0 1 ) <em>müssten mehr Zahlen sein</em></li>
</ul>
</li>



<li>Teilmenge 2:
<ul class="wp-block-list">
<li>Wörter, die Eingaben repräsentieren, für die Frage mit nein beantwortet wird. ( <em>&#8222;Eingabe G, k: hat keine Clique der Größe k&#8220; </em>)</li>
</ul>
</li>



<li>Teilmenge 3:
<ul class="wp-block-list">
<li>Wörter, die Eingaben repräsentieren, für die die Frage mit ja beantwortet wird. ( <em>&#8222;Eingabe G, k: hat eine Clique der Größe k&#8220;</em> )</li>



<li>Diese Dritte Teilmenge bildet eine Sprache L.</li>
</ul>
</li>



<li>Das zugehörige Wortproblem L = Menge aller Wörter, die Ja-Eingaben repräsentieren &#8230;
<ul class="wp-block-list">
<li>Eingabe: Wort w ∈ Σ*</li>



<li>Frage: Gilt w ∈ L?</li>
</ul>
</li>



<li>&#8230; heißt das zum Entscheidungsproblem Clique assoziierte Wortproblem.</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">2. Endliche Automaten und&nbsp;reguläre Sprachen</h3>



<ul class="wp-block-list">
<li><strong>2.1 Endliche Automaten</strong>
<ul class="wp-block-list">
<li><strong>Definition:</strong> ( Deterministischer endlicher Automat (DEA)) Ein DEA ist von der Form A = ( Q, Σ, q<sub>0</sub>, δ, F ) mit
<ul class="wp-block-list">
<li>Q= Zustandsmenge / endliche Menge von Zuständen</li>



<li>Σ = endliches Alphabet</li>



<li>q<sub>0</sub> ∈ Q = Anfangszustand</li>



<li>δ: Q x Σ → Q ( Übergangsfunktion)</li>



<li>F ⊆ Q = Eine Menge von Endzuständen</li>
</ul>
</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Allgemeine Vorstellungvon der Arbeitsweise ist wie folgt:</h3>



<ul class="wp-block-list">
<li>Am Anfang steht der Lesekopf auf dem ersten Feld des Bandes und das Programm befindet sich im Zustand q<sub>0</sub> ( Anfangszustand )</li>



<li>Im nächsten Schritt passiert folgendes:
<ol class="wp-block-list">
<li>Liest der Lesekopf den Buchstaben x ∈ Σ und befindet sich das Programm im Zustand q ∈ Q, dann bewegt sich des Lesekopf um eine Stelle nach Rechts und das Programm geht in den Zustand δ(q,x) über.</li>
</ol>
</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-3/">Theoretische Informatik (Vorlesung 3)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2012/04/theoretische-informatik-vorlesung-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
