Динамические Гибкие проблемы удовлетворения ограничений

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

2 ответа

Взгляните на OptaPlanner (Java, открытый исходный код, ASL):

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

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

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

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

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

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