《现代设计方法》课件1第6章教学课件_第1页
《现代设计方法》课件1第6章教学课件_第2页
《现代设计方法》课件1第6章教学课件_第3页
《现代设计方法》课件1第6章教学课件_第4页
《现代设计方法》课件1第6章教学课件_第5页
已阅读5页,还剩188页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.1概述6.2一维搜索6.3无约束优化算法6.4约束优化算法6.5其它优化问题6.6工程实例思考题第6章优化设计

6.1概述

6.1.1优化设计基本概念

人们做任何事情都希望用最少的付出得到最佳的效果,这就是最优化问题。工程设计中,设计者更是力求寻求一种合理的设计参数,以使得由这组设计参数确定的设计方案既满足各种设计要求,又使技术经济指标达到最佳,即实现最优化设计。但是常规的工程设计,由于设计手段和设计方法的限制,设计者不可能在一次设计中得到多个方案,也不可能进行多方案的分析比较,更不可能得到最佳的设计方案。因此,人们只能在漫长的设计生产过程中,通过不断地摸索和改进,逐步使设计方案趋于完善。现代电子计算机的发展与普及,以计算机为基础的数值计算方法的成熟和应用,为工程问题的优化设计提供了先进的手段和方法,这就是最优化设计方法。

所谓最优化设计,就是借助最优化设计数值计算方法和计算机技术,求取工程问题的最优设计方案。进行最优化设计时,首先必须将实际问题加以数学描述,形成一组由数学表达式组成的数学模型,然后选择一种最优化数值计算方法和计算机程序,在计算机上运行求解,得到一组由数学表达式组成的设计参数。这组设计参数就是设计的最优解。6.1.2优化设计的发展及应用

优化设计是20世纪60年代初发展起来的一门新学科,它将最优化原理和计算技术应用于设计领域,为工程设计提供一种重要的科学设计方法。

在第二次世界大战期间,由于军事上的需要产生了运筹学,提供了许多用古典微分法和变分法所不能解决的最优化方法。

20世纪50年代发展起来的数学规划理论形成了应用数学的一个分支,为优化设计奠定了理论基础。20世纪60年代电子计算机和计算机技术的发展为优化设计提供了强有力的手段,使工程技术人员能够从大量繁琐的计算工作中解放出来,把主要精力转到优化方案选择的方向上来。最优化技术成功地运用于机械设计是在20世纪60年代后期开始的,虽然历史较短,但进展迅速,在机构设计、机械零部件设计、专用机械设计和工艺设计方面都获得应用并取得一定成果。机构运动参数的优化设计是机械优化设计中发展较早的领域,不仅研究了连杆机构、凸轮机构等再现函数和轨迹的优化设计问题,而且还提出一些标准化程序。机构动力学优化设计方面也有很大进展,如惯性力的最优平衡、主动件力矩的最小波动等的优化设计。机械零部件的优化设计最近十几年也有很大发展,主要研究各种减速器的优化设计、液压轴承和滚动轴承的优化设计,以及轴、弹簧、制动器等的结构参数优化。除

此以外,在机床、锻压设备、压延设备、起重运输设备、汽车等的技术参数、基本工作机构和主体结构方面也进行了优化设计工作。近年来,机械优化设计的应用愈来愈广,还面临着许多问题需要解决。例如,机械产品设计中零部件的通用化、系列化和标准化,整机优化设计模型及方法的研究,机械优化设计中离散变量优化方法的研究,更为有效的优化设计方法的发掘等一系列问题,都需要做较大的努力才能适应机械工业发展的需要。

近年来发展起来的计算机辅助设计(CAD)在引入优化设计方法后,使得在设计过程中既能够不断选择设计参数并评选出最优设计方案,又可以加快设计速度,缩短设计周期。在科学技术发展要求机械产品更新周期日益缩短的今天,把优化设计方法与计算机辅助设计结合起来,使设计过程完全自动化,已成为设计方法的一个重要发展趋势。6.1.3最优化设计技术的现状与未来

人类从自身的进化到从事各种活动,无不贯穿着优化的思想。然而,由于种种不足,如认识不足、方法不足、条件不足等,使得人类在设计领域上达不到真正的“最优解”,而只能尽可能利用已有条件,采用种种措施,以使设计结果向“最优解”逼近。以数学规划法为基础的最优化设计方法在工程设计领域中的应用,虽取得了一定的经济效益和社会效益,但其应用远比预期的小,其原因主要有:

(1)最优化设计方法只是在参数优化设计和结构优化设计等方面比较有效,而在方案设计与选择、决策等方面则无能为力。众所周知,参数优化设计、结构优化设计所产生的效益是有限的,而人们往往看中方案优化、决策优化。

(2)建模难度大,技术性高,数学模型描述能力低,数学模型误差大。

(3)方法程序的求解能力有限,难以处理复杂问题和性态不好的问题,难以求得全局最优解。为了提高最优化方法的综合求解能力,近年来人们在以下方面从事了众多有益的探索:

(1)人工智能、专家系统技术的引入,增加了最优化方法中处理方案设计、决策等优化问题的能力,在优化方法的参数选择中借助专家系统,减少了参数选择的盲目性,提高了程序求解能力。

(2)针对难以处理性态不好的问题、难以求得全局最优解等弱点,发展了一批新的方法,如模拟退火法、遗传算法、人工神经网络法、模糊算法、小波变换法、分形几何法等。

(3)在数学模型描述能力上,由仅能处理连续变量、离散变量,发展到能处理随机变量、模糊变量、非数值变量等,在建模方面开展了柔性建模和智能建模的研究。

(4)在研究对象上,从单一部分的、单一性能或结构的、分离的优化设计,进入到整体优化、分步优化、分部和分级优化、并行优化等,提出了覆盖设计全过程的优化设计思想。方法研究的重点,从着重研究单目标优化问题进入到着重研究多目标问题。

(5)在最优化方法程序设计研究中,一方面努力提高方法程序的求解能力和各个方法程序之间的互换性,研制方法程序包、程序库等;另一方面大力改善优化设计求解环境,开展了优化设计集成环境的研究,集成环境为设计者提供辅助建模工具、优化设计前后处理模块、可视化模块、接口模块等。优化设计将从传统的优化设计向广义优化设计过渡。广义优化设计在基本理论上应是常规优化设计理论、计算机科学、控制理论、人工智能、信息科学等多学科的综合产物;在求解问题的类型上有数值型和非数值型问题,设计变量也可以有多种类型;在方法上应是多种算法互补共存;在实现上应将多个方法、多个工具、多个软件系统无缝集成在一起形成统一的、使用方便的、功能齐全的最优化设计集成环境。6.1.4传统设计与优化设计

一项机械产品的设计,一般需要经过调查分析、方案拟定、技术设计、零件工作图绘制等环节。传统设计方法通常在调查分折的基础上,参照同类产品通过估算、经验类比或试验来确定初始设计方案。然后,根据初始设计方案的设计参数进行强度、刚度、稳定性等性能分析计算,检查各性能是否满足设计指标要求。如果不完全满足性能指标的要求,设计人员将凭借经验或直观判断对参数进行修改。这样反复进行分析计算—性能检验—参数修改,直到性能完全满足设计指标的要求为止。整个传统设计过程就是人工试凑和定性分析比较的过程,主要的工作是性能的重复分析,至于每次参数的修改,仅仅凭借经验或直观判断,并不是根据某种理论精确计算出来的。实践证明,按照传统设计方法作出的设计方案,大部分都有改进提高的余地,不是最佳设计方案。

可见,传统设计方法只是被动地重复分析产品的性能,而不是主动地设计产品的参数。从这个意义上讲它没有真正体现“设计”的含义。其实“设计”一词本身就包含优化的概念。作为一项设计不仅要求方案可行、合理,而且应该是某些指标达到最优的理想方案。现代化的设计工作借助电子计算机,应用一些精确度较高的力学数值分析方法(如有限元法等)进行分析计算,并从大量的可行设计方案中寻找出一种最优的设计方案,从而实现用理论设计代替经验设计,用精确计算代替近似计算,用优化设计代替一般安全寿命的可行性设计。优化方法在机械设计中的应用,既可以使方案在规定的设计要求下达到某些优化的结果,又不必耗费过多的计算工作量。因此,产品结构、生产工艺等的优化已经成为市场竞争的一种手段。优化方法不仅用于产品结构的设计、工艺方案的选择,也用于运输路线的确定、商品流通量的调配、产品配方的配比等。目前,优化方法在机械、冶金、石油、化工、电机、建筑、宇航、造船、轻工等部门都已得到广泛的应用。优化设计是以数学规划理论为基础,以计算机为工具优化设计参数的一种现代设计方法。和传统设计相比,优化设计有以下特点:

(1)设计的思想是最优设计,需要建立一个正确反映设计问题的数学模型。

(2)设计方法是优化方法,一个方案参数的调整是计算机沿着使方案更好的方向自动进行的,多次搜索从而选出最优方案,因此要根据数学模型的特点,选择适当的优化方法。

(3)设计的手段是计算机,由于计算机运算速度快,分析和计算一个方案只需几秒以至千分之一秒,因此可以从大量方案中选出“最优方案”,效果好,时间短,可以大大提高设计质量,缩短设计周期。

优化设计又称为规格化设计,其在设计方法上有很大变更,使许多较为复杂的问题得到最完善的解决,而且提高了设计效率,从而提高了产品的设计质量。6.1.5优化设计的数学模型

优化设计借助最优化数值计算方法,在计算机上寻求工程最优方案的数值解法。首先要将实际工程问题转化成数学描述,形成一组由数学表达式组成的数学模型,然后才能进一步选择合适的最优化数值计算方法求解。

例制造一体积为100m3,长度不小于5m,不带上盖的箱盒,试确定箱盒的长x1、宽x2和高x3,使箱盒的用料最省。

解箱盒的用料与表面积有关,用料最省,也就是箱盒的表面积S最小。箱盒表面积表达式:

S=x1x2+2(x2x3+x1x3)

由题意,箱盒的体积及长、宽、高的限制为:

x1x2x3=100,x1≥5,x2≥0,x3≥0箱盒表面积S的表达式称为目标函数,参数x1、x2、x3称为设计变量。x1x2x3=100为等式约束条件;x1≥5,x2≥0,x3≥0为不等式约束条件。

箱盒的优化设计问题可以表述为:求一组设计变量x1、x2和x3,在满足约束条件的前提下,使目标函数——箱盒的表面积S为最小。

从以上实例可以看出,优化设计的数学模型由设计变量、目标函数和约束条件三部分组成,可以表示成以下统一形式:求变量

x1,x2,…,xn

使目标函数

f(x1,x2,…,xn)→min

且满足约束条件

gu(x1,x2,…,xn)≤0(u=1,2,…,m)(6-1-1)

hv(x1,x2,…,xn)=0(v=1,2,…,p)

其中:gu(x1,x2,…,xn)≤0称为不等式约束条件;hv(x1,x2,…,xn)=0称为等式约束条件。

1.设计变量

设计变量是指表示一个方案时独立可变的基本参数,如构件长度、截面尺寸、重量力、力矩、固有频率等,设计变量的全体构成一组变量,用一列向量X=[x1,x2,…,xn]T表示,称为设计变量向量,向量中各分量的次序完全是任意的。用X∈Rn表示向量X属于n维实欧氏空间,是所有设计方案的集合,该集合称为设计空间。

2.目标函数

目标函数是设计变量的可计算的函数,记作f(x),代入一个方案的设计参数后,可用于评价方案的优劣,有时又称其为评价函数。

3.约束条件

设计空间中的有些方案是工程上所不能接受的,如果一个设计满足所有对它提出的约束条件,就称为可行(可接受)设计,否则称为不可行(或不可接受)设计。一个可行设计必须满足某些设计限制条件,这些限制条件称为约束条件。针对性能要求而提出的限定条件称为性能约束,只是对设计变量的取值范围加以限制的约束称为侧面约束。约束又可按照数学表达形式分为等式约束和不等式约束两种类型。如果用min、max表示极小化和极大化,s.t.(subjectedto)表示“满足于”,u、v分别表示不等式约束和等式约束的个数。数学模型写成以下向量形式:

求X使由于工程设计的解一般都是实数解,故可省略X∈Rn,将优化设计的数学模型简记为

当设计问题要求极大化目标函数f(X)时,只要将目标函数改写为-f(X)或1/f(X)即可,因为min[-f(X)]和maxf(X)具有相同的解。同样,当不等式约束条件中的不等号为“≥0”时,只要将不等式两端同乘以-1,即可得到“≤0”的一般形式。6.1.6优化设计的分类

以上是最一般的数学描述,而具体的优化问题不一定包含每个方面,也往往具有不同的特征。从不同的角度,优化问题一般有以下分类方法:

(1)按有无约束分类,可分为无约束优化问题和有约束优化问题。

(2)按设计变量的性质,可分为连续变量、离散变量和带参变量优化问题。

(3)按问题的物理结构,可分为线性规划、非线性规划、二次规划、几何规划。所谓线性规划问题是指目标函数f(X)、约束函数gu(X)、hv(X)均为线性函数的优化问题;非线性规划是指目标函数f(X)、约束函数gu(X)、hv(X)中有一个或多个是非线性函数;二次规划是指目标函数是二次函数,约束函数是线性函数;几何规划是指f(X)、gu(X)、hv(X)可表示为正项式或正负项式的非线性函数。

(4)按变量的确定性,可分为确定性规划和随机规划。

(5)按目标函数的个数,可分为单目标优化和多目标优化。

(6)按设计变量和约束条件的个数,当二者个数都不超过10时为小型优化问题;当二者个数都在10~50之间时,为中型优化问题;当二者个数都超过50时,为大型优化问题。当然,这种分类不是绝对的,随着计算机技术的发展,计算速度的提高,原来的中性或大型问题可能变为小型优化问题。

严格地说,不同类型的数学模型都有其特定的求解方法——优化设计方法,因此,这里讨论数学模型的类型,目的在于指导后面对优化方法的应用。6.1.7常用优化方法及其软件应用

MATLAB是“矩阵实验室(Matrixlaboratory)”的缩写,是由美国Mathworks公司推出的一种以矩阵运算为基础,集通用数学运算、图形交互、程序设计和系统建模为一体的著名软件,它具有功能强、使用简单、容易扩展等优点。与其它计算机语言相比,MATLAB表达方式与人们在数学、工程计算中常用的书写格式十分相似,它以解释方式工作,输入程序后就可得结果,人机交互性好,易于调试,用户学习和使用都极为方便。

MATLAB的基本功能有:矩阵运算和各种变换,代数和超越方程的求解,数据处理和傅里叶变换,数值积分等。除此之外,为了支持不同专业领域的用户,MATLAB还提供了大量的面向专业领域的工具箱(toolbox),包含一系列专用的MATLAB函数库,以解决特定领域的问题。工具箱主要有:通信工具箱(Communicationtoolbox)、控制系统工具箱(ControlSystemtoolbox)、信号处理工具箱(Signalprocessingtoolbox)、图像处理工具箱(Imaginetoolbox)、系统辨识工具箱(SystemIdentificationtoolbox)、模糊逻辑工具箱(FuzzyLogictoolbox)、遗传算法最优化工具箱(GeneticAlgorithmoptimizationtoolbox)、优化工具箱(Optimizationtoolbox)、数理统计工具箱

(Statisticstoolbox)、小波分析工具箱(Wavelettoo1box)等。这些工具箱通常表现为M文件和高级MATLAB语言的集合形式,允许用户修改函数的源代码或增加新的函数来适应自己的应用,允许用户方便地综合使用不同工具箱中的技术来设计针对某个问题的用户解决方案。使用MATLAB语言和MATLAB工具箱,用户可以专注于算法研究,编程只需要几行就可以完成,而且可以很快画出图形,从而迅速地进行多种算法的比较,从中找出最好的方案。

优化工具箱(Optimizationtoolbox)涉及函数的最小化和最大化问题,也就是函数的极值问题。下面简单地对优化工具箱中的基本函数作一介绍。

优化工具箱中求非线性函数极小值的函数见表6-1所示。问题的原形算法是Nelder-Mead单纯形搜索方法和BFGS拟牛顿(qusi-Newton)方法。限定条件下的最小、最大最小、目标法和半无穷优化等问题,所用的原理算法是二次规划法,非线性二次平方问题的原理算法是Gausss-Newton法和Levenberg-Marquardt法。非线性最小和非线性二次平方问题,可进行线性搜索策略的选择,线性搜索策略使用的是二次或三次内插和外插方法。

优化工具箱仅能解决几类求矩阵的极小值问题,需要将相应的系数矩阵和向量传递到函数中。MATLAB系统能解决的矩阵问题如表6-2所示。6.2一维搜索

6.2.1基本概念

求一元函数f(x)的极小点和极小值问题就是一维最优化问题。求解一维优化问题的方法称为一维优化方法。一维优化方法是优化问题中最简单、最基本的方法。一维优化方法可以解决单变量目标函数的最优化问题,而且在求多变量目标函数的最优值时,大多数方法都要反复多次地进行一维搜索,用到一维优化方法。设计变量为一维的,并且没有约束条件,这种问题即为一维优化问题。其数学模型为

minf(x)

实践中,这种问题是很少的,但在应用数值迭代算法中,对多维优化问题当采用一定的方法确定了始点和搜索方向后,沿该方向的搜索步长的求解就是一维优化问题。所以,一维优化是实际中多维优化问题求解的基础。一维优化方法的基本思想是在一个“高—低—高”的单谷区间上(在该区间上,区间端点的目标函数值高,中间点目标函数值低),通过区间缩短逼近最优点的过程。

一维优化一般分为两个步骤:

(1)确定初始搜索区间[a,b],该区间应是包括一维函数极小点在内的单谷区间。

(2)在单谷区间内寻找极小点。

1.确定单谷区间的进退法

对于所有的一维优化方法,首先遇到共同的问题是:如何确定一个初始搜索区间,使该区间内含有函数的极小点x*,且在该区间函数有惟一的极小点。这个搜索区间就是单谷区间。

在函数的任一单谷区间上若存在一个极小点,而且在极小点的左侧,函数呈下降态势,在极小点的右侧,函数呈上升态势。若已知方向d(k)上的三点x(1)<x(2)<x(3)及其函数值,便可通过比较三个函数值的大小估计出极小点的位置。

(1)若出现f(x(1))>f(x(2))>f(x(3)),则极小点位于右端点的右侧;

(2)若出现f(x(1))<f(x(2))<f(x(3)),则极小点位于左端点的左侧;

(3)若f(x(1))>f(x(2))<f(x(3)),则极小点位于x(1)和x(3)之间,[x(1),x(3)]就是一个包含极小点的区间。

可见,在某一方向上按一定方式逐次产生一些探测点,并比较这些探测点上函数值的大小,就可以找到函数值呈“高-低-高”变化的三个相邻点,其中两端点所确定的闭区间必定包含着极小点,这样的区间称初始区间,记作[a,b]。这种寻找初始区间的方法,称为进退法。其具体试探步骤为:

(1)给定初始点、初始步长h0,令x1=0,h=h0。

(2)计算x2=x1+h,令f1=f(x1),f2=f(x2);比较f1、f2,若f2>f1,则说明极小点在x1的左侧,改变试探方向,即让步长变号h=-h,同时使x1和x2互换位置;否则,函数值下降,维持原方向。

(3)计算x3=x2+h,f3=f(x3)。

(4)判断f3<f2,若是,则步长加倍,h=2h,以x2、x3作为新的x1、x2,转(3)继续;否则,说明已形成单谷搜索区间,输出x1、x2、x3。若h<0,则单谷搜索区间为[x3,x1];若h>0,则单谷搜索区间为[x1,x3],x2为中间点。

