【数学建模】第二章 整数规划

模型简介

定义

规划中的变量(部分或全部)限制为整数时,称为整数规划。一般整数规划指整数线性规划(在线性规划模型中,变量限制为整数)。

分类

变量全限制为整数时,称纯(完全)整数规划。

变量部分限制为整数时,称混合整数规划。

特点

  1. 原线性规划有最优解,当自变量限制为整数时,其整数规划解出现下述情况:

    • 原线性规划最优解全是整数,则整数规划最优解与线性规划最优解一致
    • 整数规划无可行解
    • 有可行解(当然就存在最优解),但最优解值变差
  2. 整数规划最优解不能按照实数最优解简单取整而获得

求解方法

纯或混合整数线性规划:分枝定界法、割平面法

求解“0-1”整数规划:隐枚举法(过滤隐枚举法、分枝隐枚举法)

指派问题(“0-1”规划特殊情形):匈牙利法

各种类型规划:蒙特卡洛法

分枝定界法

总结用分枝定界法求整数规划(最大化)问题的步骤:

将要求解的整数规划问题称为问题A,将与它相应的线性规划问题称为问题B

  1. 解问题B可能得到以下情况之一:

    • B没有可行解,这时A也没有可行解,则停止

    • B有最优解并符合A的整数条件,B的最优解即为A的最优解,则停止

    • B有最优解,但不符合问题A的整数条件,记它的目标函数值为 $\overline{z}$

  2. 用观察法找问题A的一个整数可行解,一般可取 xj = 0 , j = 1 , … , n,试探,求得其目标函数值,并记作 $\underline{z}$ 。以 z* 表示问题 A 的最优目标函数值;这时有

​ 进行迭代

  • 第一步:分枝,在 B 的最优解中任选一个不符合整数条件的变量 xj 其值为 bj ,以 [ bj ] 表示小于 bj 的最大整数。构造两个约束条件 xj ≤ [ bj ] 和 xj ≥ [ bj ] + 1

    将这两个约束条件,分别加入问题B,求两个后继规划问题 B1 和 B2 。不考虑整数条件求解这两个后继问题

    定界,以每个后继问题为一分枝标明求解的结果,与其他问题的解的结果中,找出最优目标函数值最大者作为新的上界 $\overline{z}$ ,从已符合整数条件的各分支中,找出目标函数值最大者作为新的下界 $\underline{z}$ ,若无作用 $\overline{z}$ 不变

  • 第二步:比较与剪枝,各分支的最优目标函数中若有小于 $\underline{z}$ 者,则剪掉这枝,即以后不再考虑。若大于 $\underline{z}$ 且不符合整数条件,则重复第一步骤,一直到最后得到 $ z^* = \underline{z}$ 为止,得最优整数解

0 - 1 型整数规划

引入0-1变量的实际问题

投资场所的选定(相互排斥的计划)

这是个相互排斥的计划,xi 是 0-1 变量,直接列式子就行

相互排斥的约束条件

如果有 m 个互相排斥的约束条件:

为了保证这 m 个约束条件只有一个起作用,我们引入 m 个 0-1 变量 yi (i = 1,2,..,m)和一个充分大的常数 M ,而下面这一组 m+1 个约束条件

符合上述的要求。因为由于(2)的限制,m 个 yi 中只有一个能取 0 值,设 ya = 0,代入(1),就只有 i = a 的约束条件起作用,而别的式子都是多余的。

关于固定费用的问题

某工厂为了生产某种产品,有几种不同的生产方式可供选择,如选定的生产方式投资高(选购自动化程度高的设备),由于产量大,因而分配到每件产品的变动成本就降低;反之,如选定的生产方式投资低,将来分配到每件产品的变动成本可能增加。所以必须全面考虑。今设有三种方式可供选择,令

xj 表示采用第 j 种方式时的产量

cj 表示采用第 j 种方式时每件产品的变动成本

kj 表示采用第 j 种方式时的固定成本

采用各种生产方式的总成本分别为

引入0-1变量 yj ,令

(3)可以表述为3个线性约束条件

其中$ \varepsilon $是一个充分小的正常数,$M$ 是一个充分大的正常数

目标函数

解法之一:过滤隐枚举法

解0-1型整数规划,最容易想到的方法是穷举法,即检验变量取值为0和1的每一种组合,不过这种方法太复杂了,因此我们常使用隐枚举法,分枝定界法也是其中一种

有时这种方法并不适用,这时穷举法是必要的

举个栗子

蒙特卡洛法(随机取样法)

可以用来解非线性规划问题

占坑,代码简单但是感觉有点不太理解

指派问题

指派问题在上一章中已经写过一次了,代码会在matlab总结中给出 写好代码放着……

分段线性函数

Author: iwannaeat
Link: https://iwannaeat.github.io/2020/02/06/【数学建模】第二章整数规划/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.