13.1最优化设计数学模型
科学技术的发展提出了大量复杂的最优化问题,对冷却器优化设计也一样,现在只要提出冷却器各项指标技术参数,采用计算机就可以在几分钟内设计出一台冷却器。
最优化问题的求解方法是针对比较复杂的极值问题,提出一种区别于解析法的数学解法,亦称迭代算法。但由于在数学模型中,定义的是极大(小)值问题,对这种求解最优化问题的数值解法也称下降迭代解法,即迭代法。
1.最优化问题中数学的迭代法
按照某一迭代算式,从任意一个初始点X0开始,以某种递推格式产生如下点列:
X0,X1,X2,…,Xk,XK+1,…
若该点列所对应的目标函数值呈严格的单调下降趋势,即有:
f(X0)>f(X1)>f(X2)>…>f(Xk)>f(XK+1)>…
则产生此点列的算式和递推迭代格式就构成了一种下降迭代解法。在最优化方法中,迭代点的产生一般采用如下迭代算式:
X=Xk+αSk
式中,Sk称为搜索方向,α称为步长因子。此式以新的迭代点X从当前点Xk出发,沿方向Sk跨出α步长得到的。
为了让每一次迭代都能使目标函数获得最大的下降量,新的迭代点通常取作方向Sk上的极小点,亦称一维极小点,记作Xk+1,即有:
Xk+1=Xk+αkSk(13‐1)
其中,αk为最优步长因子。求最优步长因子αk和一维极小点Xk+1的数值算法称为一维搜索算法或线性搜索算法。
于是下降迭代解法的基本迭代格式可概括如下:
①给定初始点X0和一个足够小的收敛精度ε>0,并没计算单元k=0。
②选取搜索方向Sk。
③得到最优步长因子αk,并由Xk+1=Xk+αkSk计算得到新的迭代点Xk+1。
④最优解判断:若Xk+1满足收敛精度要求,亦称终止准则,则以Xk+1作为最优解,输出计算结果并终止迭代;否则,以Xk+1作为新的起点,即令k=k+1,转②进行下一轮迭代。
由此不难看出,要构成一个下降迭代解法必须解决以下3个基本问题:
①选择最合适的搜索方向,不同的搜索方向构成不同的下降迭代算法。
②寻找最优步长因子和新的迭代点,译本采用一维搜索算法。
③给定适当的终止判断准则。
2.算法的收敛性与终止准则
(1)算法的收敛性
当迭代算法产生的点列(所谓点列从各热阻的计算可知翅片管中每根管的翅片数,及翅片管根数)所对应的函数值严格地单调递减,并且最终收敛于最优化问题的极小点时,称此迭代算法具有收敛性。点列向极小点逼近的速度称为算法的收敛速度。作为一种可靠实用的最优化算法,不仅要有良好的收敛性,而且应具有尽可能快的收敛速度。
(2)终止准则
由于计算机的计算精度越来越高,任何最优化算法向极小点的逼近过程,都将是一个可望而不可及的过程。因为不可能让两个实数完全相等,所以精确的最优解是永远也不可能达到的。但是从工程角度考虑,一个精确度过高的最优解在计量和实施过程中是无法实现的,也没有必要的。因此,最优化计算只要求得到满足一定精度的近似最优解,而非精确最优解。判断迭代点是否达到给定精度要求的判别式称为最优解,而非精确最优解。判断迭代点是否达到给定精度要求的判别式称为最优化算法的终止(收敛)准则。
常用的终止准则有以下3种:
①点距准则。一般来说,迭代点向极小点的逼近速度是逐渐变慢的,越接近极小点,相邻迭代点间的距离越小。当相邻迭代点间的距离充分小,并且小于给定的收敛精度ε>0,即有:
Xk+1-Xk≤ε(13‐3)
时,便可认为点Xk+1是满足给定收敛精度的最优解。于是,可令X=Xk+1,输出X和f(X)后终止迭代。一般取收敛精度ε=10-6~10-4。
②值差准则。在迭代点向极小点逼近的过程中,不仅相邻迭代点间的距离逐渐缩短,而且它们的函数值也越来越近。因此,可将相邻迭代点的函数值之差作为判断近似最优解的另一个准则,这就是值差准则。即对于充分小的正数ε,如果f(Xk)-f(Xk+1)≤ε
或者
f(Xk)-f(Xk+1)
f(Xk)≤ε(13‐4)
成立,则令X=Xk+1,输出X和f(X)后终止迭代。
③梯度准则。由极值理论知,多元函数在某点取得极值的必要条件是函数在该点的梯度等于零。一般情况下,梯度等于零的点就是函数的极值点。但是在迭代计算中,梯度值不可能绝对等于零,故可认为,梯度的模小于给定精度(ε>0)的点就是函数的近似最优点。即当:
蜒f(Xk+1)≤ε (13‐5)
时,令X=Xk+1,输出X和f(X)后终止迭代。
通常,上述3种终止准则都可以单独使用,只要其中一个得到满足,即可认为已经得到了符合给定精度要求的近似最优解。
但是,在某些情况下,相邻迭代点及其函数值不可能同时达到充分接近。这时只有将点距准则和值差准则联合起来使用,才能保证得到真正的近似最优解。
3.线性搜索
下降迭代算法中在搜索方向Sk上寻求最优步长αk时通常采用一维搜索,亦称线性搜索。
线性搜索是构成非线性最优化算法的基本算法,因为多元函数的迭代求解都可归结为在一系列逐步产生的下降方向上的线性搜索。
对于函数f(X)来说,从Xk出发,在方向Sk上的线性搜索可用数学式表达如下:
minf(Xk+αSk)=f(Xk+αkSk)
Xk+1=Xk+αkSk(13‐6)
此式表示对包含惟一变量α的一元函数f(Xk+αSk)求极小,得到最优步长因子αk和方向Sk上的一维极小点Xk+1。
可见,线性搜索是一种一元函数极小化的数值迭代算法,可以简记为minf(α)
或者更一般的形式minf(x)
线性搜索的数值迭代算法可分两步进行。首先确定一个包含极小点的初始区间,然后采用逐步缩小区间或反复插值逼近的方法求得满足一定精度要求的最优步长和极小点。
(1)确定初始区间
设f(x)在考察区间内为一单谷函数,即区间内只存在一个极小点。这样在极小点的左侧,函数单调下降;在极小点右侧,函数单调上升。若已知该区间内的相邻3个点x1<x2<x3及其对应的函数值f(x1),f(x2)和f(x3),便可以通过比较这3个函数值的大小估计出极小点所在的方位。
①若f(x1)>f(x2)>f(x3),则极小点位于点x2的右侧。
②若f(x1)<f(x2)<f(x3),则极小点位于点x2的左侧。
③若f(x1)>f(x2)<f(x3),则极小点位于x1和x3之间,[x1,x3]就是一个包含极小点的区间。
可见,在某一方向上按一定方式逐次产生一系列探测点,并比较这些探测点上函数值的大小,就可以找出函数值呈“大-小-大”变化的3个相邻点。其中两边的两个点所确定的闭区间内必定包含着极小点,这样的闭区间称为初始区间,记作[a,b]。这种寻找初始区间的方法可归结为以下计算步骤:
①给定初始点x0,初始步长h,令x1=x0,记f1=f(x1)。
②产生新的探测点x2=x0+h,记f2=f(x2)。
③比较函数值f1和f2的大小,确定向前或向后探测的策略。
若f1>f2,则加大步长,令h=h2,转④向前探测;若f1<f2,则调转方向,令h=-h,并将x1和x2、f1和f2的数值分别对调,然后转④向后探测。
④产生新的探测点x3=x0+h,令f3=f(x3)。
⑤比较函数值f2和f3的大小。
若f2<f3,则初始区间已经得到,令C=x2,fc=f2,当h>0时,令[a,b]=[x1,x3];
当h<0时,[a,b]=[x3,x1]。
若f2>f3,则继续加大步长,令h=2h,x1=x2,x2=x3,转④继续探测。
分析可知,在上述确定初始区间的过程中,初始步长h的大小必须选择适当,太大时,产生的点x1或x2可能超出单谷区间的范围。太小时会延长确定初始区间的过程。
一般情况下取初始步长h=1.或0。
(2)缩小区间
线性搜索就是在给定的方向和初始区间上不断缩小区间,以得到该方向上的一维极小点的数值算法。缩小区间的基本方法是,在已知区间内插入两个不同的中间点,通过比较这两个点上函数值的大小,舍去不包含极小点的部分,将原区间缩小一次。
在区间[a,b]内,任选两个中间插入点x1和x2(x1<x2),并比较这两个点上的函数值:
①如果f(x1)<f(x2),则根据单谷区间的性质可知,极小点必在a和x2之间,于是可舍去区间[x2,b],得到新的包含极小点的区间[a,b]=[a,x2]。
②如果f(x1)>f(x2),则极小点必位于x1和b之间,舍去区间[a,x1],得到缩小后的新区间[a,b]=[x1,b]。
不断重复上述过程,就可以将包含极小点的区间逐渐缩小,当区间长度b-a小于给定精度ε时或区间内中间两个点的距离小于ε时,便可将区间内的某一个点作为该方向上的近似极小点。
可见,只要引入任意两个中间插入点就可将区间缩小一次。但是,不同的中间插入点所产生的区间缩小效果是不同的,得到一维极小点的速度也是不同的。不同的中间插入点的产生方法构成了不同的一维搜索算法。下面要介绍的黄金分割法和二次插值法就是其中最常用的两种算法。
(3)黄金分割法
黄金分割法亦称0.618法,它是按照“对称又对称”的原则选取中间插入点,并进而缩小区间的一种线性搜索算法。
若缩小一次后的新区间为[a,x2],要求区间内的点x1在新区间内仍然是一个具有同样对称关系的对称点,这样只需要再产生一个新点,就可以将区间又缩小一次。
考查点x1在新区间内的位置和对称性要求,知道原区间中的点x1在新区间内应处于点x2的位置。可以看出,新旧区间内的点x2到区间起点a的距离都是各自区间长度的λ倍。
4.无约束最优化算法
求解无约束最优化问题
minf(X)(13‐10)
其数值迭代解法,称为无约束最优化方法。无约束最优化方法是构成约束最优化方法的基础算法。
求解无约束最优化问题的下降迭代解法具有统一的迭代格式,其基本的问题是选择搜索方向和在这些方向上进行线性搜索。由于构成搜索方向的方式可以不同,从而形成了各种不同的无约束最优化算法。
根据搜索方向的不同构成方式,可将无约束最优化方法分为导数法(亦称解析法)和模式法(亦称直接法)两大类。
利用目标函数的一阶导数和二阶导数信息构造搜索方向的方法称为导数法。由于导数是函数变化率的具体描述,因此导数法的收敛性和收敛速度都比较好。常采用梯度法。
梯度法是一种古老的无约束最优化方法,它的迭代方向是由迭代点的负梯度构成的。由于负梯度方向是函数值下降得最快的方向,故此法也称为最速下降法。
梯度法的这一迭代特点是由梯度的性质决定的,因为梯度是函数在一点领域内局部变化率的数学描述。沿一点的负梯度方向前进时,在该点邻域内函数下降得最快,但是离开该邻域后,函数就不一定继续下降得快,甚至不再下降。这就是说,以负梯度作为搜索方向,从局部看每一步都可使函数值获得较快的下降,但从全局看却走了很多弯路,故梯度法的计算速度较慢。可以证明,梯度法只具有线性收敛速度。
在梯度法的迭代过程中,离极小点较远时,一次迭代得到的函数下降量较大。或者说,梯度法在远离极小点时向极小点的逼近速度较快,而越接近极小点逼近速度越慢。正是基于这一特点,许多收敛性较好的算法,在开始的第一步迭代都采用负剃度方向作为搜索方向,如后面将要介绍的变尺度法和共轭梯度法等。
梯度法的收敛速度与目标函数的性质密切相关,对于一般函数来说,梯度法的收敛速度较慢。但对于等值线为同心圆(球)的目标函数,无论从任何初始点出发,一次搜索即可以达到极小点。可见,若能通过适当的坐标变换,改善目标函数的性态,也可以大大提高梯度法的收敛速度。
13.2冷却器优化设计参数的求解
最优化设计方法实际上就是求函数的极值或求泛函的极值。如果目标函数有明显的表达式,则可以用微分法、变分法、最大(小)值原理等分析法、迭代法求解。当目标函数的表达式很复杂,或无明显的表达式时,则可用数学规划法或动态规划法直接选优。
1.解单变量函数极值问题的直接法
设目标函数y=f(x)在区间[a,b]上只有一个极值点,称则y=f(x)为单峰函数。多峰函数只要适当划分区间[a,b],可以使它在每一个子区间内均匀单峰函数,因此,假定y=f(x)在区间[a,b]上是单峰的。
在区间[a,b]上求一点x使得
f(x)=minf(x)
a≤x≤b
称x*为f(x)在区间[a,b]上的最优解。