Existe-t-il de bons simplificateurs d'expressions booléennes? [fermé]

110

J'étais en train de refactoriser l'ancien code et j'ai rencontré plusieurs conditions IF qui étaient beaucoup trop complexes et longues et je suis certain qu'elles peuvent être simplifiées. Je suppose que ces conditions se sont tellement développées à cause des modifications ultérieures.

Quoi qu'il en soit, je me demandais si l'un d'entre vous connaissait un bon simplificateur en ligne que je peux utiliser. Je ne suis intéressé par aucun langage spécifique, juste un simplificateur qui prendrait par exemple:

((A OU B) ET (! B ET C) OU C)

Et donnez-moi une version simplifiée de l'expression, le cas échéant.

J'ai regardé les autres questions similaires, mais aucune ne m'indique un bon simplificateur.

Merci.

mojarras
la source
1
WolframAlpha arrive aussi C . Pas de portes supplémentaires ...
Axel Kemper
1
Il y a un bel outil en ligne - tma.main.jp/logic/index_en.html
Roman Hocke
Un autre outil est boolean-algebra.com, il montrera les étapes pour le résoudre. Par exemple, le vôtre peut être résolu avec juste la loi d'absorption A + AB = A. Ce n'est pas trop avancé, donc si vous avez besoin d'autre chose qu'une forme minimale, vous feriez mieux d'utiliser un autre site.
John Smith

Réponses:

93

Vous pouvez essayer Wolfram Alpha comme dans cet exemple en fonction de votre entrée:

http://www.wolframalpha.com/input/?i=((A%20OR%20B)%20AND%20(NOT%20B%20AND%20C)%20OR%20C)&t=crmtb01&f=rc

500 - Erreur de serveur interne
la source
3
Le site Web ne semble pas très bon pour simplifier les formules booléennes lorsqu'elles deviennent un peu plus complexes. Essayez celui-ci: (((NOT C) AND (NOT A)) OU ((NOT B) AND (NOT C) AND (NOT D) AND (NOT A)) OU ((NOT B) AND (NOT C) AND D ET A) OU (B ET C ET (PAS D) ET (PAS A)) OU (B ET C ET D ET A))
Albert Hendriks
1
En effet. Étrange. Il barfs même à la version simplifiée NOT C AND NOT A OR NOT B AND NOT C AND NOT D AND NOT A OR NOT B AND NOT C AND D AND A OR B AND C AND NOT D AND NOT A OR B AND C AND D AND A.
500 - Erreur de serveur interne
2
Notez que si vous voulez la table de vérité, qui n'est pas toujours sortie pour certaines expressions, lancez la requête avec les mots "table de vérité" suivis de l'expression
Belgi
16

Try Logic Friday 1It inclut des outils de l'Université de Californie (Espresso et misII) et les rend utilisables avec une interface graphique. Vous pouvez entrer des équations booléennes et des tables de vérité comme vous le souhaitez. Il comporte également une entrée et une sortie de diagramme de porte graphique.

La minimisation peut être effectuée à deux niveaux ou à plusieurs niveaux. La forme à deux niveaux donne une somme minimisée de produits. La forme à plusieurs niveaux crée un circuit composé de portes logiques. Les types de portes peuvent être restreints par l'utilisateur.

Votre expression se simplifie en C.

Axel Kemper
la source
2
Pour un outil en ligne rapide, cela est vraiment utile: tma.main.jp/logic/index_en.html
Lenar Hoyt
6

J'ai trouvé que le réducteur d'expression booléenne est beaucoup plus facile à utiliser que Logic Friday. De plus, il ne nécessite pas d'installation et est multi-plateforme (Java).

De plus, dans Logic Friday, l'expression A | Brenvoie simplement 3 entrées dans la table de vérité; J'attendais 4.

Pawel Dubiel
la source
3
Activez l'option "Truthtable / Show all Rows" dans Logic Friday 1. Sinon, vous n'obtiendrez que toutes les lignes avec la valeur de sortie 1.
Axel Kemper
1
En interne, bexpred utilise des algorithmes simples pour fusionner les minterms. Cela peut être utile pour les petites expressions mais n'est certainement pas à la pointe de la technologie.
Axel Kemper
2
Pour "A * B * (! A * B +! A *! B)", ce pot renvoie SOP False mais POS True. Script pas exactement fiable ...
Evil
lien est rompu, qui a un lien fonctionnel?
HJLebbink