IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Machine de Turing: déplacement


Sujet :

Algorithmes et structures de données

  1. #1
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut Machine de Turing: déplacement
    Bonsoir,

    Je voudrai faire décaler un mot de l'alphabet {0, 1} d'une position à droite dans le ruban de Turing.

    j'ai raisonné comme suit:

    On se déplace à droite
    q0, $, $, droite, q1

    On se place à l'autre bout du mot
    q1, 1, 1, droite, q1
    q1, 0, 0, droite, q1

    Arrivé à la fin
    q1, #, #, droite, q2

    maintenant je n'arrive pas à trouver comment réécrire chaque symbole en remplaçant les blancs.

    Je sais qu'il y a surement une meilleure idée pour faire ce décalage

    Help please

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ta dernière transition devrait plutôt être :
    q1, #, #, gauche, q2

    Puis :
    q2, 0, #, droite, q3
    q2, 1, #, droite, q4
    q3, #, 0, gauche, q1
    q4, #, 1, gauche, q1

    Et la machine s'arrêtera lorsque q2 rencontrera un blanc.

    --
    Jedaï

  3. #3
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Ta dernière transition devrait plutôt être :
    q1, #, #, gauche, q2

    Puis :
    q2, 0, #, droite, q3
    q2, 1, #, droite, q4
    q3, #, 0, gauche, q1
    q4, #, 1, gauche, q1

    Et la machine s'arrêtera lorsque q2 rencontrera un blanc.

    --
    Jedaï
    Merci j'ai déroulé et j'ai très bien compris les transitions.

    mais je ne vois pas comment q2 pourrait rencontrer un blanc! ce n'est pas un $ qui va indiquer l'arrêt?

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonsoir,

    si tu veux décaler ton mot vers la droite, il te faut démarrer de la gauche
    Tu démarres d'un état initial qui mémorise le premier symbole et le remplace par ton symbole vide.
    Ensuite, tu sauvegardes ton état en remplaçant par l'état précédent ainsi de suite jusqu'à arriverà la droite du mot.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Bonsoir,

    si tu veux décaler ton mot vers la droite, il te faut démarrer de la gauche
    Tu démarres d'un état initial qui mémorise le premier symbole et le remplace par ton symbole vide.
    Ensuite, tu sauvegardes ton état en remplaçant par l'état précédent ainsi de suite jusqu'à arriverà la droite du mot.
    Merci je crois que c'est ce qu'on a fait pour décaler le mot à droite.

    maintenant pour le décaler à gauche c'est presque la même procédure sauf qu'au lieu de démarrer de la gauche on démarre de la droite. non?

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par acacia Voir le message
    Merci j'ai déroulé et j'ai très bien compris les transitions.

    mais je ne vois pas comment q2 pourrait rencontrer un blanc! ce n'est pas un $ qui va indiquer l'arrêt?
    Je n'avais pas fait attention mais si effectivement ton ruban est rempli de $ avant les données (ou tu as un ruban semi-infini), effectivement q2 ne rencontrera pas de blanc mais bien le premier $.
    En tout cas il s'arrêtera, après je n'ai pas toutes les spécifications de tes machines de Turing donc je ne sais pas très bien comment signaler un succès, mais par exemple si tu utilises un état pour signaler le succès, tu peux rajouter cette transition :
    q2, $, $, _, qSuccès

    Néanmoins la proposition de Toto13 est plus efficace, un seul parcours suffit pour effectuer le décalage d'un rang vers la droite :
    q0, $, $, droite, q1

    q1, 0, #, droite, q2 -- # ou $ selon ta convention ??
    q1, 1, #, droite, q3 -- idem

    q2, 0, 0, droite, q2
    q2, 1, 0, droite, q3
    q2, #, 0, _, qSuccès

    q3, 0, 1, droite, q2
    q3, 1, 1, droite, q3
    q3, #, 1, _, qSuccès

    --
    Jedaï

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Néanmoins la proposition de Toto13 est plus efficace, un seul parcours suffit pour effectuer le décalage d'un rang vers la droite :
    q0, $, $, droite, q1

    q1, 0, #, droite, q2 -- # ou $ selon ta convention ??
    q1, 1, #, droite, q3 -- idem

    q2, 0, 0, droite, q2
    q2, 1, 0, droite, q3
    q2, #, 0, _, qSuccès

    q3, 0, 1, droite, q2
    q3, 1, 1, droite, q3
    q3, #, 1, _, qSuccès
    Je pense que c'est la meilleure façon de faire : un seul parcours avec mémorisation.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  8. #8
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Je vous remercie beaucoup pour vos explications.

    q0, $, $, droite, q1

    q1, 0, #, droite, q2 -- # ou $ selon ta convention ??
    q1, 1, #, droite, q3 -- idem

    q2, 0, 0, droite, q2
    q2, 1, 0, droite, q3
    q2, #, 0, _, qSuccès

    q3, 0, 1, droite, q2
    q3, 1, 1, droite, q3
    q3, #, 1, _, qSuccès
    Le $ est un caractère qui marque le début du ruban et on ne peut l'effacer ou le remplacer, par contre le # signifie un blanc.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. machine de turing
    Par gentelmand dans le forum Mathématiques
    Réponses: 0
    Dernier message: 08/10/2009, 15h53
  2. Machines de Turing, Complexité et "Drapeau Belge"
    Par Ourszor dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 03/03/2009, 12h10
  3. Réponses: 4
    Dernier message: 30/01/2009, 15h47
  4. Machine de Turing
    Par Anakin8526 dans le forum Général Python
    Réponses: 3
    Dernier message: 10/12/2008, 18h39
  5. Machine de Turing fonction 2n
    Par patrick974 dans le forum Mathématiques
    Réponses: 4
    Dernier message: 11/09/2008, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo