fehlende Teile hinzugefügt
This commit is contained in:
		
							parent
							
								
									69a53d0f00
								
							
						
					
					
						commit
						48d87a2338
					
				| @ -557,9 +557,16 @@ Die Komplexität der oben beschriebenen Verfahren sehr unterschiedlich ausfallen | |||||||
| 
 | 
 | ||||||
| Es spricht viel dafür, dass die exponentiellen Zeitschranken nicht durch polynomielle ersetzt werden können. | Es spricht viel dafür, dass die exponentiellen Zeitschranken nicht durch polynomielle ersetzt werden können. | ||||||
| 
 | 
 | ||||||
| [...] | Anwendung: Verifikation | ||||||
| 
 | - zwei Prozesse 1 und 2 wollen auf eine gemeinsame Ressource zugreifen | ||||||
| ## Zusammenfassung/Fragen | - jeder Prozess hat einen kritischen Bereich in dem auf die Ressource zugegriffen wird. Nur ein Prozess darf sich im kritischen Bereich befinden | ||||||
|  | - es stehen gemeinsame Variablen zur Verfügung über die sich die Prozesse synchronisieren können | ||||||
|  | - wir möchten zeigen,d ass der wechselseitige Ausschluss gewährleistet ist und eine gewisse Fairnessbedingung eingehalten wird | ||||||
|  | - betrachtung der Prozesse als Wort | ||||||
|  |   - jeder Ablauf eines Prozesses ist ein Wort, die Menge der Abläufe ist eine Sprache | ||||||
|  |   - ebenso ist die Menge der Abläufe des Gesamtsystems eine Sprache | ||||||
|  |   - auch die Menge der erlaubten/verbotenen Abläufe ist eine Sprache | ||||||
|  | - damit ist das Inklusionsproblem/Schnittproblem $L_{Sys}\subseteq L_{Spec}$ zu lösen | ||||||
| 
 | 
 | ||||||
| ### Pumping Lemma mit Alphabet aus einem Zeichen  | ### Pumping Lemma mit Alphabet aus einem Zeichen  | ||||||
| $\sum=\{a\}$, $L(M)=\{a\} regulär \rightarrow \exists n \geq 1 \forall z\in Z(M)$ mit $|z|\geq n$, z.B. $n=3$ | $\sum=\{a\}$, $L(M)=\{a\} regulär \rightarrow \exists n \geq 1 \forall z\in Z(M)$ mit $|z|\geq n$, z.B. $n=3$ | ||||||
| @ -609,14 +616,14 @@ Zu jedem Ableitungsbaum kann es eine oder mehrere Ableitungen geben. | |||||||
| Analog werden Rechtsableitungen definiert. | Analog werden Rechtsableitungen definiert. | ||||||
| 
 | 
 | ||||||
| Ableitungsbäume und Linksableitungen für w entsprechen einander eineindeutig, genauer: | Ableitungsbäume und Linksableitungen für w entsprechen einander eineindeutig, genauer: | ||||||
| > Satz: Die Konstruktion auf Folie 10.10 ist eine Bijektion der Menge der Linksableitungen von Wörtern aus $\sum^*$ auf die Menge der vollständigen Ableitungsbäume. | > Satz: Die Konstruktion ist eine Bijektion der Menge der Linksableitungen von Wörtern aus $\sum^*$ auf die Menge der vollständigen Ableitungsbäume. | ||||||
| 
 | 
 | ||||||
| Aus Linksableitungen (nicht-Linksableitungen) können auch Rechtsableitungen erzeugt werden (und umgekehrt) ohne die Ableitung zu verändern. | Aus Linksableitungen (nicht-Linksableitungen) können auch Rechtsableitungen erzeugt werden (und umgekehrt) ohne die Ableitung zu verändern. | ||||||
| 
 | 
 | ||||||
