人工鱼群算法matlab实现

合集下载

人工鱼群算法1

人工鱼群算法1

人工鱼群算法实例
• 然后先进行追尾活动,每条鱼Xi都查看在自己可视域范围内 (即距离小于visual,visual根据搜索空间的大小而定)的 其它鱼,从中找到适应函数值最小的一个Xj ,其适应度函 数值记为Yj,Xj周围可视域内的其它个体数量记为nf,若 Yj*nf<δ*Yi (δ为拥挤度因子,此处取1),则表明Xj周围 “食物”较多且不太拥挤,这时Xi对每一个自己和Xj的不同 的位重新随机取值(例如Xi为1001,而Xj为1100,那么就 对Xi的第2,4位重新随机取值),从而向Xj靠近。追尾活动 若不成功,则进行聚群行为,每条鱼都先找出自己周围可 视域内的其它鱼,形成一个小鱼群,然后找出这群鱼的中 心点,这里中心点的确定方法是,若鱼群中半数以上的鱼 在第i位上取1,则中心点的第i位也为1,否则为0,接 着采用和前面相同方法查看中心点的“食物”是否较多, 是否拥挤,据此决定是行为(AF-follow)指鱼向其可视区域 内的最优方向移动的一种行为。人工鱼Xi搜 索其视野内所有伙伴中的函数最优伙伴Xj, 如果 Yj/ nf > δYi,表明最优伙伴的周围不太 拥挤,则Xi朝此伙伴移动一步,否则执行觅 食行为。
算法介绍 伪代码
• • • • • • • • •
算法介绍 代码
function [XXnext] = gmjprey(XX,Try_number,Visual,Step) pp=0; for j=1:Try_number XXj=XX+rand*Step*Visual; if(maxf(XX)<maxf(XXj)) XXnext=XX+rand*Step*(XXj-XX)/norm(XXj-XX); pp=1; break end end if(~pp) XXnext=XX+rand*Step; end

基本人工鱼群算法

基本人工鱼群算法

基本人工鱼群算法摘要人工鱼群算法(Artificial Fish-Swarm Algorithm,AFSA)是由李晓磊等在2002年提出的,源于对鱼群运动行为的研究,是一种新型的智能仿生优化算法。

它具有较强的鲁棒性、优良的分布式计算机制易于和其他方法结合等优点。

目前对该算法的研究、应用已经渗透到多个应用领域,并由解决一维静态优化问题发展到解决多维动态组合优化问题。

人工鱼群算法已经成为交叉学科中一个非常活跃的前沿性学科。

本文主要对鱼群算法进行了概述,引入鱼群模式的概念,然后给出了人工鱼的结构,接下来总结出了人工鱼的寻优原理,并对人工鱼群算法的寻优过程进行仿真,通过四个标准函数选取不同的拥挤度因子进行仿真实验,证实了利用人工鱼群算法进行全局寻优确实是有效的。

关键词:人工鱼群算法;拥挤度因子;寻优0 引言动物在进化过程中,经过漫长的优胜劣汰,形成了形形色色的觅食和生存方式,这些方式为人类解决生产生活中的问题带来了不少启发和灵感。

动物不具备复杂逻辑推理能力和综合判断等高级智能,但他们通过个体的简单行为和相互影响,实现了群体的生存和进化。

动物行为具有以下几个特点。

(1)适应性:动物通过感觉器官来感知外界环境,并应激性的做出各种反应,从而影响环境,表现出与环境交互的能力。

(2)自治性:在不同的时刻和不同的环境中能够自主的选取某种行为,而无需外界的控制或指导。

(3)盲目性:单个个体的行为是独立的,与总目标之间没有直接的关系。

(4)突现性:总目标的完成是在个体行为的运动过程中突现出来的。

(5)并行性:各个个体的行为是并行进行的。

人工鱼群算法是根据鱼类的活动特点提出的一种基于动物行为的自治体寻优模式。

1 鱼群模式描述1.1 鱼群模式的提出20世纪90年代以来,群智能(swarm intelligence,SI)的研究引起了众多学者的极大关注,并出现了蚁群优化、粒子群优化等一些著名的群智能方法。

集群是生物界中常见的一种现象,如昆虫、鸟类、鱼类、微生物乃至人类等等。

人工鱼群算法(AFSA)及其简单应用举例

人工鱼群算法(AFSA)及其简单应用举例

+ 2.2 AFSA基本概念 + 假设在一个n维的目标搜索空间中,有N条组成一 + 个群体的人工鱼,每个人工鱼个体的状态可表示为 + 向量X=(x1,x2,……xn),其中xi(i=1,……n)为欲寻 + 优的变量:人工鱼当前所在位置的食物浓度表示为 + Y=f(X),其中Y为目标函数;人工鱼个体间距离表示 + 为 d=||Xi-Xj ||; visual表示人工鱼的感知范围,step + 为人工鱼移动步长,δ为拥挤度因子;trynumber + 表示人工鱼每次觅食最大试探次数。
6
8 10
x1
AFSA 迭 代 20次 8
+ 1.2 人工生命
+ 具有某些生命基本特征的人工系统。包括两方面 的内容:
+ 1、研究如何利用计算技术研究生物现象;
+ 2、研究如何利用生物技术研究计算问题。
+
+ 我们关注的是第二点。
+
如何利用生物技术研究计算问题是人工生命
研究的重要方向,现已有了很多源于生物现象的计
算技巧, 例如人工神经网络是简化的大脑模型,遗
+ 2.4 具体算法步骤 + 鉴于以上描述的人工鱼群行为,每条人工鱼探索 + 它当前所处的环境状况和伙伴的状况,从而选择一 + 种行为来实际执行,最终人工鱼集结在几个局部极 + 值周围。一般情况下,在讨论求极大问题时,拥有 + 较大的适应值的人工鱼一般处于值较大的极值域周 + 围,这有助于获取全局极值域,而值较大的极值区 + 域周围一般能集结较多的人工鱼,这有助于判断并 + 获取全局极值。具体的人工鱼群算法步骤如下:

人工鱼群算法的分析及改进

人工鱼群算法的分析及改进

1、引入动态调整策略
在AFSO算法中,随着迭代次数的增加,鱼群的全局最优解可能逐渐偏离真正 的最优解。这是由于在寻优过程中,鱼群可能会陷入局部最优陷阱。为了解决这 个问题,我们引入了动态调整策略,即根据算法的迭代次数和当前的最优解,动 态地调整鱼群的搜索范围和搜索速度。
2、增加随机扰动
在AFSO算法中,鱼群通常会向当前的全局最优解集中。这可能会导致算法过 早地陷入局部最优陷阱。为了解决这个问题,我们引入了随机扰动。即在每次迭 代时,随机选择一部分鱼,将其位置和速度进行随机扰动,以增加算法的探索能 力。
2、计算适应度:对于每一条鱼,计算其适应度函数值(通常是目标函数 值),这个值代表了这条鱼的“健康”状况。
3、比较适应度:将每条鱼的适应度与全局最优解进行比较,更新全局最优 解。
4、更新领头鱼:随机选择一条鱼作为领头鱼,然后根据一定的规则,如最 小距离规则,选择其他鱼跟随领头鱼。
5、更新鱼群:根据领头鱼的位置和行为,更新其他鱼的位置和行为。
4、多种群并行搜索:通过将搜索空间划分为多个子空间,并在每个子空间 中独立运行AFSA,我们可以实现多种群的并行搜索。这种并行搜索方法可以显著 提高算法的搜索速度和效率。
四、结论
本次演示对人工鱼群算法进行了详细的分析和改进。通过引入混沌理论、变 异机制和自适应调整参数等方法,我们可以有效地提高AFSA的全局搜索能力和效 率,避免算法过早地陷入局部最优解。多种群并行搜索方法也可以显著提高算法 的搜索速度和效率。这些改进方案为AFSA在实际应用中的广泛应用提供了有力的 支持。
感谢观看
3、引入学习因子
在AFSO算法中,每个鱼会根据自身经验和群体行为来调整自己的方向和位置。 然而,这个学习因子通常是固定的。为了提高算法的收敛速度和精度,我们引入 了可变的学习因子。即根据算法的迭代次数和当前的最优解,动态地调整学习因 子的大小。

鱼群集群行为的的建模与仿真数模

鱼群集群行为的的建模与仿真数模

鱼群集群行为的的建模与仿真摘要本文利用人工生命技术的特点,把每条鱼看成是一个能够自主决策的Agent,它们会根据自己的观察来感知周围的环境,并按照一定的规则决策。

