蚁群算法报告.doc

上传人:小飞机 文档编号:2772742 上传时间:2023-02-24 格式:DOC 页数:21 大小:562KB
返回 下载 相关 举报
蚁群算法报告.doc_第1页
第1页 / 共21页
蚁群算法报告.doc_第2页
第2页 / 共21页
蚁群算法报告.doc_第3页
第3页 / 共21页
蚁群算法报告.doc_第4页
第4页 / 共21页
蚁群算法报告.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《蚁群算法报告.doc》由会员分享,可在线阅读,更多相关《蚁群算法报告.doc(21页珍藏版)》请在三一办公上搜索。

1、精选优质文档-倾情为你奉上蚁群算法报告学院: 专业: 学号:姓名: 目录第一部分:蚁群算法原理介绍21.1蚁群算法的提出21.2蚁群算法的原理的生物学解释31.3 蚁群算法的数学模型31.4蚁群算法实现步骤4第二部分:蚁群算法实例-集装箱码头船舶调度模型62.1 集装箱码头船舶调度流程图62.2算例与matlab编程的实现62.2.1算法实例62.2.2 Matlab编程8第三章:MATLAB 优化设计工具箱简介143.1 Matlab优化工具箱143.1.1优化工具箱功能:153.2 Matlab 优化设计工具箱中的函数153.2.2 方程求解函数153.2.3最小二乘(曲线拟合)函数163

2、.2.4 使用函数163.2.5 大型方法的演示函数163.2.6 中型方法的延时函数163.4 优化函数简介173.4.1优化工具箱的常用函数173.4.2 函数调用格式173.5 模型输入时所需注意的问题19第一部分:蚁群算法原理介绍1.1蚁群算法的提出 蚂蚁是地球上最常见、数量最多的昆虫种类之一,常常成群结队地出现于人类的日常生活环境中。受到自然界中真实蚁群集体行为的启发,意大利学者M.Dorig。于20世纪90年代初,在他的博士论文中首次系统地提出了一种基于蚂蚁种群的新型优化算法蚁群算法28(Ant Colony Algorithm, ACA),并成功地用于求解旅行商问题,自1996年

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

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

5、元素(城市)相互连接lij上的 遗存的信息数量的合集。在开始时各路线上的信息数量相等, 假设ij(0) =const,最基本的蚁群算法求解最优是经有向的图断( C,L, )来达到的。蚂蚁k (k=1,2,.m),运动的过程中,其转移方向是依据每条路线上的信息数量。我们利用禁忌表tabuk (k =1,2,., m)来代表蚂蚁k已经经过的城市,随着tabuk进化过程变化,集合也做出动态的改变。在蚂蚁搜索前进的过程,依据各路线上包含的信息以及路线下的启发式信息,用来算出状态转移下的概率。代表t时下蚂蚁k经城市i运动到城市j时的状态转移下的概率。 (1) 式(1)中,allowedk=C-tabuk

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

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

8、,它旅行过程中在路线(i, j)上的留存下来的信息。 不同的信息更新的模式下,有不同的三种模型,对整体的信息而言,也就是蚂蚁走完一个循环后所有路线上的信息的更新,选择求TSP时较为准确的模型,于是,选择ant-cycle模型: 式(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,.,

9、m)。目前所处城市设为禁忌表Tk的第一个元素; 2)开始循环,蚂蚁k(k=1,2,.,m)根据式(3-2)状态转移概率选择下一城市,并将选择过的城市j加入到禁忌表Tk,直到禁忌表中包含所有城市n; 3)计算蚂蚁k(k=1,2,.,m)遍历所有城市的总路径长度Lk,比较所有蚂蚁找到的路径,选择一条最短路径,根据特定的公式更新路径上的信息素浓度;4)重新迭代,IT =IT+1;5)判断是否满足条件:判断迭代次数IT _ IT M且所有蚂蚁选择同一条路径。满足的话输出最短路径,否则清空禁忌表Tk,跳转到步骤2); 6)得到结果,程序结束。流程图如下:第二部分:蚁群算法实例-集装箱码头船舶调度模型2.

10、1 集装箱码头船舶调度流程图图2.1 集装箱码头船舶调度流程图2.2算例与matlab编程的实现2.2.1算法实例设定种群大小N=5 ,船舶数量vessel Number=8,泊位数量berth Number=3 ,每个泊位上有3台岸桥,岸桥的平均卸货速度为35箱/小时,蚁群算法中=1,=2.5, =0.85,COUNTmax=20 通过MATLAB编程实现以下: Step 1蚁群初始化,设时间的计数器t=0,初始迭代的次数ITCOUNT=0,Qijl= 0将每个参数进行合理设置。于此同时,还要设好题中的一些数据、条件以及泊位的条件和船舶载货量,以及模型中最大的岸桥数量等等,还有要按照船舶的载