| Es gibt auch Wörter, mit verschiedenen Linksableitungen (und damit unterschiedlichen Ableitungsbäumen). Da der Ableitungsbaum Strukturinformationen über das Wort wiedergibt ist dies nicht erwünscht. | Es gibt auch Wörter, mit verschiedenen Linksableitungen (und damit unterschiedlichen Ableitungsbäumen). Da der Ableitungsbaum Strukturinformationen über das Wort wiedergibt ist dies nicht erwünscht. | ||||||
| > Definition: Eine Kontextfreie Grammatik G heißt mehrdeutig, wenn es zwei verschiedene vollständige Ableitungsbäume $T$ und $T'$ gibt mit $\alpha(T)=\alpha(T')$. | > Definition: Eine Kontextfreie Grammatik G heißt mehrdeutig, wenn es zwei verschiedene vollständige Ableitungsbäume $T$ und $T'$ gibt mit $\alpha(T)=\alpha(T')$. | ||||||
| > Sonst heißt G eindeutig, d.h. G ist eindeutig wenn jedes Wort $w\in L(G)$ genau eine Ableitung besitzt. | > Sonst heißt G eindeutig, d.h. G ist eindeutig wenn jedes Wort $w\in L(G)$ genau eine Ableitung besitzt. | ||||||
| > Eine Kontextfreie Sprache heißt [...] | > Eine Kontextfreie Sprache heißt inhärent mehrdeutig, wenn jede kontextfreie Grammatik mit $L=L(G)$ mehrdeutig ist | ||||||
| 
 | 
 | ||||||
| ## kontextfreie Sprachen sind kontext-sensitiv | ## kontextfreie Sprachen sind kontext-sensitiv | ||||||
| > Lemma: aus einer kontextfreien Grammatik G kann eine kontextsensitive und gleichzeitig kontextfreie Grammatik G' berechnet werden mit $L(G)=L(G')$ | > Lemma: aus einer kontextfreien Grammatik G kann eine kontextsensitive und gleichzeitig kontextfreie Grammatik G' berechnet werden mit $L(G)=L(G')$ | ||||||
| @ -689,18 +696,44 @@ Abkürzungen: PDA (pushdown automaton) oder NPDA (nondeterministic pushown autom | |||||||
| 
 | 
 | ||||||
| > Definition: Ein **Konfiguration** eines PDA ist ein Tripel $k\in Z \times \sum^* \times \Gamma^*$ | > Definition: Ein **Konfiguration** eines PDA ist ein Tripel $k\in Z \times \sum^* \times \Gamma^*$ | ||||||
| - $z\in Z$ ist der aktuelle Zustand | - $z\in Z$ ist der aktuelle Zustand | ||||||
| - [...] | - $w\in\sum$ ist der noch zu lesende Teil der Eingabe | ||||||
|  | - $\gamma \in \Gamma^*$ ist der aktuelle Kellerinhalt. Dabei steht das oberste Kellerzeichen ganz links | ||||||
|  |   | ||||||
| Übergänge zwischen Konfigurationen ergeben sich aus der Überführungsfunktion $\delta$ | Übergänge zwischen Konfigurationen ergeben sich aus der Überführungsfunktion $\delta$ | ||||||
| 
 | 
 | ||||||
| > Definition: Seien $\gamma\in\Gamma^*, A_1B_1,...,B_k\in\Gamma, w, w'\in\sum^*$ und $z,z'\in Z$. Dann gilt $(z,w,A\gamma)\rightarrow (z',w', B_1...B_{k\gamma})$ genau dann, wenn es $a\in\sum \cup\{\epsilon\}$ gibt mit $w=aw'$ und $(z',B_1...B_k)\in\delta(z,a,A)$ | > Definition: Seien $\gamma\in\Gamma^*, A_1B_1,...,B_k\in\Gamma, w, w'\in\sum^*$ und $z,z'\in Z$. Dann gilt $(z,w,A\gamma)\rightarrow (z',w', B_1...B_{k\gamma})$ genau dann, wenn es $a\in\sum \cup\{\epsilon\}$ gibt mit $w=aw'$ und $(z',B_1...B_k)\in\delta(z,a,A)$ | ||||||
| 
 | 
 | ||||||