然后采用自底向上的建模方法,根据鱼群游动的规律建立了一种基于群体中每个个体运动方程的数学模型, 并通过matlab算法设计各种运算, 从而完成整个鱼群游动的模拟。

对于问题一,首先我们确定鱼群游动的三个规则:凝聚性(向心性),同向性,排斥性;然后根据这三个规则,建立了群体中每个个体的运动方程,最后通过matlab实现对鱼群集群运动的模拟。

对于问题二,首先我们将刻画鱼群躲避黑鳍礁鲨鱼的运动行为一般化,将其作为刻画鱼群躲避捕食者的运动行为来研究。

然后我们将捕食者看成是鱼群中的特殊鱼(对所有其它鱼只有排斥力而没有吸引力,所有其它鱼对其只有吸引力而没有排斥力),然后再运用问题一所建立的模型进行模拟刻画。

对于问题三,首先我们将鱼群中的鱼分为普通鱼与信息鱼(信息丰富者),并假设在运动过程中普通鱼会向信息鱼靠拢。

然后通过问题一中的模型进行仿真,并研究了当信息鱼的比例为不同值时的情况,从而分析了信息鱼对于群运动行为的影响及解释群运动方向决策是如何达成的。

关键词: 集群运动人工生命仿真 Matlab编程1 问题重述在生态系统中,动物个体的行为相对简单,集群后却能表现出复杂的群体行为。

这些动物群在运动过程中具有很明显的特征:群中的个体聚集性很强,运动方向、速度具有一致性。

请查阅相关资料,思考动物集群运动的机理,建立数学模型刻画动物集群运动、躲避威胁等行为,例如,可以考虑以下问题的分析建模:(1)建立数学模型模拟动物的集群运动。

(2)建立数学模型刻画鱼群躲避黑鳍礁鲨鱼的运动行为。

(3)假定动物群中有一部分个体是信息丰富者(如掌握食物源位置信息,掌握迁徙路线信息),请建模分析它们对于群运动行为的影响,解释群运动方向决策如何达成。

2 模型的假设与符号的约定2.1模型的假设与说明(1)所有的鱼生活在一个宽为width、长length的二维世界。

人工鱼群算法

人工鱼群算法

5
算法旳收敛性分析
人工鱼群算法旳参数选用
视野(Visual ):因为视野对算法中各行为都有较大旳影响, 所以其变化对收敛性能旳影响也是比较复杂旳。当视野范围较小时 ,人工鱼群旳觅食行为和随机游动比较突出;视野范围较大时人工 鱼旳追尾行为和聚群行为将变得较突出。总体来看,视野越大,越 轻易使人工鱼发觉全局极值并收敛。所以对人工鱼旳视野进行合适 旳改善,是提升人工鱼群算法优化性能旳一种方向。
(4)δ:拥挤度因子,人工鱼群旳汇集规模; (5)Try-number:试探次数。人工鱼变化目前状态前旳尝试
次数,满足试探次数后,假如不满足变化状态旳条件, 则人工鱼需要根据规则选择下次行为继续寻优。
鱼群行为分析
这些行为在不同步刻会相互转换,而这种转换一般是鱼经过对环境旳感知来自主实现旳,这些 行为与鱼旳觅食和生存都有着亲密旳关系,而且与我们优化问题旳处理也有着亲密旳关系。
觅食行为
聚群行为
追尾行为
随机行为
鱼群算法在对以上四种行为进行评价后,自动选择合适旳行为,从而形成了一种高 效迅速旳寻优策略。
觅食行为
这是人工鱼旳一种趋向食物活动。一般经过视觉或味觉来感知水中旳食物量或浓度来
选择趋向。设人工鱼i旳目前状态为Xi,在其感知范围内随机选择一种状态Xj,则
X j Xi Visual Rand
尝试次数(Try-number):
尝试次数越多,人工鱼执行觅食行 为旳能力越强,收敛效率越高,但 在局部极值突出旳情况下,易错过 全局极值点,即人工鱼摆脱局部极 值旳能力越弱。所以,在一般优化 中,可合适增长尝试次数,以加紧 收敛速度;在局部极值突出旳情况 下,应降低尝试次数,增长人工鱼 随机游动旳概率。
其迅速到达食物点。即追尾行为是一种向邻近旳有最高适应度旳人工鱼追逐旳行为

