SCIP, как добавить объективную функцию в мой исходный код с помощью c ++, когда я использую SCIP - PullRequest
0 голосов
/ 08 января 2019

Я хочу использовать SCIP в качестве решателя MIP, но я не знаю, как добавить целевую функцию в мой исходный код. Я не нашел соответствующий код в примере кода SCIP C ++.

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Объективный коэффициент каждой переменной должен быть указан при создании, т. Е. В вызове SCIPcreateVar. Вы также можете изменить объективный коэффициент, позвонив по номеру SCIPchgVarObj. Обратите внимание, что SCIP поддерживает только линейные целевые функции.

0 голосов
/ 08 января 2019

SCIP понимает только линейные целевые функции, то есть каждая переменная имеет объективный коэффициент, который может быть передан как SCIP_Real obj в

Все примеры проектов SCIP создают переменные и задают объективные коэффициенты в той или иной форме. Обратите внимание, что SCIP по умолчанию минимизирует заданную целевую функцию. Хорошим примером того, как настроить простой MIP, является пример n-queens в каталоге примеров SCIP. Этот пример создает проблему максимизации!

Нелинейные целевые функции можно добавить в качестве ограничения, используя искусственную целевую переменную, значение которой ограничено ограничением, с объективным коэффициентом 1. Хорошие примеры настройки нелинейных задач можно просмотреть в Callable Library пример .

...