Java — решатель булевых выражений / упрощитель

Я ищу решение булевых выражений для очень большой (но не сложной) алгебры, такой как:
Boolsche Ausdrücke vereinfachen (Аксиома)
Я хотел бы иметь некоторый код (c ++ или java [или библиотеки]), чтобы упростить огромное логическое выражение. Я не нашел что-то. Я просто хочу сделать «простое» преобразование, например:

a && ~a -> 0

a || a && (b || c) -> a

Но намного дольше. И я хочу использовать символику (a, b, c1, d1 ..), а не TRUE, FALSE, 0 или 1 в данный момент.
Заранее спасибо.

Редактировать:
Если я напишу это сам, я мог бы использовать Javaluator и оценить.
Когда у меня есть: (adb+c) && d Я хотел бы начать с умножения. Есть идеи?

-1

Решение

Мой любимый инструмент для таких задач Logic Friday 1,
Это бесплатно для некоммерческого использования.

Логическая пятница 1 принимает логические выражения в качестве формулы и таблицы истинности. Включает в себя скомпилированные двоичные файлы инструментов Беркли Эспрессо и misII. Последний используется для многоуровневых функций.

Еще один инструмент bc2cnf. Он читает логическое выражение (или набор выражений) как «схему» и переводит его в конъюнктивная нормальная форма (CNF), в основном продукт OR-выражений. bc2cnf применяет некоторые правила упрощения во время этого перевода. Для выражений скромного размера будет возможность преобразовать CNF в дизъюнктивная нормальная форма (DNF) и используйте эспрессо, чтобы получить минимизированную форму.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]