基于多智能体系统的人工鱼群算法研究

基于多智能体系统的人工鱼群算法研究

基于多智能体系统的人工鱼群算法研究人工智能领域近年来发展迅速,多智能体系统(Multi-Agent Systems,MAS)作为其中一个研究重点,受到了越来越多的关注。

在MAS中,人工鱼群算法(Artificial Fish Swarm Algorithm,AFSA)是其中一个重要的算法,在优化问题、图像处理、机器学习等领域都得到了广泛应用。

本文将从多智能体系统的角度出发,对人工鱼群算法的研究进行探讨。

一、多智能体系统概述多智能体系统是由多个智能体组成的,这些智能体可以相互通信协作,完成一定的任务。

每个智能体都有自己的意识、思考、行动方式,即使不同智能体之间的行动策略可能有所不同,但是它们能够在一定程度上相互协调,实现共同的目标。

多智能体系统中的智能体可以包括机器人、无人机、传感器、计算节点等,它们之间通过信息交流和决策协作,共同完成一定的任务。

研究多智能体系统的目的不只是因为多智能体具有高度的自适应性和智能性,而且是因为多智能体系统中的协作是人工智能技术在现实世界中的应用之一,这与现实生活中智能化发展的趋势是一致的。

二、人工鱼群算法基础概念人工鱼群算法是基于生物群体智能的优化算法,模拟了鱼群跳跃寻优的行为。

在算法中,鱼个体通过觅食和聚群两种行为方式进行探测和搜索空间,以达到全局最优目标。

与传统遗传算法、粒子群算法、模拟退火算法等计算机智能算法相比,人工鱼群算法更加稳定、鲁棒和易于实现。

人工鱼群算法的基本流程如下:(1)初始化鱼群,确定群体大小和搜索空间范围;(2)根据目标函数,计算每个鱼个体的适应度值;(3)根据当前的适应度值,进行随机游动;(4)根据新位置,更新适应度值;(5)通过聚群行为相互交流学习,提升整个鱼群的性能。

三、基于多智能体系统的人工鱼群算法研究随着智能化技术的发展,多智能体系统的应用越来越广泛,而人工鱼群算法作为其中一个重要的算法,正在受到越来越多的关注。

在多智能体系统中,人工鱼群算法具有以下特点:(1)可以处理多约束优化问题,将局部探测和全局搜索的过程相互分离,提高了算法的收敛速度和搜索精度;(2)适用于不确定性较高的复杂环境下解决问题,例如路径规划、数据聚类等问题;(3)具有良好的鲁棒性,能够适应环境变化和噪声扰动;(4)能够自适应地调整参数,减少了手动调整的复杂性。

白鲸优化算法 matlab程序

白鲸优化算法 matlab程序

白鲸优化算法(Whale Optimization Algorithm,WOA)是一种基于鲸鱼社会行为的启发式优化算法。

与其他启发式算法相比,白鲸优化算法具有较快的收敛速度和较高的优化精度,适用于多种优化问题的求解。

而Matlab作为一种功能强大的编程工具,可以用来实现白鲸优化算法,快速求解各种复杂的优化问题。

本文将从以下几个方面介绍白鲸优化算法的原理和在Matlab中的实现:一、白鲸优化算法的原理白鲸优化算法是一种模拟鲸鱼族群行为的优化算法,其核心思想是模拟鲸鱼在觅食过程中的捕食行为。

白鲸在觅食时会根据自身的经验和邻近白鲸的经验来调整自己的行进方向,以寻找最佳的觅食位置。

在算法中,每条白鲸都被看作一个潜在的解,而整个白鲸族群则被看作是一个解空间。

白鲸通过迭代寻找最优解,不断调整自身位置和速度,直到达到最优解或者迭代次数达到预定值。

二、白鲸优化算法的具体步骤1. 初始化白鲸族群:随机生成初始解,即随机生成白鲸的位置和速度。

2. 设定迭代终止条件:设定迭代次数的上限或者设定目标函数值的阈值,以确定算法的终止条件。

3. 更新白鲸位置和速度:根据特定的更新规则,不断调整白鲸的位置和速度,以寻找最优解。

4. 评估适应度:计算每条白鲸的适应度,即目标函数值,以确定是否达到最优解。