11、货数量,来算出两个城市间的距离; Step 2可行结点的集合进行初始化,创建一个模型禁忌表,并在禁忌表中方知k只蚂蚁起始的位置,并且将链表的索引设置为s=l; Step 3第k只蚂蚁来说,出发的起始点是Bk,船舶J的选择按照的是状态转移的规律,可以选择的可能性有:如果船舶的要求在泊位Bk能被满足,那么就将位置(K,J)存在禁忌表中,蚁群算法进行下去;如果船舶的要求在泊位Bk不能被满足,那么自动选择下一个可供选择的泊位,也就是Bk+1,重新回到step 3;将这个过程重复进行,一直到链表满了为止,也就是说全部城市都被旅行过了。 Step 4用得到的信息素来对规则进行更新。利用各个路线算出船舶等待

12、的时间,并同当前找到的最优解来进行对比,选出本次更优的路线,来更新当前的全局的最优解。将全部路线上的信息量进行更新,t=t+I, IT COUNT=IT COUNT+l,Qij=0,清空禁忌表; Step 4假如是k次迭代结束,仍然是没有满足算法条件,那么需要重新开始算法迭代; Step 5假如连续进行迭代IT_COUNTn次以后,如果得出的最优值还是没有明显的改进时,则自适应修改P的值,直达到 = min条件后停止修改。 Step 5如果IT_COUNTCOUNT max,那么重复Step2,如果达到了最大的迭代次数IT_COUNT max,则算法结束。应用蚁群算法优化得到船舶调度情况泊位1

13、:1号船、6号船泊位2:2号船、7号船、5号船泊位3:3号船、4号船、8号船得到所有船舶在港时间为81.2小时,蚁群算法得到的船舶调度方案有效 地缩短了所有船舶的在港时间。图2.2 基于优先权的先到先服务原则的船舶泊位分布图总体上来看,由于船舶的优先权差距不明显,所以对于吨位差别不是很大的集装箱船舶,集装箱码头调度基本上是根据先来先服务的原则。因此,通过上述实例验证的调度结果表明:在以先到先服务的原则为前提下,兼顾大船优先调度,可以实现所有船舶在港时间最小的目标。2.2.2 Matlab编程MaxNc=20AntNum=5%计算船舶到港时间差(城市间距离)LabelMatrix=0 0 0 -

