2022年蚁群算法报告分享 .pdf

上传人:H****o 文档编号:32982508 上传时间:2022-08-09 格式:PDF 页数:19 大小:666.13KB
返回 下载 相关 举报
2022年蚁群算法报告分享 .pdf_第1页
第1页 / 共19页
2022年蚁群算法报告分享 .pdf_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《2022年蚁群算法报告分享 .pdf》由会员分享,可在线阅读,更多相关《2022年蚁群算法报告分享 .pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、蚁群算法报告学院: 专业: 学号: 姓名: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - 目录第一部分:蚁群算法原理介绍. 31.1 蚁群算法的提出 . 3 1.2 蚁群算法的原理的生物学解释 . 3 1.3 蚁群算法的数学模型. 3 1.4 蚁群算法实现步骤 . 5 第二部分:蚁群算法实例-集装箱码头船舶调度模型. 6 2.1 集装箱码头船舶调度流程图. 6 2.2 算例与MATLAB编程的实现 . 6 2.2.1 算法实

2、例 . 6 2.2.2 Matlab 编程 . 8 第三章: MATLAB 优化设计工具箱简介 . 14 3.1 MATLAB优化工具箱 . 14 3.1.1 优化工具箱功能: . 15 3.2 MATLAB 优化设计工具箱中的函数. 15 3.2.2 方程求解函数 . 15 3.2.3 最小二乘(曲线拟合)函数 . 16 3.2.4 使用函数 . 16 3.2.5 大型方法的演示函数 . 16 3.2.6 中型方法的延时函数 . 16 3.4 优化函数简介 . 17 3.4.1 优化工具箱的常用函数 . 17 3.4.2 函数调用格式 . 17 3.5 模型输入时所需注意的问题. 19 名师

3、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 19 页 - - - - - - - - - 第一部分:蚁群算法原理介绍1.1 蚁群算法的提出蚂蚁是地球上最常见、数量最多的昆虫种类之一,常常成群结队地出现于人类的日常生活环境中。受到自然界中真实蚁群集体行为的启发,意大利学者 M.Dorig 。于 20 世纪 90 年代初,在他的博士论文中首次系统地提出了一种基于蚂蚁种群的新型优化算法蚁群算法28(Ant Colony Algorithm, ACA) ,并成功地用于求解旅行商问

4、题,自1996 年之后的五年时间里,蚁群算法逐渐引起了世界许多国家研究者的关注,其应用领域得到了迅速拓宽。1.2 蚁群算法的原理的生物学解释据观察和研究发现,蚂蚁倾向于朝着信息激素强度高的方向移动。因此蚂蚁的群体行为便表现出了一种信息激素的正反馈现象。当某条路径上经过的蚂蚁越多,该路径上存留的信息激素也就越多,以后就会有更多的蚂蚁选择它。这也就是说,在蚂蚁搜寻食物的过程中,对于较短的路径,在单位时间内经过的蚂蚁数量越多,那么该路径上信息激素强度越高。由于信息激素强度较高,则可以吸引更多的蚂蚁沿相同的路径进行搜索,这又使该路径上的信息激素强度增大。而对于距离较长的路径,由于单位时间内经过的蚂蚁数

5、量较少,该路径上信息激素强度较低,并且随着信息激素的挥发,该路径信息激素强度逐渐减弱,不再吸引蚂蚁沿这条路径运动。蚂蚁个体之间就是通过信息激素的间接通信来相互协作形成正反馈,进行路径的最优选择,从而达到搜索食物的目的。1.3 蚁群算法的数学模型将 TSP问题(traveling salesman problem) 作为实例,简单的 TSP描述过程为 :假设有 n 座城,某个旅者自一城开始, 依次经过各城市后回到出发远点,问题就是找到一条距离最小的走法。假设 bi (t)代表 t 时位置是 i 的蚂蚁数量, ?ij(t)代表 t 时路线 (i, j)的所包含的信息量,n 代表 TSP问题的大小,

