内点法matlab代码线性规划的乘数交变方向法(ADMM)
该项目是由Junjie(Jason)Zhu和Nico
Chaves为Stanford
MS&E
310(线性编程)开发的。
我们实现了ADMM优化方法的几种新颖配置,并进行了一些实验。
有关背景,实验和结果的完整讨论,请参见我们的。
问题产生
要生成一个可行且有限的测试问题,请运行:
m
=
50;
n
=
300;
prob_seed
=
1;
[c,
A,
b,
opt_val]
=
generate_linprog_problem(m,
n
,
prob_seed);
这里的问题将有50个约束和300个变量。
问题种子仅是为了可重复性。
请注意,generate_linprog_problem返回LP的最佳值(由MATLAB的linprog函数计算)。
解算器功能
我们开发了4种ADMM求解器:原始,内部点原始,对偶和内部点对偶。
您可以为每个求解器指定参数以使用预处理和/或块拆分。
如果您选择使用>
2个块来指定块分割,那么我们强烈建议将random
permutation参数设置为true。
正如我们在报告中所显示的
2022-11-07 15:45:01
5.89MB
系统开源
1