1.内点法是在可行域内部进行搜索,最后收敛到最优解边界
2.常用的内点法有仿射尺度法、对数障碍法和原始对偶法
线性规划(LP)问题除了用单纯形法和对偶理论来求解,还有一种搜索的解法——内点法(interior point method),它是在可行域内部移动。今天我们来学习三种内点法,包括:仿射尺度法(affine-scaling),对数障碍法(log-barrier)和原始对偶法(primal-dual).
同样的,为了便于介绍,我们引进一个新例子——弗兰妮的木柴:
每年弗兰妮从她的小树林里卖出3根火柴。一个潜在顾客愿意支付每半根90美元,另一位愿意支付每根150美元。我们的问题是弗兰妮应该卖给每位顾客多少木柴以最大化自己的收益?假设每位顾客可以尽可能多地购买。
对上述情景建立模型,很容易得到:
在二维坐标轴画出它的可行域区域。
0
内点法的逻辑
内点法是在可行域内部进行搜索迭代的算法,它有一个显著的优点:没有约束起作用,所有方向都是可行的。但我们知道最大化模型的最大改进方向是梯度方向,最小化模型的最大改进方向是负梯度方向。这样子内点法就不可避免的会在边界点停下。假设弗兰妮木材问题,从内点X0(1,0.5)往梯度方向改进,根据最大步长原理,下一个点会停留在可行域边界上X1:
因此,内点法的关键在于,搜索点是否一直保持在可行域的“中部”指导最优解被找到,其要遵循:内点法从一个内部可行点开始,并且在一系列内部点之间进行搜索,直到最优解处收敛到可行域的边界。
要检查每次迭代点是否为内点,我们先要将LP问题变为标准型的线性规划,已弗兰妮木柴问题为例:
这样就很容易判断一个可行解是否为内点:给定线性规划标准型的可行解,若可行解每一个分量都严格为正,则该可行解是一个内点
下面举个例子加以说明:
可以看到,对于标准型LP问题,内点必须满足:约束条件Ax=b成立;分量严格大于0。它的下一个搜索点的方向要满足:
根据投影理论,我们可以得到内点的移动方向:
通常来说,取d是正负梯度方向,因为该方向是改进最快的方向,Δx保证了可行方向。上面的理论表明移动方向尽可能靠近改进方向且保持在内点上。那么Δx是否为改进方向呢,答案是肯定的,我们可以证明: