处理最优解

处理最优解

上一节讨论了多重(真)最优解的情况。当我们有几个的时候会发生什么呢< span > < / span > \ varepsilon美元美元< span > < / span >最优解决方案?更具体地说,请考虑

{displaymath} \ \开始开始{数组}{lrrl} \马克斯& \ varepsilon x + y & vec {c} = & (\ \ var……点}= & (0,1)\ \ & y \ leq 1 &现代{4 \ cdot} = &(0, 1)。\ \ \{数组}\ {displaymath}结束结束

这在图形上可以描述为
图像codedraw6
如果< span > < / span > \ varepsilon美元美元< span > < / span >等于0,那么我们就处于之前描述的情况。然而,请注意,目标矢量的一个小扰动可能导致这两种结果< span > < / span > x ^ 1美元美元< span > < / span >< span > < / span > x ^ 2美元美元< span > < / span >被报告为最佳。容差在这里扮演着重要的角色。如果< span > < / span > \ varepsilon美元美元< span > < / span >那么,是负面的吗< span > < / span > x ^ 1美元美元< span > < / span >是数学上最优的结果,但由于最优公差,单纯形可能得出这样的结论< span > < / span > x ^ 2美元美元< span > < / span >是最优的。更准确地说,如果< span > < / span > \ varepsilon美元美元< span > < / span >小于默认的最优容忍度< span > < / span > 10美元^ {6}< span > < / span >美元,则simplex可以自由声明任一解决方案为最佳(在允许范围内)。

上述声明是正确的,无论何时距离之间的< span > < / span > x ^ 1美元美元< span > < / span >< span > < / span > x ^ 2美元美元< span > < / span >不是太大。为了看到这一点,考虑一下当我们改变右边会发生什么< span > < / span >美元现代{4 \ cdot} < span > < / span >美元从1到< span > < / span > 10 ^ 6美元美元< span > < / span >.那么可行域就是一个很长的矩形框,里面有顶点< span > < / span >美元(0,0)< span > < / span >美元< span > < / span >美元美元(0,1)< span > < / span >< span > < / span >美元(10 ^ 6,1)< span > < / span >美元< span > < / span >美元(10 ^ 6,0)< span > < / span >美元.也许有些令人惊讶,如果< span > < / span > \ varepsilon美元美元< span > < / span >在双重公差以下,单纯可以考虑吗< span > < / span >美元(10 ^ 6,1)< span > < / span >美元最优的,即使它的客观值是< span > < /美元跨度> 1 - 10 ^ 6 \ varepsilon < span > < / span >美元,这与最终的客观价值非常相关。

注意,这两种情况都有一个共同的要素:目标函数(几乎)平行于可行域的一边。在第一种情况下,这条边相对较短,因此从这条边开始跳跃< span > < / span > x ^ 2美元美元< span > < / span >< span > < / span > x ^ 1美元美元< span > < / span >转化为客观价值的微小变化。在第二种情况下,几乎与目标函数平行的一边非常长,现在从那里跳跃< span > < / span > x ^ 2美元美元< span > < / span >< span > < / span > x ^ 1美元美元< span > < / span >会对最终目标函数产生重大影响。

如果你把这两个成分中的任何一个拿出来,也就是目标向量几乎平行于一个约束条件,或者边缘由于这种近似并行的约束非常长,那么这个问题就不会出现。由于本节开始时讨论的原因,目标函数通常接近于一个或多个约束。因此,避免这种情况的最好方法就是避免第二种情况。最简单的方法是确保变量的范围不要太大。请参阅扩展章节的指导。