非线性规划的算法研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论文关键词:非线性规划最优决策初值依赖matlab
论文摘要:本课题主要研究非线性规划的算法。非线性规划在军事,经济,管理,生产过程自动化,工程设计和产品优化设计等方面都有着重要的应用。但非线性规划的研究目前还不成熟,有许多问题需要进一步完善。非线性规划不像线性规划有统一的算法,对于不同的问题需要用不同的算法处理,现阶段各种算法都有一定的局限性,只有对各种算法加以改正,才能有效地解决人们在日常的生产、生活中遇到的优化问题,做出最优决策。本文主要是对现有的各种算法加以测试,指出各种算法的优缺点,寻找一种不受初值依赖,收敛更快的最优算法。首先介绍了非线性规划研究的背景和国内外研究状况,然后论述了方案的选取过程,重点描实验过程,主要是对各种非线性最优计算方法用matlab软件编程,给出一个在工程中具有代表性的最优函数实例,经过大量的测试,并给出了结果分析。最后给出了整个实验的总结和由此对未来的展望。
1 选题背景
1.1 课题背景
1.2 课题研究的目的和意义一般来说,解非线性规划问题要比求解线性规划问题困难得多,而且也不像线性规划那样有统一的数学模型及如单纯形法这一通用解法。非线性规划的各种算法大都有自己特定的适用范围。都有一定的局限性,到目前为止还没有适合于各种非线性规划问题的一般算法。这正是需要人们进一步研究的课题。非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用,为最优设计提供了有力的工具。例如:如何在现有人力、物力、财力条件下合理安排产品生产,以取得最高的利润;如何设计某种产品,在满足规格、性能要求的前提下,达到最低的成本;如何确定一个自动控制系统的某些参数,使系统的工作状态最佳;如何分配一个动力系统中各电站的负荷,在保证一定指标要求的前提下,使总耗费最小;如何安排库存储量,既能保证供应,又使储存费用最低;如何组织货源,既能满足顾客需要,又使资金周转最快等。对于静态的最优化问题,当目标函数或约束条件出现未知量的非线性函数,且不便于线性化,或勉强线性化后会招致较大误差时,就可应用非线性规划的方法去处理。
随着社会的发展,实际问题越来越复杂,例如全局最优化问题。经典算法一般都用得局部信息,如单个初始点及所在点的导数等,这使得经典算法无法避免局部极小问题。全局最优化是np-hard问题,所以原有的经典算法不再使用,必须对其进行改进,或将其与启发式算法结合。启发式算法是受大自然的启发,人们从大自然的运行规律中找到了许多解决实际问题的方法。启发式算法的计算量都比较大,所以启发式算法伴随着计算机技术的发展,取得了巨大的成就。
40年代:由于实际需要,人们已经提出了一些解决实际问题快速有效的启发式算法。
50年代:启发式算法的研究逐步繁荣起来。随后,人们将启发式算法的思想和人工智能领域中的各种有关问题的求解的收缩方法相结合,提出了许多启发式的搜索算法。其中贪婪算法和局部搜索等到人们的关注。
60年代: 随着人们对数学模型和优化算法的研究越来越重视,发现以前提出的启发式算法速度很快,但是解得质量不能保证。虽然对优化算法的研究取得了很大的进展,但是较大规模的问题仍然无能为力(计算量还是太大)。
70年代:计算复杂性理论的提出。np完全理论告诉我们,许多实际问题不可能在合理的时间范围内找到全局最优解。发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,得到的解不能保证全局最优性。由此必须引入新的搜索机制和策略,才能有效地解决这些困难问题。
优胜劣汰是大自然的普遍规律,它主要通过选择和变异来实现。选择是优化的基本思想,变异(多样化)是随机搜索或非确定搜索的基本思想。“优胜劣汰”是算法搜索的核心,根据
“优胜劣汰”策略的不同,可以获得不同的超启发式算法。超启发式算法的主要思想来自于人类经过长期对物理、生物、社会的自然现象仔细的观察和实践,以及对这些自然现象的深刻理解,逐步向大自然学习,模仿其中的自然现象的运行机制而得到的。
遗传算法:是根据生物演化,模拟演化过程中基因染色体的选择、交叉和变异得到的算法。在进化过程中,较好的个体有较大的生存几率。
模拟退火:是模拟统计物理中固体物质的结晶过程。在退火的过程中,如果搜索到好的解接受;否则,以一定的概率接受不好的解(即实现多样化或变异的思想),达到跳出局部最优解得目的。
神经网络:模拟大脑神经处理的过程,通过各个神经元的竞争和协作,实现选择和变异的过程。
禁忌搜索:模拟人的经验,通过禁忌表记忆最近搜索过程中的历史信息,禁忌某些解,以避免走回头路,达到跳出局部最优解的目的。
蚂蚁算法:模拟蚂蚁的行为,拟人拟物,向蚂蚁的协作方式学习。
虽然人们研究对启发式算法的研究将近50年,但它还有很多不足:
1)启发式算法目前缺乏统一、完整的理论体系。
2)由于np理论,各种启发式算法都不可避免的遭遇到局部最优的问题,如何判断已经找到的最优值是全局最优值。
3)各种启发式算法都有各自优点,如何完美结合。
4)启发式算法中的参数对算法的效果起着至关重要的作用,如何有效设置参数。
5)启发算法缺乏有效的迭代停止条件。
6)启发式算法收敛速度的研究等。
2 方案论证
2.1 设计原理
对实际规划问题作定量分析,必须建立数学模型。建立数学模型首先要选定适当的目标变量和决策变量,并建立起目标变量与决策变量之间的函数关系,称之为目标函数。然后将各种限制条件加以抽象,得出决策变量应满足的一些等式或不等式,称之为约束条件。一般非线性规划的数学模型可表示为:
有约束问题与无约束问题是非线性规划的两大类问题,它们在处理方法上有明显的不同。实际问题中,大多数都是有约束条件的问题。求解带有约束条件的问题比起无约束问题要困难得多,也复杂得多。在每次迭代时,不仅要使目标函数值有所下降,而且要使迭代点都落在可行域内(个别算法除外)。求解带有约束的极值问题常用方法是:将约束问题化为一个或一系列的无约束极值问题;将非线性规划化为近似的线性规划;将复杂问题变为较简单问题等等。
关于求解非线性规划的迭代法有二分法、简单迭代法、牛顿迭代法与拟牛顿迭代法、同论延拓法、单纯形法等。以上方法都有一定的局限性。目前需寻找一种初值不受限制,以较快的是速度收敛到最优解的迭代法。
2.2方案选择
求解非线性规划需要编写各种算法程序,可供选择的高级语言有很多种,如fortran和c在内的多种高级语言均可以实现这些非线性最优算法,这里选择用matlab语言实现,为什要选择matlab?在通过一定的比较和分析之后,不难发现,matlab语言应该是一个最佳方案。
matlab最突出的特点就是简洁。matlab用更直观的,符合人们思维习惯的代码,代替了c和 fortran语言的冗长代码。matlab给用户带来的是最直观,最简洁的程序开发环境。如