首先交代下背景
我是用已安装scip工具包的Matlab2018a在运行鲁棒优化程序
在一般模型可正常运行的基础下,运用yalmip的KKT工具包实现两阶段鲁棒优化的子程序撰写,具体参考为https://blog.csdn.net/Yudibrother/article/details/126797005?spm=1001.2014.3001.5502
在外层程序保守度控制为0的情况下(即未引入不确定性),程序直接跑飞:
_(round 105, fast) 3755 del vars, 5795 del conss, 8 add conss, 9701 chg bounds, 985 chg sides, 1419 chg coeffs, 1536 upgd conss, 24800 impls, 1720 clqs
(round 106, fast) 3763 del vars, 5801 del conss, 8 add conss, 9701 chg bounds, 985 chg sides, 1420 chg coeffs, 1536 upgd conss, 24800 impls, 1718 clqs
(1.1s) probing cycle finished: starting next cycle
(round 107, exhaustive) 3788 del vars, 5801 del conss, 8 add conss, 9774 chg bounds, 985 chg sides, 1420 chg coeffs, 1536 upgd conss, 26271 impls, 1714 clqs
(round 108, fast) 3797 del vars, 5835 del conss, 8 add conss, 9775 chg bounds, 1003 chg sides, 1455 chg coeffs, 1536 upgd conss, 26273 impls, 1708 clqs
(round 109, fast) 3798 del vars, 5836 del conss, 8 add conss, 9776 chg bounds, 1004 chg sides, 1455 chg coeffs, 1536 upgd conss, 26273 impls, 1708 clqs
(round 110, medium) 3798 del vars, 5836 del conss, 8 add conss, 9781 chg bounds, 1006 chg sides, 1456 chg coeffs, 1536 upgd conss, 26273 impls, 1708 clqs
(1.2s) probing cycle finished: starting next cycle
(1.2s) probing: 121/505 (24.0) - 621 fixings, 0 aggregations, 30018 implications, 932 bound changes
(1.2s) probing aborted: 50/50 successive totally useless probings
Deactivated symmetry handling methods, since SCIP was built without symmetry detector (SYM=none).
presolving (111 rounds: 111 fast, 36 medium, 35 exhaustive):
3798 deleted vars, 5837 deleted constraints, 8 added constraints, 9787 tightened bounds, 0 added holes, 1006 changed sides, 1456 changed coefficients
26418 implications, 1717 cliques
presolved problem has 1485 variables (505 bin, 0 int, 0 impl, 980 cont) and 1593 constraints
898 constraints of type <varbound>
695 constraints of type <linear>
Presolving Time: 1.19
time | node | left |LP iter|LP it/n| mem |mdpt |frac |vars |cons |cols |rows |cuts |confs|strbr| dualbound | primalbound | gap
1.3s| 1 | 0 | 431 | - | 30M| 0 | - |1485 |1597 |1485 |1593 | 0 | 3 | 0 | cutoff | -- | 0.00
1.3s| 1 | 0 | 431 | - | 30M| 0 | - |1485 |1597 |1485 |1593 | 0 | 3 | 0 | cutoff | -- | 0.00
SCIP Status : problem is solved [infeasible]
Solving Time (sec) : 1.25
Solving Nodes : 1
Primal Bound : +1.00000000000000e+20 (0 solutions)
Dual Bound : +1.00000000000000e+20
Gap : 0.00
不是很清楚如何解决,目前的可疑点在于引入了风光收益,但不知为何会跑飞
有关风光收益的引入,参考了如下文章
innerst = innerst+(f_w(t)==200*pw(t)+300*pw_curt(t));
innerst = innerst+(f_v(t)==200*pv(t)+300*pv_curt(t));
预处理之前的提示如下
Removed 48 duplicated or redundant inequalities
Transfered 264 inequalities to equalities
Starting derivation of dual bounds (can be turned off using option kkt.dualbounds)
*Computing 1608 primal bounds (required for dual bounds)
Parameterized RHS in equality not yet supported in lifting based bounds
*Computing 1102 dual bounds
*Warning: All dual upper bounds are infinite
求解部分如下
ops=sdpsettings('solver','scip');
[KKTsystem, details] = kkt(innerst, Cost, [u1,u2]); %kkt命令,获取kkt条件
optimize([KKTsystem, outerst], -Cost,ops);
UB = value(Cost)
请教各位是否遇到过类似问题,或有没有好一点的调试方法