单纯形
做题可以用画图分析图像来确定可行域来找最值。
写到程序里面,嘿嘿,你可以试试。
最大化
(sumlimits_{j=1}^{n} c_j*x_j)
满足约束
(sumlimits_{j=1}^{n} c_{i,j}*x_j <= b_i i=1,2……m)
(x_i >= 0 i=1,2……m)
变一下
最大化
(sumlimits_{j=1}^{n} c_j*x_j)
满足约束
$ x_{i+n} = b_i - sumlimits_{j=1}^{n} c_{i,j}*x_j i=1,2……m $
(x_i >= 0 i=1,2……n+m)
每次找 (c_j) 是正数的项给找出来。
用其他约束条件(约束最紧的)替换掉,叫做转轴。
直到每个 (c_j) 都是负数
最后的答案就是那个最大化式子的常数项。
如果初始值的 (b < 0) 那么还需要一些操作,具体参见web1
线性规划的约束画在坐标系里就是一个凸多面体,
可行解就是这个凸多面体的内点,
将目标函数(超平面)往多面体上靠,
第一个切点就是一个最优解,
因此多面体的顶点中一定会出现最优解。
每次从单纯形上的一个顶点走到一个更好的顶点直到找到最小(大)值。
大概就是这个意思吧
复杂度 (O(一两百))
结合着uoj上的注释还是挺明白的
不过uoj代码我感觉随随便便就能过98,感觉不靠谱