该进退法的程序框图如图6-1所示。图6-1进退法的程序框图

2.区间消去法原理

搜索区间确定以后,再采用区间消去原理逐步缩短区间。当区间的长度达到精度要求时,就找到极小点的近似解。

假定在搜索区间[a,b]内任取两点a1、b1,并计算函数值f(a1)、f(b1),于是将有下列两种情形:

(1)若f(a1)<f(b1),由于函数为单谷,所以极小点必定在区间[a,b1]内,从而舍去[b1,b]段,取[a,b1]为缩短后的搜索区间。

(2)若f(a1)≥f(b1),由于函数为单谷,所以极小点必定在区间[a1,b]内,从而舍去[a,a1]段,取[a1,b]为缩短后的搜索区间。

3.一维搜索方法的分类

由区间消去原理只需要在区间内再插入一点并计算其函数值。根据插入点位置的确定方法,一维搜索方法分为两大类:一类称为试探法,这类方法是按某种给定的规律确定插入点的位置,此点位置的确定仅按照确定点进行,而不顾及函数值的

分布关系。属于试探法的一维搜索方法有黄金分割法、裴波纳契(Fibonacci)法等。另一类称为插值法或函数逼近法,这类方法是根据某些点处的某些信息,如函数数值、一阶导数、二阶导数等,构造一个插值函数来逼近原来函数,用插值函数的极小点作为区间的插入点。属于插值法的有二次插值法、三次插值法等。6.2.2迭代算法及终止准则

迭代算法不像古典极值方法那样可以一步解出来,而是在一定范围内不断产生改进的新点,进行迭代比较,把搜索范围不断缩小而逼近最优点;当满足收敛准则时,即可求得最优解。迭代算法的基本思想为:

(1)在设计空间中选定一个初始设计点x(0)。

(2)从x(0)出发,按照某一优化方法所规定的原则,确定搜索方向d(0),沿该方向寻求最优步长α(0),由公式x(1)=x(0)+

α(0)d(0),获得一个目标函数值有所改进的设计点x(1)。

(3)以x(1)为新的始点,再构造搜索方向d(1),求最优步长α(1),求得x(2)。重复以上过程。

(4)每获得一个新点都要进行终止准则的判断,如果满足了,就结束搜索,获得满足规定精度要求的近似最优点x*。

可见,这是一个反复迭代的过程,迭代过程一般写为

x(k+1)=x(k)+α(k)d(k)

(6-2-1)在迭代过程中,目标函数下降,但总应该有个停止迭代的标准,该标准就是终止准则。根据不同的情况,可选择以下准则之一:

一般情况下,用

|f(x(k+1))-f(x(k))|≤ε1

(6-2-2)

‖x(k+1)-x(k)‖≤ε2

(6-2-3)

即经过迭代的新点和始点的目标函数值下降量已经很少,达到了精度要求,或者两个迭代点已接近重合,将这两个条件综合在一起作为判别条件。但是,如果目标函数值f(x(k))、x(k)各分量与1相比很大,仍用上式则会出现已达到精度要求但还不能停止计算的情况,这时可采用相对值来判断,即当

|f(x(k))|≥ε3

或‖xk‖≥ε4

(式中ε3、ε4为相当大的数)

时,改用

(6-2-4)

(6-2-5)

来判断是否终止迭代。在优化过程中有时也应用梯度算法,这时目标函数的梯度是必然要求的,在终止准则中就可利用已知的梯度信息。要达到一定的精度,则终止准则为

(6-2-6)6.2.3黄金分割法的原理及计算步骤

黄金分割法亦称0.618法,是指在搜索区间选择两点,将区间分成三段,每次按照对称原理在保留区间内再插入一点形成新区间的新三段,新区间的新三段与原来区间的三段具有相同的比例分布。这是一种通过不断缩小区间得到极小点的一维搜索算法。如图6-2所示,在首轮时要求插入点x1、x2的位置相对于区间[a,b]两端点具有对称性,即

(6-2-7)

式中,λ为待定常数。同时,在下轮迭代时,保留上面的一个点,只计算一个新点即可完成迭代。图6-2黄金分割法进一步分析上述迭代过程,从图6-2可以看出,除要求点对称外,黄金分割法还要求在保留下来的区间内再插入一点所形成的新三段,与原来区间的三段具有相同的比例分布。设原区间[a,b]的长度为1,在第一轮搜索时,设有f(x1)<f(x2)(同理可分析f(x1)>f(x2)的情况),则保留下来的区间为[a,x2],其长度为λ,区间缩短率为1-λ。在下一轮的迭代中,上一轮保留下的点x1成为新点x2′,重新计算点x1′,为了保持相同的比例分布,新插入点x1′应在λ(1-λ)位置上,x2′在原区间的1-λ位置,故有

λ2+λ-1=0取方程的正根,有

若保留下来的区间为[x1,b],根据插入点的对称性,也能推出同样的λ值。在工程中,0.618是一个经常被使用的数,称为黄金分割数,所以这种寻优方法叫做黄金分割法,即将一线段分成两段,使整段长与较长段的长度比值等于较长段与较短段长度的比值,即1∶λ=λ∶(1-λ)。使用黄金分割法,相邻两次搜索的区间缩短率为0.618,所以,黄金分割法又被称做0.618法。

按照上述分析,黄金分割法的搜索过程为:

(1)给出初始搜索区间[a,b]及收敛精度ε,将λ赋值0.618。

(2)按坐标点计算公式(6-2-7)计算x1和x2,并计算其对应的函数值f(x1)、f(x2)。

(3)比较f(x1)和f(x2)的大小,缩小搜索区间,进行区间名称的代换。

(4)检查区间是否缩短到足够小或函数值收敛到足够接近,如果条件不满足,则转到步骤(5),否则转到步骤(6)。

(5)在保留区间中计算一个新的试验点及其相应的函数值,转到步骤(3)。

(6)取最后两试验点的平均值作为极小点的数值近似解,并计算该点的函数值作为目标函数的最优解。

黄金分割法的程序框图如图6-3所示。图6-3黄金分割法程序框图6.2.4二次插值法的原理及计算步骤

二次插值法是一种近似法,它利用一个低次多项式p(x)来代替原目标函数,然后求出该多项式的极小点,并以此点作为目标函数f(x)的近似极小点。如设p(x)为函数f(x)的一个插值多项式,多项式p(x)的极小点就是其一阶导数p′(x)的根。对这个根加以判断,就可以得到函数f(x)的极小点的近似位置。

