前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【运筹学】分支定界法 ( 分支定界法求整数规划示例 ) ★★

【运筹学】分支定界法 ( 分支定界法求整数规划示例 ) ★★

作者头像
韩曙亮
发布2023-03-28 20:50:54
发布2023-03-28 20:50:54
1.1K0
举报

文章目录

一、分支定界法求整数规划示例


使用 分支定界法 求如下整数规划 :

\begin{array}{lcl} \rm min W = -x_1 -5 x_2 \\\\ \rm s.t\begin{cases} \rm x_1 - x_2 \geq -2 \\\\ \rm 5x_1 + 6x_2 \leq 30 \\\\ \rm x_1 \leq 4 \\\\ \rm x_1, x_2 \geq 0 \ 并且为整数 \end{cases}\end{array}

二、求整数规划的松弛问题及最优解


求上述整数规划 (

\rm IP

) 的松弛问题 (

\rm LP

) : 去掉整数限制即可得到一个一般的线性规划 ;

\begin{array}{lcl} \rm min W = -x_1 -5 x_2 \\\\ \rm s.t\begin{cases} \rm x_1 - x_2 \geq -2 \\\\ \rm 5x_1 + 6x_2 \leq 30 \\\\ \rm x_1 \leq 4 \\\\ \rm x_1, x_2 \geq 0 \end{cases}\end{array}

可以使用单纯形法求上述线性规划的最优解 , 本次使用图示法 , 求的最优化 ;

使用图示法解得上述 松弛问题 最优解

\begin{cases} \rm x_1 = \cfrac{18}{11} \approx 1.64 \\\\ \rm x_2 = \cfrac{40}{11} \approx 3.64 \end{cases}

, 将上述最优解代入约束方程 ,

得到整数规划最小值

\rm min W = -x_1 -5 x_2 = - \cfrac{218}{11} \approx -19.8

如果上述 松弛问题 最优解 是整数 , 则该整数线性规划的最优解就是 松弛问题 的最优解 ;

上述 松弛问题

\rm LP

最优解不是整数 , 这里需要进行 分支 操作 , 分成两个 分支松弛问题

\rm LP1

\rm LP2

;

三、第一次分支操作


分支操作 : 任选一个 非整数解变量

x_i

, 在 松弛问题 中加上约束 ,

x_i \leq [x_i]

x_i \geq [x_i] + 1

, 形成 两个新的 松弛问题 , 就是两个分支 ;

选择 非整数取值的变量

x_1 = \cfrac{18}{11} \approx 1.64

, 作为分支变量 ,

x_i \leq [x_i]

对应的 分支新增约束条件是

x_1 \leq 1

;

x_i \geq [x_i] + 1

对应的 分支新增约束条件是

x_1 \geq 2

;

\rm LP1

分支松弛问题中加入

x_1 \leq 1

条件后为 :

\begin{array}{lcl} \rm min W = -x_1 -5 x_2 \\\\ \rm s.t\begin{cases} \rm x_1 - x_2 \geq -2 \\\\ \rm 5x_1 + 6x_2 \leq 30 \\\\ \rm x_1 \leq 4 \\\\ \rm x_1 \leq 1 \\\\ \rm x_1, x_2 \geq 0 \end{cases}\end{array}

求上述

\rm LP1

分支的最优解

\begin{cases} \rm x_1 = 1 \\\\ \rm x_2 = 3 \end{cases}

, 将上述最优解代入约束方程 ,

得到整数规划最小值

\rm min W = -x_1 -5 x_2 = - 16
\rm LP1

分支的界就是

-16

;

\rm LP2

分支松弛问题中加入

x_1 \geq 2

条件后为 :

\begin{array}{lcl} \rm min W = -x_1 -5 x_2 \\\\ \rm s.t\begin{cases} \rm x_1 - x_2 \geq -2 \\\\ \rm 5x_1 + 6x_2 \leq 30 \\\\ \rm x_1 \leq 4 \\\\ \rm x_1 \geq 2 \\\\ \rm x_1, x_2 \geq 0 \end{cases}\end{array}

求上述

\rm LP2

分支的最优解

\begin{cases} \rm x_1 = 2 \\\\ \rm x_2 = \cfrac{10}{3} \end{cases}

, 将上述最优解代入约束方程 ,

得到整数规划最小值

\rm min W = -x_1 -5 x_2 = - \cfrac{56}{3} \approx -18.7
\rm LP2

分支的目标值是

-18.7

;

\rm LP1

分支的最优解时整数 , 界 是

-16

,

\rm LP2

分支目标值还不是整数 , 因此需要继续分支 ;

判定某个分支 松弛问题 是否继续向下分支的依据 :

① 根据整最优解是否是整数判定 : 首先看 分支 松弛问题 最优解 是否是整数 , 如果是那就停下来 , 如果不是继续向下分支 ;

② 根据界的优劣判定 ( 定界思想 ) : 是否继续向下分支 , 还需要看 界 的值 , 通过该 界 的值 , 讨论是否继续向下分支 ;

  • 分支条件 : 如果 本分支的界 比 另外一个分支的界 要好 , 则继续分支下去 ;
  • 不分支条件 : 如果本分支的界比另外一个分支的界差 , 那么本分支就不再向下分支了 ;

四、第二次分支操作


\rm LP2

继续向下分支 ,

x_1

变量已经是整数变量了 ,

这里 选择 非整数取值的变量

x_2 = \cfrac{10}{3} \approx 3.33

, 作为分支变量 ,

x_i \leq [x_i]

对应的 分支新增约束条件是

x_2 \leq 3

;

x_i \geq [x_i] + 1

对应的 分支新增约束条件是

x_2 \geq 4

;

这里得到了

\rm LP2

分支下的两个 分支松弛问题

\rm LP21

\rm LP22

;

\rm LP21

分支松弛问题中加入

x_2 \leq 3

条件后为 :

\begin{array}{lcl} \rm min W = -x_1 -5 x_2 \\\\ \rm s.t\begin{cases} \rm x_1 - x_2 \geq -2 \\\\ \rm 5x_1 + 6x_2 \leq 30 \\\\ \rm x_1 \leq 4 \\\\ \rm x_1 \geq 2 \\\\ \rm x_2 \leq 3 \\\\ \rm x_1, x_2 \geq 0 \end{cases}\end{array}

求上述

\rm LP21

分支的最优解

\begin{cases} \rm x_1 = \cfrac{12}{5} = 2.4 \\\\ \rm x_2 = 3 \end{cases}

, 将上述最优解代入约束方程 ,

得到整数规划最小值

\rm min W = -x_1 -5 x_2 = - 17.4
\rm LP21

分支的最优解不是整数 , 而且比

\rm LP1

分支的界

-16

要好 , 可需要继续分支 ;

\rm LP22

分支松弛问题中加入

x_2 \geq 4

条件后为 :

\begin{array}{lcl} \rm min W = -x_1 -5 x_2 \\\\ \rm s.t\begin{cases} \rm x_1 - x_2 \geq -2 \\\\ \rm 5x_1 + 6x_2 \leq 30 \\\\ \rm x_1 \leq 4 \\\\ \rm x_1 \geq 2 \\\\ \rm x_2 \geq 4 \\\\ \rm x_1, x_2 \geq 0 \end{cases}\end{array}

上述

\rm LP22

分支 没有可行解 , 直接停止 ;

五、第三次分支操作


\rm LP21

继续向下分支 ,

这里 选择 非整数取值的变量

x_1 = \cfrac{12}{5} = 2.4

, 作为分支变量 ,

x_i \leq [x_i]

对应的 分支新增约束条件是

x_1 \leq 2

;

x_i \geq [x_i] + 1

对应的 分支新增约束条件是

x_1 \geq 3

;

这里得到了

\rm LP21

分支下的两个 分支松弛问题

\rm LP211

\rm LP212

;

\rm LP211

分支松弛问题中加入

x_1 \leq 2

条件后为 :

\begin{array}{lcl} \rm min W = -x_1 -5 x_2 \\\\ \rm s.t\begin{cases} \rm x_1 - x_2 \geq -2 \\\\ \rm 5x_1 + 6x_2 \leq 30 \\\\ \rm x_1 \leq 4 \\\\ \rm x_1 \geq 2 \\\\ \rm x_1 \leq 2 \\\\ \rm x_2 \leq 3 \\\\ \rm x_1, x_2 \geq 0 \end{cases}\end{array}

求上述

\rm LP211

分支的最优解

\begin{cases} \rm x_1 = 2 \\\\ \rm x_2 = 3 \end{cases}

, 将上述最优解代入约束方程 ,

得到整数规划最小值

\rm min W = -x_1 -5 x_2 = - 17
\rm LP21

分支的最优解是整数 , 而且比

\rm LP1

分支的界

-16

要好 , 是当前最好的 界 ;

因此这里将 界 更新为

-17

;

\rm LP212

分支松弛问题中加入

x_1 \geq 3

条件后为 :

\begin{array}{lcl} \rm min W = -x_1 -5 x_2 \\\\ \rm s.t\begin{cases} \rm x_1 - x_2 \geq -2 \\\\ \rm 5x_1 + 6x_2 \leq 30 \\\\ \rm x_1 \leq 4 \\\\ \rm x_1 \geq 2 \\\\ \rm x_1 \geq 3 \\\\ \rm x_2 \leq 3 \\\\ \rm x_1, x_2 \geq 0 \end{cases}\end{array}

求上述

\rm LP212

分支的最优解

\begin{cases} \rm x_1 =3 \\\\ \rm x_2 = 2.5 \end{cases}

, 将上述最优解代入约束方程 ,

得到整数规划最小值

\rm min W = -x_1 -5 x_2 = - 15.5

定界 :

\rm LP212

分支的最优解不是整数 , 其目标值

- 15.5

要比当前的界

-17

要差 , 因此该分支直接裁减掉 ;

六、整数规划最优解


该整数规划

\rm IP

的最优解

\begin{cases} \rm x_1 = 2 \\\\ \rm x_2 = 3 \end{cases}

, 将上述最优解代入约束方程 ,

得到整数规划最小值

\rm min W = -x_1 -5 x_2 = - 17

分支记录如下 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、分支定界法求整数规划示例
  • 二、求整数规划的松弛问题及最优解
  • 三、第一次分支操作
  • 四、第二次分支操作
  • 五、第三次分支操作
  • 六、整数规划最优解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档