掌桥专利:专业的专利平台
掌桥专利
首页

一种模块化的进化算法

文献发布时间:2023-06-19 11:05:16


一种模块化的进化算法

技术领域

本发明涉及算法技术领域,具体为一种模块化的进化算法。

背景技术

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法中的指令描述的是一个计算,当其运行时能从一个初始状态和初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。

进化算法是一个“算法簇”,尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法,但它们产生的灵感都来自于大自然的生物进化。与传统的基于微积分的方法和穷举法等优化算法相比,进化计算是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题。

现有的进化算法不能够对不同问题单独配置目标函数模块,不能够单独配置不同的算法模块,算法单一,计算性能低。

发明内容

本发明的目的在于提供一种模块化的进化算法,具备使用进化算法的原理,可对复杂的黑箱函数进行求解;可针对不同问题单独配置目标函数模块,可单独配置不同的算法模块;模块间使用静态链接,计算时使用多线程,计算性能高的优点,解决了算法单一,计算性能低的问题。

为实现上述目的,本发明提供如下技术方案:一种模块化的进化算法,包括计算框架模块、目标函数模块、算子算法模块、用户界面模块、监听函数模块和输出记录模块,所述计算框架模块提供公开API接口供用于用户界面模块调用,规定目标函数模块和算子算法模块的公开API,计算框架模块在调用目标函数模块和算子算法模块时分配线程,计算框架模块在单次计算迭代中按照多线程模式调用目标函数模块和算子算法模块;计算框架模块注册监听函数模块,调用输出记录模块记录数据。

作为本发明的进一步方案,所述目标函数模块解决用户提出的具体问题,目标函数模块实现规定的API供给计算框架模块调用。

作为本发明的进一步方案,所述算子算法模块是进化计算所使用的具体算法,包含差分算法,粒子群算法,算子算法模块实现规定的API供计算框架模块调用。

作为本发明的进一步方案,所述监听函数模块用于计算中途的数据检测和观察,监听函数模块的格式公开。

算法运行步骤:

S1、打开用户界面模块,用户界面模块自动加载主模块库,在用户界面模块中加载要使用的目标函数模块和算子算法模块,在用户界面模块中选择要使用的具体目标函数,在用户界面模块中选择要使用的具体算法;用户界面模块根据需要,向计算框架模块注册监听函数模块;点击计算按钮后,计算框架模块开始计算;

S2、计算框架模块首先从目标函数模块获取要计算的目标函数的参数,进行设置;然后初始化进化计算中的算子群,使用随机的方法给算子群赋值;

S3、进入迭代步骤,计算框架模块分配多线程,调用目标函数模块中的API计算接口,计算每个算子的函数结果,并记录;

S4、进行计算结束的判断,从所有的算子的函数结果中筛选结果最优的算子,当筛选结果已经小于截止误差及连续若干次计算的最优结果均相等,则停止计算,返回最优结果和其对应的算子数据;

S5、计算框架模块调用监听函数模块,在监听函数模块中进行数据的观察记录工作,没有注册则跳过此步;

S6、调用算子算法模块进行算子群的操作,计算框架模块向算子算法模块提供算子群和其函数结果的访问接口,算子算法模块根据内置的算法对算子群进行修改处理;

S7、返回S3,直到在S4中停止计算迭代。

与现有技术相比,本发明的有益效果如下:计算框架模块提供公开API接口供用于用户界面模块调用,规定目标函数模块和算子算法模块的公开API,计算框架模块在调用目标函数模块和算子算法模块时分配线程,计算框架模块在单次计算迭代中按照多线程模式调用目标函数模块和算子算法模块;计算框架模块注册监听函数模块,调用输出记录模块记录数据。使用进化算法的原理,可对复杂的黑箱函数进行求解;可针对不同问题单独配置目标函数模块,可单独配置不同的算法模块;模块间使用静态链接,计算时使用多线程,计算性能高。

附图说明

图1为本发明的模块连接关系示意图;

图2为本发明的算法运行步骤示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“上”、“下”、“内”、“外”“前端”、“后端”、“两端”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

实施例1

请参阅图1,本发明提供的一种实施例:一种模块化的进化算法,包括计算框架模块、目标函数模块、算子算法模块、用户界面模块、监听函数模块和输出记录模块,计算框架模块提供公开API接口供用于用户界面模块调用,规定目标函数模块和算子算法模块的公开API。目标函数模块解决用户提出的具体问题,目标函数模块实现规定的API供给计算框架模块调用;算子算法模块是进化计算所使用的具体算法,包含差分算法,粒子群算法,算子算法模块实现规定的API供计算框架模块调用。计算框架模块在调用目标函数模块和算子算法模块时分配线程,计算框架模块在单次计算迭代中按照多线程模式调用目标函数模块和算子算法模块;计算框架模块注册监听函数模块,监听函数模块用于计算中途的数据检测和观察,监听函数模块的格式公开;调用输出记录模块记录数据。

使用进化算法的原理,可对复杂的黑箱函数进行求解;可针对不同问题单独配置目标函数模块,可单独配置不同的算法模块;模块间使用静态链接,计算时使用多线程,计算性能高。

实施例2

请参阅图2,本发明提供的一种实施例:一种模块化的进化算法,运行步骤:

S1、打开用户界面模块,用户界面模块自动加载主模块库,在用户界面模块中加载要使用的目标函数模块和算子算法模块,在用户界面模块中选择要使用的具体目标函数,在用户界面模块中选择要使用的具体算法;用户界面模块根据需要,向计算框架模块注册监听函数模块;点击计算按钮后,计算框架模块开始计算;

S2、计算框架模块首先从目标函数模块获取要计算的目标函数的参数,进行设置;然后初始化进化计算中的算子群,使用随机的方法给算子群赋值;

S3、进入迭代步骤,计算框架模块分配多线程,调用目标函数模块中的API计算接口,计算每个算子的函数结果,并记录;

S4、进行计算结束的判断,从所有的算子的函数结果中筛选结果最优的算子,当筛选结果已经小于截止误差及连续若干次计算的最优结果均相等,则停止计算,返回最优结果和其对应的算子数据;

S5、计算框架模块调用监听函数模块,在监听函数模块中进行数据的观察记录工作,没有注册则跳过此步;

S6、调用算子算法模块进行算子群的操作,计算框架模块向算子算法模块提供算子群和其函数结果的访问接口,算子算法模块根据内置的算法对算子群进行修改处理;

S7、返回S3,直到在S4中停止计算迭代。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

相关技术
  • 一种遗传算法与差分进化算法串行融合的进化算法
  • 一种遗传算法与粒子群算法并行融合的进化算法
技术分类

06120112792198