对偶问题具体如何转换【草稿】

本文详细介绍了线性规划问题与对偶问题之间的转换,包括如何将原问题的目标函数和约束条件转换成对偶问题的形式。通过具体的例子展示了转换过程,并强调了在处理不等式时的符号变化规则。

每一个线性规划问题都存在一个与其对偶的问题,两者的解一致。因此当原问题不好解就会转为求其对偶问题。
这种转换可以单纯依靠符号逻辑来做,建议参考
https://tv.sohu.com/v/cGwvNjU1NTg1NC82NTQ0NDY1MS5zaHRtbA==.html
https://wenku.baidu.com/view/fc5ac232a88271fe910ef12d2af90242a895abfa.html
https://blog.youkuaiyun.com/nciaebupt/article/details/8252056
简单来说,对于其中一种形式,有原问题如下:
min ⁡ x A T X \min_{x} \quad A^TX xminATX s . t .   B X &lt; = C \qquad \qquad s.t. \ BX&lt;=C s.t. BX<=C &ThinSpace;&ThinSpace; X &gt; = 0 \qquad \qquad \,\, X&gt;=0 X>=0

其对偶问题为:
max ⁡ y C T Y \max_{y} \quad C^TY ymaxCTY s . t .   B T Y &gt; = C \qquad \qquad s.t. \ B^TY&gt;=C s.t. BTY>=C &ThinSpace;&ThinSpace; Y &gt; = 0 \qquad \qquad \,\, Y&gt;=0 Y>=0


来讲讲具体转换方法。在下面的例子中我们需要将下列问题转为其对偶问题:

m a x       W = 10 y 1 +     8 y 2 + 6 y 3 max \ \ \ \ \ W = 10y_1+\ \ \ 8y_2+6y_3 max     W=10y1+   8y2+6y3         ( 目 标 函 数 ) \qquad \qquad \ \ \ \ \ \ \ (目标函数)        ()

s . t . {     1 y 1 +     2 y 2 + 0 y 3 &gt; =     3     1 y 1 +     0 y 2 + 1 y 3 &lt; =     2 − 3 y 1 +     2 y 2 + 1 y 3 &lt; = − 4     1 y 1 + − 1 y 2 + 1 y 3     =     1 \qquad \quad s.t.\begin{cases} \ \ \ 1y_1 +\ \ \ 2y_2+0y_3&gt;=\ \ \ 3 \\ \ \ \ 1y_1+\ \ \ 0y_2+1y_3&lt;=\ \ \ 2\\ -3y_1+\ \ \ 2y_2+1y_3 &lt;=-4\\ \ \ \ 1y_1+-1y_2+1y_3 \ \ \ = \ \ \ 1 \end{cases} s.t.   1y1+   2y2+0y3>=   3   1y1+   0y2+1y3<=   23y1+   2y2+1y3<=4   1y1+1y2+1y3   =   1 ( 约 束 方 程 ) \qquad (约束方程) ()

s . t . {     y 1 ≥ 0 , y 2 ≤ 0 , y 3 无 约 束 \qquad \quad s.t.\begin{cases} \ \ \ y_1\geq 0, y_2\leq 0, y_3无约束 \\ \end{cases} s.t.{    y10

### 如何将线性规划中的原问题转化对偶问题 在处理线性规划问题时,转化成其对应的对偶问题是常见操作之一。对于标准形式的最大化线性规划问题: \[ \begin{align*} & \text{maximize} & c^T x \\ & \text{subject to} & Ax \leq b,\\ && x \geq 0, \end{align*} \] 其中 \(A\) 是系数矩阵,\(b\) 和 \(c\) 分别代表资源向量和成本向量。 对应最小化的对偶问题可表示为: \[ \begin{align*} & \text{minimize} & b^Ty \\ & \text{subject to} & A^Ty \geq c,\\ && y \geq 0. \end{align*} \] 这里的关键在于理解如何通过给定的原始最大化问题构建相应的最小化对偶问题[^2]。 具体来说,在构造对偶问题的过程中需要注意以下几点: - **目标函数的变化**:最大值转最小值; - **约束条件的方向反转**:从不大于等于变为不小于等于; - **决策变量与松弛/剩余变量互换角色**:原问题中的决策变量成为对偶问题里的松弛或剩余变量;反之亦然; - **右端项与价值系数交换位置并改变符号**:原问题的目标函数的价值系数变成对偶问题右侧常数列的一部分,而原问题右边界的数值则作为新问题左侧表达式的组成部分[^4]。 下面给出一个简单的例子来说明这一过程。假设有一个如下所示的标准型LP问题: \[ \begin{alignedat}{3} & \underset{x_1,x_2}{\operatorname{Max}} && z=3x_1+5x_2 \\[8pt] & s.t.\quad && 2x_1+x_2 \leq 4,\; (i)\\ & && x_1+3x_2 \leq 7,\;(ii)\\ & && x_1 , x_2 \geq 0 . \end{alignedat} \] 根据上述原则,可以写出其对偶问题的形式为: \[ \begin{alignedat}{3} & \underset{y_1,y_2}{\operatorname{Min}} && w=4y_1+7y_2 \\[8pt] & s.t.\quad && 2y_1+y_2 \geq 3,\; (\alpha )\\ & && y_1+3y_2 \geq 5,\;(\beta )\\ & && y_1 , y_2 \geq 0 . \end{alignedat} \] 在这个转换过程中,可以看到原问题中的每一个约束都变成了对偶问题的一个变量,并且这些新的变量所参与的新约束反映了原来各变量之间的关系。 ```python from sympy import symbols, Eq, solve # 定义符号 x1, x2 = symbols('x1 x2') y1, y2 = symbols('y1 y2') # 原始问题约束方程组 constraints_original = [ Eq(2*x1 + x2 - 4), # 不等式(i),调整为等号方便求解 Eq(x1 + 3*x2 - 7)] # 不等式(ii) # 对偶问题约束方程组 dual_constraints = [ Eq(2*y1 + y2 - 3), Eq(y1 + 3*y2 - 5)] print("Original Problem Constraints:") for con in constraints_original: print(con) print("\nDual Problem Constraints:") for d_con in dual_constraints: print(d_con) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值