Решение судоку с помощью правил производства

Я пытаюсь решить любую головоломку судоку, используя производственные правила, используя Drools в качестве механизма вывода. Один из примеров, упакованных с помощью Drools, - это решатель судоку, вот соответствующие правила:

http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/sudoku/sudokuSolver.drl

... Но это не работает правильно. Все время одна или несколько ячеек в сетке оказываются пустыми, и программа сообщает о головоломке как о "нерешенной".

Кто-нибудь создал работающий логический решатель для судоку? Неважно, используемый язык или движок, я хотел бы увидеть набор правил, чтобы я мог адаптировать их для Drools

2 ответа

Решение

Здесь есть решатель судоку, написанный на CLIPS: http://clipsrules.svn.sourceforge.net/viewvc/clipsrules/examples/sudoku/

Не используйте транк (мастер на github сейчас), так как это нестабильно. Используйте последнюю версию со страницы загрузки. Видимо, этот пример был разбит уже в версии 5.1, поэтому вам понадобится версия 5.0... Вот проблема, она может быть решена для версии 5.2.0.M1, которая будет выпущена в любой день, в противном случае позже.

Другие вопросы по тегам