6、m 则代表蚁群中所有蚂蚁数, 那么1( )nitmb t; |,ijiic cC则为 t 时 C 集合里元素 (城市)相互连接 lij 上的遗存的信息数量的合集。 在开始时各路线上的信息数量相等,假设 ? ij(0) =const,最基本的蚁群算法求解最优是经有向的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 19 页 - - - - - - - - - 图断( C,L, )来达到的。蚂蚁k (k=1,2,.m),运动的过程中,其转移方向是依据每条路线上的信息数量。我们

7、利用禁忌表tabuk (k =1,2,., m)来代表蚂蚁 k 已经经过的城市,随着tabuk进化过程变化,集合也做出动态的改变。在蚂蚁搜索前进的过程,依据各路线上包含的信息以及路线下的启发式信息,用来算出状态转移下的概率。( )kijPt代表 t 时下蚂蚁k 经城市 i 运动到城市 j 时的状态转移下的概率。k0( )( )( )jallowed( )( )kkijikijijiksallowedttP ttt否则若(1) 式(1)中,allowedk=C-tabuk代表 k 蚂蚁要到下一个城市时允许选择的元素 ; 代表信息的启发式的因素,代表运动路线的重要程度,代表了蚂蚁不断地运动积累信息

8、,在后续的蚂蚁移动过程中的作用,它数值较大,说明这个蚂蚁容易于选择别的蚂蚁所走过的路线,这些蚂蚁的协作运动越强 ; 代表的是期望的启发因素,代表清晰度下的比较的重要程度,反映了蚂蚁在移动中累计的启发式的信息,代表这个蚂蚁在选择路线过程中的重要性,它的数值大,那么这种状态的转移概率,比较与贪心规则相近似;ik (t)代表是启发式函数 : ikij1t =d( )(2)式(2) 中,dij代表的是邻近两个元素之间距离,对于蚂蚁来说,dij值越小,那么nik(t) 值就越大,( )kijPt值也越大。显然,这个启发式的函数代表的是蚂蚁自城市i 到城市 j 的期望度。如果残留的信息素太多,要使残留的信

9、息素不掩盖启发式的信息,当这个蚂蚁完成一个元素或走完n 个所有的城市,也就是说蚂蚁一个旅程完成,需要更新残留的信息。这是仿效人类的大脑记忆下的特点提出的信息更新的模式,也就是说我们的大脑存储的新信息后,原先存储的旧的信息会伴随时间的推进,不断被我们逐渐的淡化,到最后甚至是忘记。因此, t+n 时在路线 (i, j)的信息调整规则如下 : ()(1)( )( )ijijijtntt(3) 1( )( )mkijijktt (4) 式(4.3) 中, 系数代表的是信息挥发, 那么 1- 因子代表的是信息的残留,为避免信息的过多累积, 系数的取值的范围 :0,1 ;( )ijt代表 这 次 循 环过

10、 程 中 路 线 (i, j) 上 信 息 的增 加 数 量, 原 先 的时 间(0)0ij,1( )mkijkt代表的是 k 蚂蚁,它旅行过程中在路线(i, j)上的留名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - 存下来的信息。不同的信息更新的模式下, 有不同的三种模型, 对整体的信息而言,也就是蚂蚁走完一个循环后所有路线上的信息的更新,选择求TSP时较为准确的模型,于是,选择ant-cycle模型: ,( )0,K(i,

11、j)kKijQLt若第只蚂蚁在本次循环中经过否则式(4.5) 中 Q 代表信息素的强度,此强度在一定范围内影响的是算法收敛快慢 ,Lk 代表蚂蚁在这次旅程中所走路线的总长度。1.4 蚁群算法实现步骤以 TSP为例,蚁群算法的具体实现步骤如下: 1)初始化各参数 : 令 ?ij(0)=C(C 为常数) ,?ij=0, 迭代次数 IT=0,最大迭代次数为IT_M,计时器 t=0,设置, , ,Q 的值,将 m只蚂蚁随机放在 n 个城市上,把蚂蚁k(k=1, 2,.,m)。目前所处城市设为禁忌表 Tk的第一个元素 ; 2)开始循环,蚂蚁k(k=1,2,.,m)根据式 (3-2) 状态转移概率选择下一

