| Autor |
PDA für Sprache der Wörter mit doppelt soviel Nullen wie Einsen |
|
apo
Aktiv  Dabei seit: 24.11.2010 Mitteilungen: 131
Aus:
 |     Themenstart: 2010-12-09 22:53
|
Hi Leute
ich überlege jetzt schon recht lang an folgendem PDA :
 
L = abs(w)_0 = 2* abs(w)_1 die etwas leichtere Sprache ist kein Problem abs(w)_0 = abs(w)_1 aber für die obere Sprache finde ich nix passendes, ich finde immer wieder nen Wort das zwar in L liegt, aber von meinem PDA nicht erkannt wird. Vielleicht fehlt nur ein kleiner Denkanstoss
|
Profil
Quote
Link |
TheBear
Senior  Dabei seit: 31.01.2006 Mitteilungen: 1225
Aus:
 |     Beitrag No.1, eingetragen 2010-12-10 06:26
|
Moin apo,
nimm dir zwei Stacksymbole + und - (neben einem "Stack-Leer-Zeichen" her. + steht für eine zuviel gelesene 0, - für eine noch fehlende 0.
Jedes mal, wenn du dann eine 1 liest, entfernst du entweder zwei + vom Stack ( = zwei bereits gelesene 0'en haben die entsprechende 1 erhalten), oder du packst zwei mal ein - auf den Stack ( = da müssen noch 2 Nullen kommen).
Der Ansatz oben ist noch nicht vollständig ausgearbeitet, da fehlen noch ein paar Spezialfälle usw. Ich hoffe aber, dass das Prinzip klar geworden ist?
Gruß TheBear
|
Profil
Quote
Link |
apo
Aktiv  Dabei seit: 24.11.2010 Mitteilungen: 131
Aus:
 |     Beitrag No.2, vom Themenstarter, eingetragen 2010-12-10 12:50
|
Hi Bear
soweit hatte ich es ca. auch schon das Problem ist, ich kann immer nur ein Symbol vom Stack nehmen, pro gelesenes Symbol.
Die Regel ist ja (1,+)|eps
|
Profil
Quote
Link |
TheBear
Senior  Dabei seit: 31.01.2006 Mitteilungen: 1225
Aus:
 |     Beitrag No.3, eingetragen 2010-12-10 19:40
|
Dann nimm einfach erstmal ein + vom Stack und gehe dabei in einen neuen Zustand, in dem einfach nur ein weiteres + vom Stack genommen wird ohne was aus der Eingabe zu lesen.
|
Profil
Quote
Link |
apo
Aktiv  Dabei seit: 24.11.2010 Mitteilungen: 131
Aus:
 |     Beitrag No.4, vom Themenstarter, eingetragen 2010-12-10 23:23
|
Hi
so ich hoffe ich hab es :-)
 
q_0(1,x)\| \epsilon -> q_1 q_1(\epsilon,x)\| \epsilon -> q_0 so habe ich das ''zählen'' modelliert. Am q_0 passiert noch mehr, möcht ich jetzt aber nicht mehr abtippen. Ich frage mich nur ob die 2. Regel so richtig ist, da ich dachte das die Regel (\epsilon,\#)\| \epsilon) nur am Wortende benutzt werden kann, um den Stack final zu leeren, indem \# gelöscht wird. Hier lösche ich ja mit dem \epsilon Übergang etwas vom Stack, während ich das Wort noch lese.
Gruss Christian
[ Nachricht wurde editiert von apo am 10.12.2010 23:29:35 ]
|
Profil
Quote
Link |
TheBear
Senior  Dabei seit: 31.01.2006 Mitteilungen: 1225
Aus:
 |     Beitrag No.5, eingetragen 2010-12-11 09:14
|
Moin Christian,
ob sowas erlaubt ist, musst du anhand eurer Definition von PDAs herausfinden oder beim Dozenten erfragen. Da gibt es nämlich sicherlich Unterschiede von Dozent zu Dozent.
Gruß TheBear
|
Profil
Quote
Link |
apo
Aktiv  Dabei seit: 24.11.2010 Mitteilungen: 131
Aus:
 |     Beitrag No.6, vom Themenstarter, eingetragen 2010-12-11 19:07
|
Hi Bear
danke für deine Hilfe ;-)
Ja genau das werde ich machen, ich gehe einfach mal die Woche hin mit dem PDA. Die Sprache hatte ich mir selbst zu Übungszwecken überlegt. Dann hab ich da auch Sicherheit in der Klausur. Laut unserer Defintion (Schöning) scheint es erlaubt zu sein, 100% schlau werd ich daraus nicht. Die Definition im Ullmann ist eindeutiger, da ist es auf jeden Fall erlaubt.
Warum werden keine einheitlichen Standards geschaffen ? Weiß da jemand Bescheid ?
Ich hake den Thread schonmal ab, die Frage um die es ging ist ja geklärt danke nochmal.
|
Profil
Quote
Link |