В руководстве Clingo есть два режима, называемых осторожным и храбрым, которые представлены следующим образом:
смелый Вычислите смелые последствия (объединение всех наборов ответов) логической программы.
осторожно Вычислить осторожные последствия (пересечение всех наборов ответов) логической программы.
Больше никакой информации в руководстве нет. Я попробовал несколько примеров и не могу понять проблему.
Я попытался запустить следующую простую программу ASP:
p :- not q.
q :- not p.
Запуск Clingo без параметра режима даст правильные наборы ответов:
answer 1:{p}
answer 2:{q}
Как описано в руководстве, если запустить в смелом режиме, который будет вычислять объединение всех наборов ответов, я должен получить результат {p, q}
.
Аналогично, для осторожного случая ожидается пустой результат.
Однако реальный результат смелых рассуждений Клинго таков:
клинго версия 5.3.0
Чтение из test/cautious_reasoning.lp
Решение...
Ответ: 1
q
Последствия: [1;2]
Ответ: 2
q p
Последствия: [2;2]
УДОВЛЕТВОРИТЕЛЬНО
Модели : 2
Храбрый: да
Последствия : 2
Звонки : 1
Время: 0,006 с (Решение: 0,00 с 1-я модель: 0,00 с Ненасыщенное: 0,00 с)
Время процессора: 0,002 с
И для осторожного случая:
клинго версия 5.3.0
Чтение из test/cautious_reasoning.lp
Решение...
Ответ: 1
q
Последствия: [0;1]
Ответ: 2
Последствия: [0;0]
УДОВЛЕТВОРИТЕЛЬНО
Модели : 2
Осторожно: да
Последствия : 0
Звонки : 1
Время: 0,001 с (Решение: 0,00 с 1-я модель: 0,00 с Ненасыщенность: 0,00 с)
Время процессора: 0,001 с
Так что же означают числа в []
? Как понять осторожный и смелый режим рассуждений в Clingo?