Решение для ограниченного программирования Solver JaCoP найдено, но хранилище несовместимо

Я использую JaCoP - средство программирования ограничений для Java - для вычисления решения сложной задачи планирования. Теперь я сталкиваюсь с проблемой, что найденное решение не является правильным.

Я налагаю следующее ограничение:

store.impose(new XplusYeqZ(start, duration, cipStart));

После окончания поиска решатель нашел решение, но, к сожалению, решение явно неверное, нарушив приведенное выше ограничение.

Я проверяю соответствие магазина consistency() прежде чем начать поиск, и он возвращается true, но после поиска возвращается false,

Я также перебрал все ограничения магазина после поиска и распечатал, если он удовлетворен, используя этот код:

store.getConstraints().forEach(constraint -> {
            System.out.println(constraint.id() + "   " + constraint.satisfied());
});

Возвращенный метод false на ограничение выше.

Мой вопрос: есть ли логическое объяснение, почему не все ограничения должны быть выполнены для правильного решения? Я что-то пропускаю?

Приложение: я использую JaCoP 4.4.0

1 ответ

Во-первых, когда вы делаете поиск, вы должны проверить результат (true/false) поиска. Если результат равен false, модель не согласована и хранилище находится в неопределенном состоянии. Это может быть дело в вашей проблеме.

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