Я пытаюсь минимизировать / упростить некоторые логические выражения.
Я хотел бы, например:
((! 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