1、第一章 最优化理论方法优化理论是一门实践性很强的学科。所谓最优化问题,一般是指按照给定的标准在某些约束条件下选取最优的解集。他被广泛地应用于生产管理、军事指挥和科学试验等领域,如工程设计中的最优设计、军事指挥中的最优火力配置问题等。优化理论和方法于 20 世纪 50 年代形成基础理论。在第二次世界大战期间,出于军事上的需要,提出并解决了大量的优化问题。但作为一门新兴学科,则是在 G.B.Dantzig 提出求解线性规划问题的单纯形法,H.W.Kuhnh 和A.W.Tucker 提出非线性规划基本定理,以及 R.Bellman 提出动态规划的最优化原理以后。之后,由于计算机的发展,使优化理论得到
2、了飞速的发展,至今已形成具有多分支的综合学科。其主要分支有:线性规划、非线性规划、动态规划、图论与网络、对策论、决策论等。1.极小值优化1.1 标量最小值优化求解单变量最优化问题的方法有多种,根据目标函数是否需要求导,可以分为两类,即直接法和间接法。直接法不需要对目标函数进行求导,而间接法则需要用到目标函数的导数。常用的一维直接法主要有消去法和近似法两种。消去法利用单峰函数具有的消去性质进行反复迭代,逐渐消去不包含极小点的区间,缩小搜索区间,直到搜索区间缩小到给定的允许精度为止。该法的优点是算法简单,效率较高,稳定性好。多项式近似法用于目标函数比较复杂的情况。此时搜索一个与它近似的函数代替目标
3、函数,并用近似函数的极小点作为原函数极小点的近似。常用的近似函数为二次和三次多项式、间接法需要计算目标函数的导数,优点是计算速度很快。常见的间接法包括牛顿切线法、对分法、割线法和三次差值多项式近似法等。如果函数的导数容易求得,一般来说应首先考虑使用三次插值法,因为它具有较高的效率。在只需要计算函数值得方法中,二次差值是一个很好的方法,它的收敛速度快,特别是在极小点所在区间较小时尤为如此。1.2 无约束最小值优化无约束最优化问题在实际应用中也比较常见,如工程中常见的参数反演问题。另外,许多有约束最优化问题也可以转化为无约束最优化问题进行求解。求解无约束最优化问题的方法主要有两类,即直接搜索法和梯
4、度法。直接搜索法适用于目标函数高度非线性,没有导数或导数很难计算的情况。由于实际工程中很多问题都是非线性的,因此直接搜索法不失为一种有效的解决方法。其缺点是收敛速度慢。在函数导数可求的情况下,梯度法是一种更优的方法,该法利用函数的梯度和 HESSIAN 矩阵构造算法,可以获得更快的收敛速度。函数的负梯度方向即反映了函数的最大下降方向。当搜索方向取为负梯度方向时,称为最速下降法。但当需要最小化的函数有一狭长的谷形值域时,该法的效率则很低。1.3 线性规划线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛地应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。写成矩阵形
5、式为:Max z=CXnjbpx0X0线性规划的标准形式要求目标函数最小化,约束条件取等式,变量非负。不符合这几个条件的线性模型要首先转换成标准形。1.4 二次规划二次规划是非线性规划中一类特殊的数学规划问题,它的解是可以通过求解得到的。通常通过其库恩-塔克条件,获取一个 K-T 条件的解称为 K-T 对,其中与原问题的变量对应的部分称为 K-T 点。二次规划的一般形式为:xfHTx21minS.t. Axb二次规划分为凸二次规划与非凸二次规划两者,前者的 KT 点便是其全局极小值点,而后者的 KT 点则可能连局部极小值点都不是。若它的目标函数是二次函数,则约束条件是线性的。求解二次规划的方法
6、很多,较简便易行的是沃尔夫法,它是依据库恩-塔克条件,在线性规划单纯形法的基础上加以修正而得到的。1.5 有约束最小值优化在有约束最优化问题中,通常要将该问题转换为更简单的子问题,对这些子问题可以求解并作为迭代过程的基础。早期的方法通常是通过构造惩罚函数等,将有约束的最优化问题转换为无约束最优化问题进行求解。现在,这些方法已经被更有效的基于 K-T 方程解的方法所取代。K-T 方程是有约束最优化问题求解的必要条件。MATLAB 优化工具箱MATLAB 的优化工具箱提供有对各种优化问题的一个完整的解决方案。MATLAB 中的优化工具箱中含有一系列的优化算法函数,这些函数拓展了 MATLAB数字计
7、算环境的处理能力,可以用于解决如下一些工程实际问题。求解无约束非线性极小值。求解约束 非线性极小值,包括目标逼近问题,极大极小值及半无限极小值问题。求解二次规划和线性规划问题。非线性最小二乘逼近和曲线拟合。约束线性最小二乘。求解复杂结构的大规模的优化问题,包括线性规划和约束非线性最小值。多目标优化,包括目标达成问题和极小、极大问题。优化工具箱还提供有求解非线性系统方程的函数。1. MATLAB 求解器MATLAB 优化工具箱拥有以下 4 类求解器。1. 最小值优化这一组求解器用于求解目标函数在初始点 X0 附近的最小值位置。适用于无约束优化、线性规划、二次规划和一般的飞线性规划。2. 多目标最
8、小值优化这一组求解器用于求解一组方程极大值中的极小值,还可以求解一组方程低于某一预定值得定义域。3. 方程求解器这一组求解器用于求解一个标量或者向量非线性方程 f(x)=0 在初始点 X0附近的解。也可以将方程求解当做是一种形式的优化,因为它等同于在 X0 附近找到一个 f(x)模的最小值。4. 最小二乘求解器这一组求解器用于求解一组平方的最小值。这样的问题常用在求一组数据的拟合模型。这组求解器适用于求问题非负解、边界限定或者线性约束解问题,还适用于根据数据拟合出参数化非线性模型。2. MATLAB 优化工具箱函数列表类别 适用问题 公式描述 可用函数标量最小值问题 Min f(x)10bz=
9、xb(j)/y(j);if bz=0在 MATLAB 命令窗口中输入:A=2 3 1 0 0 0;3 2 0 1 0 0;6 1 0 0 1 0;1 6 0 0 0 1;c=-1 -2 0 0 0 0;b=12 12 18 18;x,mf=SimpleMthd(A,c,b,3 4 5 6)所得结果: x= 2.0000 2.6667Mf=-7.3333 MaxF=7.3333函数linprog的用法: x=linprog(f,A,b): 线性规划只存在不等式约束; x=linprog(f,A,b,Aeq,beq): 线性规划存在不等式和等式约束; x=linprog(f,A,b,Aeq,beq
10、,lb,ub): 一般格式的线性规划; x=linprog(f,A,b,Aeq,beq,lb,ub,x0): 设定初始值x0,这个初始值只适应于中型问题; x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options): 通过options选项指定优化参数;x=linprog(problem): 线性规划问题通过构造 problem 来指定。MATLAB 优化工具箱检验如下:f=-1,-2;A=2,3;3,2;6,1;1,6;b=12;12;18;18;x,fval=linprog(f,A,b,)Optimization terminated.x =2.00002.6667
11、fval =-7.3333 f=-1,-2;A=2,3;3,2;6,1;1,6;b=12;12;18;18;x,fval.exitflag,output,lamda=linprog(f,A,b,)第三章 非线性规划1.概述非线性规划是具有非线性约束或目标函数的数学规划,是运筹学的一个重要分支。非线性规划研究一个 n 元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。非线性规划是 20 世纪 50 年代才开始形成的一门新兴学科。1951 年 H.W.库恩和 A.W.塔克发表的关于最优性条件(后来称为库恩塔克条件)的论文是非线性规划正式诞生的一个
12、重要标志。在 50 年代还得出了可分离规划和二次规划的 n 种解法,它们大都是以 G.B.丹齐克提出的解线性规划的单纯形法为基础的。50 年代末到 60 年代末出现了许多解非线性规划问题的有效的算法,70 年代又得到进一步的发展。非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用,为最优设计提供了有力的工具。20 世纪 80 年代以来,随着计算机技术的快速发展,非线性规划方法取得了长足进步,在信赖域法、稀疏拟牛顿法、并行计算、内点法和有限存储法等领域取得了丰硕的成果。2.定义如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划
13、问题困难得多。而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到(特别是可行域的顶点上达到) ;而非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。3.数学模型对实际规划问题作定量分析,必须建立数学模型。建立数学模型首先要选定适当的目标变量和决策变量,并建立起目标变量与决策变量之间的函数关系,称之为目标函数。然后将各种限制条件加以抽象,得出决策变量应满足的一些等式或不等式,称之为约束条件。非线性规划问题的一般数学模型可表述为求未知量x1,x2,xn
14、,使满足约束条件:gi(x1,xn)0 i1,mhj(x1,xn)0 j1,p并使目标函数f(x1,,xn)达到最小值(或最大值)。其中f,诸gi和诸hj都是定义在n维向量空间Rn的某子集D(定义域)上的实值函数,且至少有一个是非线性函数。上述模型可简记为:min f(x)s.t. gi(x)0 i1,mhj(x)0 j1,p其中x(x1,,xn)属于定义域D,符号min表示“求最小值” ,符号s.t.表示“受约束于” 。定义域D 中满足约束条件的点称为问题的可行解。全体可行解所成的集合称为问题的可行集。对于一个可行解x*,如果存在x*的一个邻域,使目标函数在x*处的值f(x*)优于 (指不大
15、于或不小于)该邻域中任何其他可行解处的函数值,则称x*为问题的局部最优解(简称局部解) 。如果f(x*)优于一切可行解处的目标函数值,则称x*为问题的整体最优解(简称整体解) 。实用非线性规划问题要求整体解,而现有解法大多只是求出局部解。4.全局最优解与局部最优解记(NP)的可行域为 K 。若 x* K ,并且f (x* ) f (x), x K则称 x*是(NP)的整体最优解, f (x* )是(NP)的整体最优值。如果有f (x* ) 式的 有一阶连续偏导),(jfXg设 是一个可行解, 下一步考察时,要讨论约束.(0)分析: 应有(0)(0)jj g若 ,则在 内,()jgX(0)UX有
16、 ,此时各个方向均可选.j若 , 则(0)j(0)jg形成的边界, 影响下一步选向.故称 ()0j是 点的有效约束.(0)X(2) 可行方向(对可行域来说)设 为可行点, 为某方向,若存在 ,0P0使得 () 0,R则称 是 点的一个可行方向.P0X(a) 可行方向 与有效约束 的梯度 关系是:()jgX(0)jgX.(0)TjP记有效约束下标集(0)|,1jJgjl若 为 的可行方向, 则存在 , 使得当 ,有P()X00(0)(),j jXPgXjJ从而 (0) (0)0d,j TjggjJ见下图.1x2x|()0jRXg()fX()0jX()(0)1gX(0)2gX(0)2gX(0)1g
17、XP(0)X(3) 下降方向(对目标函数来说)设 , 对某 方向, 若在 内, 0XRP0,(0)(0)fXPf则称 是一个下降方向.下降方向判定:P若 ,则 是 的一个下降方向.(0)Tf(0)X因为 (0)f,(0)()TXfPo只要 充分小, 都有 .0f(4) 可行下降方向若 的某方向 是 可行方向+下降方向,则称 是 的可行下降方(0)RP(0)X向.即 存在 ,当 时,有 且 ,0(0)jgX(0)ff是继续寻优方向.定理(局部极(最)小必要条件)设 是 局部极小点, (有效约Xmin(),()0ifXg(),jfXgJ束下标集)在 处可微, 在 处连续, 则在 处无可行下降方向j
18、J,即不存在 , 使P(*)*()0,TjgPjfX证 否则由(*)及前面的分析, 可找出可行下降点二. 库恩塔克条件(局部最小的必要条件)设 是极小值点, 和 有一阶连续偏导,且有效约束梯度线X ()fX()jg性无关,则 , 使1.l1()()00,2,.,.ljjjjfXgXgl简称 K-T 条件对一般非线性规划, (3)min(),01,(),ijfXhimgjl它的 K-T 条件如下设 是极小值点, 相应函数有一阶连续偏导,且有效约束的 和X ()ihX线性无关,则 和 , 使()jgJ12(,.)Tm1(,.)TlM1()(00,.,2.mli jjfhXggjl其中 , 称为广义
19、 Lagrange 乘子.12,.m1l3二阶充分条件设 是可行点,存在向量 和 ,满足X 12(,.)Tm1(,.)TlM(4)若有(5)011222 ZXhguZmi lj jiT if 则 为非线性规划的严格局部极小点。这里要求F(X),G(X),H(X)二次连续X可微。分析如下非线性问题xXf21ins.t. 01g2120921xXh由K-T条件得: 021212ux021u212x0,可解得 78.0,05.12u进一步考察充分条件:20,22 Xhf 0,0212 gg代入 (5)中: zz2121 78.25., z21214.0.,不管Z1,Z1取什么值,上式大于零,所以所求
20、为极小点。第四章 一维最优化方法一、优化计算的数值解法及收敛条件最优化技术总体包含两个方面,首先是根据实际的生产或科技问题构造出优化的数学模型,再采取恰当的优化方法对数学模型进行求解。无论是无约束优化问题还是约束优化问题,其本质上都是求极值的数学问题。从理论上,其求解可用解析法,即微积分学和变分法中的极值理论,但由于实际中的优化数学模型多种多样,往往目标函数及约束函数都是非线性的,采用解析法求解变得非常复杂和困难,甚至在有些时候无法求解数学模型。因此,随着优化技术和电子计算机技术的不断发展,逐渐产生了以计算机程序计算为主的一种更为实用的求优方法数值计算法,通常也称为求解非线性规划的最优化方法。
21、1、数值计算法的迭代过程最优化方法是与电子计算机及计算技术的发展紧密相联系的,数值计算法的迭代过程也是依赖于计算机的运算特点而形成的。所以,计算过程完全有别于解析法的求解过程。优化方法的迭代特点是:按照某种人为规定的逻辑结构,以一定的格式反复的数值计算,寻求函数值逐次下降的设计点,直到满足规定的精度时才终止迭代计算,最后的设计点即为欲求的最优点,所得到的解是满足规定精度的近似解。图 1-1 优化问题的迭代过程总体做法如图 1-1 所示,由选定的初始点 出发,沿着某种优化方法所(0)x规定的搜寻方向 ,以一定的步长 ,按迭代格式产生第一个新的设计点(0)s(0), ,且同时满足 ,则 是优于 的
22、设(1)x()()()=(1)(0)F(1)x(0)计点。同理,再以 为新的起点,产生第二个设计点 ,(1)x(2)。这样,依次得到的设计点 称为(2)(1)()s (1)(3)()1),k x计算中的迭代点,产生迭代点的一般格式为 , 上式* ()()()kksMERGEFORMAT Error! Reference source not found.称为优化计算的基本迭代公式。其中的第 次搜寻方向 及步长 是根据 点目标函数值和约束函k()ks()k()kx数值等信息依据某种算法而确定的,其最终目的是使 成立。()(1)kFx按式* MERGEFORMAT Error! Reference
23、 source not found.反复迭代计算后产生的点列 各点的函数值依次下降,即(1)2(3)()1),k xx很显然,迭代点必将不断向理论最优()()()()kFF 点逼近,最后必将达到满足预定精度要求的近似最优点,记作 。*x由迭代算法的基本迭代公式可见,优化方法的主要问题乃是解决迭代方向和迭代步长 的问题,由于 与 的确定方法及()1,2)ks()1,2)k()ks()k特性的不同而构成了不同的优化方法,即最优化方法。已有的各种优化方法尽管在选取方向和步长的原则上各有不同,但有一点是共同的,就是各种方法都是以保证目标函数值稳定的下降为前提,按照基本迭代公式通过计算机进行迭代计算并最
24、终获得理论最优点的近似解。2、迭代计算的终止准则数值计算采用迭代法产生设计点的点列 是无穷(1)2(3)()1),k xx的,但在解决实际问题的时候必须在适当的时候结束这种迭代计算,这就是迭代终止准则问题。优化设计是要求出设计问题的最优解,从理论上,人们当然希望最终迭代点到达理论的极小点,或者使最终迭代点与理论极小点之间的距离足够小时即可终止迭代。但这在实际计算中是办不到的,因为对于一个待求的优化问题,其理论极小点在哪里是未知的。因此,只能通过迭代计算获得的点列所提供的各种信息来判断是否应该结束迭代计算,不同的判断依据就构成了不同的终止准则。由于实际问题具有多样性,且迭代过程与目标函数的性质密
25、切相关,所以很难建立一个统一的迭代终止准则,往往还需要根据实际计算的具体情况进行判断和选择。经常被采用的终止准则如下:3、点距准则若相邻的两个迭代点 之间的距离已达到充分小,即满足()(1)k、x()(1)kx式中 是给定的收敛精度,取 为最优点,即 。1() ()*kx4、函数下降量准则由于最优点的很小邻域里函数值的变化很小,所以当相邻两次迭代点的函数值下下降量已达到充分小时,预示着已很接近最优点了当 时,采用函数值绝对下降量准则()1kFx()(1)kkFx当 时,采用函数相对下降量准则()k()(1)2)kkFx其中 为收敛精度,取 为最优点,即 。12,()kx()*k二、一维优化方法
26、求解以为目标函数 f(x)最优解的过程,称为一维优化,所使用的方法称为一维优化方法。一维优化方法是优化方法中最简单、最基本的优化方法。它不仅用来解决一维目标函数的求最优问题,而且常用于多维优化问题在既定方向上寻求最优步长的一维搜索。对于任一次迭代计算,总是希望从已知的点 出发,沿给定的方向 搜()kx()ks索该方向上到目标函数值最小的点 ,即求步长因子 的最优值,使(1)kx()k()minkffs这种在确定的搜索方向 上求步长因子 的最优取值使得目标函数在该()ks()方向上达到极小值的过程称为一维搜索优化计算方法或称为单变量优化计算方法。一维搜索最优化方法一般需要分两步进行:第一步是在
27、方向上确定使得()ks目标函数值取得最小值的步长因子 所在的区间;第二步是求出该区间内的最()k优步长因子 。()k1、黄金分割法黄金分割法也称 0.618 法。本方法是通过对分割点函数值进行比较来逐次缩短区间的,属于应用序列消去原理的直接探索法。设有目标函数 ,给定初始搜索区间 ,收敛精度为 。()fx,ab黄金分割法区间缩短首先,在初始搜索区间内取两个点 与 ,如图所示, 且在区间内对1x212x称位置,两点对应的函数值分别为 和 ,比较 与 的大小,()yf2()yfy有下面两种情况:(1)若有 ,如图 8-13(a)图所示,极小点必在区间 内,此时令12y 2,a,实现区间的一次缩短;
28、2bx(2)若有 ,如图所示,极小点必在区间 内,此时可令 ,缩12 1,xb1x短后的新区间为 。,xb确定a,b开始 215tq=a+t(b-a)2=(q)p=a+b-q1=(p)p-qspsilon(hdelta)If(phipg20找出满足 g(t1)g(t2),g(t3)g(t2)的 t1,t2,t3A=2(t2-t3)g1+(t3-t1)g2+(t1-t2)g3A=0?gttgtu321213132 321 U 是否在 t1,t3 之间g=g(u)u-t2f0epsilon1 f3=subs(y,x,x3);if f0-f3x3x2=x0;x0=x3;f2=f0;f0=f3;els
29、ex1=x0;x0=x3;f1=f0;f0=f3;endend k=k+1endbest_x=x0;best_fx=f0;第五章 智能算法智能计算也有人称之为“软计算” ,是们受自然(生物界)规律的启迪,根据其原理,模仿求解问题的算法。 利用仿生原理进行设计(包括设计算法),这就是智能计算的思想。这方面的内容很多,如人工神经网络技术、遗传算法、模拟退火算法、模拟退火技术和群集智能技术等。 这里主要介绍人工神经网络和遗传算法。一 人工神经网络1 人工神经网络概述T.Koholen的定义:“人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作
30、出的交互反应。 ” 人工神经网络的基本特点分为结构特点性能特点和能力特点。结构特点:信息处理的并行性、信息存储的分布性、信息处理单元的 互联性、结构的可塑性。性能特点:高度的非线性、良好的容错性和计算的非精确性。能力特点:自学习、自组织与自适应性。人工神经网络的基本功能包括联想记忆、非线性映射、分类与识别、优化计算、知识处理。人工神经网络的缺点是模型为黑匣子,得到的结果不易解释;模型可能会出现过拟合的情况;结果可能是局部最小值,而非全局最优值。2 神经元与神经网络基本模型2.1 神经元的基本模型2.1.1 生物模型 神经网络的基本模型2.1.2 数学模型x(x1,xm)T 为输入向量,y 为输
31、出,wij 是权系数;输入与输出具有如下关系: 为阈值,f(X)是激发函数;它可以是线性函数,也可以是非线性函数。2.1.3 常用激发函数(变换函数)(1)阀值型(2)非线性变换函数( sigmoid )miijjj xwf1)(.0),1(0)sgn)(xxx,1)(xexfxxef(3)分段线性变换函数(4)概率性变换函数2.2 神经网络的基本模型2.2.1 前馈型网络:2.2.2 反馈型网络:2.3 神经网络的工作方式2.3.1 学习期(训练期): 各计算单元状态不变,各连接线上权值通过学习来修改。2.3.2 工作期:连接权固定,计算单元状态变化,以达到某种稳定状态。3 神经网络的学习方法3.1 学习方式3.1.1 教师学习外界存在一个教师,对给定的一组输入,提供应有的输出(标准答案) ,学习系统可根据实际输出与标准答案之间的差值来调整系统参数。1x2nx 1y2ny 输入层隐层输出层1x21nxn1y21nyn学 习系 统教师环境 输入应有响应+误差信号实际响应