SAT4J Сценарий использования импликации
Я новичок в библиотеке sat4j. Как я могу определить значение, например, (A1 v A2 v A3) => (A1 ∧ A4)
используя sat4j и найти логические значения для всех переменных?
Я нашел модульный тест для Sat4j, чем я пытался что-то вроде в листинге ниже. Проблема в том, что hasASolution()
возвращает истину, но solution
переменная пуста.
DependencyHelper<String, String> dependencyHelper = new DependencyHelper<>(SolverFactory.newEclipseP2());
dependencyHelper.implication("A1", "A2", "A3").implies("A1").and("A4");
// Before get a solution it must be checked
assertTrue(dependencyHelper.hasASolution());
IVec<String> solution = dependencyHelper.getSolution();
System.out.println(solution.toString());
1 ответ
Решение предоставляет вам список "удовлетворенных" переменных. Здесь фальсификация переменных удовлетворит ваше мнение.
таким образом, пустой набор решений означает, что все переменные фальсифицированы.