разобрать проблему логического выражения - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь минимизировать / упростить некоторые логические выражения. Я хотел бы, например:

((! C | C) & A & B) -> (A & B)

Я видел, что она выходит из этой библиотеки для анализа любого логического выражения:

Библиотека JBool_expressions

Изучая эту библиотеку, я решил использовать ее для упрощения моего логического выражения, как показано ниже:

Expression<String> expr = ExprParser.parse("( ( (! C) | C) & A & B)");
Expression<String> simplified = RuleSet.simplify(expr);
System.out.println(expr);

Я работаю с Eclipse, но у меня было так много проблем. Я не знаю почему. Например, Eclipse не понимает, что такое Expression. Вот что предлагает Eclipse:

com.bpodgursky.jbool_expressions.Expression expr = ExprParser.parse("( ( (! C) | C) & A & B)");

Но это говорит мне:

java.lang.NoClassDefFoundError: org / antlr / runtime / RecognitionException

У вас есть идеи, почему? Кроме того, чтобы упростить мои выражения, знаете ли вы другую альтернативу? Другая библиотека? Или с открытым исходным кодом? Или любая методология.

Что касается меня, я пытался реализовать сам метод Куайна МакКласки для минимизации любых логических выражений в Java.

Thks

...