单纯形法
1.将问题化为标准形式
2 求出初始基可行解,列出单纯形表
3 进行最优化检验,若当前表中所有检验数γj<=0(目标max时),则表中的基可行解就是问题的最优解,停算,否则继续
4 从一个基可行解转换到另一个目标函数值更大的基可行解,列出新的单纯形表
(1)确定换入基的变量。选择γj>0对应的变量xj作为换入基的变量,若有一个以上检验数大于0时,一般选择最大的一个检验数,即γk=max{γj|γj>0}其对应的xk作为换入基的变量
(2)确定换出基的变量,根据下式计算并选择θi,选最小的θi对应的基变量作为换出变量
θi=min{bi/ak|aik>0}
(3) 用换入变量xk替换基变量中的换出变量xi,得到一个新的基,对应新的基可以找出一个新的基可行解,并相应得到一张新的单纯形表
对偶单纯形法:
适用情况:存在b(初始基解,即约束右端项)<0的情况。
1.先确定出基变量,找到bi=min{bj|bj<0},替换xi出基
2.确定进基变量,根据检验数γj/a[i][j](a[i][j]<0),找到最小的yk/a[i][k],让xk进基,当所有的yj/a[i][j
3.如果所有的基b都>=0,则满足最优解,退出
在最优解已经求出时,发生更新:
1)当出现右端项bi发生变化时
b*=(bi+△b)*(B-1)
当b*>0时,最优基不变,b*即最优解
当b*<0是,将b*带入单纯形表,用对偶单纯形法求解
2)当非基变量系数Pj发生变化时,将B(-1)*Pj,重修计算j列对应的检验数γj,如果γj<0,则没有破坏最优解
如果γj>0,则破坏最优解,xj进基,进行计算
3)当增加约束时,将最优解x*代入新约束,如果满足约束,则最优解没有破坏。
如果破坏最优解,则代入单纯形表,用对偶单纯形法算。