| [...] |- S.16 |  | ||||||
| 
 |  | ||||||
| > Definition: Sei M ein PDA. Dann ist die von M **akzeptierte Sprache**: $L(M)=\{x\in\sum^* | \text{es gibt } z\in Z $\text{mit} (z_0, x,#) [...] ^*(z,\epsilon, \epsilon)\}$ | > Definition: Sei M ein PDA. Dann ist die von M **akzeptierte Sprache**: $L(M)=\{x\in\sum^* | \text{es gibt } z\in Z $\text{mit} (z_0, x,#) [...] ^*(z,\epsilon, \epsilon)\}$ | ||||||
| 
 | 
 | ||||||
| D.h. die akzeptierte Sprache enthält diejenigen Wörter, mit deren Hilfe es möglich ist den Keller vollständig zu leeren. Da Kellerautomaten jedoch nicht-deterministisch sind, kann es auch Berechnungen für diese Wort [...] | Übergänge zwischen Konfigurationen ergeben sich aus der Überführungsfunktion $\delta$: | ||||||
|  | - seien $\gamma\in\Gamma, A,B_1...B_2\in\Gamma, w,w'\in\sum^*, z,z'\in Z$. Dann gilt $(z,w,A\gamma)\vdash (z',w',B_1...B_{k\gamma})$ genau dann, wenn es $a\in\sum\cup\{\epsilon\}$ gibt mit $w=aw'$ und $(z',B_1...B_k)\in\delta(z,a,A)$ | ||||||
|  | - gilt $a\in\sum$ so wird ein Zeichen der Eingabe gelesen. Falls $a=\epsilon$ gilt, so nicht | ||||||
|  | - $(z',B_1...B_k)\in\delta(z,a,A)$ | ||||||
|  |   - Zeichen a wird gelesen | ||||||
|  |   - Zustand ändert sich von z nach z' | ||||||
|  |   - Symbol A wird durch mehrere neue Symbole ersetzt | ||||||
|  | - $(z',BA)\in\delta(z,a,A)$ | ||||||
|  |   - Zeichen a wird gelesen | ||||||
|  |   - Zustand ändert sich von z nach z' | ||||||
|  |   - Symbol B wird zusätzlich auf den Keller gelegt | ||||||
|  | - $(z',B)\in\delta(z,a,A)$ | ||||||
|  |   - Zeichen a wird gelesen | ||||||
|  |   - Zustand ändert sich von z nach z' | ||||||
|  |   - Symbol A auf dem Keller wird durch B ersetzt | ||||||
|  | - $(z',A)\in\delta(z,a,A)$ | ||||||
|  |   - Zeichen a wird gelesen | ||||||
|  |   - Zustand ändert sich von z nach z' | ||||||
|  |   - Keller bleibt unverändert | ||||||
|  | - $(z',\epsilon)\in\delta(z,a,A)$ | ||||||
|  |   - Zeichen a wird gelesen | ||||||
|  |   - Zustand ändert sich von z nach z' | ||||||
|  |   - Symbol A wird vom Keller gelöscht | ||||||
| 
 | 
 | ||||||
| Idee: statt auf das Zeichen $ zu warten, kann sich der Automat jederzeit nicht-deterministisch entscheiden, in den Zustand $z_2$(=Keller abbauen) überzugehen (d.h. eine Konfiguration kann mehrere Nachfolgerkonfigurationen haben). | > Definition: Sei M ein PDA. Dann ist die von M akzeptierte Sprache $L(M)=\{x\in\sum^* | \text{es gibt} z\in Z $\text{mit} (z_0,x,#)\vdash^* (z,\epsilon,\epsilon)}$ | ||||||
|  | 
 | ||||||
|  | D.h. die akzeptierte Sprache enthält diejenigen Wörter, mit deren Hilfe es möglich ist den Keller vollständig zu leeren. Da Kellerautomaten jedoch nicht-deterministisch sind, kann es auch Berechnungen für dieses Wort geben, die den Keller nicht leeren. | ||||||
|  | 
 | ||||||
|  | Idee: statt auf das Zeichen \$ zu warten, kann sich der Automat jederzeit nicht-deterministisch entscheiden, in den Zustand $z_2$(=Keller abbauen) überzugehen (d.h. eine Konfiguration kann mehrere Nachfolgerkonfigurationen haben). | ||||||
| 
 | 
 | ||||||
| ## die Greibach-Normalform | ## die Greibach-Normalform | ||||||
| Wir haben als nächstes zu zeigen, dass jede kontextfreie Sprache von einem PDA akzeptiert werden kann. Hierzu wandeln wir die kontextfreie Grammatik zunächst in eine Grammatik in Greibach Normalform um | Wir haben als nächstes zu zeigen, dass jede kontextfreie Sprache von einem PDA akzeptiert werden kann. Hierzu wandeln wir die kontextfreie Grammatik zunächst in eine Grammatik in Greibach Normalform um | ||||||
| @ -720,8 +753,27 @@ Konstruktion: Sei G eine kontextfreie Grammatik in Greibach Normalform. Konstrui | |||||||
| 
 | 
 | ||||||
| > Jede kontextfreie Sprache L ist Sprache eines PDA M mit nur einem Zustand. Gilt $\epsilon\not\in L$, so werden keine $\epsilon$-Transitionen benötigt | > Jede kontextfreie Sprache L ist Sprache eines PDA M mit nur einem Zustand. Gilt $\epsilon\not\in L$, so werden keine $\epsilon$-Transitionen benötigt | ||||||
| 
 | 
 | ||||||
|  | Sei L kontextfrei. Dann existiert eine Grammatik G in Greibach-Normalform mit $L(G)=L\backslash \{\epsilon\}$. Nach den beiden gezeigten Lemmata existiert eine PDA M mit einem Zustand, ohne $\epsilon$-Transitionen und mit $L(M)=L(G)=L\backslash\{\epsilon\}$. Gilt $\epsilon\not\in L$, so ist Proposition bewiesen. | ||||||
|  | 
 | ||||||
|  | Beispiel:  | ||||||
|  | G hat die Regeln $S\rightarrow 0SES | 0ES | 0SE | 0E$ und $E\rightarrow 1$ | ||||||
|  | | Linksableitung | PDA Berechnung | Regelbildung | | ||||||
|  | | -- | -- | -- | | ||||||
|  | | $S\Rightarrow 0SE$    | $(\iota, 001011, S) \vdash (\iota, 01011, SE)$ | $(\iota, SE)\in\delta(\iota, 0, S)$ | | ||||||
|  | | $S\Rightarrow 00ESE$  | $\vdash (\iota,1011, ESE)$  | $(\iota, ES)\in\delta(\iota, 0, S)$       | | ||||||
|  | | $S\Rightarrow 001SE$  | $\vdash (\iota, 011, SE)$   | $(\iota, \epsilon)\in\delta(\iota, 1,E)$  | | ||||||
|  | | $S\Rightarrow 0010EE$ | $\vdash (\iota, 11, EE)$    | $(\iota, E)\in\delta(\iota, 0, S)$ | | ||||||
|  | | $S\Rightarrow 00101E$ | $\vdash (\iota, 1, E)$      | $(\iota, \epsilon)\in\delta(\iota,1,E)$ | | ||||||
|  | | $S\Rightarrow 001011$ | $\vdash (\iota, \epsilon, \epsilon)$ | $(\iota,\epsilon)\in\delta(\iota, 1, E)$ | | ||||||
|  | 
 | ||||||
|  | - die vorgestellte Methode heißt LL-Parsing: Berechnung des PDA entsprechen Linksableitung und Wort wird von links nach rechts gelesen oder Top-Down-Parsing: Ableitungsbaum wird an der Wurzel beginnend erzeugt | ||||||
|  | - aus Grammatik Regeln $A\rightarrowaU | aV$ entsteht der Nichtdeterminisumus. LL(1)-Grammatiken enthalten keine solche Regeln, sodass $M_G$ deterministisch wird | ||||||
|  | - allgemein: in LL(k)-Grammatiken legen die nächsten k zu lesenden Buchstaben fest, welche Regel angewant wird - auch dann kann man einen deterministischen PDAs konstruieren | ||||||
|  | - LR-Parsing oder Bottom-Up-Parsing sind alternative Methoden, einen PDA aus einer kontextfreien Grammatik zu konstruieren, auch LR(k)-Grammatiken führen zu deterministischen PDAs | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| ## Von PDAs zu Grammatiken | ## Von PDAs zu Grammatiken | ||||||
| Ziel/Idee: kontextfreie Grammatik G, so dass für alle $w\in\sum^*$: $(i,w,A,)|-^*(j,\epsilon, \epsilon)$ gdw $_iA_j \Rightarrow w$ | Ziel/Idee: kontextfreie Grammatik G, so dass für alle $w\in\sum^*$: $(i,w,A,)\vdash^*(j,\epsilon, \epsilon)$ gdw $_iA_j \Rightarrow w$ | ||||||
| 
 | 
 | ||||||
| Konstruktion: Sei M ein PDA. Konstruiere die kontextfreie Grammatik $G_M=(V,\sum,P,S)$: | Konstruktion: Sei M ein PDA. Konstruiere die kontextfreie Grammatik $G_M=(V,\sum,P,S)$: | ||||||
| - $V=\{S\}\cup (Z\times\Gamma\times Z)$ | - $V=\{S\}\cup (Z\times\Gamma\times Z)$ | ||||||
| @ -729,10 +781,12 @@ Konstruktion: Sei M ein PDA. Konstruiere die kontextfreie Grammatik $G_M=(V,\sum | |||||||
|   - $S\rightarrow (\yota, #, z)$ für alle $z \in Z$ |   - $S\rightarrow (\yota, #, z)$ für alle $z \in Z$ | ||||||
|   - $(z_0,A,z_{k+1})\rightarrow a(z_1,B_1,z_2)(z_2,B_2,z_3)...(z_k,B_k,z_{k+1})$ f.a. $z_0\in Z, A\in\Gamma,a\in\sum\cup\{\epsilon\}, (z_1,B_1B_2...B_k)\in\delta(z_0,a,A)$ und $z_2,...,z_{k+1}\in Z$ |   - $(z_0,A,z_{k+1})\rightarrow a(z_1,B_1,z_2)(z_2,B_2,z_3)...(z_k,B_k,z_{k+1})$ f.a. $z_0\in Z, A\in\Gamma,a\in\sum\cup\{\epsilon\}, (z_1,B_1B_2...B_k)\in\delta(z_0,a,A)$ und $z_2,...,z_{k+1}\in Z$ | ||||||
| 
 | 
 | ||||||
| [...] | > Lemma: Für alle $z,z'\in Z,A\in\Gamma$ und $w\in\sum^*$ gilt $(z,w,A)\vdash^*(z',\epsilon,\epsilon)\Rightarrow (z,A,z')\Rightarrow w$ | ||||||
| 
 | 
 | ||||||
| > Lemma: Für alle $z,z'\in Z,A\in\Gamma$ und $w\in\sum^*$ gilt $(z,w,A)|-^*(z',\epsilon,\epsilon)\Rightarrow (z,A,z')\Rightarrow w$ | > Ist M ein PDA, so ist L(M) kontextfrei | ||||||
| 
 | 
 | ||||||
| [...] Beweisführung | > Satz: Sei L eine Sprache. Dann sind äquivalent | ||||||
| 
 | > - L ist kontextfrei | ||||||
| Ist M ein PDA so ist L(M) kontextfrei | > - es gibt einen PDA M mit $L(M)=L$ | ||||||
|  | > - es gibt einen PDA M mit nur einem Zustand und $L(M)=L$. Gilt $\epsilon\not\in\L$, so sind diese Aussagen äquivalent zu | ||||||
|  | > - es gibt einen PDA M mit nur einem Zustand und ohne eine $\epsilon$-Transitionen, so dass $L(M)=L$ gilt | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user