Использование pyDatalog для хранилищ ограничений

Рассмотрим следующие правила:

pyDatalog.create_atoms('X')
pyDatalog.create_atoms('Y')

pyDatalog.create_atoms('a')
pyDatalog.create_atoms('b')

b(X,1) <= (X<0)
b(X,Y) <= (X==1) & (Y>0)
a(X,Y) <= b(X,Y) & (X>0)

И проблема нахождения ограничений, которые удовлетворяют: a(X,1)

Вопрос в том, можете ли вы использовать pyDatalog для составления списка [(X==1)]? или [(X>0), (X==1)]?

Спасибо,

1 ответ

К сожалению нет, по крайней мере, с текущей версией:-)

pyDatalog может решать дискретные проблемы с ограничениями, а не общие проблемы с ограничениями, подобные той, которую вы описываете. pyDatalog может возвращать только значения, но не критерии, такие как X>0.

Примечание: вы можете объединить первые 4 оператора в одном:

pyDatalog.create_atoms('X, Y, a, b')
Другие вопросы по тегам