基于人工鱼群算法的多机器鱼控制方法及系统

文档序号:26348836发布日期:2021-08-20 20:21阅读:175来源:国知局
基于人工鱼群算法的多机器鱼控制方法及系统

本公开涉及多机器鱼控制技术领域,特别涉及一种基于人工鱼群算法的多机器鱼控制方法及系统。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。

仿生机器鱼是人类探索水下世界的工具之一。单个仿生机器鱼由于自身限制,已经无法满足日益精确化、多样化、复杂化的要求,尤其在复杂水域中,会受到区域环境复杂、目标不确定等问题的困扰,导致觅食搜索问题更为困难。机器鱼的发展正朝着智能化和群体化进行。

在自然界中,鱼类个体表现的行为十分简单,但是由鱼类个体组成的鱼群却能够通过相互之间的简单合作表现出一种有效的复杂智能行为。在这种群系统中,个体利用局部范围内的直接通信或利用环境进行间接通信减少了每个个体之间的通信,但是,目前对仿生机器鱼群的控制依然是对单个机器鱼的控制的叠加,尚无法实现多个仿生机器鱼的最优控制或者协同控制。



技术实现要素:

为了解决现有技术的不足,本公开提供了一种基于人工鱼群算法的多机器鱼控制方法及系统,实现了多条仿生机器鱼的协同最优控制,提高多机器鱼控制的精度。

为了实现上述目的,本公开采用如下技术方案:

本公开第一方面提供了一种基于人工鱼群算法的多机器鱼控制方法。

一种基于人工鱼群算法的多机器鱼控制方法,包括以下过程:

获取至少两个机器鱼的参量数据;

根据获取的参量数据,对机器鱼进行编码,将机器鱼对应为人工鱼;

对人工鱼群进行初始化,并计算每条人工鱼的目标函数值,得到人工鱼最优状态;

每条人工鱼依次进行觅食行为、聚群行为、追尾行为和随机行为,在所有人工鱼进行以上四种行为后,对最优状态进行保留并开始新一轮迭代过程;

当达到迭代终止条件时,以得到的人工鱼最优状态作为机器鱼的最优游动规划。

本公开第二方面提供了一种基于人工鱼群算法的多机器鱼控制系统。

一种基于人工鱼群算法的多机器鱼控制系统,包括:

数据获取模块,被配置为:获取至少两个机器鱼的参量数据;

机器鱼编码模块,被配置为:根据获取的参量数据,对机器鱼进行编码,将机器鱼对应为人工鱼;

人工鱼最优计算模块,被配置为:对人工鱼群进行初始化,并计算每条人工鱼的目标函数值,得到人工鱼最优状态;

人工鱼迭代优化模块,被配置为:人工鱼每条人工鱼依次进行觅食行为、聚群行为、追尾行为和随机行为,在所有人工鱼进行以上四种行为后,对最优状态进行保留并开始新一轮迭代过程;

机器鱼最优控制模块,被配置为:当达到迭代终止条件时,以得到的人工鱼最优状态作为机器鱼的最优游动规划。

本公开第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开第一方面所述的基于人工鱼群算法的多机器鱼控制方法中的步骤。

本公开第四方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开第一方面所述的基于人工鱼群算法的多机器鱼控制方法中的步骤。

与现有技术相比,本公开的有益效果是:

1、本公开所述的方法、系统、介质或电子设备,实现了多条仿生机器鱼的协同最优控制,提高多机器鱼控制的精度。

2、本公开所述的方法、系统、介质或电子设备,将机器鱼与人工鱼进行对应,采用人工鱼群算法进行人工鱼的寻优,进而得到机器鱼的最优游动规划,实现了机器鱼最优控制。

本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1为本公开实施例1提供的基于人工鱼群算法的多机器鱼控制方法的流程示意图。

具体实施方式

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、s10、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。

实施例1:

如图1所示,本公开实施例1提供了一种基于人工鱼群算法的多仿生机器鱼控制方法,包括以下过程:

s101:用二进制序列对机器鱼进行编码,将机器鱼的不同游动规划结果对应为人工鱼;

s102:用随机数对人工鱼群进行初始化;

s103:计算每只人工鱼的目标函数值;

s104:每条人工鱼依次进行觅食行为、聚群行为、追尾行为和随机行为;

s105:在所有人工鱼进行以上四种行为后,对公告板上最优状态进行保留并开始新一轮迭代过程;

