参考书目:
[1] 数学规划与组合优化. 浙江大学出版社, 2001. [Online]. Available: https://books.google.com.sg/books?id=ZmSSAAAACAAJ
[2] 组合优化与博弈论. 浙江大学出版社, 2015. [Online]. Available: https://books.google.com.sg/books?id=6w44swEACAAJ
线性规划标准形转化
标准形及转化:
目标函数最小化min, 若原规划问题为最大化max, 可取负号转化为min
约束条件为等式约束 , 若原规划问题的约束条件为不等式, 可以通过引入松弛变量将不等式转化为等式;
≤ 需加上引入的松弛变量,≥ 需减去引入的松弛变量;
eg:
s.t. j=1∑naijxj≤bi
⇒ 引入松弛变量sis.t. ∑j=1naijxj+si=bisi≥0(i=1,2,3,...,m)
s.t. j=1∑ndijyj≥bi
⇒ 引入松弛变量vis.t. ∑j=1ndijyj−vi=bisi≥0(i=1,2,3,...,m)
约束条件右端常数项bi≥0 , 若bi≤0, 可取−bi
决策变量非负 , 若决策变量xi≤0 , 可定义新的决策变量xj=−xi;若决策变量无范围限制, 可引入两个非负决策变量xi+ ,xi−⇒xi=xj+−xi− ,s.t. xi+,xi−≥0
实例
eg:
一种商品在一年中四个季度的 单件价格分别为pi , i=1,2,3,4 , 一家仓库可容纳C 件商品。每件商品在仓库中每存放一个季度的存储费用为s 。现仓库准备通过低价买进、高价售出的方式获取最大利润。试建立数学规划模型, 确定仓库在 每年初 的存货量和每季度的买卖数量。若建立的数学规划为线性规划, 试将其转化为标准型。
解:$
Tips:
pi为市场价格, 该商品需要以此价格在市场进行买入和卖出, 题目中的利润最大化与“择时”有点像;
商品成本:购买成本 + 仓储成本Cost=∑i=14(xi−1−yy−1)s+xipi, 其中y0=0;
商品营利:卖出所得Return=∑i=14yipi;
约束条件:仓库容纳量C ;
隐含条件:年末剩余量与年初存量相等
⇒ 优化问题建模:
设: 每年初存货量为x0, 每季度买入数量为xi, 卖出数量为yi, 利润为R
maxR=i=1∑4yipi−(xi−1−yi−1)s−xipi
s.t. x0≤C
x0+i=1∑n(xi−yi)≤C, n=1,2,3,4
x0+i=1∑n(xi−yi)≥0, n=1,2,3,4
xi,yi≥0, i=1,2,3,4
x0≥0
y0=0
⇒ 标准形转化:引入松弛变量zi
W=−R
minW=(xi−1−yi−1)s+xipi−i=1∑4yipi
s.t. x0+z1=C
x0+i=1∑n(xi−yi)+zi+1=C, n=1,2,3,4
x0+i=1∑n(xi−yi)−zi+4=0, n=1,2,3,4
xi,yi≥0, i=1,2,3,4
x0≥0
y0=0
zi≥0, i=1,2,3,4,5,6,7,8,9
松弛变量:指在线性规划中引入的一种人工变量, 用于将不等式约束转化为等式约束
标准形转化前后的等价性证明
证明两个线性规划等价
两个线性规划解的情况是相同的, 当且仅当约束条件和目标函数是等价的。
- 两个规划问题的可行域相同, 即约束条件是等价的, 可以将一个问题的约束条件转化为另一个问题的约束条件;
eg:
式约束转化为不等式
不等式约束转化为等式约束⇒ 引入松弛变量或人工变量
限制条件转化为非负条件⇒ 将变量分解负部和正部
- 两个规划问题的目标函数相同, 可以将一个问题的目标函数转化为另一个问题的目标函数;
eg:
最大化目标函数与最小化目标函数之间的正负变换
实例
设有线性规划
min∑j=1ncjxj
s.t. ∑j=1naijxj=bii=1,2,...,m
试将其转化为含n+1 个非负变量的等价线性规划
解:
Tips:
- 该规划问题中决策变量缺少范围限制, 可将变量分解为正部与负部, 转化为非负约束, 但转化前后的变量数量需要进一步思考;
- 其次是需要说明转化前后的等价性;
⇒ 引入新的决策变量xj+ 及x− ,thenxj=xj+−x− , n 个变量xj+ 共用一个负部x− , 其中xj+,x−≥0
(若不共用一个负部, 而是分解为xj+,xj− , 变量数量会变成2n 个, 与题目要求不符)
xj=xj+−x−
minj=1∑ncj(xj+−x−)
s.t. j=1∑naij(xj+−x−)=bi, i=1,2,...,m
xj+,x−≥0
⇒ 使用连加号不方便证明等价性
原式:
minc1x1+c2x2+...+cnxn
s.t. a11x1+a12x2+...+a1nxn=b1
a21x1+a22x2+...+a2nxn=b2
...
am1x1+a1m2x2+...+amnxn=bm
转化后:
minc1(x1+−x1−)+c2(x2+−x2−)+...+cn(xn+−xn−)
s.t. a11(x1+−x1−)+a12(x2+−x2−)+...+a1n(xn+−xn−)=b1
a21(x1+−x1−)+a22(x2+−x2−)+...+a2n(xn+−xn−)=b2
...
am1(x1+−x1−)+am2(x2+−x2−)+...+amn(xn+−xn−)=bm
Then
x1+−x−=a11b1−a12x2−...−a1nxn=x1
x2+−x−=a22b2−a21x1−...−a2nxn=x2
...
xn+−x−=annbn−an2x2−...−annxn=xn
将其带入转化后的目标函数
minc1(a11b1−a12x2−...−a1nxn)+c2(a22b2−a21x1−...−a2nxn)+...+cn(annbn−an2x2−...−annxn)
目标函数的最优值同时满足原始规划问题与转化后规划问题的可行域(约束条件), 转化后的最优值同时也是原始规划问题的最优值;
变量共用一个负部
在数学中, 如果多个变量共用一个负部, 通常意味着它们共享相同的约束条件或限制条件。这通常在线性规划或最优化问题中使用, 其中变量需要满足一些限制条件以使目标函数最小或最大化。共享相同的负部可以简化问题的表示和求解过程, 使得问题更容易理解和解决。
推导及证明有误之处欢迎批评指正~