一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于risc-v体系的鲸鱼优化算法实现方法与流程

2022-06-02 11:20:50 来源:中国专利 TAG:


1.本发明涉及算法优化的技术领域,尤其涉及一种基于risc-v体系的鲸鱼优化算法实现方法。


背景技术:

2.在学术研究和工业生产的许多领域中,常用启发式算法对实值问题进行优化和求解。启发式算法作为一种群体为基础的随机优化方法,与传统梯度方法相比,缺少梯度信息和优化方向,需要通过大量的迭代来优化和求解问题,存在运行效率上的不足,这是制约启发式算法应用的一个重要因素。作为传统启发式算法,鲸鱼算法具有机制简单、参数少、寻优能力强等优点,在经济调度、最优控制、光伏系统、图像分割等方面得到广泛的应用,如何在不复杂、运行效率高的处理系统上实现鲸鱼优化算法,成为当前研究的热门话题,因此本专利提出一种基于risc-v体系的鲸鱼优化算法实现方法。


技术实现要素:

3.本发明提供一种基于risc-v体系的鲸鱼优化算法实现方法,目的在于(1)实现鲸鱼算法的优化;(2)基于risc-v体系结构实现鲸鱼算法的计算。
4.实现上述目的,本发明提供的一种基于risc-v体系的鲸鱼优化算法实现方法,包括以下步骤:
5.s1:确定risc-v体系下鲸鱼优化算法处理器的结构以及处理器内寄存器的分配策略;
6.s2:根据寄存器分配策略对寄存器进行分配;
7.s3:确定risc-v体系结构下的指令选择策略;
8.s4:根据指令选择策略确定鲸鱼优化算法实施指令,并将所确定的实施指令发送到鲸鱼优化算法处理器,鲸鱼优化算法处理器根据所接收到的指令执行鲸鱼优化算法。
9.作为本发明的进一步改进方法:
10.所述s1步骤中确定risc-v体系下鲸鱼优化算法处理器的结构,包括:
11.所述鲸鱼优化算法处理器包括程序计数器、指令接收器、数据接收器、译码部件、寄存器、运算器、控制器,所述程序计数器用于提供待执行的指令地址,并通过控制器对鲸鱼优化算法处理器的控制信号实时更新下一条指令的地址,程序计数器将待执行的指令地址发送到指令接收器,所述指令接收器用于接收待执行的鲸鱼优化算法实施指令,根据指令地址提取指令数据,其中指令数据为指令流数据,包含了鲸鱼优化算法处理器执行鲸鱼优化算法的多条指令的顺序,数据接收器用于接收辅助执行鲸鱼优化算法的数据,所述控制器用于发出控制信号,对鲸鱼优化算法处理器中的其余部件进行进程控制,所述译码部件根据指令数据中不同指令的类型对指令进行译码,每条指令的译码结果包括指令操作码op、功能码fun、两个指令源寄存器地址以及一个目的寄存器地址,功能码为每条指令的risc-v指令,控制器根据译码结果的指令操作码以及功能码生成控制信号,控制运算器和
寄存器执行指令的译码结果,所述运算器用于执行鲸鱼优化算法实施指令中的运算指令,所述寄存器用于辅助运算器完成运算指令的计算,并存储计算结果;
12.所述risc-v指令类型包括load/store指令,运算指令,控制指令以及同步指令,每种类型的指令具有不同的指令操作码,其中load/store指令的指令操作码为ls,运算指令的指令操作码为al,控制指令的指令操作码为ci,同步指令的指令操作码为tb。
13.所述s1步骤中寄存器的分配策略,包括:
14.所述鲸鱼优化算法处理器中寄存器的分配策略为:
15.1)统计鲸鱼优化算法执行过程中cisc体系下所需的寄存器数量n
cisc
,其中cisc体系为复杂指令集计算机体系,并设置risc-v体系下所用到的寄存器数量为n
risc
,在本发明一个具体实施例中,将n
risc
设置为64;
16.2)若n
cisc
》n
risc
,当鲸鱼优化算法开始执行时,将n
risc
个risc-v体系下的寄存器全部入栈保存,则在算法执行过程中,risc-v体系下的寄存器将作为临时寄存器,并将n
risc
个cisc体系下的寄存器映射到risc-v体系下的寄存器,并在鲸鱼优化算法处理器的内存中开辟一段栈空间,用于模拟其余n
cisc-n
risc
个cisc体系下的寄存器;
17.3)若n
cisc
≤n
risc
,当鲸鱼优化算法开始执行时,将n
risc
个risc-v体系下的寄存器全部入栈保存,则在算法执行过程中,将n
cisc
个cisc体系下的寄存器映射到risc-v体系下的寄存器;
18.在本发明一个具体实施例中,所述cisc体系下的寄存器只能进行读取,无法进行修改,所述risc-v体系下的寄存器可以读取也可以修改。
19.所述s2步骤中根据寄存器分配策略对鲸鱼优化算法处理器内的寄存器进行分配,包括:
20.鲸鱼优化算法处理器的指令接收器提取得到指令数据,其中指令数据为cisc体系下的指令集,并对指令数据中的每条数据进行遍历,得到执行该指令所需的cisc体系下的寄存器数量,利用译码部件将原始指令转译为risc-v指令,并按照所述寄存器分配策略,将原始cisc体系下的寄存器映射到risc-v体系下的寄存器,当risc-v体系下的寄存器不足时,鲸鱼优化算法处理器在内存中开辟一段栈空间来模拟cisc体系下的寄存器。
21.所述s3步骤中确定risc-v体系结构下的指令选择策略,包括:
22.所述鲸鱼优化算法处理器接收到的鲸鱼优化算法实施指令的大小为128bit,分别包括inst-addr、inst-data以及inst-depend,其中inst-addr为指令地址,inst-data为cisc体系下的指令数据,其中cisc体系为复杂指令集计算机体系,所述inst-data描述了鲸鱼优化算法处理器执行鲸鱼优化算法的多条指令的顺序,inst-depend为处理指令所需要的信息,包括寄存器信息以及指令执行的状态信息;所述鲸鱼优化算法实施指令为cisc体系下的指令,所述指令选择策略为对于所接收到的鲸鱼优化算法实施指令,均能在risc-v体系下找到功能相同的指令进行替换,若cisc体系下的指令的立即数操作位数大于12位,则在寄存器映射分配过程中,增加待映射的寄存器,若cisc体系下的指令的立即数操作位数不大于12位,则直接利用相同功能的risc-v指令对cisc体系下的指令进行替换。
23.所述s4步骤中将所确定的实施指令发送到鲸鱼优化算法处理器,包括:
24.根据指令选择策略确定鲸鱼优化算法实施指令,将鲸鱼优化算法实施指令的地址发送到鲸鱼优化算法处理器,鲸鱼优化算法处理器内的控制器将接收到的鲸鱼优化算法实
施指令的地址发送到程序计数器,程序计数器按照指令的运行顺序,将待执行的指令地址发送到指令接收器,指令接收器提取鲸鱼优化算法实施指令中的指令数据,并利用译码部件将接收到的cisc指令译码为risc-v指令,同时按照寄存器分配策略完成鲸鱼优化算法处理器内寄存器的分配,控制器根据译码结果的指令操作码以及功能码生成控制信号,并将控制信号分别发送给运算器和寄存器。
25.所述s4步骤中鲸鱼优化算法处理器根据所确定的实施指令执行鲸鱼优化算法,包括:
26.随机初始化大小为n的种群数据,并将初始化的种群数据发送到数据接收器;所述鲸鱼优化算法实施指令的指令类型包括运算指令、load/store指令以及控制指令,所述基于risc-v体系的鲸鱼优化算法实现流程为:
27.1)设置算法最大迭代次数为max的控制指令;设置鲸鱼优化算法适应度计算的运算指令;设置鲸鱼优化算法迭代次数统计的运算指令;
28.2)利用鲸鱼优化算法适应度计算的运算指令实时计算算法中每条鲸鱼位置的适应度;
29.3)计算第k次迭代的鲸鱼优化算法的最优解x
*
(k),其中x
*
(k)表示鲸鱼优化算法第k次迭代时,适应度最小的鲸鱼位置,k的初始值为1;所述最优解的选取流程为:
30.设置三个操作位数为1的寄存器ra,rb,rc,并将寄存器的初始值分别置为0,0,1,在鲸鱼优化算法的第k轮迭代完成后,对于第k轮迭代后的任意两组鲸鱼位置x1(k)和x2(k),按照如下公式对寄存器ra,rb,rc赋值:
31.a=ra|(f(x1(k))《f(x2(k)))
32.b=rb|(f(x1(k))》f(x2(k)))
33.c=rc&(f(x1(k))==f(x2(k)))
34.其中:
35.a=ra|(f(x1(k))《f(x2(k)))表示若f(x1(k))《f(x2(k)),则将a置为1,否则将a置为0,f(
·
)表示计算鲸鱼位置适应度的运算指令;
36.b=rb|(f(x1(k))》f(x2(k)))表示若f(x1(k))》f(x2(k)),则将b置为1,否则将b置为0;
37.c=rc&(f(x1(k))==f(x2(k)))表示若f(x1(k))==f(x2(k)),则将c置为1,否则将c置为0;
38.若b和c均为0,对于两组鲸鱼位置x1(k)和x2(k),则鲸鱼位置x1(k)要优于x2(k),若a和c均为0,对于两组鲸鱼位置x1(k)和x2(k),则鲸鱼位置x2(k)要优于x1(k);通过基于寄存器计算第k轮迭代后所有鲸鱼位置组的适应度,得到最优的鲸鱼位置作为当前迭代轮次下的最优解x
*
(k);
39.4)利用运算指令和控制指令计算当前第k 1轮的收敛因子α(k 1):
[0040][0041]
其中:
[0042]
β为调整系数,将其设置为0.3;
[0043]
在本发明一个具体实施例中,利用运算指令比较控制指令中的最大迭代次数与当前迭代次数的关系,在当前迭代次数选择更大的收敛因子,扩大鲸鱼优化算法的寻优步长,提高鲸鱼优化算法在全局解空间的搜索能力,而在前迭代次数时,选取较小的收敛因子,减小鲸鱼优化算法的寻优步长,从而使得鲸鱼优化算法能够实现更为精细的局部搜索;
[0044]
5)在第k 1轮算法迭代时,任意鲸鱼进行位置更新,所述位置更新公式为:
[0045][0046]
其中:
[0047]
d表示系数向量,将其设置为2d,其中d为值域在[0,1]之间的随机向量;
[0048]
6)判断k 1是否大于等于max,若k 1≥max,则计算得到当前第k 1轮算法的最优解x
*
(k 1),利用load/store指令将最优解保存在目的寄存器中,利用控制器从目的寄存器提取最优解结果并进行输出;若k 1《max,则令k=k 1,返回步骤2)。
[0049]
此外,为实现上述目的,本发明还提供一种基于risc-v体系的鲸鱼优化算法处理器,其特征在于,所述鲸鱼优化算法处理器包括:
[0050]
所述鲸鱼优化算法处理器包括程序计数器、指令接收器、数据接收器、译码部件、寄存器、运算器、控制器;
[0051]
程序计数器,用于提供待执行的指令地址,并通过控制器对鲸鱼优化算法处理器的控制信号实时更新下一条指令的地址,程序计数器将待执行的指令地址发送到指令接收器;
[0052]
指令接收器,用于接收待执行的鲸鱼优化算法实施指令,根据指令地址提取指令数据,其中指令数据为指令流数据,包含了鲸鱼优化算法处理器执行鲸鱼优化算法的多条指令的顺序;
[0053]
数据接收器,用于接收辅助执行鲸鱼优化算法的数据;
[0054]
控制器,用于发出控制信号,对鲸鱼优化算法处理器中的其余部件进行进程控制;
[0055]
译码部件,用于根据指令数据中不同指令的类型对指令进行译码,每条指令的译码结果包括指令操作码op、功能码fun、两个指令源寄存器地址以及一个目的寄存器地址,控制器根据译码结果的指令操作码以及功能码生成控制信号,控制运算器和寄存器执行指令的译码结果;
[0056]
运算器,用于执行鲸鱼优化算法实施指令中的运算指令;
[0057]
寄存器,用于辅助运算器完成运算指令的计算,并存储计算结果。
[0058]
相对于现有技术,本发明提出一种基于risc-v体系的鲸鱼优化算法实现方法,该技术具有以下优势:
[0059]
首先,本方案提出一种寄存器分配策略,所述鲸鱼优化算法处理器中寄存器的分配策略为:1)统计鲸鱼优化算法执行过程中cisc体系下所需的寄存器数量n
cisc
,其中cisc体系为复杂指令集计算机体系,并设置risc-v体系下所用到的寄存器数量为n
risc
;2)若n
cisc
》n
risc
,当鲸鱼优化算法开始执行时,将n
risc
个risc-v体系下的寄存器全部入栈保存,则在算
法执行过程中,risc-v体系下的寄存器将作为临时寄存器,并将n
risc
个cisc体系下的寄存器映射到risc-v体系下的寄存器,同时在鲸鱼优化算法处理器的内存中开辟一段栈空间,用于模拟其余n
cisc-n
risc
个cisc体系下的寄存器;3)若n
cisc
≤n
risc
,当鲸鱼优化算法开始执行时,将n
risc
个risc-v体系下的寄存器全部入栈保存,则在算法执行过程中,将n
cisc
个cisc体系下的寄存器映射到risc-v体系下的寄存器;所述cisc体系下的寄存器只能进行读取,无法进行修改,所述risc-v体系下的寄存器可以读取也可以修改;相较于传统方法,本方案基于算法实现的全局考虑统计所需的寄存器资源,其中cisc体系的每条指令只提供两个寄存器操作数,若在指令执行过程中需要由三个不同的寄存器操作数时,cisc体系需要多提供一条搬运指令,并需要额外的寄存器执行搬运指令,从而增加了执行指令所需的寄存器数量,而risc-v体系的每条指令提供三个寄存器操作数,使得risc-v体系下所需的寄存器数量较少,因此本方案按照cisc体系寄存器优先映射的分配方法,将需要更多寄存器的cisc体系寄存器映射到risc-v体系寄存器,充分利用了有限的寄存器资源,并将在cisc体系下执行算法的传统方案转换为基于risc-v体系下的算法实现方案,当寄存器不足时,本方案通过在内存中开辟一段栈空间来模拟cisc体系下的寄存器,解决了risc-v体系下寄存器不足的问题。
[0060]
同时,本方案提出一种基于risc-v体系的鲸鱼优化算法实现步骤,通过随机初始化大小为n的种群数据,并将初始化的种群数据发送到数据接收器;所述鲸鱼优化算法实施指令的指令类型包括运算指令、load/store指令以及控制指令,所述基于risc-v体系的鲸鱼优化算法实现流程为:1)设置算法最大迭代次数为max的控制指令;设置鲸鱼优化算法适应度计算的运算指令;设置鲸鱼优化算法迭代次数统计的运算指令;2)利用鲸鱼优化算法适应度计算的运算指令实时计算算法中每条鲸鱼位置的适应度;3)计算第k次迭代的鲸鱼优化算法的最优解x
*
(k),其中x
*
(k)表示鲸鱼优化算法第k次迭代时,适应度最小的鲸鱼位置,k的初始值为1;所述最优解的选取流程为:设置三个操作位数为1的寄存器ra,rb,rc,并将寄存器的初始值分别置为0,0,1,在鲸鱼优化算法的第k轮迭代完成后,对于第k轮迭代后的任意两组鲸鱼位置x1(k)和x2(k),按照如下公式对寄存器ra,rb,rc赋值:
[0061]
a=ra|(f(x1(k))《f(x2(k)))
[0062]
b=rb|(f(x1(k))》f(x2(k)))
[0063]
c=rc&(f(x1(k))==f(x2(k)))
[0064]
其中:a=ra|(f(x1(k))《f(x2(k)))表示若f(x1(k))《f(x2(k)),则将a置为1,否则将a置为0,f(
·
)表示计算鲸鱼位置适应度的运算指令;b=rb|(f(x1(k))》f(x2(k)))表示若f(x1(k))》f(x2(k)),则将b置为1,否则将b置为0;c=rc&(f(x1(k))==f(x2(k)))表示若f(x1(k))==f(x2(k)),则将c置为1,否则将c置为0;若b和c均为0,对于两组鲸鱼位置x1(k)和x2(k),则鲸鱼位置x1(k)要优于x2(k),若a和c均为0,对于两组鲸鱼位置x1(k)和x2(k),则鲸鱼位置x2(k)要优于x1(k);通过基于寄存器计算第k轮迭代后所有鲸鱼位置组的适应度,得到最优的鲸鱼位置作为当前迭代轮次下的最优解x
*
(k);4)利用运算指令和控制指令计算当前第k 1轮的收敛因子α(k 1):
[0065]
[0066]
其中:β为调整系数,将其设置为0.3;相较于传统方案,本方案利用运算指令比较控制指令中的最大迭代次数与当前迭代次数的关系,在当前迭代次数选择更大的收敛因子,扩大鲸鱼优化算法的寻优步长,提高鲸鱼优化算法在全局解空间的搜索能力,而在前迭代次数时,选取较小的收敛因子,减小鲸鱼优化算法的寻优步长,从而使得鲸鱼优化算法能够实现更为精细的局部搜索;5)在第k 1轮算法迭代时,任意鲸鱼进行位置更新,所述位置更新公式为:
[0067][0068]
其中:d表示系数向量,将其设置为2d,其中d为值域在[0,1]之间的随机向量;6)判断k 1是否大于等于max,若k 1≥max,则计算得到当前第k 1轮算法的最优解x
*
(k 1),利用load/store指令将最优解保存在目的寄存器中,利用控制器从目的寄存器提取最优解结果并进行输出,并实现鲸鱼优化算法;若k 1《max,则令k=k 1,返回步骤2)。
附图说明
[0069]
图1为本发明一实施例提供的一种基于risc-v体系的鲸鱼优化算法实现方法;
[0070]
图2为本发明一实施例提供的一种鲸鱼优化算法处理器的结构示意图;
[0071]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0072]
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0073]
s1:确定risc-v体系下鲸鱼优化算法处理器的结构以及处理器内寄存器的分配策略。
[0074]
所述s1步骤中确定risc-v体系下鲸鱼优化算法处理器的结构,包括:
[0075]
所述鲸鱼优化算法处理器包括程序计数器、指令接收器、数据接收器、译码部件、寄存器、运算器、控制器,所述程序计数器用于提供待执行的指令地址,并通过控制器对鲸鱼优化算法处理器的控制信号实时更新下一条指令的地址,程序计数器将待执行的指令地址发送到指令接收器,所述指令接收器用于接收待执行的鲸鱼优化算法实施指令,根据指令地址提取指令数据,其中指令数据为指令流数据,包含了鲸鱼优化算法处理器执行鲸鱼优化算法的多条指令的顺序,数据接收器用于接收辅助执行鲸鱼优化算法的数据,所述控制器用于发出控制信号,对鲸鱼优化算法处理器中的其余部件进行进程控制,所述译码部件根据指令数据中不同指令的类型对指令进行译码,每条指令的译码结果包括指令操作码op、功能码fun、两个指令源寄存器地址以及一个目的寄存器地址,功能码为每条指令的risc-v指令,控制器根据译码结果的指令操作码以及功能码生成控制信号,控制运算器和寄存器执行指令的译码结果,所述运算器用于执行鲸鱼优化算法实施指令中的运算指令,所述寄存器用于辅助运算器完成运算指令的计算,并存储计算结果;
[0076]
所述risc-v指令类型包括load/store指令,运算指令,控制指令以及同步指令,每种类型的指令具有不同的指令操作码,其中load/store指令的指令操作码为ls,运算指令的指令操作码为al,控制指令的指令操作码为ci,同步指令的指令操作码为tb。
[0077]
所述s1步骤中寄存器的分配策略,包括:
[0078]
所述鲸鱼优化算法处理器中寄存器的分配策略为:
[0079]
1)统计鲸鱼优化算法执行过程中cisc体系下所需的寄存器数量n
cisc
,其中cisc体系为复杂指令集计算机体系,并设置risc-v体系下所用到的寄存器数量为n
risc
,在本发明一个具体实施例中,将n
risc
设置为64;
[0080]
2)若n
cisc
》n
risc
,当鲸鱼优化算法开始执行时,将n
risc
个risc-v体系下的寄存器全部入栈保存,则在算法执行过程中,risc-v体系下的寄存器将作为临时寄存器,并将n
risc
个cisc体系下的寄存器映射到risc-v体系下的寄存器,并在鲸鱼优化算法处理器的内存中开辟一段栈空间,用于模拟其余n
cisc-n
risc
个cisc体系下的寄存器;
[0081]
3)若n
cisc
≤n
risc
,当鲸鱼优化算法开始执行时,将n
risc
个risc-v体系下的寄存器全部入栈保存,则在算法执行过程中,将n
cisc
个cisc体系下的寄存器映射到risc-v体系下的寄存器;
[0082]
在本发明一个具体实施例中,所述cisc体系下的寄存器只能进行读取,无法进行修改,所述risc-v体系下的寄存器可以读取也可以修改。
[0083]
s2:根据寄存器分配策略对寄存器进行分配。
[0084]
所述s2步骤中根据寄存器分配策略对鲸鱼优化算法处理器内的寄存器进行分配,包括:
[0085]
鲸鱼优化算法处理器的指令接收器提取得到指令数据,其中指令数据为cisc体系下的指令集,并对指令数据中的每条数据进行遍历,得到执行该指令所需的cisc体系下的寄存器数量,利用译码部件将原始指令转译为risc-v指令,并按照所述寄存器分配策略,将原始cisc体系下的寄存器映射到risc-v体系下的寄存器,当risc-v体系下的寄存器不足时,鲸鱼优化算法处理器在内存中开辟一段栈空间来模拟cisc体系下的寄存器。
[0086]
s3:确定risc-v体系结构下的指令选择策略。
[0087]
所述s3步骤中确定risc-v体系结构下的指令选择策略,包括:
[0088]
所述鲸鱼优化算法处理器接收到的鲸鱼优化算法实施指令的大小为128bit,分别包括inst-addr、inst-data以及inst-depend,其中inst-addr为指令地址,inst-data为cisc体系下的指令数据,其中cisc体系为复杂指令集计算机体系,所述inst-data描述了鲸鱼优化算法处理器执行鲸鱼优化算法的多条指令的顺序,inst-depend为处理指令所需要的信息,包括寄存器信息以及指令执行的状态信息;所述鲸鱼优化算法实施指令为cisc体系下的指令,所述指令选择策略为对于所接收到的鲸鱼优化算法实施指令,均能在risc-v体系下找到功能相同的指令进行替换,若cisc体系下的指令的立即数操作位数大于12位,则在寄存器映射分配过程中,增加待映射的寄存器,若cisc体系下的指令的立即数操作位数不大于12位,则直接利用相同功能的risc-v指令对cisc体系下的指令进行替换。
[0089]
s4:根据指令选择策略确定鲸鱼优化算法实施指令,并将所确定的实施指令发送到鲸鱼优化算法处理器,鲸鱼优化算法处理器根据所接收到的指令执行鲸鱼优化算法。
[0090]
所述s4步骤中将所确定的实施指令发送到鲸鱼优化算法处理器,包括:
[0091]
根据指令选择策略确定鲸鱼优化算法实施指令,将鲸鱼优化算法实施指令的地址发送到鲸鱼优化算法处理器,鲸鱼优化算法处理器内的控制器将接收到的鲸鱼优化算法实施指令的地址发送到程序计数器,程序计数器按照指令的运行顺序,将待执行的指令地址
发送到指令接收器,指令接收器提取鲸鱼优化算法实施指令中的指令数据,并利用译码部件将接收到的cisc指令译码为risc-v指令,同时按照寄存器分配策略完成鲸鱼优化算法处理器内寄存器的分配,控制器根据译码结果的指令操作码以及功能码生成控制信号,并将控制信号分别发送给运算器和寄存器。
[0092]
所述s4步骤中鲸鱼优化算法处理器根据所确定的实施指令执行鲸鱼优化算法,包括:
[0093]
随机初始化大小为n的种群数据,并将初始化的种群数据发送到数据接收器;所述鲸鱼优化算法实施指令的指令类型包括运算指令、load/store指令以及控制指令,所述基于risc-v体系的鲸鱼优化算法实现流程为:
[0094]
1)设置算法最大迭代次数为max的控制指令;设置鲸鱼优化算法适应度计算的运算指令;设置鲸鱼优化算法迭代次数统计的运算指令;
[0095]
2)利用鲸鱼优化算法适应度计算的运算指令实时计算算法中每条鲸鱼位置的适应度;
[0096]
3)计算第k次迭代的鲸鱼优化算法的最优解x
*
(k),其中x
*
(k)表示鲸鱼优化算法第k次迭代时,适应度最小的鲸鱼位置,k的初始值为1;所述最优解的选取流程为:
[0097]
设置三个操作位数为1的寄存器ra,rb,rc,并将寄存器的初始值分别置为0,0,1,在鲸鱼优化算法的第k轮迭代完成后,对于第k轮迭代后的任意两组鲸鱼位置x1(k)和x2(k),按照如下公式对寄存器ra,rb,rc赋值:
[0098]
a=ra|(f(x1(k))《f(x2(k)))
[0099]
b=rb|(f(x1(k))》f(x2(k)))
[0100]
c=rc&(f(x1(k))==f(x2(k)))
[0101]
其中:
[0102]
a=ra|(f(x1(k))《f(x2(k)))表示若f(x1(k))《f(x2(k)),则将a置为1,否则将a置为0,f(

)表示计算鲸鱼位置适应度的运算指令;
[0103]
b=rb|(f(x1(k))》f(x2(k)))表示若f(x1(k))》f(x2(k)),则将b置为1,否则将b置为0;
[0104]
c=rc&(f(x1(k))==f(x2(k)))表示若f(x1(k))==f(x2(k)),则将c置为1,否则将c置为0;
[0105]
若b和c均为0,对于两组鲸鱼位置x1(k)和x2(k),则鲸鱼位置x1(k)要优于x2(k),若a和c均为0,对于两组鲸鱼位置x1(k)和x2(k),则鲸鱼位置x2(k)要优于x1(k);通过基于寄存器计算第k轮迭代后所有鲸鱼位置组的适应度,得到最优的鲸鱼位置作为当前迭代轮次下的最优解x
*
(k);
[0106]
4)利用运算指令和控制指令计算当前第k 1轮的收敛因子α(k 1):
[0107][0108]
其中:
[0109]
β为调整系数,将其设置为0.3;
[0110]
在本发明一个具体实施例中,利用运算指令比较控制指令中的最大迭代次数与当前迭代次数的关系,在当前迭代次数选择更大的收敛因子,扩大鲸鱼优化算法的寻优步长,提高鲸鱼优化算法在全局解空间的搜索能力,而在前迭代次数时,选取较小的收敛因子,减小鲸鱼优化算法的寻优步长,从而使得鲸鱼优化算法能够实现更为精细的局部搜索;
[0111]
5)在第k 1轮算法迭代时,任意鲸鱼进行位置更新,所述位置更新公式为:
[0112][0113]
其中:
[0114]
d表示系数向量,将其设置为2d,其中d为值域在[0,1]之间的随机向量;
[0115]
6)判断k 1是否大于等于max,若k 1≥max,则计算得到当前第k 1轮算法的最优解x
*
(k 1),利用load/store指令将最优解保存在目的寄存器中,利用控制器从目的寄存器提取最优解结果并进行输出;若k 1《max,则令k=k 1,返回步骤2)。
[0116]
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0117]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0118]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献