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 :

[Graphe][Parcours] Chaines de caractères


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut [Graphe][Parcours] Chaines de caractères
    Bonjour a tous !

    Je suis confronté a un problème que je n'arrive pas vraiment a résoudre, je vous explique : j'ai un graphe, ce graphe possède des arcs nommés (avec des lettres 'a' 'b' etc). Ensuite j'ai une chaine de caractère qui représente un parcours dans ce graphe, par exemple la chaine peut être :

    [a;a;(b|a)] : cette chaine représente un chemin " a puis a puis a OU b "
    En gros le point virgule représente la séquence de 2 parcours, et le | un choix possible entre 2 trajets.

    Ici on voit bien qu'on peut avoir 2 chemins : le 1er : a a b et le 2nd : a a a.

    Le problème ce que je n'arrive pas a trouver un algo qui lit caractère par caractère et qui sait quoi faire en fonction du caractère rencontré.

    De plus les chaines peuvent être beaucoup plus compliquées, du style

    [a;(b|(c;d)|d);b|a]

    Voila j'espère avoir été assez clair et merci pour l'attention que vous pourrez porter a ce message
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu ne veux pas tenter le coup de l'algo déterministe ?

  3. #3
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Algo déterministe? C'est a dire ? . . .
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  4. #4
    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
    Ces expressions sont des expressions régulières, pour bien faire il faut les compiler sous forme d'automates à états finis avant de les exécuter machinalement.

    --
    Jedaï

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Le problème est-il de dévelloper l'expression afin de lister tous les chemins possibles ou y a-t-il un autre objectif ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par GyZmoO
    Algo déterministe? C'est a dire ? . . .
    Un automate déterministe pour être plus exact D'abord on crée l'automate non déterministe, puis on le déterminise.

  7. #7
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Le problème est-il de dévelloper l'expression afin de lister tous les chemins possibles ou y a-t-il un autre objectif ?
    C'est juste lister tous les chemins possibles, il n'y pas d'autre objectif a part ma satisfaction personnelle

    Un automate déterministe c'est un automate qui pour une "lettre" donnée ne peut effectuer qu'un seul trajet c'est bien ça? Enfin je veux dire pour une même lettre il n'y pas plusieurs trajets possibles ?

    Si c'est ça je comprend mais quand je me retrouve avec ma chaine de caractère, (par exemple : [a;(b|c;(a|b));b] ) je fais quoi ? J'avoue être un peu dans le flou la


    Merci pour vos réponses !
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  8. #8
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Question :

    Dans ton exemple, à quoi servent ces parenthèses :

    ton expression ne serait-elle pas simplifiée en :

    ?

    Il faut que tu te penches à mon avis sur les arbres syntaxiques; un arbre te donnera donc toutes les possibilités, je ne suis pas assez fort pour donner d'exemple désolé
    K

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par GyZmoO
    Un automate déterministe c'est un automate qui pour une "lettre" donnée ne peut effectuer qu'un seul trajet c'est bien ça? Enfin je veux dire pour une même lettre il n'y pas plusieurs trajets possibles ?
    C'est un algo dans lequel il n'y a qu'un seul état actif à la fois.

  10. #10
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par GyZmoO
    Le problème ce que je n'arrive pas a trouver un algo qui lit caractère par caractère et qui sait quoi faire en fonction du caractère rencontré.
    C'est la définition du déterminisme . Pour l'instant ton automate est non-déterministe puisque que ton algo ne peut pas toujours décider quels chemins enprunter (c-a-d le chemin ne peut pas être déterminé). Rendre ton automate déterministe permet de résoudre ce problème.

    La transformation de ton automate non-déterministe --> déterministe se fait à l'aide d'un algorithme judicieux que l'on trouve dans tous les bons livres traitant du sujet.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Réponses: 1
    Dernier message: 10/11/2013, 00h35
  3. [RegEx] Parcours de chaine de caractères
    Par soulflow dans le forum Langage
    Réponses: 14
    Dernier message: 11/06/2009, 16h15
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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