У меня была короткая экспозиция CP и MiniZinc, но я не эксперт.Создание уникальных решений с программированием Constraint
У меня есть модель CP, которую я не могу разместить здесь, ATM, реализованный в MiniZinc. Мне нужно создать все возможные решения проблемы. Мы ожидаем, что получим только «несколько», скажем, менее 1000, более 100.
Я попытался решить модель с флагом -a, переданным в minizinc ver. 1.6, но я замечаю, что много печатаемых решений идентичны.
Here они относятся к "проекции". В другой статье, которую я прочитал, они использовали какой-то механизм «возврата назад».
Мне все еще не ясно.
Мои вопросы, то есть:
- , что это лучший способ для создания только уникальные решения от модели CP?
- Существует ли стандартный механизм, реализованный в CP-библиотеках, таких как SCIP или Gecode? Имеет ли это общее имя?
- Является ли это эффективным с точки зрения вычислительной мощности?
- делает minizinc поддержка это? Как получить доступ к этой функции?
Indedd. В моей модели я написал MIP-подобное ограничение формы 'a [t]> = b [t] -b [t-1]', чтобы указать, что a [t] измеряет изменения между значениями b от времени t-1 до t. Я заменил его на 'a [t] = max (0, b [t] -b [t-1])' и работает так, как ожидалось. Интересно, но если нет лучшего способа выразить ограничение более эффективным способом. –