若插值多项式p(x)是二次式,则称为二次插值法;如p(x)是三次式,则称为三次插值法。由于二次插值法计算较简单又具有一定精度,应用较广,故本节仅介绍二次插值法。二次插值法的基本思想是用原目标函数在任意三个点的函数值来构成一个二次插值多项式,并将这个多项式的极小点作为目标函数的近似极小点。

设x1、x2、x3是一维目标函数f(x)在初始单峰区间[a,b]中的三点,且x1<x2<x3,它们的函数值分别为f1=f(x1)、f2=f(x2)、f3=f(x3),且f1>f2<f3。现把一维函数f(x)上的三个点(x1,f1)、(x2,f2)、(x3,f3)作为二次插值多项式

p(x)=ax2+bx+c

(6-2-8)的插值结点,式中a、b、c是待定系数。显然,在插值点处二次插值函数与目标函数应具有相同的函数值,即二次插值多项式应满足:

(6-2-9)解此方程组,可得出a、b、c的值如下:

于是,插值函数p(x)就成为一个确定的二次多项式,常称它为二次插值函数。二次插值函数就是通过目标函数f(x)曲线上的(x1,f1)、(x2,f2)、(x3,f3)三点画出的一条方程为p(x)=ax2+bx+c的曲线,可以认为此曲线的极小点x*p就是原目标函数曲线的近似极小点x*。该插值函数曲线在原目标函数的单峰区间是一条开口向上的抛物线,故二次插值法又称为抛物线插值法。对二次插值函数p(x)=ax2+bx+c求导数,并令其为零,得:

所以,此插值多项式p(x)的极小点为

(6-2-10)将上面已求得的系数a、b代入此式,则得插值函数的极小点为

(6-2-11)

x*p就是目标函数f(x)极小点的一个近似点。当搜索区间充分小时,如|x2-x*p|<ε(ε是一个给定小的正数),x*p即可看做是f(x)在区间(a,b)上的近似最优点;否则,继续进行插值计算,重复多次地向目标函数最优点逼近,直至满足给定的精度为止。二次插值法的具体步骤如下:

(1)确定初始插值点。在区间内选取三点x1、x2、x3,一般取x1、x3分别为初始区间的左、右端点,x2为区间的一个内点,开始时可取x2=(x1+x3)/2。计算x1、x2、x3对应的目标函数值:

f1=f(x1),f2=f(x2),f3=f(x3)

(2)按式(6-2-11)计算p(x)的极小点。进行此步时,若式

(6-2-11)中的分母值为零,即

亦即则说明三个插值结点(x1,f1)、(x2,f2)、(x3,f3)在同一水平线上。这种情况只有当插值点已十分接近时才会出现,因此可取中间插值点x2为近似极小点,其对应的函数值为近似极小值。若发生(x*p-x1)(x3-x*p)≤0的情况,说明x*p已在区间之外。这种情况只有当区间已缩得很小和三个插值点十分接近时,由于计算机的舍入误差才可能发生。因而可把x2及其对应的目标函数值f2=f(x2)作为目标函数的最优解输出。

(3)判断是否满足精度要求。

①若|x*p-x2|<ε,说明搜索区间已足够小,当f(x*p)≤f(x2)时,输出目标函数最优解x*p,最优值为f(x*p);否则,输出目标函数的最优解x2,最优值为f(x2)。

②若|x*p-x2|≥ε,则需比较点x*p与x2在搜索区间的相对位置及其对应的目标函数值的大小,以便缩短搜索区间,得到新的三点(该三点仍以x1、x2、x3表示,它们应保持两端点x1和x3的函数值大,中间点x2的函数值小的性质),然后转第(2)步继续进行插值计算。

二次插值法的程序框图见图6-4。图6-4二次插值法程序框图

6.3无约束优化算法

6.3.1基本概念

实践中的机械优化设计问题,多数都是在一定的限制条件下追求某一指标为最小,所以它们都属于约束优化问题。但是,也有些实际问题,其数学模型本身是一个无约束优化问题,或者除了在非常接近最终极小点的情况下,都可以按无约束问题来处理。研究无约束优化问题的另一个原因是,通过熟悉它的解法可以为研究约束优化问题打下良好的基础。第三个原因是,约束优化问题的求解可以通过一系列无约束优化方法来达到。所以无约束优化问题的解法是优化设计方法的基本组成部分,也是优化方法的基础。无约束优化问题是:求n维设计变量

X=[x1

x2…xn]T

使目标函数f(X)→min,而对X没有任何限制条件。6.3.2无约束优化算法的特点

对于无约束优化问题的求解,可以应用高等数学中的微分法来确定极值点位置。这就是把求函数极值的问题变成求解方程的问题。这是一个含有n个未知量、n个方程的方程组,并且一般是非线性的。除了一些特殊情况外,一般说来,非线性方程组的求解与求无约束极值一样也是一个困难问题,甚至前者更困难。对于非线性方程组,一般很难用解析的方法求解,需要采用数值计算方法逐渐迭代出非线性联立方程组的解。但是,与其用数值计算方法求解非线性方程组,倒不如用数值算法直接求解无约束极值问题。因此,本节将介绍求解无约束优化问题常用的数值计算方法。数值计算方法最常用的是搜索方法,其基本思想是从给定的初始点x0出发,沿某搜索方向d0进行搜索,确定最佳步长α0,使函数值沿d0方向下降量最大。依此方式按下述公式不断进行,形成迭代的下降算法。

xk+1=xk+αkdk(k=0,1,2,…)

(6-3-1)

各种无约束优化方法的区别就在于确定其搜索方向dk的

方法不同。所以,搜索方向的构成问题是无约束优化方法的

关键。在xk+1=xk+αkdk中,dk是第k+1次搜索或迭代方向,称为搜索或迭代方向,它是根据数学原理由目标函数和约束条件的局部信息状态形成的。确定dk的方法很多,相应地确定使f(xk+αkdk)取极值的αk=α*的方法也是不同的。

dk和αk的形成和确定方法不同就派生出不同的n维无约束优化问题的数值解法。因此,可对无约束优化的算法进行分类,其分类原则就是依式xk+1=xk+αkdk中的dk和相应的αk的形成或确定方法而定的。6.3.3共轭方向法

共轭方向法的搜索方向取的是共轭方向,因此先介绍共轭方向的概念和性质。

1.共轭方向的概念

共轭方向的概念是在研究二次函数

(6-3-2)

(G为对称正定矩阵)时引出的。本节和以后几节所介绍的方法有一个共同的特点,就是首先以式(6-3-2)的二次函数为目标函数给出有关算法,然后再把算法推广到一般的目标函数中去。为了直观起见,首先考虑二维情况。二元二次函数的等值线为一族椭圆,任选初始点x0沿某个下降方向搜索,得x1:

