最近看了很多利用solvebilevel直接求解双层优化问题的案例,但是套用到自己的问题上发现所求的结果,只考虑到了上层模型的最优,而下层模型没有考虑到。
我的问题是电网系统优化,下层模型中涉及到用户效益和用户用电量两个决策变量,我把求解的具体结果输出后发现,用户效益均为0。我现在的猜想是会不会利用solvebilevel求解双层优化问题只适用于下层模型只有一个决策变量的情况,我用这个猜想去验证,果然当我的下层模型不考虑用户效益,只决策用电量时,求解结果是正确的。
然后我看了solvebilevel的官方文档,受到一些启发,我在想同时将两个决策变量都放到solvebilevel是否可行,但因为我一开始学习的时候有见过类似的使用,在开始敲代码的时候也都放进去了但是出错了,本着结果不能再坏的心理,我又敲了一遍,就像下面这样,然后果然可以了!
solvebilevel(Construp,Obj_up,Constrdown,Obj_down,[P_Pb_it u_it])