Поведение линейной оптимизации CPSATPython

Программы на Python
Ответить
Anonymous
 Поведение линейной оптимизации CPSAT

Сообщение Anonymous »

Некоторые ресурсы указывают на то, что эти ограничения кодируются одинаково:

Код: Выделить всё

model.add_bool_or(b1, b2, b3)  # b1 or b2 or b3 must be true
model.add_at_least_one([b1, b2, b3])  # Alternative notation
model.add(b1 + b2 + b3 >= 1)  # Alternative linear notation using '+' for OR
(см.: https://d-krupke.github.io/cpsat-primer ... onal-logic)
Вопрос в том, при каких обстоятельствах мы можем это предположить? Является ли профиль производительности add_at_least_one таким же, как профиль sum(...) >= 1?
Естественно, я говорю во время решения и ожидаю, что явный add_at_least_one будет сложнее анализировать и интерпретировать решателю.
Такие вопросы можно обобщить на другие формы (например, будет ли a + b >= 1 - c рассматриваться для переупорядочения и оптимизации?). Итак, общий вопрос: каково поведение решателя CPSAT с точки зрения оптимизации линейных ограничений для извлечения ограничений CP более высокого уровня?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -behaviour
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»