由于过于蒟蒻,文中的一切结论均不会证明
上图来自srOSengxianOrz的博客
一些说法是自己的理解,可能有些naive,还望指教 写的很Low,大白话,省略了很多概念 可以在这里看到更高大上一些的解说
Problem
给定目标函数 和若干限制形如 要求
Solution
根据数学必修五的解题经验,可以发现最优解一定出现在可行域的边界或者顶点。 单纯形的做法,就是不停地变换整个线性规划让取值从一个顶点走到令一个顶点,直到可以判定当前解最优为止。
标准型与松弛型
所谓标准型,即把约束条件写成形如 所谓松弛型,即加入一个松弛变量,把约束调节写成 标准型转化到松弛型是很显然的,非标准型也容易通过同乘什么的转化到标准型。 可以发现,对于一个松弛型,当均的时候,令,其它变量都为,就是一组可行解(而对于存在,可以通过一些构造方法生成一组可行解)。所以接下来就在这个可行解的基础上逼近最优解。
Simplex
,可以发现,如果变换之后,仍然有某个,那就有可能通过修改的值让增大。当所有,即可以证明线性规划已经达到了最优解。。就是修改某个值之后相应变换整个线性规划的过程。
Pivot
对于选定出的使得,需要在满足条件的情况下。 那就遍历每个式子,如果,说明这个式子对产生了约束,在这个式子中,取最大值的情况就是其它变量为,使得。因此用衡量限制的松紧。找出对这个变量限制最紧的式子,把所有都分给它,式子变形为,即 。 此时在位置上的那个变量就已经不是,而是,所以需要将这个式子带到所有其它的式子里面,相当于把用它对应的新式子等效地替代掉。 举个栗子(用表示变换之后的量) 带入另一个式子 化简以下就出来了。 相应地,数组也要修改。因为也要把向里面带,带完之后所有项的系数都变了。 这样,单纯形就解完了。
对偶原理
是这样说的: 线性规划 的对偶问题是 两者具有相同的最优解
比如算法导论上给出了一个栗子 满足 的对偶问题是 满足
有了这个工具,一些情况下就可以避免乘使出现负值了。