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 :

algo de minimisation d'un automate/graph


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut algo de minimisation d'un automate/graph
    Coucou a tous, je doit réduire ( minimiser) un automate déterministe donné . ( je l'ai modéliser sous forme d'un graphe )

    Et j'ai un peu de mal a trouver une methode bien expliqué sur le web .
    J'ai la méthode de moore dans le cours ; mais ca me depasse un peu .
    J'ai cru voir que celle de brzozowski était plus simple, mais je n'ai trouvé qu'une seule source expliquant la méthode général et elle me parait bizzare ...
    enfin si quelqun a une source pertinente et accessible je prend !
    merci d'avance !

    edit: la page en question :
    http://www.liafa.jussieu.fr/~mz/enseignement/04-05/Automates/TD.pdf

    page 5, quand japlique la methode, je ne vois pas quelle transition vont disparaitre... selon moi aucune ...

  2. #2
    Membre éprouvé Avatar de kaisse
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Par défaut
    En appliquant la méthode, tous les états non-accessibles de ton automate renversé vont disparaitre, et les transitions qui mènent à ces états. Les états accessibles de l'automate renversé correspondent aux états co-accessibles de ton automate de départ. Donc tous les états non-co-accessibles seront supprimés. Ton automate étant à la base accessible, tu auras donc un automaté émondé. Et comme tu as determinisé le tout, ca te donne effectivement un automate minimal. Par contre, vois si la complexité est meilleure que celle de l'algorithme de Moore.

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    re coucou !! ( pti retour de vacances, donc ma réponses va peut-etre etre a coté de la plaque, car je suis pas trés frais la lol ) .

    En appliquant la méthode
    on parle bien de l'algo de brzozowski la ? ( c'est juste pour etre sur hein ^^ )

    tous les états non-accessibles de ton automate renversé vont disparaitre
    Heu, l'automate renversé va etre mon auto minimal , non ? Donc quand tu parle de faire disparaitre certain de ses états je pige pas trop ...
    Enfin on va admetre que tu parlais des états non-accessible de l'automate de départ, qui ne seront pas présent dans l'auto renversé ( cest ca? ) .
    Si c'est le cas ... bah je vois pas comment ca se fait .
    ** Un état n'est pas accessible si aucun calcul ne mene de l'etat ini a cet état . **
    En gros, dans notre cas, c'est un état inutile . Jusque la tout va bien . Par contre, ( état donné que la seule véritable modification de l'algo c'est d'inversé les transi -- ou alors j'ai pas le bon algo ) je ne vois pas comment cela va marcher ...

    Pour le reste ..bah on va attendre d'avoir comprit le début
    merci et bonne nuit .

  4. #4
    Membre éprouvé Avatar de kaisse
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Par défaut
    Heu, l'automate renversé va etre mon auto minimal , non ? Donc quand tu parle de faire disparaitre certain de ses états je pige pas trop ...
    Non, quand tu renverses ton automate, tu n'as encore enlever aucun état, donc il n'y a aucune raison pour que celui-ci soit l'automate minimal. Par contre, excuse moi, mais j'avais écrit:
    Les états non accessibles de l'automate renversé correspondent aux états co-accessibles de ton automate de départ
    Qu'il fallait lire
    Les états accessibles de l'automate renversé correspondent aux états co-accessibles de ton automate de départ
    ou
    Les états non accessibles de l'automate renversé correspondent aux états non co-accessibles de ton automate de départ
    Un état co-accessible est un état à partir duquel tu peux attendre un état final. Donc les états co-accesibles de l'automate initial, deviennent des états accessibles dans l'automate renversé. En determinisant ce dernier, tu supprimes les états non accessibles (donc les co accessible de l'automate de base).

    A la base tous les états de ton automate étaient accessibles. Ils sont donc tous coaccessibles dans ton automate renversé. Comme tu supprimes tous les accessibles dans ton automate renversé, ton automate renversé devient émondé, donc minimal.

    L'algo consiste donc à appliquer cet astuce à ton automate renversé (en gros il faut renverser deux fois).
    1 -> Renverser mon automate
    2 -> Déterminiser l'automate
    3 -> Re-renverser l'automate
    4 -> Déterminiser l'automate
    5 -> C'est dans la poche !

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    1 -> Renverser mon automate
    2 -> Déterminiser l'automate
    3 -> Re-renverser l'automate
    4 -> Déterminiser l'automate
    5 -> C'est dans la poche !
    oula ca fait beacoup tout ca ^^ enfin, surtout de la facons dont j'ai déterminiser mon automate ( c'est pour un tp de cours, donc j'ai fait sa simplement, sans trop me préocuper de la réutilisation des choses ect ... )

    Je vais regarder du coté de moore , si je trouve un algo assez simple a suivre ( car tout ce que j'ai vu pour le moment est énoncé dans une forme qui m'échape un peu ... )

    Enfin, merci de ces réponses, je vasi tout de meme analyser ca de plus prés dés que j'ai un peu plus de temps !

  6. #6
    Membre confirmé

    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    si tu veux l algorithme le plus optimal pour minimiser, c est l algorithme d hopcroft.

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    je suis tombé sur ce nom également durant mes recherche , mais je ne suis pas non plus parvenu a trouver une explication simple et complete de ce que c'était ...

  8. #8
    Membre éprouvé Avatar de kaisse
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Par défaut
    Si c'est pour implémenter, je te recommande MOORE qui est quand même plus simple. L'avantage de celui qui vient d'être donner, c'est si tu as déjà coder la determinisation, tu n'as plus qu'à savoir renverser ton automate (assez fastoche) et hop le tour est joué.

    le plus optimal pour minimiser
    Hum, en général un superlatif suffit. "L'algorithme de cout optimal", "L'algorithme le plus performant" ou "l'algorithme qui minimise le cout".

  9. #9
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    En théorie , oui, mais mon programme est horriblement coder .
    Je cré un nouvel automate a l'aide de la fonction déterminiser .
    Enfin c'est pas beau, pas générique, et pas ré-utilisable .
    Quant a Moore, je me suis penché dessus cet aprés-midi .

    Il ne s'aplique sur des automate complet et accessible . Mais bon passons .
    J'avoue que le cours tel quel, ne me parle pas du tout . Et j'attendrai bien ma seance de TD pour voir de quoi il retourne , mais manque de chance, notre prof de TD n'est pas synchro avec celui de TP et nous fait la minisation 2 jour avant notre TD final alors qu'ont auraient du voir ca avant les vac ...
    fin bref ...
    je suis toujour en quete d'un lien ou l'algo serait déroulé pas a pas ( a la main ) sur un exemple précis ... je pense que ca me suffirai a en déduire l'algo

    enfin bon
    /me y retourne

    merchi

  10. #10
    Membre confirmé

    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    on va ire que j ai dit ca pour insister sur le fait que c'est l'algo qui a le cout le plus bas :p.

    Sinon pour Hopcroft je conseil ce court qui est bien fait et qui te montre comment l'implementer (le groos anglicisme !!!) :
    http://www-igm.univ-mlv.fr/~berstel/...ts/EAChap9.pdf

    J espere que ca t aidera.

Discussions similaires

  1. Minimisation d'un automate (Algo de Moore)
    Par Fredo123456 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 26/04/2009, 22h40
  2. Théorie des graphes
    Par millie dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 08/12/2008, 21h59
  3. Algo optimisation de parcours dans un graphe
    Par egu07 dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 11/09/2008, 10h20
  4. Minimisation d'un automate
    Par daftsider dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 18/05/2008, 12h44
  5. Minimisation d'un automate
    Par snipes dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 26/11/2007, 23h33

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