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