整数规划 | 您所在的位置:网站首页 › 01整数规划模型及其解法 › 整数规划 |
1.1 定义
目录 1.1 定义 1.2 整数规划的分类 1.2 整数规划特点 1.3 求解方法分类 2 分枝定界法 分枝定界法的主要思路 分枝定界法求解整数规划问题的步骤 3 0− 1型整数规划 3.1 投资场所的选定——相互排斥的计划 3.2 相互排斥的约束条件 3.3 关于固定费用的问题(Fixed Cost Problem) 3.4 0−1 型整数规划解法之一(过滤隐枚举法) 4 蒙特卡洛法(随机取样法) 5 指派问题的计算机求解 :bintprog 函数 6 生产与销售计划问题 6.1 问题实例 6.2 建立模型 6.3 求解模型 习 题 规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中, 变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法,往往只适用于整数线性规划。目前还没有一种方法能有效地求解一切整数规划。 1.2 整数规划的分类如不加特殊说明,一般指整数线性规划。对于整数线性规划模型大致可分为两类: 变量全限制为整数时,称纯(完全)整数规划。变量部分限制为整数的,称混合整数规划。 1.2 整数规划特点(i) 原线性规划有优解,当自变量限制为整数后,其整数规划解出现下述情况: ①原线性规划优解全是整数,则整数规划优解与线性规划优解一致。 ②整数规划无可行解。③有可行解(当然就存在优解),但优解值变差。(ii) 整数规划优解不能按照实数优解简单取整而获得。 例 1 原线性规划为 1.3 求解方法分类(i)分枝定界法—可求纯或混合整数线性规划。 (ii)割平面法—可求纯或混合整数线性规划。 (iii)隐枚举法—求解“0-1”整数规划: ①过滤隐枚举法; ②分枝隐枚举法。(iv)匈牙利法—解决指派问题(“0-1”规划特殊情形)。 (v)蒙特卡洛法—求解各种类型规划。 下面将简要介绍常用的几种求解整数规划的方法。 2 分枝定界法 分枝定界法的主要思路对有约束条件的优化问题(其可行解为有限数)的所有可行解空间恰当地进行系 统搜索,这就是分枝与定界内容。通常,把全部可行解空间反复地分割为越来越小的子 集,称为分枝;并且对每个子集内的解集计算一个目标下界(对于最小值问题),这称 为定界。在每次分枝后,凡是界限超出已知可行解集目标值的那些子集不再进一步分枝,这样,许多子集可不予考虑,这称剪枝。这就是分枝定界法的主要思路。 分枝定界法可用于解纯整数或混合的整数规划问题。在本世纪六十年代初由 Land Doig 和 Dakin 等人提出的。由于这方法灵活且便于用计算机求解,所以现在它已是解整数规划的重要方法。目前已成功地应用于求解生产进度问题、旅行推销员问题、工厂选址问题、背包问题及分配问题等。 从以上解题过程可得用分枝定界法求解整数规划(最大化)问题的步骤为: 分枝定界法求解整数规划问题的步骤开始,将要求解的整数规划问题称为问题 A,将与它相应的线性规划问题称为问题B 。 3 0− 1型整数规划所代替,是和一般整数规划的约束条件形式一致的。在实际问题中,如果引入 0−1 变 量,就可以把有各种情况需要分别讨论的线性规划问题统一在一个问题中讨论了。我们 先介绍引入 0−1 变量的实际问题,再研究解法。 3.1 投资场所的选定——相互排斥的计划例 4 某公司拟在市东、西、南三区建立门市部。拟议中有 7 个位置(点) 可供选择。规定 在东区。由 三个点中至多选两个; 在西区。由 两个点中至少选一个;在南区,由 两个点中至少选一个。如选用 点,设备投资估计为 元,每年可获利润估计为 元,但投资总额不能超过B 元。问应选择哪几个点可使年利润为大? 解题时先引入 0−1 变量 令 于是问题可写成: 3.2 相互排斥的约束条件有两个相互排斥的约束条件 3.3 关于固定费用的问题(Fixed Cost Problem)在讨论线性规划时,有些问题是要求使成本为最小。那时总设固定成本为常数,并 在线性规划的模型中不必明显列出。但有些固定费用(固定成本)的问题不能用一般线 性规划来描述,但可改变为混合整数规划来解决,见下例。 例 5 某工厂为了生产某种产品,有几种不同的生产方式可供选择,如选定的生产 方式投资高(选购自动化程度高的设备),由于产量大,因而分配到每件产品的变动成 本就降低;反之,如选定的生产方式投资低,将来分配到每件产品的变动成本可能增加。 所以必须全面考虑。今设有三种方式可供选择,令 3.4 0−1 型整数规划解法之一(过滤隐枚举法)解 0−1 型整数规划容易想到的方法,和一般整数规划的情形一样,就是穷举法, 即检查变量取值为 0 或 1 的每一种组合,比较目标函数值以求得优解,这就需要检查 变量取值的 个组合。对于变量个数n较大(例如 n > 100 ),这几乎是不可能的。因 此常设计一些方法,只检查变量取值的组合的一部分,就能求到问题的最优解。这样的方法称为隐枚举法(Implicit Enumeration),分枝定界法也是一种隐枚举法。当然,对有些问题隐枚举法并不适用,所以有时穷举法还是必要的。 4 蒙特卡洛法(随机取样法)前面介绍的常用的整数规划求解方法,主要是针对线性整数规划而言,而对于非线性整数规划目前尚未有一种成熟而准确的求解方法,因为非线性规划本身的通用有效解 法尚未找到,更何况是非线性整数规划。 然而,尽管整数规划由于限制变量为整数而增加了难度;然而又由于整数解是有限个,于是为枚举法提供了方便。当然,当自变量维数很大和取值范围很宽情况下,企图 用显枚举法(即穷举法)计算出最优值是不现实的,但是应用概率理论可以证明,在一 定的计算量的情况下,完全可以得出一个满意解。 解 (i)首先编写 M 文件 mente.m 定义目标函数 f 和约束向量函数 g,程序如下: function [f,g]=mengte(x); f=x(1)^2+x(2)^2+3*x(3)^2+4*x(4)^2+2*x(5)-8*x(1)-2*x(2)-3*x(3)-... x(4)-2*x(5); g=[sum(x)-400 x(1)+2*x(2)+2*x(3)+x(4)+6*x(5)-800 2*x(1)+x(2)+6*x(3)-200 x(3)+x(4)+5*x(5)-200];(ii)编写M文件mainint.m如下求问题的解: rand('state',sum(clock)); p0=0; tic for i=1:10^6 x=99*rand(5,1); x1=floor(x);x2=ceil(x); [f,g]=mengte(x1); if sum(g |
CopyRight 2018-2019 实验室设备网 版权所有 |