一种模块化的进化算法制造技术

技术编号:28560477 阅读:12 留言:0更新日期:2021-05-25 17:55
本发明专利技术公开了一种模块化的进化算法,包括计算框架模块、目标函数模块、算子算法模块、用户界面模块、监听函数模块和输出记录模块,所述计算框架模块提供公开API接口供用于用户界面模块调用,规定目标函数模块和算子算法模块的公开API,计算框架模块在调用目标函数模块和算子算法模块时分配线程,计算框架模块在单次计算迭代中按照多线程模式调用目标函数模块和算子算法模块;计算框架模块注册监听函数模块,调用输出记录模块记录数据。本发明专利技术具有使用进化算法的原理,可对复杂的黑箱函数进行求解;可针对不同问题单独配置目标函数模块,可单独配置不同的算法模块;模块间使用静态链接,计算时使用多线程,计算性能高的优点。

【技术实现步骤摘要】
一种模块化的进化算法
本专利技术涉及算法
,具体为一种模块化的进化算法。
技术介绍
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。进化算法是一个“算法簇”,尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法,但它们产生的灵感都来自于大自然的生物进化。与传统的基于微积分的方法和穷举法等优化算法相比,进化计算是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题。现有的进化算法不能够对不同问题单独配置目标函数模块,不能够单独配置不同的算法模块,算法单一,计算性能低。
技术实现思路
本专利技术的目的在于提供一种模块化的进化算法,具备使用进化算法的原理,可对复杂的黑箱函数进行求解;可针对不同问题单独配置目标函数模块,可单独配置不同的算法模块;模块间使用静态链接,计算时使用多线程,计算性能高的优点,解决了算法单一,计算性能低的问题。为实现上述目的,本专利技术提供如下技术方案:一种模块化的进化算法,包括计算框架模块、目标函数模块、算子算法模块、用户界面模块、监听函数模块和输出记录模块,所述计算框架模块提供公开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,本专利技术提供的一种实施例:一种模块化的进化算法,运本文档来自技高网...

【技术保护点】
1.一种模块化的进化算法,包括计算框架模块、目标函数模块、算子算法模块、用户界面模块、监听函数模块和输出记录模块,其特征在于:所述计算框架模块提供公开API接口供用于用户界面模块调用,规定目标函数模块和算子算法模块的公开API,计算框架模块在调用目标函数模块和算子算法模块时分配线程,计算框架模块在单次计算迭代中按照多线程模式调用目标函数模块和算子算法模块;计算框架模块注册监听函数模块,调用输出记录模块记录数据。/n

【技术特征摘要】
1.一种模块化的进化算法,包括计算框架模块、目标函数模块、算子算法模块、用户界面模块、监听函数模块和输出记录模块,其特征在于:所述计算框架模块提供公开API接口供用于用户界面模块调用,规定目标函数模块和算子算法模块的公开API,计算框架模块在调用目标函数模块和算子算法模块时分配线程,计算框架模块在单次计算迭代中按照多线程模式调用目标函数模块和算子算法模块;计算框架模块注册监听函数模块,调用输出记录模块记录数据。


2.根据权利要求1所述的一种模块化的进化算法,其特征在于:所述目标函数模块解决用户提出的具体问题,目标函数模块实现规定的API供给计算框架模块调用。


3.根据权利要求1所述的一种模块化的进化算法,其特征在于:所述算子算法模块是进化计算所使用的具体算法,包含差分算法,粒子群算法,算子算法模块实现规定的API供计算框架模块调用。


4.根据权利要求1所述的一种模块化的进化算法,其特征在于:所述监听函数模块用于计算中途的数据检测和观察,监听函数模块的格式公开。


5.根据权利要求1所述的一种模块化的进化算法,其特征在于:运行步骤:

【专利技术属性】
技术研发人员:张良刘洪涛梁新伟王晓强
申请(专利权)人:山东祺瑞升软件有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1