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 :

Simplification de DNF, Subsumption


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Points : 501
    Points
    501
    Par défaut Simplification de DNF, Subsumption
    Bonjour à tous !

    Je suis en train de développer un programme permettant de convertir une formule logique en DNF, et de préférence en une DNF la plus simple possible.

    Une des simplifications possible est la subsumption A vue de nez, le genre de données que je vais utiliser va vite me générer des clauses gigantesques mais dans lesquelles il y aura beaucoup de simplifications de ce genre à faire.

    J'ai bossé sur l'algo général de ma conversion en DNF, c'est prêt, il me manque la détection et la simplifications des subsumption et la je planche.

    J'aimerai éviter une comparaison 2 à 2 de toutes mes conjonctions, mais j'ai pas beaucoup d'idée sur comment faire autrement, donc si quelqu'un maitrise le sujet et peu me filer un coup de pouce, je lui en serait grandement reconnaissant ! ^^

    Evidemment vu que j'ai replongé dans la logique il n'y a pas si longtemps, il y a de fortes chances que je soit pas claire du tout, si c'est le cas hésitez pas à le signaler.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Ca se fait à partir de ton arbre de syntaxe abstraite.

    L'idée est de filtrer l'arbre à la recherche de motifs.

    Par exemple en supposant que l'arbre est noté (Noeud, Fils1,Fils2,...) :
    -> (Et,A,A) à remplacer par (A)
    -> (Ou,A,A) à remplacer par (A)
    -> (Et,A,Vrai) à remplacer par (A)
    -> (Ou,A,Vrai) à remplacer par Vrai
    -> ...

    Et dans ton cas :
    -> (Ou,A,(Et,A,B)) -> A remplacer par A

    il y a des dizaines de motifs que tu peux filtrer.

    Une méthode simple consiste à rechercher le motif et à l'appliquer. Tu arrêtes l'algo de simplification quand tu n'as pas pu effectuer de modif (c'est donc qu'au regard de tes motifs de simplification tu n'as plus rien à faire).

Discussions similaires

  1. Evaluation/simplification d'expression arithmetique
    Par Premium dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 08/12/2005, 12h19
  2. Analyse de code HTML et simplification par l'XML
    Par Punky65250 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 10/11/2005, 10h24
  3. simplification d'un graphe
    Par arnobidul dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/09/2005, 18h44
  4. Simplification d'une requête UNION
    Par eautret dans le forum Langage SQL
    Réponses: 6
    Dernier message: 18/01/2005, 14h51
  5. [Kylix] Simplifications de l'écriture Kylix/Pascal"
    Par Mr Vincent KLEIN dans le forum EDI
    Réponses: 1
    Dernier message: 11/03/2003, 11h07

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