Смешанное целочисленное квадратичное программирование SCIP с использованием

Я хочу использовать SCIP, включенный в мой исходный код (C ++), для решения MIQP, и не нашел, как это сделать, кроме этой записи в FAQ:

Нелинейные целевые функции не поддерживаются SCIP и должны моделироваться как функция ограничения. Обратите внимание, что поддержка неквадратичных нелинейных ограничений все еще присутствует в BETA-стадионе и еще не так надежна, как остальная часть SCIP. Отсутствие границ нелинейных переменных и крошечных или огромных коэффициентов может легко привести к численным проблемам, которых можно избежать путем тщательного моделирования.

Мне уже удалось построить дерево выражений для целевой функции. Я бы хотел знать:

  • Если MIQP должны быть смоделированы как MINLP, то как работает это моделирование функции ограничений? Изменяется ли верхняя граница?
  • Если есть специальные методы для MIQP, где я могу найти документацию по этому поводу?

person herculanodavi    schedule 21.09.2016    source источник


Ответы (1)


Взгляните на примеры на http://scip.zib.de/doc/examples/CallableLibrary/

Если вам просто нужны квадратичные ограничения, вы можете создавать квадратичные ограничения непосредственно в SCIP, используя обработчик ограничений для квадратичных ограничений: http://scip.zib.de/doc/html/cons__quadratic_8h.php

О методах, используемых SCIP для обработки квадратичных частей MIQP, см. http://nbn-resolving.de/urn:nbn:de:0297-zib-59377 и ссылки в нем.

person stefan    schedule 21.09.2016
comment
Для этого я должен создать новую переменную (стоимость) и сделать ограничение равенства для моего дерева выражений, а затем установить целевое значение всех других переменных равным 0,0 и 1,0 для стоимости. Спасибо - person herculanodavi; 21.09.2016