x1=x0+α0d0

因为α0是沿d0方向搜索的最优步长,即在x1点处函数f(x)沿d0方向的方向导数为零。考虑到x1点处方向导数与梯度之间的关系,为了防止在梯度法中发生锯齿现象,下一次的迭代搜索方向d1直指极小点x*,如图6-5所示。如果能够选定这样的搜索

方向,那么对于二元二次函数只需顺次进行d0、d1两次直线搜索就可以求到极小点x*,即有

x*=x1+α1d1

式中,α1为d1方向上的最佳步长。图6-5负梯度方向与共轭方向那么对于这样的d1,方向应该满足什么条件呢?经过分析可以得出,当满足

(d0)TGd1=0

条件时,就可以实现。数学上把满足上式的两个向量d0和d1称为G的共轭向量,或称d0和d1对G是共轭方向。

2.共轭方向的性质

定义设G为n×n对称正定矩阵,若n维空间中有m个非零向量,满足

(di)TGdj=0(i,j=0,1,2,…,m-1)(i≠j)

(6-3-3)

则称d0,d1,…,dm-1对G共轭,或称它们是G的共轭方向。

当G=I(单位矩阵)时,式(6-3-3)变成

(di)Tdj=0(i≠j)

即向量d0,d1,…,dm-1互相正交。由此可见,共轭概念是正交概念的推广,正交是共轭的特例。

性质1

若非零向量系d0,d1,…,dm-1是对G共轭的,则这m个向量是线性无关的。

性质2

在n维空间中互相共轭的非零向量的个数不超过n。

性质3

从任意初始点x0出发,顺次沿n个G的共轭方向d0,d1,…,dm-1进行一维搜索,最多经过n次迭代就可以找到由式(6-3-2)所表示的二次函数f(x)极小点x*。此性质表明这种迭代方法具有二次收敛性。

性质4

从任意两个点x1(0)

和x2(0)出发,分别沿同一方向d0进行一维搜索,得到两个一维极小点x1(1)和x2(1),则连接此两点构成的向量d(1)=x1(1)-x2(1)

与原方向d0关于该函数的二阶导数矩阵相共轭。

3.共轭方向法

共轭方向法是建立在共轭方向性质3的基础上的,它提供了求二次函数极小点的原则方法。其步骤是:

(1)选定初始点x0,下降方向d0和收敛精度ε,置k→0。

(2)沿dk方向进行一维搜索,得xk+1=xk+αkdk。

(3)判断是否满足,若满足则打印x*=xk+1,停机,否则转(4)。

(4)提供新的共轭方向dk+1,使(dj)Gdk+1=0,j=0,1,2,

…,k。

(5)置k→k+1,转(2)。

共轭方向法程序框图如图6-6所示。提供共轭向量系的方法有许多种,从而形成各种具体的共轭方向法,如共轭梯度法、鲍威尔(PowerⅡ)法等。这些方法将在下面几节中予以讨论。图6-6共轭方向法的程序框图6.3.4梯度法

优化设计是追求目标函数值f(x)最小,因此,一个很自然的想法是从某点沿搜索方向d取该点的负梯度方向,使函数值在该点附近的下降最快。按此规律不断进行,形成以下迭代的算法:

(6-3-4)

为了使目标函数值沿搜索方向能获得最大的下降值,其步长因子αk应取一维搜索的最佳步长,即有根据一元函数极值的必要条件和多元复合函数求导公式,得

或写成由此可知,在梯度法中,相邻两个迭代点上的函数梯度相互垂直,而搜索方向就是负梯度方向,因此相邻两个搜索方向互相垂直。这就是说在梯度法中,迭代点向函数极小点靠近的过程,走的是曲折的路线。这一次的搜索方向与前一次的搜索方向互相垂直,形成“之”字形的锯齿现象,见图6-7。从直观可以看到,在远离极小点的位置,每次迭代可使函数值有较多的下降。可是在接近极小点的位置,由于锯齿现象使每次迭代行进的距离缩短,因而收敛速度减慢。这种情况似乎与“最速下降”的名称相矛盾,其实不然,这是因为梯度是函数的局部性质。从局部上看,在一点附近函数的下降是快的,但从整体上看则走了许多弯路,因此函数的下降并不算快。梯度法只具有线性收敛速度。图6-7梯度法的搜索路径正是基于这一特点,许多收敛性好的算法在开始第一步的迭代都采用负梯度方向作为搜索方向。

梯度法的收敛速度与目标函数的性质密切相关。对于一般函数来说,梯度法的收敛速度较慢。但对于等值线为同心圆或同心球的目标函数,无论从任何初始点出发,一次搜索即可达到极小点。梯度法的迭代步骤如下:

给定初始点x(0)和收敛精度ε,置k=0。

(1)计算梯度,并构造搜索方向

(2)一维搜索,求新的迭代点:

(3)收敛判断:若满足则令最优解为x*=x(k+1),f(x*)=f(x(k+1)),终止计算;否则,令k=k+1,转(2)继续迭代。6.3.5牛顿法

牛顿方法和最速下降法一样,也是求解极值问题古老的算法之一。

其基本思想是:对一元函数f(x),假定已给出极小点x*的一个较好的近似点x0,则在x0处将f(x)进行泰勒展开到二次项,得二次函数Φ(x)。用极值条件Φ′(x)=0求Φ(x)的极小点x1,用它作为x*的第一个近似点。然后再在x1处进行泰勒展开,并求得第二个近似点x2。如此迭代下去,得到一维情况下的牛顿迭代公式

(6-3-6)对于多元函数f(x),设xk为f(x)极小点x*的一个近似点,在xk处将f(x)进行泰勒展开,保留到二次项,得

式中:为f(x)在xk处的海赛矩阵。设xk+1为Φ(x)的极小点,它作为f(x)极小点的下一个近似点,根据极值必要条件

(k=0,1,2,…)

(6-3-7)

这就是多元函数求极值的牛顿法迭代公式。对于二元函数f(x)的上述泰勒展开式不是近似的,而是精确的。海赛矩阵是一个常矩阵,其中各元素均为常数。因此,无论从任何点出发,只需一步就可找到极小点。因为若某一迭代方法能使二次型函数在有限次迭代内达到极小点,则称此迭代方法是二次收敛的,因此牛顿方法是二次收敛的。