12、城市,并将选择过的城市j 加入到禁忌表 Tk,直到禁忌表中包含所有城市 n; 3)计算蚂蚁 k(k=1,2,.,m)遍历所有城市的总路径长度Lk,比较所有蚂蚁找到的路径,选择一条最短路径,根据特定的公式更新路径上的信息素浓度 ; 4)重新迭代, IT =IT+1; 5)判断是否满足条件 : 判断迭代次数 IT _ IT M且所有蚂蚁选择同一条路径。满足的话输出最短路径, 否则清空禁忌表 Tk, 跳转到步骤 2); 6)得到结果,程序结束。流程图如下:开始初始化各参数:IT=0,t=0各路径上的信息素为0,设置, , , Q,将m只蚂蚁放在n座城市上IT3IT_M根据公式求出蚂蚁K状态转移概率选

13、择下一个城市,并将选择的城市加入禁忌表TK中禁忌表包含所有城市?计算选择出蚂蚁走过的而一条最佳路径,根据公式更新路径上的信息素浓度,保留禁忌表中的第一个元素,清空其他元素,IT=IT+1输出结果,得到最短路径NYYN结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 19 页 - - - - - - - - - 第二部分: 蚁群算法实例 -集装箱码头船舶调度模型2.1 集装箱码头船舶调度流程图程序开始1.计算俩个船舶之间的时间间隔2.初始化信息素3.设置相关参数和变量设置

14、迭代次数IT_COUNT=0设置蚂蚁计数Ant-count=0为当前蚂蚁随机分配出发的泊位蚂蚁按照某种规则选择船舶当蚂蚁走过船舶数量计算蚂蚁走过的路径,更新信息素IT_COUNT=迭代次数输出最优路径程序结束NN图 2.1 集装箱码头船舶调度流程图2.2 算例与 matlab编程的实现2.2.1 算法实例设定种群大小N=5 , 船舶数量vessel Number=8 ,泊位数量berth Number=3 , 每个泊位上有 3 台岸桥,岸桥的平均卸货速度为35 箱/ 小时,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心

15、整理 - - - - - - - 第 6 页,共 19 页 - - - - - - - - - 蚁群算法中 =1,=2.5 , =0.85 ,COUNTmax=20 通过 MATLAB 编程实现以下 : Step 1 蚁群初 始化, 设时间的计数 器t=0 ,初 始迭代 的次 数ITCOUNT=0,Qijl= 0 将每个参数进行合理设置。于此同时,还要设好题中的一些数据、条件以及泊位的条件和船舶载货量,以及模型中最大的岸桥数量等等,还有要按照船舶的载货数量,来算出两个城市间的距离; Step 2可行结点的集合进行初始化,创建一个模型禁忌表,并在禁忌表中方知 k 只蚂蚁起始的位置,并且将链表的索

16、引设置为s=l; Step 3第 k 只蚂蚁来说,出发的起始点是Bk,船舶 J 的选择按照的是状态转移的规律,可以选择的可能性有: 如果船舶的要求在泊位Bk能被满足,那么就将位置 (K,J) 存在禁忌表中,蚁群算法进行下去; 如果船舶的要求在泊位Bk 不能被满足,那么自动选择下一个可供选择的泊位,也就是 Bk+1,重新回到 step 3; 将这个过程重复进行,一直到链表满了为止,也就是说全部城市都被旅行过了。 Step 4用得到的信息素来对规则进行更新。利用各个路线算出船舶等待的时间,并同当前找到的最优解来进行对比,选出本次更优的路线,来更新当前的全局的最优解。将全部路线上的信息量进行更新,t

17、=t+I, IT COUNT=IT COUNT+l ,Qij=0,清空禁忌表 ; Step 4假如是 k 次迭代结束, 仍然是没有满足算法条件, 那么需要重新开始算法迭代 ; Step 5假如连续进行迭代IT_COUNTn 次以后,如果得出的最优值还是没有明显的改进时, 则自适应修改 P的值,直达到 = min条件后停止修改。 Step 5 如果 IT_COUNT COUNT max ,那么重复 Step2,如果达到了最大的迭代次数 IT_COUNT max ,则算法结束。应用蚁群算法优化得到船舶调度情况泊位 1:1 号船、6 号船泊位 2:2 号船、7 号船、5 号船泊位 3:3 号船、4

