programmer une machine de turing en java - Algo - Programmation
Marsh Posté le 02-04-2005 à 12:10:45
Pour les états tu peux faire comme pour un automate classique avec un enum des etats et et un tableau de transitions etc ...
Par contre pour la bande il faut bien entendu definir une longueur maximale au debut : un tableau (ou meme un fichier), une position de la tete, position du symbole suivant, position de symbole precedent.
Il y a pleins d'exemples sur google ...
Marsh Posté le 02-04-2005 à 12:13:20
WhatDe a écrit : C'est un simple graphe dirigé ? |
Non c'est pas un simple graphe dirigé, c'est comme un automate a pile sauf que la pile n'est plus une pile mais un ruban "infini" sur lequel on peux avancer, reculer, lire, ecrire.
Marsh Posté le 02-04-2005 à 12:16:32
en fait ce qu'il faut que je fasse c'est parcourir ma bande (mon string en java dans mon cas) et faire un case sur tous les cas possibles c'est à dire un truc du style :
case bidule with
(etatCourant, symbole lu, etatSuivant)-> traitement
(etatCourant2, symbole lu, etatSuivant3)-> traitement2
...
default : aucun tuple correspondant dans le tableau donc expression entree non correcte
end case
c'est bien ce genre de méthode qu'il faut que j'applique ou je me suis trompé ?
Marsh Posté le 02-04-2005 à 12:28:17
lordankou a écrit : en fait ce qu'il faut que je fasse c'est parcourir ma bande (mon string en java dans mon cas) et faire un case sur tous les cas possibles c'est à dire un truc du style : |
Oui je pense que ca devrait le faire, mais ta chaine en entrée est une string et ta bande est une string aussi ? Pour les états moi je ferais un tableau avec 4 colonnes ...
Code :
|
Marsh Posté le 02-04-2005 à 12:35:25
ok merci beaucoup ! je vais coder ça pendant le week-end et je mettrais ma solution après si ça peut aider quelqu'un !
mici pour tout !
Marsh Posté le 05-04-2005 à 10:21:53
voilà : c'est pas forcément joli mais ça marche niquel !
Code :
|
Marsh Posté le 05-04-2005 à 10:33:33
maintenant, va regarder le pattern "State" dans google et essaye de l'appliquer à ton cas.
http://www.google.fr/search?source [...] te+pattern
http://home.earthlink.net/~huston2/dp/state.html
Dans ce cas précis, ce sera probablement plus lisible mais avec plus de code, mais ça te servira de cas d'école pour quand tu en auras besoin dans la vraie vie.
Marsh Posté le 05-04-2005 à 16:45:02
euh joker je suis qu'en deuxième année de deug... (mais ça a l'air intéressant)
le design patern c l'année prochaine et en plus je dois rendre cette bip de calculatrice pour lundi...
et pour la lisibilité c'est clair que c'est nul mais le fait de manier que des strings et pas des floattant ça n'aide pas beaucoup !
Marsh Posté le 05-04-2005 à 17:10:01
C'est quoi l'interet d'implementer une Machine de Turing avec des state patterns ?
EDIT : Bon d'accord ca peut servir mais un marteau pour tuer une mouche
Marsh Posté le 02-04-2005 à 11:54:22
J'ai réalisé une machine de turing permettant d'analyser la syntaxe d'une opération en binaire afin de savoir si elle est correcte ou pas.
Je l'ai testé avec succès sous jflap mais maintenant il me reste à la coder et là ça devient compliquer.
en effet je n'ai aucune méthode pour passer d'une machine de turing à algorithme classique facilement transposable à un langage.
voici la machine en question :
je ne demande pas de mon pondre l'algo car il n'y aurait aucun intéret mais plutot de m'aider à trouver une méthode pour transformer la machine en un algo papier.
Merci d'avance !