Simplifier une expression booléenne
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Simplifier une expression booléenne



  1. #1
    Victor Curie Ismard

    Simplifier une expression booléenne


    ------

    Bonjour à tous et à et toutes.
    Je m'appelle Victor, j'ai 17 ans et j'ai trouvé une idée assez intéressante pour programmer un algorithme qui joue au jeu d'échecs. En fait, je voudrais que cet algorithme soit le plus fort possible.
    Pour réaliser cet algorithme, je dois coder une fonction qui me permet de simplifier une expression booléenne le plus rapidement possible. C'est un point clé de mon algorithme.
    J'ai donc commencé à réfléchir sur un moyen de simplifier les expressions booléennes mais je me suis heurté à un mur : mon procédé est beaucoup trop lent.
    En effet, la taille des expressions booléennes sont très conséquentes. Le nombre d'entrées peut atteindre plusieurs millions et le nombres d'entrées distinctes est d'environ 500.
    De plus les expressions booléennes que l'algorithme doit manipuler sont "profondes", je m'explique. Quand on entend parler d'expressions booléennes, on pense sûrement à ceci : a.b + b.e.f + a.c.d , or il s'agit plutôt d'expressions comme celle-là avec une multitude de et et de ou imbriqués les uns dans les autres : (a.(b+a.e).(a.e(b+c.f(g+a))+a. d.f.g))+a.f(b.c.d(e.f+g))
    Ayant échoué à réalisé moi-même un algorithme qui simplifie ce genres d'expressions, je me suis tourné vers internet mais je n'ai rien trouvé qui puisse me satisfaire.
    Je vous demande donc si vous connaissez l'algorithme le plus rapide qui puisse simplifier une expression booléenne.

    -----

  2. #2
    Deedee81
    Modérateur

    Re : Simplifier une expression booléenne

    Salut,

    Citation Envoyé par Victor Curie Ismard Voir le message
    mon procédé est beaucoup trop lent.
    C'est normal, le problème est NP-Complet. Voir par exemple : https://fr.wikipedia.org/wiki/Probl%C3%A8me_3-SAT
    Ce problème de simplification est considéré comme difficile (comprendre "lent" dès que le nombre de variables devient conséquent).

    Il y a quand même plus simple pour programmer les échecs (mais bon, là on n'est pas de le bon forum). J'ai déjà fait (et pleins d'autres jeux).
    "Il ne suffit pas d'être persécuté pour être Galilée, encore faut-il avoir raison." (Gould)

  3. #3
    GBZM

    Re : Simplifier une expression booléenne


  4. #4
    albanxiii
    Modérateur

    Re : Simplifier une expression booléenne

    Déplacé dans la bonne rubrique (la rubrique logique est réservée à la logique mathématique)
    Not only is it not right, it's not even wrong!

  5. A voir en vidéo sur Futura
  6. #5
    Deedee81
    Modérateur

    Re : Simplifier une expression booléenne

    Salut,

    Tiens Victor, une question m'est venue en tête. Tu dis que ton procédé est beaucoup trop lent. Mais combien de temps ça prend ? Parce que si c'est lent mais acceptable au moins pour des essais, il serait déjà intéressant de faire des essais de partie contre ton programme (toi ou quelqu'un d'autre, il vaut mieux un fort joueur. Pas moi Je joue pas mal mais on ne peut pas me classer dans les forts joueurs). Cela me semble important car des tentatives généraliste de ce genre ont déjà été tentées, je m'y suis intéressé à l'époque où je programmais des jeux et où je m'intéressais aux mécanismes d'apprentissage : méthode par amélioration de fonction d'évaluation à grand nombre de variables ou méthode de stockage des valeurs par position par exemple. Et ça donnait des résultats médiocres avec les échecs (ça marche bien avec le morpion, les dames...) et encore moins bien avec le Go. Inutile de se casse la tête si ça ne donne pas les résultats escomptés.

    Une autre question : comment détermines-tu les valeurs des 500 variables ? Par examen de la position je suppose ? Déjà, ça, ce n'est pas fort couteux ?
    "Il ne suffit pas d'être persécuté pour être Galilée, encore faut-il avoir raison." (Gould)

Discussions similaires

  1. Simplification de circuit logique - expression booléenne
    Par invite563547f9 dans le forum Mathématiques du supérieur
    Réponses: 14
    Dernier message: 07/04/2017, 15h11
  2. Simplifier expression
    Par invited68386e2 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 10/07/2016, 16h08
  3. Simplifier une expression
    Par invite4308cf33 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 06/06/2016, 19h47
  4. simplifier une expression
    Par ibtihel dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 05/06/2009, 15h07
  5. expression booléenne
    Par invite92876ef2 dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 23/03/2007, 13h22