从牛顿法迭代公式的推演中可以看到,迭代点的位置是按照极值条件确定的,其中并未含有沿下降方向搜寻的概念。因此对于非二次函数,如果采用上述牛顿法迭代公式,有时会使函数值上升,即出现f(xk+1)>f(xk)的现象。为此,需对上述牛顿法进行改进,引入数学规划法的搜寻概念,提出所谓“阻尼牛顿法”。如果我们把看做是一个搜索方向,称其为牛顿方向,则阻尼牛顿法采取如下的迭代公式:

(k=0,1,2,…)

(6-3-8)

式中:αk为沿牛顿方向进行一维搜索的最佳步长,称为阻尼因子,可通过如下极小化过程求得这样,原来的牛顿法就相当于阻尼牛顿法的步长因子αk取成固定值1的情况。由于阻尼牛顿法每次迭代都在牛顿方向上进行一维搜索,这就避免了迭代后函数值上升的现象,从而保持了牛顿法二次收敛的特性,而对初始点的选取并没有苛刻的要求。阻尼牛顿法的计算步骤如下:

(1)给定初始点x0,收敛精度ε,置k←0;

(2)计算和

(3)求其中αk为沿dk进行一维搜索的最佳步长。

(4)检查收敛精度。若‖xk+1-xk‖<ε则x*=xk+1,停机;否则,置k←k+1,返回到(2)继续进行搜索。

阻尼牛顿法程序框图如图6-8所示。图6-8阻尼牛顿法的程序框图牛顿法和阻尼牛顿法统称为牛顿型方法。这类方法的主要缺点是每次迭代都要计算函数的二阶导数矩阵,并对该矩阵求逆。这样工作量很大。特别是矩阵求逆,当维数高时工作量更大。另外,从计算机存储方面考虑,牛顿型方法所需的存储量

也是很大的。梯度法的收敛速度比牛顿法慢,而牛顿法又存在上述缺点。针对这些缺点,近年来人们研究了很多改进的算法,针对牛顿法提出变尺度法等。

6.4约束优化算法

6.4.1基本概念

机械优化设计中的问题,大多数属于约束优化设计问题,其数学模型为

(6-4-1)

求解式(6-4-1)的方法称为约束优化方法。根据求解方式的不同,可分为直接解法、间接解法等。直接解法通常适用于仅含不等式约束的问题,它的基本思路(见图6-9)是在m个不等式约束条件所确定的可行域内,选择一个初始点x0,然后决定可行搜索方向d,且以适当的步长α,沿d方向进行搜索,得到一个使目标函数值下降的可行的新点x1,即完成一次迭代。再以新点为起点,重复上述搜索过程,满足收敛条件后,迭代终止。每次迭代计算均按以下基本迭代格式进行:

xk+1=xk+αkdk

式中:αk为步长;dk为可行搜索方向。图6-9直接解法的搜索路径所谓可行搜索方向,是指当设计点沿该方向作微量移动时,目标函数值将下降,且不会越出可行域。产生可行搜索方向的方法将由直接解法中的各种算法决定。

直接解法的原理简单,方法实用。其特点是:

(1)由于整个求解过程在可行域内进行,因此迭代计算不论何时终止,都可以获得一个比初始点好的设计点。

(2)若目标函数为凸函数,可行域为凸集,则可保证获得全域最优解。否则,因存在多个局部最优解,当选择的初始点不相同时,可能搜索到不同的局部最优解。为此,常在可行域内选择几个差别较大的初始点分别进行计算,以便从求得的多个局部最优解中选择更好的最优解。

(3)要求可行域为有界的非空集,即在有界可行域内存在满足全部约束条件的点,且目标函数有定义。

间接解法有不同的求解策略,其中一种解法的基本思路是将约束优化问题中的约束函数进行特殊处理后,和目标函数结合起来,构成一个新的目标函数,即将原约束优化问题转化成为一个或一系列的无约束优化问题,再对新的目标函数进行无约束优化计算,从而间接地搜索到原约束问题的最优解。间接解法的基本迭代过程是,首先将式(6-4-1)所示的约束优化问题转化成新的无约束目标函数:

式中:φ(x,μ1,μ2)为转换后的新目标函数;

分别为约束函数gj(x)、hk(x)经过加权处理后构成某种形式的复合函数或泛函数;μ1、μ2为加权因子。然后对φ(x,μ1,μ2)进行无约束极小化计算。由于在新目标函数中包含了各种约束条件,在求极值的过程中还将改变加权因子的大小,因此可以不断地调整设计点,使其逐步逼近约束边界,从而间接地求得原约束问题的最优解。图6-10所示的框图表示了这一基本迭代过程。图6-10间接解法框图间接解法是目前在机械优化设计中得到广泛应用的一种有效方法。其特点是:

(1)由于无约束优化方法的研究日趋成熟,已经研究出不少有效的无约束最优化方法程序,使得间接解法有了可靠的基础。目前,这类算法的计算效率和数值计算的稳定性也有较大的提高。

(2)可以有效地处理具有等式约束的约束优化问题。

(3)间接解法存在的主要问题是,选取加权因子较为困难。加权因子选取不当,不但影响收敛速度和计算精度,甚至会导致计算失败。

求解约束优化设计问题的方法很多,下面将着重介绍属于直接解法的复合形法和属于间接解法的惩罚函数法。6.4.2复合形法

复合形法是求解约束优化问题的一种重要的直接解法。它的基本思路是在可行域内构造一个具有k个顶点的初始复合形。对该复合形各顶点的目标函数值进行比较,找到目标函数值最大的顶点(称最坏点),然后按一定的法则求出目标函数值有所下降的可行的新点,并用此点代替最坏点,构成新的复合形。复合形的形状每改变一次,就向最优点移动一步,直至逼近最优点。

由于复合形的形状不必保持规则的图形,对目标函数及约束函数的形状又无特殊要求,因此该法的适应性较强,在机械优化设计中得到广泛应用。

1.初始复合形的形成

复合形法是在可行域内直接搜索最优点,因此,要求初始复合形在可行域内生成,即复合形的k个顶点必须都是可行点。

生成初始复合形的方法有以下几种:

(1)由设计者决定k个可行点,构成初始复合形。当设计变量较多或约束函数复杂时,由设计者决定k个可行点常常很困难。只有在设计变量少、约束函数简单的情况下,这种方法才被采用。

(2)由设计者选定一个可行点,其余的k-1个可行点用随机法产生。各顶点按下式计算

xj=a+rj(b-a)(j=1,2,…,k)

(6-4-2)

式中:j为复合形中的第j个顶点;a、b为设计变量的下限和上限;rj为在(0,1)区间内的伪随机数。用式(6-4-2)计算得到的k-1个随机点不一定都在可行域内,因此要设法将非可行点移到可行域内。通常采用的方法是求出已经在可行域内的L个顶点的中心xc,然后将非可行点向中心点移动,即

