Преобразование логики первого порядка в CNF

Я пытаюсь использовать MiniSat для решения проблемы удовлетворения ограничений. В логике первого порядка проблема легко представляется несколькими переменными дискретной области и некоторыми предикатами.

Однако MiniSat, как и другие решатели CSP, которые я видел до сих пор, хотел бы, чтобы их ввод был в форме CNF. Итак, я ищу своего рода «препроцессор», который преобразует логические выражения первого порядка в CNF.

Есть предположения?


comment
Прошу прощения, если я неправильно понял ваш вопрос, но мне интересно, достаточно ли выразительности CNF для логики первого порядка. Например, брат отца любого человека (X) и его дядя (X) можно просто перевести в логику первого порядка. Но (насколько я помню о предложениях) мне кажется, что предложения не могут выразить эту общность (точнее, термин любой человеческий). Если я ошибаюсь, то мне очень жаль!   -  person B. Decoster    schedule 01.09.2011
comment
Нет, @Fezvez, я думаю, вы в целом правы, поэтому я указал дискретный домен. Для переменной с бесконечной областью определения не может быть правильно сформированной CNF, поскольку потребовалось бы бесконечное количество переменных. Для конечной области мы можем расширить любую и существующую логику первого порядка, чтобы создать (длинную) последовательность операторов в логике предикатов.   -  person Richard    schedule 01.09.2011


Ответы (1)


Возможно, вам понравится IDP3 от Katholieke Univ из Левена, Бельгия: http://dtai.cs.kuleuven.be/krr/software/idp3 IDP3 предлагает теории первого порядка (типизированная логика первого порядка с индуктивными определениями, агрегаты, ограниченная арифметика) и применяет minisat.

Другой вариант - Paradox от Koen Claessen (Chalmers U, Швеция). Paradox - это средство поиска конечных моделей для логики первого порядка, которое также начинается с преобразования в SAT, а затем решает формулу с помощью MiniSAT. Исходный код Paradox можно загрузить с http://www.cse.chalmers.se/~koen/code/

person Alexander Serebrenik    schedule 26.03.2012
comment
Александр, они выглядят почти как то, что мне нужно, но я давно ушел от этого проекта. Поэтому мне интересно ... есть ли у вас опыт их использования, который вы могли бы рассказать? (А как вы нашли Paradox?) - person Richard; 19.04.2012
comment
Дорогой Ричард, у меня докторская степень. из Лёвена, так что я имел представление о том, какие темы там были активны. Однако у меня нет опыта работы с этими инструментами. - person Alexander Serebrenik; 19.04.2012
comment
Спасибо за помощь, @Alexander. Я попытаюсь протестировать их когда-нибудь, чтобы увидеть, как они работают для меня, но пока я оставлю вопрос открытым, на случай, если он вызовет еще какие-то мысли. - person Richard; 19.04.2012