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 :

Problème simplification équation booléenne


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 73
    Points : 58
    Points
    58
    Par défaut Problème simplification équation booléenne
    Bonsoir,

    Je cherche à simplifier cette équation (algèbre booléenne) :

    X = (b + bc)(b + (¬b)c)(b + d)

    Le résultat donne X = b, cependant, je n'arrive pas à trouver les simplifications qui sont faites pour arriver à ce résultat... Quelqu'un pour m'aider ?

    Merci, très bonne soirée,
    Metallic-84s

  2. #2
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Cette simplification vient probablement d'un diagramme de karnaugh.

    Tu trouveras ton bonheur sur cette page:
    http://villemin.gerard.free.fr/LogForm/Integram.htm

    Les multiplications sont des 'et' logiques, les additions des 'ou' c'est bien ça?

    Finalement, pas simple avec Karnaugh, mais avec les expressions ici:
    http://fr.wikipedia.org/wiki/Alg%C3%A8bre_de_Boole_(logique)

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut Re: Problème simplification équation booléenne
    Citation Envoyé par Metallic-84s
    Bonsoir,

    Je cherche à simplifier cette équation (algèbre booléenne) :

    X = (b + bc)(b + (¬b)c)(b + d)

    Le résultat donne X = b, cependant, je n'arrive pas à trouver les simplifications qui sont faites pour arriver à ce résultat... Quelqu'un pour m'aider ?

    Merci, très bonne soirée,
    Metallic-84s
    b+bc = b(1+c) = b

    b(b+x) = b+bx = b
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  4. #4
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    A c'est bien ce qui me semblait:

    1+a = 1
    1.a = a

    Si tu veux t'en convaincre, fait les tables de vérité. Tu verras mieux les simplifications.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 160
    Points
    160
    Par défaut
    le probleme général de la simplification des expressions booléennes est compliqué, il doit etre NP-complet je pense...
    ce que tu peux faire assez facilement et systematiquement c'est te ramener à une forme normale conjonctive ou disjonctive...

    Dans ton probleme je pense plutot que ce que tu veux c'est effectuer des opérations basiques de simplification à partir d'une expression, et avec de la chance ça te donnera une expression simplifiée.
    Tu peux alors décider de factoriser à chaque fois qu'une variable apparait dans tous les termes d'une somme.
    Ensuite en appliquant effectivement les regles 1+x = 1, 1.x = x , x.x = x, tu devrais deja obtenir pas mal de simplifications.

    L'algo serait donc un simple parcours récursif d'arbre, en faisant du matching sur la regle à appliquer (je sais pas si je suis clair là...)

  6. #6
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Hum Karnaug ça marche bien, je viens de le faire...
    En plus c'est rapide.
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 160
    Points
    160
    Par défaut
    hm mes souvenirs sont assez vagues la dessus j'avoue, mais il me semble que Karnaugh est pas en temps polynomial... ça revient à essayer toutes les valeurs non?

  8. #8
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Effectivement pour Karnaugh il faut faire toute la table.

    Pfiou, je suis plus capable de faire un tableau de Karnaugh moi.

    Si Qqun veut bien poster la table

  9. #9
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        bc bc bc bc
        00 01 11 10
              ------
    d 0  F  F |V  V|
    d 1  F  F |V  V|
              ------
    Avant de poster, merci de consulter les règles du forum

  10. #10
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    La taille des tables de Karnaugh est exponentielle en le nombre de variables (si on a n variables, il faut 2^n entrees dans les tables).

    Une des techniques utilisees en pratique, c'est les BDD (Binary Decision Diagram) et leurs variantes (ZBDD entres autres). Un optimiseur booleen plus ancien c'est espresso dont le code doit toujours se trouver sur le web.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

Discussions similaires

  1. Problème d'équation
    Par irarref dans le forum Maple
    Réponses: 6
    Dernier message: 03/06/2012, 16h22
  2. [Débutant] Petit problème d'équations
    Par Trotterata dans le forum MATLAB
    Réponses: 1
    Dernier message: 06/04/2012, 11h57
  3. problème ode équation différentielles
    Par jamal.obito dans le forum MATLAB
    Réponses: 1
    Dernier message: 26/07/2011, 12h52
  4. [Access] Probléme simplification requete Jointure Externe
    Par paflolo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/03/2006, 10h18
  5. Problème d'équations dans l'espace (perspective -> 3D)
    Par Rémiz dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/12/2005, 17h43

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