基于MATLAB的非线性规划的求解

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

基于M A T L A B的非线性

规划的求解

The Standardization Office was revised on the afternoon of December 13, 2020

基于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; MATLAB

前言

本文研究的模型可是:

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 解的定义

由于每个变量的取值为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整数规划的特点与组合树的特点结合起来,先作如下定义:

相关文档
最新文档