考虑以下线性规划算法,用 Ax <= b 最小化 [c,x]。
(1) 从可行点 x_0 开始
(2) 给定一个可行点 x_k,找到最大的 alpha 使得 x_k - alpha.c 是可接受的(直截了当,看看 A.x0 与 Ac 的分量的比率)
(3) 取法线单位向量n到我们刚刚到达的超平面,指向内。在平面 [c,.] 上投影 n,给出 r = n - [n,c]/[c,c].c,然后寻找 x_k - alpha.c + beta.r 允许的最大 beta。设置 x_{k+1} = x_k - alpha.c + 1/2*beta.r
如果 x_{k+1} 在公差范围内与 x_k 足够接近,则返回它,否则转到(2)
基本思想是跟随梯度直到撞到墙壁。然后,不是像单纯形算法那样跟随单纯形的外壳,而是将解决方案踢回到单纯形内部,在一个解决方案不差的平面上,在法向量的方向上。解决方案在该方向上的起点和下一个约束之间移动。它并不比以前更糟,但现在它更“在”单纯形“内部”,它有机会向最佳状态迈进一大步。
尽管碰到多个超平面的交点的概率为 0,但如果一个在一定容差内足够接近多个超平面,则可以取法线的平均值。
这可以通过在函数级别上遵循测地线来推广到任何凸目标函数。特别是对于二次规划,将解旋转到单纯形的内部。
问题:
该算法是否有名称或属于线性规划算法的类别?
它有我忽略的明显缺陷吗?