14、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%各船舶Y轴坐标矩阵mm=max(size(LabelMatrix)%泊位数量DistanceMatrix=zeros(mm);%初始距离矩阵为空矩阵for i=1 :mm forj=l:mm

15、DistanceMatrix(i,j)=sqrt(X_LabelMatrix(1,i)-X_LabelMatrix(1,j)2+(Y_LabelMatrix(l,i)-Y_LabelMatrix(l,j)2);%各城市点间距离矩阵 endendDistanceMatrix %显示距离矩阵%定义其他初始变量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%各船舶的装卸时间,单位hQ=1%初始蚂蚁循环一周释放信息量tao0=Q/100%初始路径上的信息素浓度QV=9%船的装卸时间是9h%给tao矩阵miu

16、矩阵节约值s矩阵赋初值for i=1 :mm for j=l:mm if i=j s(i,j)=DistanceMatrix(l,i)+DistanceMatrix(l,j)-DistanceMatrix(i,j);%节约值 tao(i,j)=tao0;%给路径上信息赋初值 miu(i,j)=1/DistanceMatrix(i,j);%miu矩阵 end endendfor i=2:mms(l,i)=3/DistanceMatrix(l,i);%这是什么意思,s(i,l)=1 /DistanceMatrix(i,l);endstaomrubest cost=zeros(l,MaxNc)%最优

17、路线长度,每次迭代都会产生一个最优解cost=zeros(MaxNc,AntNum)%路线长度矩阵,每次迭代每只蚂蚁都产生一个路径长度Best_cost=zeros(MaxNc,25)%初始化,最优路径矩阵%开始迭代for Nc=1:MaxNcA_tao=zeros(mm)%各船舶之间的增量矩阵tour=zeros(AntNum,25)%初始路径矩阵为零,每次迭代的每只蚂蚁都产生禁忌表来替换tao%tao矩阵是随着迭代变化的if Nc=10&Nc40 Q=3,rou=O.S,alpha=4,belta=3,gama=3End%迭代参数的变化,动态调整参数for Ant=1:AntNum%蚂蚁数

18、目 sumload=0%初始装载量为0 PartNum=1%产生部分路径的数目 cur_pos=1%初始位置为等泊 aa=randperm(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:Dp(j)=(tao(curios,C(j)alpha)*(miu

19、(cur_pos,C(j)belta)*(s(cur_pos,C(j)gama)%计算从cur_pos到C小点的概率的分子endsump=sum(p)%概率公式的分母 p=p/sump%到达满足要求的各点的概率 r=rand()%产生一个随机数 a,b=sort(p)%将p矩阵从小打到排列 al=rot90(rot90(a) b1=rot90(rot90(b)%将矩阵从大到小排列 %轮盘赌策略选择城市 if r=max(p)%当随机数大于最大概率时选择概率次大的点curios=C(b1(2)sumload=sumload+R(C(bl(2)tabu=tabu,cur_posm=m(find(m

20、=C(b1(2)hh=hh-1if hh=0 tabu=tabu,lendendendend 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)=cost(Nc,Ant)+DistanceMatrix(tabu(i),tabu(i+1)%计算禁忌表中路线总长度 en

21、d cost%输出矩阵 end best_cost(l,Nc)=min(cost(Nc,:)%替换最好距离矩阵的数据 m n=sort(cost(Nc,:) best tour(Nc,:)=tour(n(1),:)%-记录每一次迭代的最好解的路径 %开始更新信息素为下一次迭代准备 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

22、),: )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%首先更新所有路径的信息素,考虑挥发的因素,更新五只精英蚂蚁的信息素 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/c

23、ost(Nc,v(1)%更新了第一只蚂蚁的路径信息素增量 A_tao(tourl(i+1),tourl(i)=A_tao(tourl(i),tourl (i+1)%使得信息素矩阵仍为对称矩阵 end A_tao%输出A_tao矩阵 tour2=goodAnt2(find(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

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

25、nd(goodAnt40)%得出除去零点的第四只蚂蚁的路径矩阵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)endA_ao%再次输出tao矩阵tours=goodAntS(find(goodAntS0)%得出除去零点的第五只蚂蚁的路径矩阵for i=1 :(length(tour5)-1)A_tao(tour5(i),tour5

26、(i+l)=A_tao(tours(i),tour5(i+l)+Q/cost(Nc,v(5)%更新了第五只蚂蚁的路径信息素增量A_tao(tour5(i+l),tour5(i)=A_tao(tour5(i),tour5(i+1)endA_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_

27、tao(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/ 10000for 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 e

28、nd endend 本文建立的集装箱码头船舶调度优化模型能够比较实际的反映出集装箱码头的调度情况,即当优先权较大的船舶和优先权较小的船在相差较短的一段时间内相继到港,集装箱码头可以根据集装箱码头条件采取大船优先调度的策略;而当船舶先后到达相差时间较大的情况到港,以所有船舶在港时间最短为目标,必然遵循先来先服务的原则,优先调度先行到港的船舶。此外,实验结果表明在本文的模型中所设计采用的蚁群算法能够有效得出船舶在港时间的近似最优值即所有船舶在港时间最小。第三章:Matlab 优化设计工具箱简介在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就

29、是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容:1)建立数学模型 即用数学语言来描述最优化问题。模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。3.1

30、 Matlab优化工具箱工具箱是MATLAB函数的综合程序库,不同的工具箱包含有大量相关的库函数,在进行复杂的运算时,只需调用相关的函数就可完成给定的任务。 最优化工具箱(Optimization Toolbox)是 30多个工具箱之一,主要用于求解各种工程最优化设计问题。3.1.1优化工具箱功能:(1)求解无约束条件非线性极小值;(2)求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题和半无限极小值问题;(3)求解二次规划和线性规划问题;(4)非线性最小二乘逼近和曲线拟合;(5)非线性系统的方程求解;(6)约束条件下的线性最小二乘优化;(7)求解复杂结构的大规模优化问题。3.2

31、Matlab 优化设计工具箱中的函数最优化工具箱有11个专有的最优化函数,分别用于求解线性规划问题、无约束问题和约束最优化问题。3.2.1 最小化函数3.2.2 方程求解函数3.2.3最小二乘(曲线拟合)函数3.2.4 使用函数3.2.5 大型方法的演示函数3.2.6 中型方法的延时函数3.4 优化函数简介3.4.1优化工具箱的常用函数求解线性规划问题linprog边界约束条件下的非线性优化fminbnd求解多变量函数的最小化 fminunc求解无约束非线性最小化fminsearch求解二次规划问题quadprog求解有约束的非线性最小化fmincon求解多目标规划的优化问题fgoalatti

32、n求解最小化,最大化问题fminimax3.4.2 函数调用格式(1)linprog函数x,fval,exitflag,output,lambda=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)输入参数:f:目标函数系数向量A:不等式约束系数矩阵b:不等式约束常数向量Aeq:等式约束系数矩阵Beq:等式约束常熟向量lb:x的可行域下界ub:x的可行域上界x0:初始迭代点.(这个与linprog使用的算法有关)options:优化参数设置输出参数:X:线性优化问题最优解fval:最优目标函数值lambda,exitflag:算法停止原因output:优化结果的约束

33、信息lambda:结果x对应的拉格朗日乘子(2)fminbnd函数x,fval,exitflag,output=fminbnd(fun,x1,x2,options)输入参数: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)输入参数:fun

34、:目标函数的表达式字符串或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:最优点的函数值exitflag:终止迭代

35、的条件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:标准形中的参数x:目标函数的最小值Aeq,beq:满足等约束条件beq.x=Aeq=lb,ub:为解x的下界与上界x0:设置的初值options:指定的优化参数(6)fmincon函数 x,fval,exitflag,output,lambda,grad,hessian=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,

36、nonlcon,options)输入参数,输出参数意义参考线性规划参数(7)fgoalattain 函数x,fval,attainfactor,exitflag,output,lambda=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)(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)避免使用全局变量专心-专注-专业

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号