AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Turingmaschine konstruieren

Ein Thema von Webo · begonnen am 20. Dez 2011 · letzter Beitrag vom 24. Dez 2011
Antwort Antwort
Benutzerbild von Webo
Webo

Registriert seit: 19. Jul 2008
Ort: Werdohl
37 Beiträge
 
RAD-Studio 2010 Pro
 
#1

Turingmaschine konstruieren

  Alt 20. Dez 2011, 18:15
Hallo zusammen,

ich habe grade ein Problem beim "Konstruieren einer Turingmaschine". Die Aufgabe ist es eine Maschine zu konstruieren, die Wörter aus {a,b}* erkennt, welche die gleiche Anzahl von as wie bs haben.

Mein Gedanke dazu ist:

Vom Startzeichen ausgehend: Wenn ein a das aktuelle Zeichen ist, dann gehe solange weiter, bis ein b kommt (oder halt genau andersrum). Dann ersetze das b und das a durch ein Sonderzeichen und nehme das Zeichen neben a und mache dann das genauso. Wenn das aktuelle Zeichen ein Sonderzeichen ist -> ignorieren. Wenn dann irgendwann kein Gegenstück mehr zu einem a oder b da ist, dann ist das Wort nicht richtig. Wenn nur noch Sonderzeichen da sind ist das Wort "richtig".

Soweit zu meiner Theorie - müsste doch so eigentlich gehen?! Das große Fragezeichen ist jetzt nur noch, wie schreibe ich das jetzt als Turingmaschine. Was mich aufhält ist das "solange weiter gehen" und "wieder zum a zurück". Da hab ich keine Idee, wie ich das aufschreiben sollte.

Vielleicht kann mir von Euch jemand weiterhelfen.


Grüße

Webo
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: Turingmaschine konstruieren

  Alt 21. Dez 2011, 01:12
Zum Weitergehen:
Code:
suche_a, a -> nicht_bewegen, a, a_gefunden
suche_a, b -> nach_rechts, b, suche_a
suche_a, SONDERZEICHEN -> nach_rechts, SONDERZEICHEN, suche_a
suche_a, BLANK -> nicht_bewegen, BLANK, suche_a // kein a gefunden, Zykle unendlich
Analog für b.

Das Finden des Anfangs ist ähnlich, überschreibe das erste Zeichen des Paares direkt mit einem Blank, wenn du in den Suche-Zustand wechselst.
Dann musst du für das Zurücklaufen immer nur nach links gehen, bis du zum ersten Blank kommst. Dann bist du am Anfang des "Restwortes" und bereit für den nächsten Durchlauf.


PS: Wie kommt man denn mal an eine günstige Turingmaschine, bei meiner alten hat sich das Band verheddert

Geändert von BUG (21. Dez 2011 um 01:17 Uhr)
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Turingmaschine konstruieren

  Alt 24. Dez 2011, 11:10
ich hab so ne aufgabe so gelöst indem ich zuerst die a's und die b's sortiert hab, also links alle a's und rechts alle b's. danach hab ich dann immer vorne ein a und hinten ein b gelöscht bis links keine a's oder rechts keine b's mehr waren. wenn dann noch a's oder b's übrig sind ist es nicht die gleiche anzahl.

edit: wegen dem sortieren: die aufgabe davor war, ich sollte feststellen ob in einem wort {a*b*} gleichviele a's und b's sind, ich hab dann in der nächsten aufgabe sortiert und auf die erste maschine verwiesen.
Martin Weber
Ich bin ein Rüsselmops

Geändert von Angel4585 (24. Dez 2011 um 11:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz