欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[运筹学] 整数编程、分支与边界总结 ( 整数编程 | 分支与边界 | 整数编程问题 | 松弛问题 | 分支与边界 | 分支与边界概念 | 分支与边界步骤 )★★★

最编程 2024-04-20 12:58:06
...

文章目录

  • 一、整数规划
    • 1、整数规划概念
    • 2、整数规划分类
  • 二、整数规划示例
  • 三、整数规划解决的核心问题
  • 四、整数规划问题解的特征
  • 五、整数规划问题 与 松弛问题 示例
  • 六、分支定界法
    • 1、整数规划概念
    • 2、分支定界法求解整数规划步骤
    • 3、分支定界理论分析
  • 七、分支过程示例
  • 八、分支定界法求整数规划示例
    • 1、分支定界法求整数规划示例
    • 2、求整数规划的松弛问题及最优解
    • 3、第一次分支操作
    • 4、第二次分支操作
    • 5、第三次分支操作
    • 6、整数规划最优解





一、整数规划





1、整数规划概念


线性规划 使用 单纯形法求解 , 线性规划中的 运输规划 使用 表上作业法 求解 ;

之前讨论的都是线性规划问题 , 非线性规划如何求解 , 没有给出具体的方法 ;


整数规划问题 : 要求 一部分 或 全部 决策变量 取值整数 的规划问题 , 称为整数规划 ;

整数规划问题的松弛问题 : 不考虑 整数变量条件 , 剩余的 目标函数约束条件 构成的线性规划问题 称为 整数规划问题的松弛问题 ;

整数线性规划 : 如果上述 整数规划问题的松弛问题 是线性规划 , 则称该整数规划为 整数线性规划 ;


整数规划与之前的线性规划多了一个约束条件 , 变量大于等于 0 0 0 , 并且都是整数 ;


整数线性规划数学模型一般形式 :

m a x Z = ∑ j = 0 n c j x j s . t { ∑ j = 1 n a i j x j = b i     (   i = 1 , 2 , ⋯   , m   ) x j ≥ 0     (   j = 1 , 2 , ⋯   , n   ) 部 分 或 全 部 为 整 数 \begin{array}{lcl} \rm maxZ = \sum_{j = 0}^{n} c_j x_j \\\\ \rm s.t\begin{cases} \rm \sum_{j = 1}^{n} a_{ij} x_j = b_i \ \ \ ( \ i = 1, 2, \cdots , m \ ) \\\\ \rm x_j \geq 0 \ \ \ ( \ j = 1, 2, \cdots , n \ ) 部分 或 全部 为整数 \end{cases}\end{array} maxZ=j=0ncjxjs.tj=1naijxj=bi   ( i=1,2,,m )xj0   ( j=1,2,,n )



2、整数规划分类


整数线性规划分为以下几类 : ① 纯整数线性规划 , ② 混合整数线性规划 , ③ 0-1 型整数线性规划 ;


① 纯整数线性规划 : 全部决策变量都 必须取值整数 的 整数线性规划 ;

② 混合整数线性规划 : 决策变量中有一部分 必须 取整数值 , 另一部分 可以不 取值整数值 的 整数线性规划 ;

③ 0-1 型整数线性规划 : 决策变量 只能取值 0 0 0 1 1 1 的整数线性规划 ;





二、整数规划示例



资金总额 B \rm B B , 有 n n n 个投资项目 , 项目 j j j 所需的投资金额 是 a j a_j aj , 预期收益是 c j c_j cj , j = 1 , 2 , ⋯   , n j = 1,2,\cdots,n j=1,2,,n ;

投资还有以下附加条件 :

① 如果投资项目 1 1 1 , 必须投资项目 2 2 2 ; 反之如果投资项目 2 2 2 , 没有限制 ;

② 项目 3 3 3 和 项目 4 4 4 必须至少选 1 1 1 个 ;

③ 项目 5 , 6 , 7 5,6,7 5,6,7 只能选择 2 2 2 个 ;



决策变量分析 : 选择合适的 决策变量 决策变量取值 ;

选取变量 , 使得变量的一组取值 , 能更好对应线性规划问题的解决方案 ;

每个项目有对应的两个选择 , 投资 / 不投资 , 分别使用 1 1 1 0 0 0 表示 ;

x j x_j xj 表示第 j j j 个项目的投资选择 , 投资 1 1 1 , 不投资 0 0 0 ; ( j = 1 , 2 , ⋯   , n j = 1,2, \cdots, n j=1,2,,n )


投资额约束条件 : 所有的投资总额不能超过 B \rm B B , ∑ j = 1 n a j x j ≤ B \sum_{j = 1}^{n} a_{j} x_j \leq B j=1najxjB ;

分析条件 ① : 投资项目 1 1 1 , 必须投资项目 2 2 2 , 此时 x 1 = x 2 = 1 x_1 = x_2 = 1 x1=x2=1 ; 投资项目 2 2 2 可以投资项目 1 1 1 , 可以不投资项目 1 1 1 , 同时投资的情况上面已经分析过 , 分析后者 x 1 = 1 , x 2 = 0 , 此 时 x 1 > x 2 x_1 = 1, x_2 = 0 , 此时 x_1 > x_2 x1=1,x2=0,x1>x2 ; 综合上述两种情况就有 x 2 ≥ x 1 x_2 \geq x_1 x2x1 ;

分析条件 ② : 项目 3 3 3 和 项目 4 4 4 必须至少选 1 1 1 个 , 两者选择一个 , 或者都选择 , 二者相加之和是 1 1 1 2 2 2 ; 有约束方程 x 3 + x 4 ≥ 1 x_3 + x_4 \geq 1 x3+x41 ;

分析条件 ③ : 项目 5 , 6 , 7 5,6,7 5,6,7 只能选择 2 2 2 个 , 则三者相加等于 2 2 2 即可 ; 约束方程 x 5 + x 6 + x 7 = 2 x_5 + x_6 + x_7 = 2 x5+x6+x7=2 ;


投资问题可以表示为以下线性规划 :

m a x Z = ∑ j = 1 n c j x j s . t { ∑ j = 1 n a j x j ≤ B x 2 ≥ x 1 x 3 + x 4 ≥ 1 x 5 + x 6 + x 7 = 2 x j = 0 , 1     (   j = 1 , 2 , ⋯   , n   )