5. 确定最优解:根据迭代结果,确定最优解的位置和目标函数值。

三、在Matlab中实现白鲸优化算法在Matlab中,可以利用其强大的算法库和矩阵运算功能,比较容易地实现白鲸优化算法。

下面以一个简单的优化问题为例,介绍在Matlab中如何实现白鲸优化算法。

(这里应该有一段代码示例,以展示在Matlab中实现白鲸优化算法的具体代码)四、使用白鲸优化算法解决实际问题白鲸优化算法可以用来解决各种优化问题,包括函数优化、工程优化、机器学习等领域。

在实际应用中,可以根据具体问题的特点,调整白鲸优化算法的参数和参数设置,来获得更好的优化效果。

五、总结白鲸优化算法是一种较新的启发式优化算法,具有快速的收敛速度和较高的优化精度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

function lhl_AFclc;clear all; close all;format longVisual = 2、5; %人工鱼的感知距离Step = 0、3; %人工鱼的移动最大步长N = 10; %人工鱼的数量Try_number = 50;%迭代的最大次数delta=0、618; %拥挤度因子a1 = -10; b1 = 10; a2 = -10; b2 = 10;d = [];%存储50个状态下的目标函数值;k = 0;m = 50;%迭代次数X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数;X2 = rand(N,1)*(b2-a2)+a2;X = [X1 X2];%X = ones(N,2);%for i = 1:N% X(i,1)=-10;% X(i,2)=10;%end% 人工鱼数量,两个状态变量X1与X2;%计算50个初始状态下的;for i = 1:Nwww = [X(i,1),X(i,2)];d(i) = maxf(www);end%公告牌用于记录人工鱼个体的历史最好状态[w,i] = max(d); % 求出初始状态下的最大值w与最大值的位置i;maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置;maxY = w; % 初始化公告板记录,最大值;figurex = []; figurey = []; figurez = [];figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中,figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认就是从1开始的figurez(numel(figurez)+1) = maxY;while(k<m)for i = 1:NXX = [X(i,1),X(i,2)]; %拿出其中一条鱼来瞧她的四种行为判断%%%%%%第一种行为:聚群行为:伙伴多且不挤,就向伙伴中心位置移动%群聚行为就是伙伴的中心点,凸规划下,中心点一定还在约束内%群聚行为不就是一种maxf(Xc)的比较,就就是瞧伙伴位置nf1=0;Xc=0;label_swarm =0; %群聚行为发生标志for j = 1:NXX_1 = [X(j,1), X(j,2)];if (norm(XX_1-XX)<Visual) % norm函数求向量XXX-XX的范数,由于二维向量,2或者省略都可以nf1 = nf1+1;Xc = Xc+XX_1;endendXc=Xc-XX; %需要去除XX本身;nf1=nf1-1;Xc = Xc/nf1; %此时Xc表示XX感知范围其她伙伴的中心位置;if((maxf(Xc)/nf1 > delta*maxf(XX)) && (norm(Xc-XX)~=0))XXR1=rand*Step*(Xc-XX)/norm(Xc-XX);XXnext1=XX+XXR1;if(XXnext1(1) > b1)XXnext1(1) = b1;endif(XXnext1(1) < a1)XXnext1(1) = a1;endif(XXnext1(2) > b2)XXnext1(2) = b2;endif(XXnext1(2) < a2)XXnext1(2) = a2;endlabel_swarm =1;temp_y_XXnext1=maxf(XXnext1);elselabel_swarm =0;temp_y_XXnext1=-inf;end%%%%%%%%%%%%第二种行为:追尾行为:周围伙伴有最大值且附近不挤,向其伙伴方向移动%追尾行为追寻伙伴行为,还就是在约束内temp_maxY = -inf; %按照理论来说这块应该初始化为-无穷小,label_follow =0;%追尾行为发生标记for j = 1:NXX_2 = [X(j,1),X(j,2)];if((norm(XX_2-XX)<Visual) && (maxf(XX_2)>temp_maxY))temp_maxX = XX_2;temp_maxY = maxf(XX_2);endendnf2=0;for j = 1:NXX_2 = [X(j,1),X(j,2)];if(norm(XX_2-temp_maxX)<Visual)nf2=nf2+1;endendnf2=nf2-1;%去掉她本身if((temp_maxY/nf2)>delta*maxf(XX) && (norm(temp_maxX-XX)~=0)) %附近有Yj最大的伙伴,并且不太拥挤XXR2=rand*Step*(temp_maxX-XX)/norm(temp_maxX-XX);%rand不就是随机反向,就是随机步长XXnext2 = XX+XXR2;if(XXnext2(1) > b1)XXnext2(1) = b1;endif(XXnext2(1) < a1)XXnext2(1) = a1;endif(XXnext2(2) > b2)XXnext2(2) = b2;endif(XXnext2(2) < a2)XXnext2(2) = a2;endlabel_follow =1;temp_y_XXnext2=maxf(XXnext2);elselabel_follow =0;temp_y_XXnext2=-inf;end%%%%%%%%%%%%第三种行为:觅食行为:与前两个行为不同,觅食与随机行为都就是找附近的状态,而不就是找附近的同伴%觅食与随机行为可能出现超出约束,所以,XX_3与XX_4就是不一样的%觅食行为与群聚行为、追尾行为就是不一样的,觅食行为就是一种根据状态来判断的行为,群聚与追尾就是根据伙伴来判断的行为label_prey =0; %判断觅食行为就是否找到优于当前的状态for j = 1:Try_numberR1V=Visual*(-1+2*rand(2,1)');XX_3 = XX+R1V;if(XX_3(1) > b1) % 下面这四个就是一套,如果超出约束条件,就选值为边界条件XX_3(1) = b1;endif(XX_3(1) < a1)XX_3(1) = a1;endif(XX_3(2) > b2)XX_3(2) = b2;endif(XX_3(2) < a2)XX_3(2) = a2;endif(maxf(XX)<maxf(XX_3))XXR3=rand*Step*(XX_3-XX)/norm(XX_3-XX);XXnext3 = XX+XXR3;if(XXnext3(1) > b1) % 下面这四个就是一套,如果超出约束条件,就选值为边界条件XXnext3(1) = b1;endif(XXnext3(1) < a1)XXnext3(1) = a1;endif(XXnext3(2) > b2)XXnext3(2) = b2;endif(XXnext3(2) < a2)XXnext3(2) = a2;endlabel_prey =1;break;endendtemp_y_XXnext3=max(XXnext3);if(label_prey ==0)temp_y_XXnext3=-inf;end%%%%%%%%%%%%行为选择if((label_swarm==0) && (label_follow==0) && (label_prey ==0))%聚群与追尾鱼太多太拥挤,都不发生;觅食觅不到更好的,造成三种行为都不发生。

%如果前三种行为都没有发生出现,必然就是发生随机行为R2S=Step*(-1+2*rand(2,1)');temp_XX = XX+R2S;if(XX(1) > b1) % 下面这四个就是一套,如果超出约束条件,就选值为边界条件XX(1) = b1;endif(XX(1) < a1)XX(1) = a1;endif(XX(2) > b2)XX(2) = b2;endif(XX(2) < a2)XX(2) = a2;endelse%三种行为找最优if(temp_y_XXnext1 > temp_y_XXnext2)if(temp_y_XXnext1 > temp_y_XXnext3)temp_XX = XXnext1;elsetemp_XX = XXnext3;endelseif(temp_y_XXnext2 > temp_y_XXnext3)temp_XX = XXnext2;elsetemp_XX = XXnext3;endendendXX=temp_XX;X(i,1) = XX(1);X(i,2) = XX(2);%%%%%%end%至此,所有人工鱼,完成一次行为判断与移动%这块就是更新公告牌信息for i = 1:NXXX = [X(i,1),X(i,2)];if (maxf(XXX)>maxY)maxY = maxf(XXX);maxX = XXX;figurex(numel(figurex)+1) = maxX(1);figurey(numel(figurey)+1) = maxX(2);figurez(numel(figurez)+1) = maxY;endendx=X(:,1)';y=X(:,2)';plot(x,y,'*r');axis([-10 10 -10 10]);k = k+1endmaxXmaxYplot3(figurex,figurey,figurez,'-g、')function y = maxf(QQ)%目标函数y=(sinX1/X1)*(sinX2/X2),这块可以指定自己的目标函数%输入二维向量,输出一个值y = (sin(QQ(1))/QQ(1))*(sin(QQ(2))/QQ(2));。

相关文档
最新文档