Я пытаюсь научить себя некоторому Прологу, чтобы я мог определить его пригодность для решения моей проблемы.По сути, проблема в том, что, учитывая кучу правил взаимодействия между элементами, определяют, какие элементы доступны, недоступны, выбраны и не выбраны.
Но я проваливаюсь даже в самых простых частях!Я резко уменьшил размер проблемы, чтобы посмотреть, что я могу сделать.Ниже моя база знаний:
selected(A) :- implied(A).
implied(B) :- implies(A,B),selected(A).
implied(option_one).
implies(option_one,option_two).
И когда я запрашиваю:
selected(X).
Я получаю только option_two.
Кажется, что есть что-то очень простоеЯ не понимаю здесь, но мне кажется, что если option_one также должен вернуться в этот список (тем более, что один из фактов «подразумевается (option_one)»).
Если это имеет значение, япопробовал это, используя P #, а также SWI-Prolog, которые дают тот же результат.