(6-4-3)

若xL+1仍为不可行点,则利用上式,使其继续向中心点移动。显然,只要中心点可行,xL+1点一定可以移到可行域内。随机产生的k-1个点经过这样的处理后,全部成为可行点,并构成初始复合形。事实上,只要可行域为凸集,其中心点必为可行点,用上述方法可以成功地在可行域内构成初始复合形。如果可行域为非凸集,中心点不一定在可行域之内,则可以通过改变设计变量的下限和上限值,重新产生各顶点。经过多次试算,有可能在可行域内生成初始复合形。

(3)由计算机自动生成初始复合形的全部顶点。其方法是首先随机产生一个可行点,然后按第(2)种方法产生其余的k-1个可行点。这种方法对设计者来说最为简单,但因初始复合形在可行域内的位置不能控制,可能会给以后的计算带来困难。

2.复合形法的搜索方法

在可行域内生成初始复合形后,将采用不同的搜索方法来改变其形状,使复合形逐步向约束最优点趋近。改变复合形形状的搜索方法主要有以下4种。

1)反射

反射是改变复合形形状的一种主要策略,其计算步骤为:

(1)计算复合形各顶点的目标函数值,并比较其大小,求出最好点xL、最坏点xH及次坏点xG:

(6-4-4)

(2)计算除去最坏点xH外的k-1个顶点的中心xc:

(6-4-5)

(3)从统计的观点来看,一般情况下,最坏点xH和中心点xc的连线方向为目标函数下降的方向。为此,以xc点为中心,将最坏点xH按一定比例进行反射,有希望找到一个比最坏点xH的目标函数值小的新点xR,称其为反射点。其计算公式为

xR=xc+α(xc-xH)(6-4-6)

式中:α为反射系数,一般取α=1.3。

反射点xR与最坏点xH、中心点xc的相对位置如图6-11所示。图6-11xR、xH与xc的相对位置

(4)判别反射点xR的位置。若xR为可行点,则比较xR和xH两点的目标函数值。如果f(xR)<f(xH),则用xR取代xH,构成新的复合形,完成一次迭代;如果f(xR)≥f(xH),则将α缩小0.7倍,用上式重新计算新的反射点;若仍不可行,继续缩小α,直至f(xR)<f(xH)为止。若xR为非可行点,则将α缩小0.7倍,仍用式(6-4-6)计算反射点xR,直至可行为止。然后重复以上步骤,即判别f(xR)和f(xH)的大小,一旦f(xR)<f(xH),就用xR取代xH,完成一次迭代。

综上所述,反射成功的条件是

(6-4-7)

2)扩张

若求得反射点为可行点,且目标函数值下降较多(例如f(xR)<f(xc)),则沿反射方向继续移动,即采用扩张的方法,

可能找到更好的新点xE,xE称为扩张点。其计算公式为

xE=xR+γ(xR-xc)

(6-4-8)

式中:γ为扩张系数,一般取γ=1。

扩张点xE与中心点xc、反射点xR的相对位置如图6-12所示。图6-12xE、xR与xc的相对位置若扩张点xE为可行点,且f(xE)<f(xR),则称扩张成功,用xE取代xR,构成新的复合形;否则称扩张失败,放弃扩张,仍用原反射点xR取代xH,构成新的复合形。

3)收缩

若在中心点xc以外找不到好的反射点,还可以在xc以内,即采用收缩的方法寻找较好的新点xk,xk称为收缩点。其计算公式为

xk=xH+β(xc-xH)

(6-4-9)

式中:β为收缩系数,一般取β=0.7。

收缩点xk与最坏点xH、中心点xc的相对位置如图6-13所示。

若f(xk)<f(xH),则称收缩成功,用xk取代xH,构成新的复合形。图6-13xk、xH与xc的相对位置

4)压缩

若采用上述各种方法均无效,还可以将复合形各顶点向最好点xL靠拢,即采用压缩的方法来改变复合形的形状。压缩后各顶点的计算公式为

xj=xL-0.5(xL-xj)

(j=1,2,…,k;j≠L)(

6-4-10)

压缩后的复合形各顶点的相对位置如图6-14所示。图6-14复合形的压缩变形然后,再对压缩后的复合形采用反射、扩张或收缩等方法,继续改变复合形的形状。

除此之外,还可以采用旋转等方法来改变复合形形状。应当指出的是,采用改变复合形形状的方法越多,程序设计越复杂,有可能降低计算效率及可靠性。因此,程序设计时,应针对具体情况,采用某些有效的方法。

3.复合形法的计算步骤

基本的复合形法(只含反射)的计算步骤为:

(1)选择复合形的顶点数k,一般取n+1≤k≤2n,在可行域内构成具有k个顶点的初始复合形。

(2)计算复合形各顶点的目标函数值,比较其大小,找出最好点xL、最坏点xH及次坏点xG。

(3)计算除去最坏点xH以外的k-1个顶点的中心点xc。判别xc是否可行,若xc为可行点,则转到步骤(4);若xc为非可行点,则重新确定设计变量的下限和上限值,即令a=xL,b=xc,然后转到步骤(1),重新构造初始复合形。

(4)按式(6-4-6)计算反射点xR,必要时,改变反射系数α的值,直至反射成功,即满足式(6-4-7)然后以xR取代xH,构成新的复合形。

(5)若收敛条件

(6-4-11)

得到满足,计算终止,约束最优解为

否则,转步骤(2)。

复合形法的框图见图6-15。图6-15复合形法框图6.4.3惩罚函数法

复合形法属于约束优化问题的直接法,其在搜索过程中使每个迭代点同时满足适用性、可行性两个条件,以此来直接处理约束条件。本节所述的惩罚函数法则属于约束优化问题的间接法。

目前,已有的许多著作和文献表明:对无约束优化方法的研究要比对约束优化方法的研究更为完善和成熟,并建立了许多有效的、可靠的算法。如果能通过某种办法对约束条件加以处理,惩罚函数法将是一种使用很广泛、很有效的间接解法。它的基本原理是将约束优化问题转化成无约束优化问题,这样就可以直接用无约束优化方法来解约束优化问题。但是,这种转化必须满足如下两个前提条件:一是不破坏原约束优化问题的约束条件,二是最优解必须归结到原约束优化问题的最优解上去。惩罚函数法(简称罚函数法)的特点是能解等式约束、不等式约束以及两种约束兼有的优化问题,且基本构思简单,易编程序,使用效果好。

惩罚函数法的基本原理是在原目标函数中添加一些与约束函数有关的项,形成一个新的目标函数(即惩罚函数)以取代原目标函数,然后用无约束优化方法求新目标函数的最优解。考虑约束优化问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论