MILP问题是时间的函数

6视图(30天)
我已经解决了我的MILP问题使用 intlinprog ,这部分是好。我现在扩展相同的问题,但现在是depedent准时(即我是解决优化问题为每个小时时间步)。
我的问题是:如何延长我的目标函数和约束是时间depedent吗?
谢谢你!
9日评论
埃米尔哈姆萨
埃米尔哈姆萨 2020年4月14日
请见以下我的回答解释。

登录置评。

接受的答案

埃米尔哈姆萨
埃米尔哈姆萨 2020年4月14日
我已经修改这个例子的文档: //www.tianjin-qmedu.com/help/optim/ug/intlinprog.html mw_cd504ff9 - 629 b - 402 f - acb0 aa7c7926290——7 解释使用解决方案的效果从之前的时间步作为下一次迭代的初始点。在下面的例子中,我使用一个for循环来解决一个MILP问题20次,每次稍微不同的目标函数。
首先,检查代码,不使用解决方案从上一次迭代的初始猜测下一个迭代。最初的猜测总是相同的。
Aeq = [22 13 26 33 21 3 14 26
39 16 22日28日26日30日23日24
18 14 29日27日30日38 26 26
41 26 28 36 38 16 18 - 26岁);
说真的= [7872
10466年
11322年
12058);
N = 8;
1磅= 0 (N);
intcon = 1: N;
10 13 17 f = [2 7 5 7 3];
x0 = [8 62 23 103 53 84 46 34);
选择= optimoptions (“intlinprog”,“显示”,“关闭”);
抽搐
i = 1:20
f(3:5) =兰迪(15][1,1,3);%在每个迭代目标函数改变
(x2, fval2) = intlinprog (f intcon [] [], Aeq,说真的,磅,[],x0,选择);
结束
toc
执行的时间
运行时间是24.518613秒。
下面的代码更新初始猜测
Aeq = [22 13 26 33 21 3 14 26
39 16 22日28日26日30日23日24
18 14 29日27日30日38 26 26
41 26 28 36 38 16 18 - 26岁);
说真的= [7872
10466年
11322年
12058);
N = 8;
1磅= 0 (N);
intcon = 1: N;
10 13 17 f = [2 7 5 7 3];
x0 = [8 62 23 103 53 84 46 34);
选择= optimoptions (“intlinprog”,“显示”,“关闭”);
抽搐
i = 1:20
f(3:5) =兰迪(15][1,1,3);
(x2, fval2) = intlinprog (f intcon [] [], Aeq,说真的,磅,[],x0,选择);
x0 = x2;
结束
toc
执行的时间
运行时间是8.489186秒。
这个例子显示了一个3倍的速度增加。实际获得不同问题的问题,但是,它比只使用一个随机初始猜测。
19日的评论
sibabalo noludwwe
sibabalo noludwwe 2020年5月1日
我运行相同的代码注释for循环,把它带回来。所以它的代码

登录置评。

答案(1)

sibabalo noludwwe
sibabalo noludwwe 2020年4月30日
LP:最优的客观价值是-4.403333。
分支界限法:
节点总num int整数相对
探索时间(s)解决方案fval差距(%)
3 1.95 1 -3.750000 9.403509 e + e + 00 00
4 2.67 - 2 -3.930000 e + e + 00 00 5.409060
5 3.13 - 2 -3.930000 e + e + 00 00 0.000000
找到最优解。
Intlinprog停止因为客观价值差距公差内的最优值,
选项。AbsoluteGapTolerance = 0(默认值)。在宽容intcon变量是整数,
选项。IntegerTolerance = 1 e-05(默认值)。
临界负荷恢复的数量= 3.930000
控制变量=
列1到11……等等
其他时间ste这是解决方案
没有找到可行的解决方案。
Intlinprog停止,因为没有点满足约束。
临界负荷恢复的数量=
控制变量=

类别

找到更多的在线性规划和整数线性规划帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!