为什么用对偶单纯形法解线性规划要把最小值化为最大值?
单纯形法是针对求解线性规划问题的一个算法,这个名称里的’单纯形’是代数拓扑里的一个概念,可以简单将’单纯形’理解为一个凸集,标准的线性规划问题可以表示为:
min(or max) f(x)=cx
s.t. Ax=b
x>=0,b>=0
以上形式称为线性规划标准型,使用单纯型法时,如果约束条件含有不等式时需新增变量(松弛变量、人工变量)转化为标准型,min. f(x)=cx指求函数最小值(也可以是求最大值),x是一个Rn维向量代表有n个变量,线性规划问题主要是面向实际问题,x变量可以代表距离、成本、价格、数量等,线性规划问题中要求x大于等于0,c同样是一个Rn维向量,这样cx实际上就是一个线性函数f(x);s.t.代表subject to代表服从于意思,这里是指变量x需要满足的约束条件,A是一个Rm*n维矩阵,代表有m个等式约束。下面是一个约束是不等式的情形:
min -4×1-x2
s.t. -x1+2×2<=4
2×1+3×2<=12
x1-x2<=3
x1,x2>=0
求解上面这个问题只要初中数学知识即可,具体可以使用代数法或几何的方法轻松得到,考虑到实际问题当中变量x是多维的,约束条件也会比示例多的多,这就需要一个一劳永逸的算法能通过计算机来获得正解,单纯形法就是这样的一个算法。单纯形法最早由 George Dantzig于1947年提出,单纯形法对于求解线性规划问题是具有跨时代意义的,其实不仅仅是针对线性规划,非线性规划问题在求解的过程中也大量依赖单纯形法。
单纯形法与对偶单纯形法的区别?
单纯形法是求解线性规划问题的主要方法,而对偶单纯形方法是将单纯形方法应用于对偶问题的计算,对偶单纯性方法则提高了对求解线性规划问题的效率,它具有以下优点:
初始基解可以是非可行解, 当检验数都为负值时, 就可以进行基的变换, 不需加入人工变量, 从而简化计算;对于变量多于约束条件的线性规划问题,用对偶单纯形法可以减少计算量,在灵敏度分析及求解整数规划的割平面法中,有时适宜用对偶规划单纯形法。
问题标准化后,价值系数全非正;所有约束全是不等式。
对偶单纯法基本思路?
对偶单纯形法是指从对偶可行性逐步搜索出原始问题最优解的方法。
由线性规划问题的对偶理论,原始问题的检验数对应于对偶问题的一组基本可行解或最优解;原始问题的一组基本可行解或最优解对应于对偶问题的检验数;原始问题约束方程的系数矩阵的转置是对偶问题约束条件方程的系数矩阵。
所以,在求解常数项小于零的线性规划问题时,可以把原始问题的常数项视为对偶问题的检验数,原始问题的检验数视为对偶问题的常数项。
对偶单纯形法标准型怎么得到?
对偶单纯形法是指从对偶可行性逐步搜索出原始问题最优解的方法。由线性规划问题的对偶理论,原始问题的检验数对应于对偶问题的一组基本可行解或最优解;原始问题的一组基本可行解或最优解对应于对偶问题的检验数;原始问题约束方程的系数矩阵的转置是对偶问题约束条件方程的系数矩阵。所以,在求解常数项小于零的线性规划问题时,可以把原始问题的常数项视为对偶问题的检验数,原始问题的检验数视为对偶问题的常数项。
方法思路
所谓满足对偶可行性,即指其检验数满足最优性条件。只要保持检验数满足最优性条件前提下,一旦基解成为可行解时,对偶问题和原问题均可行,由强对偶性证明,二者均有最优解。
设原始问题的标准形式为max{cx|Ax=b,x≥0},则其对偶问题(Dual Problem)为 min{yb|yA≤c}。当原问题的一个基解满足最优性条件时,其检验数小于等于0,当σ=cj-zj=cj-CBB-1A≤0时,既有
或
,即知单纯形算子y=CBB-1为对偶问题的可行解。换而言之,只要保证检验数σ≤0,则对偶问题一定存在可行基B。
在初始单纯形表中,一般此可行基B都为单位矩阵I,这时候只要能够保持检验数持续小于等于0迭代下去,通过变换到一个相邻的目标函数值较小的基可行解(因为对偶问题是求目标函数极小化),并循环进行,一到XB=B-1b≥0时,原问题也为可行解。这时,对偶问题和原问题均为可行解,而且两者的可行解就是最优解,这就是对偶单纯形法求解线性规划的基本思路。
一旦最终基变量XB≥0,原问题也满足最优解条件的原因是:对偶问题的最终单纯形表中的基变量XB=B-1b和原问题的最终单纯形表中的检验数的相反数CBB-1取值相等,不难观察到原问题的检验数σ=cj-zj-CBB-1=-B-1b≤0,其检验数满足最优性条件。(注:这里的B并不是同一个矩阵,它们是各自问题的初始可行基,但CB和b在本质上是同一个向量。)
虽然,本方法借鉴了对偶理论的思路,但是它是求解原问题而非对偶问题的一个方法。而且,一般用对偶单纯形法解决的是原始问题是极小化问题,min{cx|Ax=b,x≥0},但是只要先标准化为max{cx|Ax=b,x≥0}即于上面一致。
对偶单纯形法的适用条件是?
始终保持对偶问题的解的可行性,并不断改善原问题解的可行性,直至满足原问题。
所谓满足对偶可行性,即指其检验数满足最优性条件。只要保持检验数满足最优性条件前提下,一旦基解成为可行解时,对偶问题和原问题均可行,由强对偶性证明,二者均有最优解。
对偶单纯形法解题步骤?
方法思路
所谓满足对偶可行性,即指其检验数满足最优性条件。只要保持检验数满足最优性条件前提下,一旦基解成为可行解时,对偶问题和原问题均可行,由强对偶性证明,二者均有最优解。
设原始问题的标准形式为max{cx|Ax=b,x≥0},则其对偶问题(Dual Problem)为 min{yb|yA≤c}。当原问题的一个基解满足最优性条件时,其检验数小于等于0,当σ=cj-zj=cj-CBB-1A≤0时,既有或,即知单纯形算子y=CBB-1为对偶问题的可行解。换而言之,只要保证检验数σ≤0,则对偶问题一定存在可行基B。
在初始单纯形表中,一般此可行基B都为单位矩阵I,这时候只要能够保持检验数持续小于等于0迭代下去,通过变换到一个相邻的目标函数值较小的基可行解(因为对偶问题是求目标函数极小化),并循环进行,一到XB=B-1b≥0时,原问题也为可行解。这时,对偶问题和原问题均为可行解,而且两者的可行解就是最优解,这就是对偶单纯形法求解线性规划的基本思路。
一旦最终基变量XB≥0,原问题也满足最优解条件的原因是:对偶问题的最终单纯形表中的基变量XB=B-1b和原问题的最终单纯形表中的检验数的相反数CBB-1取值相等,不难观察到原问题的检验数σ=cj-zj-CBB-1=-B-1b≤0,其检验数满足最优性条件。(注:这里的B并不是同一个矩阵,它们是各自问题的初始可行基,但CB和b在本质上是同一个向量。)
虽然,本方法借鉴了对偶理论的思路,但是它是求解原问题而非对偶问题的一个方法。而且,一般用对偶单纯形法解决的是原始问题是极小化问题,min{cx|Ax=b,x≥0},但是只要先标准化为max{cx|Ax=b,x≥0}即于上面一致。
对偶单纯形法怎么看最优解?
根据互补松弛性很易得出对偶问题的最优解,将原问题的最优解依次代入原问题的约束条件,如容果约束条件为严格不等式则说明对偶问题的该变量非零,如果为不等式则说明对偶问题中该变量为0,把对偶问题写出来,将为0的变量代入可以求出其余的变量。
对偶问题的最优解就是原问题松弛变量的检验数的相反数。可以直接读出,根据互补松弛。或者你可以根据原问题写出对偶问题,然后用单纯形法求最优解。