2013-04-18 5 views
2

Я ищу логический решатель ограничений с возможностью решения гибких и/или динамических ограничений. Есть идеи?Проблемы с динамическим ограничением ограничений

+0

Можете ли вы определить гибкие/динамические ограничения? Приведите пример. –

+0

По динамическому я имею в виду, если ограничения в проблеме постоянно меняются со временем и гибкими, я имею в виду, если ограничения не являются жесткими - некоторые из ограничений могут быть оставлены неудовлетворенными, конечно же, затратами; некоторые из ограничений более важны. Они несут вес или ранг или есть функция стоимости, где решатель пытается сохранить минимум для решения проблемы. – Ramin

ответ

0

«Под динамическим я имею в виду, если ограничения в проблеме продолжают меняться со временем» -> это не имеет смысла в Программе ограничения. Ограничения не меняются. Только области переменных могут меняться (путем распространения или принятия ограничений).

по гибкости Я имею в виду, если ограничения не являются жесткими - некоторые из ограничений могут быть оставлены неудовлетворенными, конечно, ценой, некоторые из ограничений более важны. Они несут вес или ранг или есть функция стоимости где решатель пытается сохранить минимум для решения проблемы ». -> Ok Итак, в основном вы пытаетесь решить Max-CSP и/или взвешенные-CSP. Я предлагаю вам проверить один из соревнований CSP, которые поддерживают максимальный и/или взвешенный CSP (например, http://www.cril.univ-artois.fr/CPAI08/). Вы также можете проверить Minizinc для этого http://www.minizinc.org (но я не уверен, поддерживает ли он максимальные/взвешенные CSP).

Какие проблемы вы пытаетесь решить?

+0

спасибо за ваш ответ, я проверю их. Что касается динамических ограничений, я имел в виду, что набор ограничений продолжает меняться со временем; добавляются новые ограничения или удаляются некоторые из старых ограничений. Например, когда вы решаете проблему расследования, вы получаете новую информацию о месте преступления с течением времени – Ramin

1

Посмотрите на OptaPlanner (Java, с открытым исходным кодом, ASL):

  • Dynamic (как постоянно меняется с течением времени): Ограничения OptaPlanner являются в обслуживании, потому что они являются объектом ориентирована и изолированным друг от друга. Кроме того, если вы используете интеграцию с drools, вы можете даже определить свои ограничения в таблице решений, веб-приложении guvnor, ...
  • Гибкий (как и во всех трудностях): OptaPlanner поддерживает hard and soft constraints вне -коробка. Он поддерживает взвешивание баллов и 3+ балла (например, жесткий, средний и мягкий), если это необходимо.

Существует также несколько других библиотек удовлетворения ограничений.

+0

Большое спасибо Джеффри, вы прокомментировали это очень полезно. Я это проверю. – Ramin

+0

Дорогой Джеффри, я не мог найти функции, которые я могу использовать для решения гибких (мягких) ограничений. Буду признателен за вашу помощь. – Ramin

Смежные вопросы