18、号船、8 号船得到所有船舶在港时间为81.2 小时,蚁群算法得到的船舶调度方案有效地缩短了所有船舶的在港时间。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 19 页 - - - - - - - - - 图 2.2 基于优先权的先到先服务原则的船舶泊位分布图总体上来看,由于船舶的优先权差距不明显,所以对于吨位差别不是很大的集装箱船舶,集装箱码头调度基本上是根据先来先服务的原则。因此,通过上述实例验证的调度结果表明: 在以先到先服务的原则为前提下,兼顾大船优先调度,可以实现

19、所有船舶在港时间最小的目标。2.2.2 Matlab 编程MaxNc=20 AntNum=5 %计算船舶到港时间差 (城市间距离 ) LabelMatrix=0 0 0 -2 -3 3 -4 -4 1 1 1 3 -3 2 1 -3 -1; 0 -1 3 -2 -3 -1 0 -1 -2 -1 3 4 0 0 -4 2 -1 %各船舶坐标矩阵X_LabelMatrix=0 0 0 -2 -3 3 -4 -4 1 1 1 3 -3 2 1 -3 -1 %各船舶 x 轴坐标矩阵Y_LabelMatrix=0 -1 3 -2 -3 -1 0 -1 -2 -1 3 4 0 1 -4 2 -1 %各船舶

