第四章_整数规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学模型为 z=∑∑c Min z=∑∑cijxij ∑xij=1
i=1 n n
j=1,2,…,n j=1,2, ,n i=1,2,…,n i=1,2, ,n
∑xij=1
j=1
可见指派问题是0 可见指派问题是0-1型整 数规划的特例。不难发现, 数规划的特例。不难发现, 指派问题也是运输问题的特 其产地和销地数都为n 例,其产地和销地数都为n, 各产地的产量和各销地的销 量都为1 量都为1。
令 x3′=1-x3, x4′=1-x4, x5′=1-x5,得 Max z=2x2+4x3′+5x5′+7x4′+8x1-16 3x2- x3′- 3x5′- 2x4′+3x1≤-2 ① 3x2+2x3′- x5′+ x4′+5x1≤6 ② x2, x3′,x5′,x4′,x1 =0或1
z=8,不可行 不可行 x2 =x3′=x5′ = x4
问题R 问题R 问题 11为: 问题 11为: Max z=40x1+90x2 Max z=40x1+90x2 9x1+7x2≤56 9x1+7x2≤56 7x1+20x2 ≤ 70 7x1+20x2 ≤ 70 x1 ≤4 x1 ≤4 x2 ≤2 x2 ≥3 x1,x2≥0 x1,x2 ≥ 0
4.3
问两种货物各装运多少箱,可使获得利润最大? 问两种货物各装运多少箱,可使获得利润最大?
设甲、乙两种货物装运箱数分别为x 显然, 设甲、乙两种货物装运箱数分别为x1和x2。显然,x1、x2 都要求为整数,于是可建立整数规划模型如下: 都要求为整数,于是可建立整数规划模型如下: z= Max z=20x1+10x2 (1) 5x1+4x2≤24 (2) 2x1+5x2≤13 (3) x1,x2≥0 (4) x1,x2为整数 (5) 它和线性规划问题的区别在于条件(5) (5)。 它和线性规划问题的区别在于条件(5)。 是不是可通过把不考虑整数要求求得的最优解经过“化整” 是不是可通过把不考虑整数要求求得的最优解经过“化整” 得到满足整数要求的最优解呢? 如此例可解得x 得到满足整数要求的最优解呢 ? 如此例可解得 x1=4.8,x2=0 , 凑整为x 这样就破坏了条件( 因而不是可行解; 凑整为x1=5,x2=0,这样就破坏了条件(2),因而不是可行解; 如截断小数变为x 这当然满足所有约束条件, 如截断小数变为 x1=4,x2=0 , 这当然满足所有约束条件 , 但不 是最优解,因为对x 80,而对x 是最优解,因为对x1=4,x2=0有z=80,而对x1=4,x2=1(也是可 行解) 90。因此有必要专门研究整数规划的解法。 行解)有z=90。因此有必要专门研究整数规划的解法。
第三章
整数规划
4.1 整数规划问题的提出 4.2 分枝定界法 4.3 0-1型整数规划 04.4 指派问题
4.1
整数规划问题的提出
在求解线性规划问题时, 在求解线性规划问题时,得到的最优解可能是分数 或小数,但许多实际问题要求得到的解为整数才行。 或小数,但许多实际问题要求得到的解为整数才行。这 种要求线性规划有整数解的问题,称为整数规划 Programming)或简称IP。 或简称IP (Integer Programming)或简称IP。
例 求解问题 问题R 问题 0为: Max z=40x1+90x2 Max z=40x1+90x2 9x1+7x2 ≤ 56 9x1+7x2≤56 7x1+20x2≤70 7x1+20x2≤70 x1,x2≥0, 整数 x1,x2≥0 问题R 问题 1为: Max z=40x1+90x2 9x1+7x2≤56 7x1+20x2 ≤ 70 x1 ≤4 x1,x2≥0 问题R 问题 2为: Max z=40x1+90x2 9x1+7x2≤56 7x1+20x2 ≤ 70 x1 ≥ 5 x1,x2 ≥ 0
00-1型整数规划
0-1型整数规划是整数规划的一种特殊形式,它的变量 型整数规划是整数规划的一种特殊形式, 仅取值0 这种只能取0 的变量称为0 xj仅取值0或1。这种只能取0或1的变量称为0-1变量或二进 制变量。 制变量。 某公司拟在市东、 南三区建立门市部。拟议中有7个 例 某公司拟在市东、西、南三区建立门市部。拟议中有 个 位置A :(1) 位置 i(i=1,2, …,7)可供选择。规定:( )在东区,A1、 )可供选择。规定:( 在东区, A2、A3三个点中至多选两个;( )在西区,A4、A5两个点 三个点中至多选两个;( ;(2)在西区, 中至少选一个;( ;(3)在南区, 两个点中至少选一个。 中至少选一个;( )在南区,A6、A7两个点中至少选一个。 如选用A 设备投资估计为b 每年可获利润估计为c 如选用 i点,设备投资估计为 i元,每年可获利润估计为 i 但投资总额不超过B元 元,但投资总额不超过 元。问应选择哪几个点可使年利润 为最大? 为最大?
例1 某厂拟用火车装运甲、乙两种货物集装箱,每箱的体积、 某厂拟用火车装运甲、 乙两种货物集装箱, 每箱的体积、 重量、可获利润以及装运所受限制如下: 重量、可获利润以及装运所受限制如下: 货物集装箱 甲 乙 托运限制 体积( 体积(米3) 5 4 24 重量(百斤) 重量(百斤) 2 5 13 利润(百元) 利润(百元) 20 10
4.2
分ຫໍສະໝຸດ Baidu定界法
分枝定界法是20 世纪 60年代由 Land-Doig和 分枝定界法是 20世纪 60 年代由 Land-Doig 和 Dakin 20 世纪60 年代由Land 等人提出的。这种方法既可用于纯整数规划问题, 等人提出的。这种方法既可用于纯整数规划问题,也 可用于混合整数规划问题,而且便于用计算机求解, 可用于混合整数规划问题,而且便于用计算机求解, 所以很快成为解整数规划的最主要的方法。 所以很快成为解整数规划的最主要的方法。设有最大 化的整数规划问题R 与它相应的线性规划问题为R 化的整数规划问题 R , 与它相应的线性规划问题为 R0 , 分枝定界法的做法是: 分枝定界法的做法是:
xij=0或1
指派问题的求解,最简便易行的方法是匈牙利法。 指派问题的求解,最简便易行的方法是匈牙利法。匈牙 利法基于下面的效率矩阵: 利法基于下面的效率矩阵: c11 c12 … c1n c21 c22 … c2n (cij)= ………………. cn1 cn2 … cnn
匈牙利法基于这样一个明显的事实: 匈牙利法基于这样一个明显的事实: 如果系数矩阵的所有元素满足c ≥0,而其中有n 如果系数矩阵的所有元素满足cij≥0,而其中有n个位于不 同行不同列的一组0元素,则只要令对应于这些0 同行不同列的一组0元素,则只要令对应于这些0元素位置的 其余的x 就得到最优解。 xij=1,其余的xij=0,就得到最优解。 例如: 例如: (cij)= 0 2 3 2 4 0 1 6 2 7 5 0 1 8 0 3
4.4
指派问题
任务 人员
有一份说明书,需译成英、 例 有一份说明书,需译成英、 俄四种文字。现有甲、 日、德、俄四种文字。现有甲、 丁四个人, 乙、丙、丁四个人,他们将说明 书译成不同文字所需的时间如下 表。问应指派哪个人完成哪项工 使所需的总时间最少? 作,使所需的总时间最少?
E 甲 乙 丙 丁 2 10 9 7
求解0-1型整数规划,可使用分枝定界法。 求解 型整数规划,可使用分枝定界法。下面用实例 型整数规划 说明: 说明: 求解0-1型整数规划问题 例 求解 型整数规划问题 Max z=8x1+2x2-4x3-7x4-5x5 3x1+3x2+x3+2x4+3x5≤4 5x1+3x2-2x3-x4+ x5≤4 xj=0或1,j=1,2,…,5 变成标准型,要求如下: 目标函数求极大化。 变成标准型,要求如下:⑴目标函数求极大化。 对于目标 函数为Min z的极小化问题 , 令 z′=-z, 使其变为目标函数为 的极小化问题, 函数为 的极小化问题 , Max z′的极大化问题。⑵目标函数中所有变量的系数都为正数。 的极大化问题。 目标函数中所有变量的系数都为正数。 的极大化问题 如果目标函数中变量x 的系数为负数, 如果目标函数中变量 j的系数为负数,令xj′=1-xj,把模型中的 xj用xj′代换。⑶变量的排列顺序按变量在目标函数中的系数值 代换。 代换 从小到大排列。 从小到大排列。
′=x 1=1,
x3′=0 x5′=0 x4′=0
z=4, 可行 z=1 z=-2
z=10,不可行 不可行
x2=0 z=6,不可行 不可行 x3′=0 x5′=0 z=5,不可行 不可行 x4′=0 z=3,不可行 不可行 x1=0 z=2, 可行
最 优 解 为 x2=0 , x3′=0 , x5′=1 , x4′=1 , x1=1 。 于是 , 原问题的 于是, 最 优 解 为 z*=4 , x1*=1 , x2*=0 , x3*= 1-0=1 , x4*=1-1=0 , x5*=11=0
(1)用观察法求R的一个可行解,其目标值便是R (1)用观察法求R的一个可行解,其目标值便是R的最优目标 用观察法求 的一个下界z 值z*的一个下界z。 (2)求解 求解R 的最优解x 和最优值z 符合R (2)求解R0,得R0的最优解x(0)和最优值z0。若x(0)符合R的整 数条件,则显然x 也是R的最优解,结束;否则, 数条件,则显然x(0)也是R的最优解,结束;否则,以R0作为一个 分枝标明求解的结果, 是问题R的最优目标值z 的一个上界z 分枝标明求解的结果,z0是问题R的最优目标值z*的一个上界z。 (3)分枝 取目标函数值最大的一个枝Rs 分枝。 Rs, Rs的解中任选 (3)分枝。取目标函数值最大的一个枝Rs,在Rs的解中任选 一不符合整数条件的变量x 其值为b 一不符合整数条件的变量xj,其值为bj,构造两个约束条件 ]+1。将两个约束条件分别加入问题Rs Rs, xj≤[bj]和xj≥[bj]+1。将两个约束条件分别加入问题Rs,得两 个后继规划问题Rs1 Rs2。 Rs1和 个后继规划问题Rs1和Rs2。不考虑整数条件求解这两个后继问 题,以每个后继问题为一分枝标明求解的结果。 以每个后继问题为一分枝标明求解的结果。 (4)定界 定界。 (4)定界。在各分枝中找出目标函数值最大者作为新的上界 从已符合整数要求的各分枝中, z;从已符合整数要求的各分枝中,找出目标函数值最大者作为 新的下界z 新的下界z。 (5)比较与剪枝 各分枝的最优目标函数值中如果有小于z 比较与剪枝。 (5)比较与剪枝。各分枝的最优目标函数值中如果有小于z 则剪掉这一枝(用打×表示),即以后不再考虑了。 ),即以后不再考虑了 者,则剪掉这一枝(用打×表示),即以后不再考虑了。若已没 有大于z的分枝 则已得到R的最优解,结束;否则, (3)。 的分枝, 有大于 的分枝,则已得到R的最优解,结束;否则,转(3)。
R0: z0=356 x1=4.81 x2=1.82 x1 ≤4 R1:z1=349 x1=4.00 x2=2.10 x2 ≤2 R11: z11=340 x1=4.00 x2=2.00 x2≥3 R12: z12=327 x1=1.42 x2=3.00 x1≥5 R2:z2=341 x1=5.00 x2=1.57 x1 ≤1 R21: z21=308 x1=5.44 x2=1.00 x1≥2 R22: 无可 行解
J 15 4 14 8
G 13 14 16 11
R 4 15 13 9
一般地, 项任务、 个完成人, 人完成第j 一般地 , 有 n 项任务 、 n 个完成人 , 第 i 人完成第 j 项任务 的代价为cij i,j= cij( ,n) 的代价为 cij ( i,j = 1,2,…,n ) 。 为了求得总代价最小的指 ,n 派方案,引入0 型变量xij xij, 派方案,引入0-1型变量xij,并令 指派第i人去完成第j 1 指派第i人去完成第j项任务 xij= 不指派第i人去完成第j 0 不指派第i人去完成第j项任务
引入0-1变量 引入 变量xi(i=1,2,…,7), Max z= c1x1+c2x2+…+c7x7 变量 ) 令 b1x1+b2x2+…+b7x7≤B xi = 1, 当Ai点被选用 点被选用, x1+x2+x3≤2 x4+x5≥1 x6+x7≥1 于是建立下列模型: 于是建立下列模型 xi=0或1, i=1,2,…,7 或 0, 当Ai点没被选用。 点没被选用。 (i=1,2,…,7)