基于MATLAB的非线性0-1规划的求解

  • 格式:doc
  • 大小:168.50 KB
  • 文档页数:4

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4 1

基于MATLAB 的非线性0-1规划的求解

学 生:易棉生

指导教师:宋来忠

三峡大学理学院

摘要:本文主要研究非线性0-1整数规划的解法。首先,通过对传统求解方法的研究,提出从0-1整数规划的变量只取值0和1这个特点来求解,为利用好这个特点,构造了一种数据结构——组合树,还根据目标函数和约束条件所含的变量是否被包含在解中取值为1的变量集中,将0-1整数规划的解细分为目标特殊解和约束特殊解。然后,把这个特点具体化为4条性质。根据这些性质,设计出合理的算法,并用MATLAB 实现该算法。实验表明,该算法是有效的。

Abstract: In this paper, the problem about solving nonlinear 0-1 integer programming is studied. Firstly the view that we can use the feature that the variables of 0-1 integer programming only have two values 0 and 1 is raised after discussing some traditional algorithms. To express the feature, a new tree structure, called combination tree in the paper is given and also object-satisfied solution and constrain-satisfied solution is defined, based on whether the variables with the value 1 in objective function and constrained condition belong to the variables with the value 1 in solution. Then it can be specified by 4 properties. According to these properties, a new algorithm is designed and implemented with MATLAB language. From the experiment, it is proved that the algorithm is effective.

关键词:0-1规划 非线性 组合树 解的标记 MATLAB

key words: 0-1 integer programming; nonlinear; combination tree; the mark of solution; MA TLAB

前言

本文研究的模型可是:

111min ()

..()0()0{0,1}f x Ax b A x b s t C x C x x ≤=⎧⎪≤=⎨⎪∈⎩,,,,

(1)

其中,()f x 都是非线性函数,A 、b 、1A 、1b 是矩阵,1()()C x C x 、非线性矩阵函数。

可以看到,本模型实际上代表了一般的0-1整数规划问题。显然,如果一个算法能求解非线性0-1整数规划,也必然能求解一般的0-1整数规划。要完满地解决这个问题,一个算法应具备两个基本条件:1.求解速度较快,即能在较短的时间内计算出答案;2.能够判断出所求解的0-1整数规划的解的情况,即计算出的答案要么是无解要么是全局最优解。

但是,目前对这类问题的许多研究都只局限于线性0-1整数规划,利用线性性质来设计一些算法,如隐枚举法和匈牙利法等(详见参考文献5 ~16);有些算法虽然可以求解任何0-1整数规划,但是不能肯定所求的解是全局最优解,如遗传算法和模拟退火算法等。求解非线性0-1整数规划的算法,肯定不能再依赖于具体函数的性质了,因为非线性函数的性质是无法预料的。从理论上将,穷举法不依赖于目标函数和约束条件的性质,能够获得全局最优解,但实际上却不可行。这就给我们指明了一个方向,求解非线性0-1整数规划的算法可以基于穷举法,但需要对其做大量的优化。

1 解的定义

4 2

由于每个变量的取值为0或1,因此可把解向量中取值为1的变量取出来组合成一列,记作

1211

12(.)(1)n i i i n x x x i i i n ≤<<<≤ ,这个组合能够标记一个解,称为解的标记(或者标记),简写为112(.,,,)n i i i ,解向量称为解的标记的对应解,特别地当所有变量取值为0时把这个解的标记

记作(.)。解的标记中所含有元素的个数称为解的标记的长度。显然解的标记可以确定一个解,并

且的对应解与解的标记中元素的排列顺序无关。长度为k 的解的标记所能确定解的个数为k n c 个。

而解的标记的长度可以为0,1,2,,n ,则所有组合可确定的解个数为012n n n n n

c c c +++= 。另一方面,解空间中不同解的总数为2n

,因此,解的标记与解是一一对应的。当穷尽搜索所有解的标记时也就穷尽搜索完了整个解空间。

实际上,解的标记就是1到n 的所有组合。通过上述定义我们可以看到0-1整数规划的解空间与组合的空间是对应的,可以通过下面的树形数据结构来形象地列举所有的组合:

图1 5元组合树

这棵树列举出了1到5的所有组合,也即列举了含有5个变量的0-1整数规划所有解的标记,其特点是:孩子节点都含有父亲节点的元素并且比父亲节点多一个元素,节点有孩子节点则必有右兄弟节点;同层节点所含有的元素个数相同,并且从左到右升序排列,每个节点内部的元素也都升序排列,从而使得每个节点都不同;第k 层将所有长为k 的解的标记全部列举出来,故第k 层的节点数为5k c 个。由于这种树形结构列举出了所有的组合,不妨称这样的树为组合树。一般地,称n 个变量对应的组合树称为n 元组合树。

为便于把0-1整数规划的特点与组合树的特点结合起来,先作如下定义:

在0-1整数规划中,如果一个解中取值为1的变量包含目标函数所含的变量,则称这个解为目标特殊解;如果一个解中取值为1的变量包含某一约束条件所含的变量,则称这个解为该约束条件的约束特殊解,该约束条件位对应解的特殊约束条件。既不是目标特殊解,又不是约束特殊解的解称为一般解。

2 基本性质

结合组合树,很容易发现0-1整数规划有下列性质:由组合树的特点,很容易发现0-1整数规划有下列性质:

性质1 在组合树中,如果节点的对应解是目标特殊解,则以该节点为根的子树中的每一个节点的对应解都是目标特殊解;

性质 2 在组合树中,如果节点的对应解是目标特殊解,则以该节点为根的子树中的每一个节点的对应解的目标函数值都相等。

性质 3 在组合树中,如果节点的对应解是约束条件的约束特殊解,则以该节点为根的子树中的每一个节点的对应解都是该约束条件约束的约束特殊解;

性质 4 在组合树中,如果节点的对应解是约束条件的约束特殊解,若解不满足该约束条件,则以该节点为根的子树都不满足该约束条件;反之亦然。

因为这些性质是以1为标志出现的,不妨称上述性质为0-1整数规划1的继承性。