20、 Y 轴坐标矩阵mm=max(size(LabelMatrix)%泊位数量DistanceMatrix=zeros(mm);%初始距离矩阵为空矩阵for i=1 :mm forj=l:mm DistanceMatrix(i,j)=sqrt(X_LabelMatrix(1,i)-X_LabelMatrix(1,j)2+(Y_LabelMatrix(l,i)-Y_LabelMatrix(l,j)2); %各城市点间距离矩阵end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共

21、 19 页 - - - - - - - - - end DistanceMatrix %显示距离矩阵%定义其他初始变量R=0 1.5 1.8 2 0.8 1.5 1 2.5 3 1.7 0.6 0.2 2.4 1.9 2 0.7 0.5 2.2 3.1 0.1%各船舶的装卸时间,单位h Q=1%初始蚂蚁循环一周释放信息量tao0=Q/100%初始路径上的信息素浓度QV=9%船的装卸时间是 9h %给 tao矩阵 miu 矩阵节约值 s 矩阵赋初值for i=1 :mm for j=l:mm if i=j s(i,j)=DistanceMatrix(l,i)+DistanceMatrix(l,j

22、)-DistanceMatrix(i,j);%节约值tao(i,j)=tao0;%给路径上信息赋初值miu(i,j)=1/DistanceMatrix(i,j);%miu矩阵end end end for i=2:mm s(l,i)=3/DistanceMatrix(l,i);% 这是什么意思,s(i,l)=1 /DistanceMatrix(i,l); end s tao mru best cost=zeros(l,MaxNc) %最优路线长度,每次迭代都会产生一个最优解cost=zeros(MaxNc,AntNum) %路线长度矩阵,每次迭代每只蚂蚁都产生一个路径长度Best_cost=z

23、eros(MaxNc,25)% 初始化,最优路径矩阵%开始迭代for Nc=1:MaxNc A_tao=zeros(mm)%各船舶之间的增量矩阵tour=zeros(AntNum,25)%初始路径矩阵为零, 每次迭代的每只蚂蚁都产生禁忌表来替换tao%tao矩阵是随着迭代变化的if Nc=10&Nc40 Q=3,rou=O.S,alpha=4,belta=3,gama=3 End %迭代参数的变化,动态调整参数for Ant=1:AntNum % 蚂蚁数目sumload=0 %初始装载量为 0 PartNum=1 %产生部分路径的数目cur_pos=1 %初始位置为等泊aa=randperm(

24、mm)% 随机置换船舶tabu= 1 %禁忌表初始为只有船舶的集hh=length(rn) %泊位个数while hh=0&sumload=QV %当船舶没有被访问完时继续,当泊位还有空间时继续A= p= for k=l :hh if sumload+R(rn(k)0) %去除不符合容量约束的点D=max(size(C) %符合容量约束的点规模%在满足容量约束的点中选择概率大的点for j=1:D p(j)=(tao(curios,C(j)alpha)*(miu(cur_pos,C(j)belta)*(s(cur_pos,C(j)gama) %计算从 cur_pos到 C 小点的概率的分子en

25、d sump=sum(p)% 概率公式的分母p=p/sump%到达满足要求的各点的概率名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 19 页 - - - - - - - - - r=rand()%产生一个随机数a,b=sort(p)%将 p 矩阵从小打到排列al=rot90(rot90(a) b1=rot90(rot90(b)%将矩阵从大到小排列%轮盘赌策略选择城市if r=max(p)%当随机数大于最大概率时选择概率次大的点curios=C(b1(2) sumloa

26、d=sumload+R(C(bl(2) tabu=tabu,cur_pos m=m(find(m=C(b1(2) hh=hh-1 if hh=0 tabu=tabu,l end end end end tabu%输出各个蚂蚁的禁忌表,以用来求蚂蚁的cost,(正常情况下会每迭代一次每只蚂蚁输出一个禁忌表) tabu_size=max(size(tabu)% 禁忌表的规模for i=1:tabu_size tour(Ant,i)=tabu( l ,i) end %用 tabu里的数据替换 tour 矩阵里的数据,以记录路径for i=1:(tabu_size-1) cost(Nc,Ant)=co

27、st(Nc,Ant)+DistanceMatrix(tabu(i),tabu(i+1) %计算禁忌表中路线总长度end cost%输出矩阵end best_cost(l,Nc)=min(cost(Nc,:)%替换最好距离矩阵的数据m n=sort(cost(Nc,:) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 19 页 - - - - - - - - - best tour(Nc,:)=tour(n(1),:)%-记录每一次迭代的最好解的路径%开始更新信息素为下一

28、次迭代准备q v=sort(cost(Nc,:)%从小到大排列第Nc 次迭代的距离goodAnt 1=tour(v(1), :)%将各个精英蚂蚁的禁忌表矩阵提取出来goodAnt2=tour(v(2),:) goodAnt3=tour(v(3),:) goodAnt4=tour(v(4),:) goodAntS=tour(v(5),: ) badAnt=tour(v(AntNum),:)% 提取出最差解的矩阵%开始更新城市信息素,采用全局更新策略for i=1 :mm for j=l :mm if i=j tao(i,j)=(1-rou)*tao(i,j); end end end tao%首

29、先更新所有路径的信息素,考虑挥发的因素,更新五只精英蚂蚁的信息素tourl=goodAnt1(find(goodAnt 1 0)%得出除去零点的第一只蚂蚁的路径矩阵for i=1 :(length(tourl)-1) A_tao(tourl(i),tourl(i+1)=A_tao(tourl(i),tourl (i+1)+Q/cost(Nc,v(1)% 更新了第一只蚂蚁的路径信息素增量A_tao(tourl(i+1),tourl(i)=A_tao(tourl(i),tourl (i+1)% 使得信息素矩阵仍为对称矩阵end A_tao%输出 A_tao 矩阵tour2=goodAnt2(fin

30、d(goodAnt20) %得出除去零点的第二只蚂蚁的路径矩阵for i:(length(tour2)*1) A_tao(tour2(i),tour2(i+1)=A_ tao(tour2(i),tour2(i+l)+Q/cost(Nc,v(2)% 更新了第二只蚂蚁的路径信息素增量Aes tao(tour2(i+1),tour2(i)=Aes tao(tour2(i),tour2(i+1) end A tao%再次输出 A tao 矩阵tour3=goodAnt3(find(goodAnt30)% 得出除去零点的第三只蚂蚁的路径矩阵for i=1 :(length(tour3)-1) A_tao

31、(tour3(i),tour3(i+1)=A tao(tour3(i),tour3(i+1)+Q/cost(Nc,v(3)% 更新了第三只蚂蚁的路径信息素名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 19 页 - - - - - - - - - 增量A_tao(tour3(i+1),tour3(i)=A_tao(tour3(i),tour3 (i+1) end A_tao%再次输出 tao矩阵tour4=goodAnt4(find(goodAnt40) %得出除去零点

32、的第四只蚂蚁的路径矩阵for i=1:(length(tour4)-1) A_tao(tour4i),tour4(i+l)=A_tao(tour4(i),tour4(i+1)+Q/cost(Nc,v(4) %更新了第四只蚂蚁的路径信息素增量A_tao(tour4(i+1),tour4(i)=A_tao(tour4(i),tour4(i+l) end A_ao%再次输出 tao 矩阵tours=goodAntS(find(goodAntS0) %得出除去零点的第五只蚂蚁的路径矩阵for i=1 :(length(tour5)-1) A_tao(tour5(i),tour5(i+l)=A_tao(

33、tours(i),tour5(i+l)+Q/cost(Nc,v(5) %更新了第五只蚂蚁的路径信息素增量A_tao(tour5(i+l),tour5(i)=A_tao(tour5(i),tour5(i+1) end A_tao%再次输出 tao矩阵%更新糟糕蚂蚁的信息素tour6=badAnt(find(badAnt0)% 得出糟糕蚂蚁的除去零点的路径矩阵for i=1 :(length(tour6) 一 1) A_tao(tour6(i),tour6(i+1)=A_tao(tour6(i),tour6(i+1)-Qlcost(Nc,v(AntNum)%更新糟糕蚂蚁的路径信息素增量A_tao(

34、tour6(i+ 1),tour6(i)=AJao(tour6(i),tour6(i+1) end A_tao%最终更新后的信息素矩阵tao=tao+A_tao%更新所有路径的信息素%将信息素限制在mintao 和 maxtao之间maxtao=SO1rou*(Q/best cost(l,Nc) mintao=maxtao/ 10000 for i=1 :mm for j=l :mm if i=j tao(i,j)=0 elseif i=j&tao(i,j)=maxtao tao(i,j)=maxtao elseif i=j&tao(i,j)=mintao tao(i,j)=mintao en

35、d end end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 19 页 - - - - - - - - - 本文建立的集装箱码头船舶调度优化模型能够比较实际的反映出集装箱码头的调度情况,即当优先权较大的船舶和优先权较小的船在相差较短的一段时间内相继到港,集装箱码头可以根据集装箱码头条件采取大船优先调度的策略 ; 而当船舶先后到达相差时间较大的情况到港,以所有船舶在港时间最短为目标,必然遵循先来先服务的原则,优先调度先行到港的船舶。此外,实验结果表明在本文的模型中所

36、设计采用的蚁群算法能够有效得出船舶在港时间的近似最优值即所有船舶在港时间最小。第三章: Matlab 优化设计工具箱简介在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容:1)建立数学模型即用数学语言来描述最优化问题。模型中的数

37、学关系式反映了最优化问题所要达到的目标和各种约束条件。2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。3.1 Matlab优化工具箱工具箱是 MATLAB 函数的综合程序库 ,不同的工具箱包含有大量相关的库函数, 在进行复杂的运算时,只需调用相关的函数就可完成给定的任务。最优化工具箱( Optimization Toolbox )是 30 多个工具箱之一,主要用于求解各种工程最优化设计问题。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -

38、- - - - - - 名师精心整理 - - - - - - - 第 14 页,共 19 页 - - - - - - - - - 3.1.1 优化工具箱功能:(1)求解无约束条件非线性极小值;(2)求解约束条件下非线性极小值,包括目标逼近问题、极大- 极小值问题和半无限极小值问题;(3)求解二次规划和线性规划问题;(4)非线性最小二乘逼近和曲线拟合;(5)非线性系统的方程求解;(6)约束条件下的线性最小二乘优化;(7)求解复杂结构的大规模优化问题。3.2 Matlab 优化设计工具箱中的函数最优化工具箱有11 个专有的最优化函数,分别用于求解线性规划问题、无约束问题和约束最优化问题。3.2.1

39、 最小化函数3.2.2 方程求解函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 19 页 - - - - - - - - - 3.2.3 最小二乘(曲线拟合)函数3.2.4 使用函数3.2.5 大型方法的演示函数3.2.6 中型方法的延时函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 19 页 - - - - - - - - - 3.4

40、优化函数简介3.4.1 优化工具箱的常用函数求解线性规划问题linprog 边界约束条件下的非线性优化fminbnd 求解多变量函数的最小化fminunc 求解无约束非线性最小化fminsearch 求解二次规划问题quadprog 求解有约束的非线性最小化fmincon 求解多目标规划的优化问题fgoalattin 求解最小化,最大化问题fminimax 3.4.2 函数调用格式(1)linprog函数x,fval,exitflag,output,lambda=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 输入参数:f :目标函数系数向量A:不等式约束系数矩

41、阵b:不等式约束常数向量Aeq:等式约束系数矩阵Beq:等式约束常熟向量lb :x 的可行域下界ub:x 的可行域上界x0:初始迭代点 .( 这个与 linprog使用的算法有关 ) options :优化参数设置输出参数 : X:线性优化问题最优解fval :最优目标函数值lambda,exitflag:算法停止原因output :优化结果的约束信息lambda:结果 x 对应的拉格朗日乘子(2)fminbnd 函数x,fval,exitflag,output=fminbnd(fun,x1,x2,options) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

42、- - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 19 页 - - - - - - - - - 输入参数:x: 在区间 x1xx2 上函数 fun 取最小值时 x 值fun: 为目标函数的表达式字符串或MATLAB 自定义函数的函数柄options: 为指定优化参数选项输出参数 : fval :为目标函数的最小值xitflag:为终止迭代的条件output :为优化信息x1,x2:x的取值区间(3)fminunc 函数x,fval,exitflag,output,grad,hessian= fminunc(fun,x0,options) 输入参数:

43、fun :目标函数的表达式字符串或MATLAB 自定义函数的函数柄x0: 给定初始点options :为指定优化参数输出参数:fval最优点 x 处的函数值exitflag:为终止迭代的条件output :为输出优化信息grad:为函数在解 x 处的梯度值hessian :目标函数在解 x 处的海赛( Hessian)值(4)fminsearch 函数x,fval,exitflag,output=fminsearch(fun,x0,options) 输入参数:fun :为目标函数的表达式字符串或MATLAB 自定义函数的函数柄x0: 给定初始点options :为指定优化参数输出参数:fval

44、 :最优点的函数值exitflag:终止迭代的条件hessian :目标函数在解 x 处的海赛( Hessian)值(5)quadprog 函数x,fval,exitflag,output,lambda=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) 输入参数:h,f,A,b:标准形中的参数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 19 页 - - - - - - - - - x:目标函数的最小值Aeq,beq: 满足等约束条

45、件 beq.x=Aeqlb,ub: 为解 xx0: 设置的初值options: 指定的优化参数(6)fmincon 函数 x,fval,exitflag,output,lambda,grad,hessian =fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 输入参数,输出参数意义参考线性规划参数(7)fgoalattain 函数x,fval,attainfactor,exitflag,output,lambda=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)

46、(8)fminimax 函数x,fval,maxfval,exitflag,output,lambda=fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 3.5 模型输入时所需注意的问题(1)目标函数最小化优化函数 fminbnd 、fminsearch 、fminunc 、fmincon 、fgoalattain、fminmax 和 lsqnonlin都要求目标函数最小化, 如果优化问题要求目标函数最大化,可以通过使该目标函数的负值最小化即-f(x)最小化来实现。近似地,对于 quadprog 函数提供 -H 和-f ,对于 linprog函数提供-f 。(2)约束非正优化工具箱要求非线性不等式约束的形式为Ci(x) 0,通过对不等式取负可以达到使大于零的约束形式变为小于零的不等式约束形式的目的,如 Ci(x) 0 形式的约束等价于 - Ci(x)0;Ci(x) b 形式的约束等价于 - Ci(x)+b0。(3)避免使用全局变量名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 19 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