#python #scip
#python #scip
Вопрос:
У меня есть вопрос относительно PySCIPOpt: возможно ли вычислять выражения (pyscipopt.scip.Expr) после оптимизации? Аналогично вызову getVal() для аргументов типа pyscipopt.scip.Variable.
Ответ №1:
(пока) невозможно запросить действие общего ограничения. Это возможно только для линейных и квадратичных ограничений, см. http://scip-interfaces.github.io/PySCIPOpt/docs/html/classpyscipopt_1_1scip_1_1Model.html#a1e79bf20f168f7c55aa3fdf00491c898
Вы могли бы превратить свое выражение в уравнение и проверить значение новой переменной slack:
c(x) >= b
превращается в
c(x) - s == 0
s >= b
Комментарии:
1. Спасибо за ваш ответ. Я говорю не только об ограничениях. Например. если у меня есть переменная, которой присвоен x = scipModel.addVar (vtype=’C’, name = ‘x’, lb = 0, ub = 1) и указано y = 10 * x, тогда y присваивается тип pyscipopt.scip.Expr. Возможно ли оценить y позже?
2. Я понимаю. Для этого потребуется расширение класса Expr. Я полагаю, было бы весьма полезно. github.com/SCIP-Interfaces/PySCIPOpt/issues/280