线性规划与双层随机规划问题研究
1. 线性规划算法LPralg介绍
在解决线性规划问题时,LPralg算法是一种有效的方法。它通过惩罚方法将线性规划问题等价地转化为一个无约束的非光滑凸惩罚函数最小化问题,然后使用改进的Shor的r - 算法,并采用自适应步长调整。
在算法实现方面,r(α) - 算法在Octave中被实现为ralgb5,而ralgb5a则简化了步长调整。其中,字母“b”表示使用矩阵$B_k$而非$H_k := B_kB_k^⊤$ 。而且,“5”意味着ralgb5的一步(不包括计算函数值和次梯度的开销)需要$5n^2$次乘法,其他算术运算可忽略。
以下是Octave函数ralgb5a的代码:
function [xr,fr,itn,nfg,ist] = ralgb5a(calcfg,x,alpha,
h0,q1,epsg,epsx,maxitn,intp);
itn = 0; B = eye(length(x)); hs = h0; lsa = 0; lsm = 0;
xr = x; [fr,g0] = calcfg(xr); nfg = 1;
if (intp>0)
printf("itn %4d f%16.6e fr%16.6e nfg %4d\n",itn,fr,fr,nfg);
endif
if(norm(g0) < epsg) ist = 2; return; endif
for (itn = 1:maxitn)
dx = B * (g1 = B’ * g0)/norm(g1);
d = 1; ls = 0; ddx = 0;
wh
超级会员免费看
订阅专栏 解锁全文
2540

被折叠的 条评论
为什么被折叠?



