Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Technische Informatik (http://www.informatikerboard.de/board/board.php?boardid=7)
--- Automaten (http://www.informatikerboard.de/board/thread.php?threadid=3412)
Geschrieben von Ratte am 20.01.2017 um 02:34:
Automaten
Stehe vor folgender aufgabe:
Erstellen Sie einen Automaten der....
Geschrieben von Ratte am 22.01.2017 um 06:16:
Gibt es denn niemand der ein Beispiel parat hätte?
Geschrieben von eulerscheZahl am 22.01.2017 um 08:05:
Der Automat kriegt irgendeine Eingabe der Form {0,1}*.
Also z.B. 01010101001001010.
Jetzt werden die 0en gezählt, es sind zehn. Da das eine
gerade Anzahl ist, wird die Eingabe akzeptiert.
Geschrieben von Ratte am 22.01.2017 um 14:21:
| Zitat: |
Original von eulerscheZahl
Der Automat kriegt irgendeine Eingabe der Form {0,1}*.
Also z.B. 01010101001001010.
Jetzt werden die 0en gezählt, es sind zehn. Da das eine Gerade_und_ungerade_Zahlen]gerade Anzahl wird die Eingabe akzeptiert. |
Danke für den tipp, eulersche Zahl

.
Wie stelle ich allerdings nun bitte die Bedingung und die Zeichnung auf für aufgabe a)?
Etwa wie auf dem anhang?
Geschrieben von eulerscheZahl am 22.01.2017 um 14:35:
.
Geschrieben von Ratte am 22.01.2017 um 14:57:
| Zitat: |
Original von eulerscheZahl
. |
Danke dir!
Verstehe ich das denn richtig?
Die Zahlen stellen lediglich die Eingabe dar? Was ist aber mit der Ausgabe?
Wenn s0 eine gerade binär 0er Zahl erhält, dann bildet s0 mit den pfeil (Als Eingabe 1) auf sich selber ab. Wenn die Zahl jedoch zu ungerade war, wird sie zum Zustand s1 geführt, die darin so lange "bearbeitet" wird, bis eine gerade Zahl eingegeben wurde und der pfeil wieder auf s0 zeigt?
Nebenbei: kannst du mir bitte verraten mit welchen Programm du das gezeichnet hast?
Geschrieben von eulerscheZahl am 22.01.2017 um 15:05:
Ausgabe brauchst du keine. Es gibt eine akzeptierenden Endzustand, das reicht.
Wir starten in s0 (haben bisher keine 0er gelesen, also eine gerade Anzahl, deshalb akzeptierend).
Wird eine 0 gelesen, ist die Zahl dann ungerade, also geht es nach s1 (nicht akzeptierend).
Wird dort wieder eine 0 gelesen, ist die Gesamtzahl wieder gerade, also nach s0 zurück. Das ist letztendlich Summe der 0er modulo 2.
Eine gelesene 1 ändert daran nichts.
Die Zeichnung habe ich mit graphviz gemacht. Kannst du dir entweder installieren oder auch online generieren lassen. Hier der Code:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
digraph {
rankdir = LR
I0 [shape = none label=""]
s0 [shape=doublecircle]
s1 [shape=circle]
I0 -> s0
s0 -> s0 [label="1"]
s1 -> s1 [label="1"]
s0 -> s1 [label="0"]
s1 -> s0 [label="0"]
} |
|
Geschrieben von Ratte am 22.01.2017 um 15:27:
Wieso werden dann auf beiden zuständen jeweils eine 1 auf sich selber abgebildet?
Die 0er werden gelesen. Wenn jetzt jedoch beispielsweise beim start s0 eine 0 eingelesen wird, wird gleichzeitig auch eine 1 eingelesen? Also eins, null?
Geschrieben von eulerscheZahl am 22.01.2017 um 15:32:
Es wird immer ein Zeichen nach dem anderen gelesen. Wenn eine 0 gelesen wird, folgst du dem 0er Pfeil. Wenn eine 1 gelesen wird, dem 1er.
Wenn keine Zeichen mehr zu lesen sind, schaust du, in welchem Zustand du bist und ob der akzeptierend ist.
Geschrieben von Ratte am 22.01.2017 um 15:57:
Ich habe es denke ich verstanden! Dankeschön!
Also wäre das somit die lösung für teilaufgabe b? (Im anhang)
Geschrieben von eulerscheZahl am 22.01.2017 um 16:00:
Sieht gut aus
Geschrieben von Ratte am 22.01.2017 um 16:06:
| Zitat: |
Original von eulerscheZahl
Sieht gut aus
|
Danke eulersche zahl.
Nun zur teilaufgabe c. Was genau ist denn bitte mit "nur einen akzeptor", gemeint?
Geschrieben von eulerscheZahl am 22.01.2017 um 16:09:
Es gibt ja akzeptierende und nicht-akzeptierende Endzustände (s0 ist akzeptierend, weil es eine gerade Anzahl an 0en und 1en gibt, solltest du in deinem Graphen noch kennzeichnen).
Das heißt einfach, dass nur einer der Zustände ein akzeptierender Endzustand ist.
Geschrieben von Ratte am 22.01.2017 um 16:34:
Danke wieder mal für deine hilfe eulerschezahl!
Es gibt hier keinen hilfsbereiteren user als dich!
Forensoftware: Burning Board, entwickelt von WoltLab GmbH