Theoretische und technische Informatik - ganz praktisch - Letzte Fragen & Antworten in KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=qa&qa_1=kellerautomaten&qa_2=kel-ad Powered by Question2Answer Beantwortet: zustandsübergang bei KA https://info2.aifb.kit.edu/qa/index.php?qa=7231&qa_1=zustands%C3%BCbergang-bei-ka&show=7232#a7232 Doch müsste auch gehen.<br /> <br /> LG, Nico (Tutor) (Alle Angaben ohne Gewähr) KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=7231&qa_1=zustands%C3%BCbergang-bei-ka&show=7232#a7232 Mon, 10 Feb 2020 16:18:41 +0000 Beantwortet: Ndet. Kellerautomaten Verständnis https://info2.aifb.kit.edu/qa/index.php?qa=7199&qa_1=ndet-kellerautomaten-verst%C3%A4ndnis&show=7220#a7220 Hallo,<br /> <br /> Hast du ein Beispiel im Sinn, das deine Frage weiter erläutert?<br /> <br /> LG, KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=7199&qa_1=ndet-kellerautomaten-verst%C3%A4ndnis&show=7220#a7220 Mon, 10 Feb 2020 10:43:38 +0000 Beantwortet: Verständnisfrage (nicht-)deterministische Automaten https://info2.aifb.kit.edu/qa/index.php?qa=6918&qa_1=verst%C3%A4ndnisfrage-nicht-deterministische-automaten&show=6920#a6920 Hallo unveh,<br /> <br /> ja, natürlich kannst Du einen deterministischen Kellerautomat in diesem Fall angeben. Dennoch ist es normalerweise einfacher, einen nicht deterministischen Kellerautomat zu erzeugen.<br /> <br /> Viele Grüße,<br /> <br /> Runxi (Tutorin) KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=6918&qa_1=verst%C3%A4ndnisfrage-nicht-deterministische-automaten&show=6920#a6920 Sat, 11 Jan 2020 14:56:18 +0000 Beantwortet: Kellerautomat - Mehr als ein Zeichen auf den Stack legen https://info2.aifb.kit.edu/qa/index.php?qa=6795&qa_1=kellerautomat-mehr-als-ein-zeichen-auf-den-stack-legen&show=6802#a6802 <p> <a href="https://info2.aifb.kit.edu/qa/index.php?qa=3539&amp;qa_1=darf-ich-in-den-keller-was-anderes-schreiben-als-ich-lese&amp;show=3539#q3539" rel="nofollow" target="_blank">https://info2.aifb.kit.edu/qa/index.php?qa=3539&amp;qa_1=darf-ich-in-den-keller-was-anderes-schreiben-als-ich-lese&amp;show=3539#q3539</a></p> <p> Zitat Lukas König: "<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;">Vielleicht noch zur Ergänzung: Man darf </span><strong style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;">nicht nur jedes Zeichen </strong><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;">auf den Keller schreiben, das im Kelleralphabet steht, sondern auch </span><strong style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;">beliebige Kombinationen von Zeichen </strong><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;">aus dem Kelleralphabet. Man darf also sowohl&nbsp;</span></p> <p style="margin-top: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;"> <span class="MathJax" id="MathJax-Element-1-Frame" style="display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; position: relative;"><span class="math" id="MathJax-Span-1" style="transition: none; display: inline-block; position: static; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; width: 0.683em;"><span style="transition: none; display: inline-block; position: relative; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; width: 0.513em; height: 0px; font-size: 17.639999389648438px;"><span style="transition: none; position: absolute; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; clip: rect(1.704em, 1000.513em, 2.724em, -999.997em); top: -2.548em; left: 0em;"><span class="mrow" id="MathJax-Span-2" style="transition: none; display: inline; position: static; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal;"><span class="mi" id="MathJax-Span-3" style="transition: none; display: inline; position: static; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; font-family: STIXGeneral-Italic;">λ</span></span></span></span></span><span class="MJX_Assistive_MathML" style="top: 0px; left: 0px; clip: rect(1px, 1px, 1px, 1px); -webkit-user-select: none; position: static; padding: 0px; border: 0px; display: inline; transition: none; margin: 0px; vertical-align: 0px; line-height: normal; height: 1px !important; width: 1px !important; overflow: hidden !important;">λ</span></span> auf den Keller schreiben, als auch ein einzelnes Kellerzeichen als auch belibig lange Ketten von Kellerzeichen. Gelesen wird dabei aber immer nur ein einziges Zeichen, das oberste, und dieses wird vor dem Schreiben aus dem Keller gelöscht.</p> <p style="margin-top: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;"> Schauen Sie sich als Bespiel für Kellerautomaten, die mehr als ein Zeichen auf den Keller schreiben, ruhig mal das Verfahren an, um aus einer kontextfreien Grammatik einen Kellerautomaten zu machen.&nbsp;</p> <p style="margin-top: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;"> Auch der XWizard kann das, klicken Sie bei dieser Grammatik mal auf die Konversions-Methode "Kellerautomat":</p> <p style="margin-top: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;"> <a href="http://www.xwizard.de:8080/Wizz?template=ID-12630#Output" rel="nofollow" style="text-decoration: none;" target="_blank">http://www.xwizard.de:8080/Wizz?template=ID-12630#Output</a></p> <p style="margin-top: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; white-space: pre-line;"> Es kommt ein Automat heraus, der an einer Stelle <span class="MathJax" id="MathJax-Element-2-Frame" style="display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; position: relative;"><span class="math" id="MathJax-Span-4" style="transition: none; display: inline-block; position: static; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; width: 2.044em;"><span style="transition: none; display: inline-block; position: relative; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; width: 1.59em; height: 0px; font-size: 17.639999389648438px;"><span style="transition: none; position: absolute; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; clip: rect(1.704em, 1001.59em, 2.724em, -999.997em); top: -2.548em; left: 0em;"><span class="mrow" id="MathJax-Span-5" style="transition: none; display: inline; position: static; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal;"><span class="mi" id="MathJax-Span-6" style="transition: none; display: inline; position: static; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; font-family: STIXGeneral-Italic;">a</span><span class="mi" id="MathJax-Span-7" style="transition: none; display: inline; position: static; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; font-family: STIXGeneral-Italic;">S</span><span class="mi" id="MathJax-Span-8" style="transition: none; display: inline; position: static; border: 0px; padding: 0px; margin: 0px; vertical-align: 0px; line-height: normal; font-family: STIXGeneral-Italic;">b</span></span></span></span></span><span class="MJX_Assistive_MathML" style="top: 0px; left: 0px; clip: rect(1px, 1px, 1px, 1px); -webkit-user-select: none; position: static; padding: 0px; border: 0px; display: inline; transition: none; margin: 0px; vertical-align: 0px; line-height: normal; height: 1px !important; width: 1px !important; overflow: hidden !important;">aSb</span></span> auf den Keller schreibt, also ein Zeichen löscht und drei neue schreibt."</p> KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=6795&qa_1=kellerautomat-mehr-als-ein-zeichen-auf-den-stack-legen&show=6802#a6802 Thu, 18 Jul 2019 13:33:37 +0000 Beantwortet: Anmerkung Nichtdeterminismus https://info2.aifb.kit.edu/qa/index.php?qa=4094&qa_1=anmerkung-nichtdeterminismus&show=4095#a4095 Hallo uudtm!<br /> <br /> Ja, durch das Weglassen der ersten Übergangsregel und stattdessen der Definition von s_0 als Endzustand würde sich an der Funktionsweise des Kellerautomaten tatsächlich nichts ändern, das wäre also zulässig.<br /> <br /> Nichtsdestotrotz bleibt dein Kellerautomat insgesamt nicht-deterministisch (was ja auch im Aufgabentext explizit so gefordert wird) wegen dem in der Anmerkung erwähnten doppelten Übergang von (s_1,a,a) und den Übergängen (s_2,lambda, k_0) gekoppelt mit (s_2, c, k_0).<br /> <br /> Ich hoffe, das beantwortet deine Frage!<br /> <br /> Viele Grüße,<br /> Janine (Tutorin) KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=4094&qa_1=anmerkung-nichtdeterminismus&show=4095#a4095 Tue, 09 Feb 2016 23:07:55 +0000 Beantwortet: Alternativer Lösungsvorschlag https://info2.aifb.kit.edu/qa/index.php?qa=3869&qa_1=alternativer-l%C3%B6sungsvorschlag&show=3880#a3880 Hallo,<br /> <br /> so ist das nicht ganz möglich, da du so keine Kontrolle darüber hast ob eine gerade Anzahl von c's vorliegt.<br /> <br /> Also bietet es sich an das c in den Keller zu schreiben und mit dem 2. C wieder herauszulöschen.<br /> <br /> Viele Grüße,<br /> <br /> Marc (Tutor) KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=3869&qa_1=alternativer-l%C3%B6sungsvorschlag&show=3880#a3880 Fri, 05 Feb 2016 12:04:09 +0000 Beantwortet: Weshalb braucht man den Zustand s1? https://info2.aifb.kit.edu/qa/index.php?qa=3435&qa_1=weshalb-braucht-man-den-zustand-s1&show=3437#a3437 Hallo,<br /> <br /> der Zustand s1 ist hier nur zur Übersichtlichkeit eingefügt, man könnte hier durchaus auch für &quot;lese ein a ein&quot;, im Zustand s0 bleiben, und somit alle Überführungen von s1 im Zustand s0 durchführen.<br /> <br /> Zu deiner zweiten Frage:<br /> Du kannst einen 2. Zustand definieren und mit diesen immer wieder hin und herswitchen, ohne etwas in den Keller zu schreiben, allerings finde ich macht es das komplizierter und unübersichtlicher, als einfach einmal das c hinein zu schreiben und bei dem nächsten wieder herauszulöschen, aber das ist Geschmackssache. ;)<br /> <br /> Ich hoffe ich konnte dir weiterhelfen, falls noch Fragen bestehen, einfach hier drunter posten :)<br /> <br /> Viele Grüße,<br /> <br /> Marc (Tutor) KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=3435&qa_1=weshalb-braucht-man-den-zustand-s1&show=3437#a3437 Sat, 09 Jan 2016 11:42:38 +0000 Beantwortet: Benennung der Zustände https://info2.aifb.kit.edu/qa/index.php?qa=1761&qa_1=benennung-der-zust%C3%A4nde&show=1762#a1762 Hallo,<br /> <br /> wie du die Zustände nennst ist prinzipiell erst einmal egal. Du kannst den nächsten zustand s$_1$, s$_2$, s$_9$ nennen, das ist dir überlassen.<br /> <br /> Der Grundgedanke der hier dahinter steht ist der.<br /> <br /> Nachdem du in s$_0$ gestartet bist und wir annehmen dass ein a gefallen ist, wechselst du in s$_1$. hier bleibst du so lange bis ein c oder b fällt. fällt ein c wechselst du in s$_2$, und musst schauen dass nun eine gerade Anzahl von c's eingegeben werden. Nachdem alle c's (eine gerade Anzahl!) abgelegt wurden und sich so selbst aus dem Keller &quot;gelöscht&quot; haben, kommst du bei dem Eintrag von b, so wie in dem Fall wenn gleich nach dem a ein b kommt, zum Zustand s$_3$, indem pro b ein a gelöscht wird. Fällt kein b sondern gleich ein a, bzw fällt nun nach dem b ein a gelangst du in den Zustand s$_4$ indem sich durch die eingegebenen a's, die a's die im Keller stehen rauslöschen.<br /> <br /> Ist der Keller leer und gibt es keinen weiteren Zustand den du eingeben kannst, kommst du in den Endzustand und die Aufgabe ist beendet.<br /> <br /> Viele Grüße,<br /> <br /> Marc (Tutor) KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=1761&qa_1=benennung-der-zust%C3%A4nde&show=1762#a1762 Fri, 16 Jan 2015 18:19:21 +0000 Beantwortet: Alternativer Lösungsvorschlag https://info2.aifb.kit.edu/qa/index.php?qa=601&qa_1=alternativer-l%C3%B6sungsvorschlag&show=602#a602 <div class="ilFrmPostContent"> <p> Deine Idee mit Hilfe der Zustände auf eine gerade Anzahl von c's zu kommen ist grundsätzlich möglich.</p> <p> Mir sind beim Anschauen aber drei Sachen aufgefallen:</p> <p> 1. Was passiert, wenn das Wort nur aus c's besteht (Bsp: cccc)? Das Wort ist Teil der Sprache wird aber nicht erkannt.</p> <p> 2. Bei deiner Lösung könnten Wörter erkannt werden, die nach einem b noch einmal c's haben (Bsp: aaccbcca)</p> <p> 3. Was passiert wenn das Wort nur aus a's besteht (Bsp:aa)? Hier brauchst du z.B. einen nichtdeterministischen Übergang (s1,a,a)--&gt;(s3,lambda)</p> <p> Gruß Jörg (Tutor)</p> </div> <p> &nbsp;</p> KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=601&qa_1=alternativer-l%C3%B6sungsvorschlag&show=602#a602 Wed, 22 Oct 2014 16:59:57 +0000 Beantwortet: Uneindeutigkeit Kellerautomat https://info2.aifb.kit.edu/qa/index.php?qa=596&qa_1=uneindeutigkeit-kellerautomat&show=597#a597 <div class="ilFrmPostContent"> <p> Hallo,</p> <p> du hast schon Recht: Jedes Wort, was erzeugt werden kann, ist automatisch Teil der Sprache. Das heißt auch bei ndet KA muss man schauen, dass man nicht zu viele Wörter erkennen kann. Bei der uneindeutigkeit kann es nur zu Sackgassenzuständen kommen, das ist aber kein Problem, solange ich immer einen Weg für jedes Wort meiner Sprache finde.</p> <p> Bei deiner Überführungsfunktion stimmen leider einige Übergänge nicht bzw. fehlen. Drei Beispiele:</p> <p> 1) Das einzige Wort, das nur aus c's besteht, ist bei dir das Wort cc. Jedoch sollen alle Wörter c^(2r) darstellbar sein.</p> <p> 2) Wenn ich a's am Anfang schreibe, z.B. aaaa, dann kann ich danach nur mit einem b weiter machen und kann kein c schreiben.</p> <p> 3) Der Übergang (s2, c, k0) -&gt; (s2, λ) macht keinen Sinn, du kannst k0 nicht aus dem Keller löschen.</p> <p> Schau dir das am Besten nochmal an.</p> <p> Gruß,</p> <p> Adam (Tutor)</p> </div> <p> &nbsp;</p> KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=596&qa_1=uneindeutigkeit-kellerautomat&show=597#a597 Wed, 22 Oct 2014 16:56:28 +0000 Beantwortet: Notwendigkeit Zustandswechsel/Zustände https://info2.aifb.kit.edu/qa/index.php?qa=594&qa_1=notwendigkeit-zustandswechsel-zust%C3%A4nde&show=595#a595 <div class="ilFrmPostContent"> <p> Richtig, der Automat wird u.a. deswegen uneindeutig, also nicht deterministisch. Ein Wort wird bei einem n det KA erkannt, wenn es eine Konfigurationsfolge gibt, die in einem Endzustand endet. Dabei spielt es dann also keine Rolle, dass man auch eine Konfigurationsfolge wählen könnte, die nicht in einen Endzustand kommt.</p> <p> Ja beide Zustände sind nötig. Wenn man nur einen benutzt, würde man a´s aus dem Keller löschen, wenn die Eingabe b oder a kommt. Somit könnten sich im hinteren Teil des Wortes (also nach den c´s) b´s und a´s auch abwechseln, was aber nicht sein darf (Bsp. für ein Wort, das dann fälschlicherweise erkannt werden würde: aaaccbab)</p> <p> Sven (Tutor)</p> </div> <p> &nbsp;</p> KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=594&qa_1=notwendigkeit-zustandswechsel-zust%C3%A4nde&show=595#a595 Wed, 22 Oct 2014 16:51:19 +0000 Beantwortet: Erstellung der Konfigurationsübergänge Kellerautomat https://info2.aifb.kit.edu/qa/index.php?qa=590&qa_1=erstellung-der-konfigurations%C3%BCberg%C3%A4nge-kellerautomat&show=591#a591 Grundidee für diesen Kellerautomaten:<br /> Es soll ein Kellerautomat zu einer Sprache gebildet werden, die folgende Wörter enthalten: w = &nbsp;a^m c^q b^n a^p, mit der Einschränkung, dass die Anzahl a's (vorne) gleich der Anzahl von b's und a's (hinten) sind. Zudem werden diese durch die c's getrennt, deren Anzahl aber gerade ist. Demnach:<br /> <br /> 1. Es werden alle a's in den Keller gelesen (um diese später mit den b's und a's zu vergleichen)<br /> 2. Anschließend werden die c's eingelesen, dabei wird immer ein c in den Keller geschrieben, und mit dem nächsten c wird dieses wieder aus dem Keller gelöscht. So können Sie überprüfen, dass die Anzahl der c's gerade bleibt.<br /> 3. Wenn nun das erste b auftritt, dann fangen Sie an, die a's, die am Anfang in den Keller geschrieben wurden, wieder zu löschen. Das gleiche wird für die anschließenden a's gemacht. Am Ende darf nichts mehr im Keller liegen, sonst stimmen die vorgegebenen Anzahlbedingungen nicht.<br /> <br /> Das ist die Grundidee: Nun müssen Sie noch geeignete Zustandswechsel einführen, um zu gewährleisten, dass die Reihenfolge von a, c, b, a erhalten bleibt und hier nichts durcheinander gerät.<br /> Zudem müssen Sie noch überprüfen, welche &quot;Ausnahme&quot;Übergänge Sie brauchen, wenn z.B. gar keine c's auftauchen oder keine b's, ... (siehe Einträge oben).<br /> <br /> Ich hoffe, dass Ihnen das weiter hilft.<br /> <br /> Freundliche Grüße<br /> Friederike Pfeiffer KEL-AD https://info2.aifb.kit.edu/qa/index.php?qa=590&qa_1=erstellung-der-konfigurations%C3%BCberg%C3%A4nge-kellerautomat&show=591#a591 Wed, 22 Oct 2014 16:47:42 +0000