s106:判断是否达到指定迭代次数;如果达到,则在到达指定迭代次数后输出最优人工鱼作为机器鱼游动规划的输出;如果未达到,则返回s103;

s107:每条机器鱼执行s101-s106,然后,判断任务是否完成:如果未完成,则返回s102;如果完成,则获取新任务;

s108:为了防止多机器鱼系统出现任务死锁,加入设置时间tset,等待时间超过tset后,多机器鱼系统清除目标函数。

s101中,用二进制序列对机器鱼进行编码,以便进行目标函数的计算,设置人工鱼群算法的算法参数,具体包括鱼群中人工鱼的数量n=10,人工鱼的感知范围v,拥挤度因子δ,步长s,以便算法正常运行,再根据多条机器鱼之间距离,任务完成的难易程度以及机器鱼采取每种游动规划所达到的结果,计算得到完成任务的程度设置为目标函数。

s102中,将每条机器鱼不同的游动规划进行归一化,对每只人工鱼进行编码,用随机数对鱼群中的每一条人工鱼进行初始化。

s103中,依据s101中的目标函数计算人工鱼群中每条人工鱼的目标函数值,并将目标函数值最优解保存到公告板上,公告板上保存人工鱼最优状态。每次人工鱼进行完觅食行为、聚群行为、追尾行为和随机行为后,与公告板上人工鱼最优状态进行比较。

如果当前人工鱼状态优于公告板上状态,则公告板更新为当前人工鱼状态;如果人工鱼状态次于公告板上状态,则保留公告板上最优状态。

s104中,人工鱼群中的每条人工鱼依次进行迷失行为、聚群行为、追尾行为和随机行为;

(1)觅食行为的步骤包括:内设置人工鱼当前状态,并在其感知范围v随机选择另一个状态,如果得到的状态的目标函数大于当前的状态,则进行聚群行为,反之,重新选取新状态,判断是否满足条件。选择次数达到上限,如果仍然不满足条件,则进行随机行为。

(2)聚群行为的步骤包括:人工鱼探索当前视野内的所有人工鱼数量,并计算出所有视野内人工鱼的中心位置,然后把新得到的中心位置的目标函数与当前位置的目标函数相比较,如果中心位置的目标函数优于当前位置的目标函数并且不是很拥挤,则进行追尾行为,否则进行觅食行为。

(3)追尾行为的步骤包括:人工鱼探索当前视野内人工鱼的最优位置,当最优位置的目标函数值大于当前位置的目标函数值并且不是很拥挤,则当前位置向最优邻居鱼移动一步,否则进行觅食行为。

(4)随机行为的步骤包括:用人工鱼在视野范围内随机游动一步。

s105中,人工鱼进行完上述四个行动后,与公告板上最优状态进行比较,并保留最新公告板上状态。

s106中,判断是否人工鱼群算法已经运行了指定的迭代次数,如果已经达到,则输出公告板上最优状态作为每条机器鱼游动规划的轨迹,否则返回s103。

s107中,每条机器鱼分别执行s101-s106,判断任务是否完成,如果未完成,则返回s102。

s108中,为了防止多机器鱼发生任务死锁现象,给每条机器鱼设置等待时间tset,当机器鱼等待时间超过tset后,自动清除目标函数。

实施例2:

本公开实施例2提供了一种基于人工鱼群算法的多机器鱼控制系统,包括:

数据获取模块,被配置为:获取至少两个机器鱼的参量数据;

机器鱼编码模块,被配置为:根据获取的参量数据,对机器鱼进行编码,将机器鱼对应为人工鱼;

人工鱼最优计算模块,被配置为:对人工鱼群进行初始化,并计算每条人工鱼的目标函数值,得到人工鱼最优状态;

人工鱼迭代优化模块,被配置为:人工鱼每条人工鱼依次进行觅食行为、聚群行为、追尾行为和随机行为,在所有人工鱼进行以上四种行为后,对最优状态进行保留并开始新一轮迭代过程;

机器鱼最优控制模块,被配置为:当达到迭代终止条件时,以得到的人工鱼最优状态作为机器鱼的最优游动规划。

所述系统的工作方法与实施例1提供的基于人工鱼群算法的多机器鱼控制方法相同,这里不再赘述。

实施例3:

本公开实施例3提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开实施例1所述的基于人工鱼群算法的多机器鱼控制方法中的步骤。

实施例4:

本公开实施例4提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例1所述的基于人工鱼群算法的多机器鱼控制方法中的步骤。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作s10以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1