遗传编程方法、装置和计算机可读介质与流程

文档序号:23157909发布日期:2020-12-04 13:52阅读:119来源:国知局
遗传编程方法、装置和计算机可读介质与流程

本发明涉及计算机技术领域,特别涉及遗传编程方法、装置和计算机可读介质。



背景技术:

遗传算法是一类可用于复杂系统优化计算的鲁棒性搜索算法,起源于对生物系统所进行的计算机模拟研究。通过复制、交叉、变异等操作,使新一代个体的结果优于父代,通过不断迭代,逐渐得出最优结果。而后被广泛应用于解决非线性优化问题、图像处理、自动化控制、生产调度等问题。

效能是指系统在规定条件下达到规定使用目标的能力,效能评估以某一复杂系统作为研究对象,综合考虑各种相关因素,最终通过计算得到该复杂系统在执行某项任务时的效率指标的结论性评价。现有技术中,通常利用遗传算法解决效能优化问题,但是传统的并行遗传编程方法在评估效能时需要等待评估耗时最久的个体执行完成,导致了大量处理器资源处于闲置状态,从而影响系统整体性能,这不利于提高个体的优化效率。



技术实现要素:

本发明提供了遗传编程方法、装置和计算机可读介质,能够提高个体的优化效率。

第一方面,本发明实施例提供了遗传编程方法,该方法包括:

获取第一预设数量的第一个体,其中,所述第一预设数量不少于两个;

将预设的样本数据输入到每一个所述第一个体中,并利用预设的适应度评估规则对所有的所述第一个体进行评估,以得到每一个所述第一个体的适应度;

根据所述第一个体和预设的遗传算法,确定第一预设数量的子代个体;

利用所述适应度评估规则对所有的所述子代个体进行评估,确定完成评估的子代个体的数量是否达到预设的第一预设阈值;

如果完成评估的子代个体的数量达到所述第一预设阈值,则将该子代个体确定为目标子代个体,其中,所述第一预设阈值小于所述第一预设数量;

在所有的第一个体和所有的目标子代个体中,按照适应度由高至低的顺序筛选出第一预设数量的第二个体,并将所述第二个体确定为第一个体;

如果已完成评估的个体总数小于第二预设阈值,则执行如下操作:根据所述第一个体和所述遗传算法,确定第二预设数量的第三个体,并将所述第三个体和未完成评估的子代个体确定为所述子代个体,以及执行所述利用所述适应度评估规则对所有的所述子代个体进行评估,其中,所述第二预设数量等于所述第一预设阈值;

如果已完成评估的个体总体不小于第二预设阈值,则输出适应度最高的子代个体。

可选地,所述利用所述适应度评估规则对所有的所述子代个体进行评估,确定完成评估的子代个体的数量是否达到预设的第一预设阈值,包括:

以并行的方式利用所述适应度评估规则对所有的所述子代个体进行评估;

以轮询的方式轮询所有的所述子代个体,确定完成评估的子代个体的数量是否达到预设的第一预设阈值。

可选地,所述适应度评估规则,通过如下公式确定:

其中,f用于表征个体的适应度值,n用于表征所述样本数据的数量,y用于表征预设的第一评估值,用于表征所述样本数据输入到每一个所述第一个体中后所获得的第二评估值。

可选地,所述根据所述第一个体和预设的遗传算法,确定第一预设数量的子代个体,包括:

根据预设的锦标赛算法,在所述第一个体中确定出至少两个父代个体;

按照所述遗传算法对至少两个所述父代个体进行计算,确定第一预设数量的子代个体。

可选地,所述第二预设数量,通过如下公式确定:

si=min(si-1,e-ei-1-ti-1)

其中,si用于表征第i次执行所述遗传算法时的所述第二预设数量,si-1用于表征第i-1次执行所述遗传算法时完成评估的个体数量,e用于表征所述第二预设阈值,ei-1用于表征在i-1次执行所述遗传算法中完成评估的个体总数,ti-1用于表征第i-1次执行所述遗传算法时未完成评估的个体数量,其中,i为大于等于2的整数。

第二方面,本发明实施例还提供了遗传编程装置,包括:获取模块、评估模块、子代生成模块、判断模块和确定模块;

所述获取模块,用于获取第一预设数量的第一个体,其中,所述第一预设数量不少于两个;

所述评估模块,用于将预设的样本数据输入到由所述获取模块获取的每一个所述第一个体中,并利用预设的适应度评估规则对所有的所述第一个体进行评估,以得到每一个所述第一个体的适应度;

所述子代生成模块,用于根据由所述评估模块评估后的所述第一个体和预设的遗传算法,确定第一预设数量的子代个体;

所述评估模块,还用于利用所述适应度评估规则对所述子代生成模块确定的所有的所述子代个体进行评估;

所述判断模块,用于确定所述评估模块完成评估的子代个体的数量是否达到预设的第一预设阈值;

所述确定模块,用于所述判断模块确定完成评估的子代个体的数量达到所述第一预设阈值时,将该子代个体确定为目标子代个体,并在所有的第一个体和所有的目标子代个体中,按照适应度由高至低的顺序筛选出第一预设数量的第二个体,将所述第二个体确定为第一个体,其中,所述第一预设阈值小于所述第一预设数量;

所述判断模块,还用于判断所述评估模块已完成评估的个体总数是否小于第二预设阈值;

所述子代生成模块,还用于所述判断模块确定已完成评估的个体总数小于第二预设阈值时,根据由所述确定模块确定的所述第一个体和所述遗传算法,确定第二预设数量的第三个体,其中,所述第二预设数量等于所述第一预设阈值;

所述确定模块,还用于将由所述子代生成模块确定的所述第三个体和所述评估模块中未完成评估的子代个体确定为所述子代个体,并在已完成评估的个体总体不小于第二预设阈值时,输出适应度最高的子代个体。

可选地,

所述评估模块,还用于以并行的方式利用所述适应度评估规则对所有的所述子代个体进行评估;

所述判断模块,还用于以轮询的方式轮询所有的所述子代个体,确定完成评估的子代个体的数量是否达到预设的第一预设阈值。

可选地,所述子代生成模块,还用于根据预设的锦标赛算法,在所述第一个体中确定出至少两个父代个体,并按照所述遗传算法对至少两个所述父代个体进行计算,确定第一预设数量的子代个体。

第三方面,本发明实施例还提供了遗传编程装置,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,执行上述第一方面或第一方面的任一可能的实现方式所提供的遗传编程方法。

第四方面,本发明还提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述第一方面或第一方面的任一可能的实现方式所提供的遗传编程方法。

本发明实施例提供的遗传编程方法、装置和计算机可读介质,通过遗传算法对进行效能评估的个体进行迭代产生子代个体,采用适应度评估规则对子代个体进行评估以确定适应度最高的子代个体。在完成评估的子代个体数量达到一定数量时,则通过遗传算法产生子代个体,对该子代个体与未完成评估的子代个体采用适应度评估规则进行评估,等待完成评估的子代个体数量再次达到一定数量,如此循环运行直至完成评估的个体总数达到预设数量时终止整个过程。由此可见,该遗传编程方法采用异步并行的算法,使得该过程无需等待耗时最久的个体完成评估即可执行下一步操作,从而充分利用计算机多核资源,实现遗传编程的高效运行,能够提高个体的优化效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种遗传编程方法的流程图;

图2是本发明一个实施例提供的另一种遗传编程方法的流程图;

图3是本发明一个实施例提供的一种遗传编程装置所在设备的示意图;

图4是本发明一个实施例提供的一种遗传编程装置的示意图。

具体实施方式

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

如图1所示,本发明一个实施例提供了一种遗传编程方法,该方法可以包括如下步骤:

步骤101:获取第一预设数量的第一个体,其中,第一预设数量不少于两个;

步骤102:将预设的样本数据输入到每一个第一个体中,并利用预设的适应度评估规则对所有的第一个体进行评估,以得到每一个第一个体的适应度;

步骤103:根据第一个体和预设的遗传算法,确定第一预设数量的子代个体;

步骤104:利用适应度评估规则对所有的子代个体进行评估,确定完成评估的子代个体的数量是否达到预设的第一预设阈值;

步骤105:如果完成评估的子代个体的数量达到第一预设阈值,则将该子代个体确定为目标子代个体,其中,第一预设阈值小于第一预设数量;

步骤106:在所有的第一个体和所有的目标子代个体中,按照适应度由高至低的顺序筛选出第一预设数量的第二个体,并将第二个体确定为第一个体;

步骤107:如果已完成评估的个体总数小于第二预设阈值,则执行如下操作:根据第一个体和遗传算法,确定第二预设数量的第三个体,并将第三个体和未完成评估的子代个体确定为子代个体,以及执行步骤104,其中,第二预设数量等于第一预设阈值;

步骤108:如果已完成评估的个体总体不小于第二预设阈值,则输出适应度最高的子代个体。

在本发明实施例中,该方法通过遗传算法对进行效能评估的个体进行迭代产生子代个体,采用适应度评估规则对子代个体进行评估以确定适应度最高的子代个体。在完成评估的子代个体数量达到一定数量时,则通过遗传算法产生子代个体,对该子代个体与未完成评估的子代个体采用适应度评估规则进行评估,等待完成评估的子代个体数量再次达到一定数量,如此循环运行直至完成评估的个体总数达到预设数量时终止整个过程。由此可见,该遗传编程方法采用异步并行的算法,使得该过程无需等待耗时最久的个体完成评估即可执行下一步操作,从而充分利用计算机多核资源,实现遗传编程的高效运行,能够提高个体的优化效率。

在本发明实施例中,获取第一预设数量的第一个体,该第一预设数量即为种群规模。其中,种群规模太小会导致精度不足且解不稳定,种群规模过大又会导致运算时间增加、优化效率下降,因此为了保证遗传算法的精度和优化效率,一般种群规模为100~1000,例如,获取100个第一个体。

在本发明实施例中,根据个体的适应度计算可以得到个体的选择概率,预设的遗传算法根据个体的选择概率可以迭代产生子代个体,用概率性传递规则代替确定性规则,能够求出优化问题的全局最优解。而且遗传算法的优化结果与初始条件无关,算法独立于求解域,适用于控制变量多的复杂求解优化问题。

在本发明实施例中,个体可以为用于效能评估的树形评估函数。使用树形评估函数可以直接利用遗传算法进行选择运算、交叉运算和变异运算,无需事先将个体进行编码,也无需在获得最优解时进行解码,进一步加快了基于该遗传编程方法的优化速度,从而提高个体的优化效率。

在本发明实施例中,通过在完成评估的子代个体的数量达到第一预设阈值时,将该子代个体确定为目标子代个体,且第一预设阈值小于第一预设数量,实现了异步并行。如果第一预设阈值等于第一预设数量,则该评估过程为并行处理,需要等待耗时最久的个体完成评估才可以执行后续操作。如此采用异步并行,可在完成一定数量的子代个体评估后,立即执行后续操作,从而充分利用计算机多核资源,实现遗传编程的高效运行,提高个体优化效率。

在本发明实施例中,采用异步并行,在完成一定数量的子代个体评估后,如果已完成评估的个体总数小于第二预设阈值,则继续利用遗传算法确定第二预设数量的第三个体(新产生的子代个体),并根据第三个体和未完成评估的子代个体确定为子代个体,继续进行评估。如此直至已完成评估的个体总数等于或大于第二预设阈值,则输出适应度最高的子代个体,由此获得的子代个体用于进行效能评估具有准确性高、可解释性强,无需反复调整参数等特点,适用于任何效能评估的场景。同时在已完成评估的个体总数小于第二预设阈值时,所执行的循环操作异步并行,彼此独立,有效节省了时间,从而提高了个体优化效率。

在本发明实施例中,在所有的第一个体和所有的目标子代个体中,按照适应度由高至低的顺序筛选出第一预设数量的第二个体,即保证所有第一个体与所有第二个体的种群规模一致,从而在根据遗传算法进行迭代的过程中,可以防止种群膨胀,降低运算效率而导致的优化效率降低;也可以防止种群收缩,甚至无法继续迭代、影响最优解的精度。同时适应度用于表征个体的优劣性,按照适应度由高至低的顺序筛选第二个体,保证该第二个体比第一个体的适应度结果更加优越,如此不断迭代逐渐得出最优的结果,保证了该遗传编程方法的优化精度,提高了该遗传编程方法的可靠性。

可选地,在图1所示遗传编程方法中,步骤104利用适应度评估规则对所有的子代个体进行评估,确定完成评估的子代个体的数量是否达到预设的第一预设阈值,包括:

以并行的方式利用适应度评估规则对所有的子代个体进行评估;

以轮询的方式轮询所有的子代个体,确定完成评估的子代个体的数量是否达到预设的第一预设阈值。

在本发明实施例中,通过并行的方式对第一次采用遗传算法获得的所有子代个体进行评估,可以减少单个子代个体评估的等待时间,使得多个子代个体同时进行评估,多核情况下可充分利用处理器资源,从而加速评估进程,进一步节省该遗传编程方法的运行时间,提高优化效率。

例如,接前例所述,第一预设阈值为10,且小于第一预设数量100。将100个子代个体放入处理器数量为10的线程池中进行评估,10个处理器并行处理,然后通过轮询的方式对进行评估的100个子代个体进行轮询,在完成评估的子代个体的数量为10时,终止轮询。将该完成评估的10个子代个体确定为目标子代个体,并在线程池中删除该10个子代个体,只保留线程池中剩余的90个未完成评估的子代个体。

可选地,在图1所示遗传编程方法中,步骤104中的适应度评估规则,通过如下公式确定:

其中,f用于表征个体的适应度值,n用于表征样本数据的数量,y用于表征预设的第一评估值,用于表征样本数据输入到每一个第一个体中后所获得的第二评估值。

在本发明实施例中,将样本数据输入到该个体中可以获得第二评估值,该第二评估值为采用该个体获得的效能评估值,而预设的第一评估值为该样本数据进行效能评估获得的真实评估值。通过多个样本数据的第一评估值与第二评估值之差的平方和,可以确定该个体的适应度值,其中,适应度值越大的个体越容易在种群迭代中保留下来,即该个体为更优的个体。

例如,对10个炮光集成武器进行效能评估,样本数据为每个炮光集成武器的12项作战指标数据。在该适应度评估规则中,对于a个体,f为使用a个体在进行针对炮光集成武器的效能评估时的适应度值,n为10,y为每一个炮光集成武器的真实效能评估值(根据现有方法得到的真实效能评估值),为每一个炮光集成武器的在a个体下的效能评估值。

可选地,在图1所示遗传编程方法中,步骤103根据第一个体和预设的遗传算法,确定第一预设数量的子代个体,包括:

根据预设的锦标赛算法,在第一个体中确定出至少两个父代个体;

按照遗传算法对至少两个父代个体进行计算,确定第一预设数量的子代个体。

在本发明实施例中,根据预设的锦标赛算法在第一个体中确定多对父代个体,其中第一个体中的个体可以被多次选做父代,每对父代个体按照遗传算法中的交叉算法和变异算法生成子代个体,其中,交叉算法可以是单点交叉,变异算法可以是单点变异。此外,第一个体(即种群)的选择、交叉和变异过程对于该第一个体中的个体都是相互独立的过程,可以将该部分进行并行处理,能够进一步加速遗传算法的迭代,从而节省整个过程的运行时间,提高优化的效率。

例如,接前例所述,第一预设数量为100,根据锦标赛算法在第一个体中选择50对父代个体,其中第一个体中的b个体被多次选做父代,每对父代个体按照遗传算法中的单点交叉算法和单点变异算法生成2个子代个体,其中,交叉概率为90%,变异概率为1%,如此50对父代个体最终按照遗传算法获得100个子代个体。

可选地,在图1所示遗传编程方法中,步骤107中的第二预设数量,通过如下公式确定:

si=min(si-1,e-ei-1-ti-1)

其中,si用于表征第i次执行遗传算法时的第二预设数量,si-1用于表征第i-1次执行遗传算法时完成评估的个体数量,e用于表征第二预设阈值,ei-1用于表征在i-1次执行遗传算法中完成评估的个体总数,ti-1用于表征第i-1次执行遗传算法时未完成评估的个体数量,其中,i为大于等于2的整数。

在本发明实施例中,通过该公式可以确定第i次执行遗传算法时的所生成的子代个体的数量,再根据预设的已完成评估的个体总数(第二预设阈值)可以间接确定迭代次数。因此,通过该公式保证了该遗传编程方法的优化结果的准确性。

例如,接前例所述,第二预设阈值e为5000。在第2次执行遗传算法时,s1为第1次执行所述遗传算法时完成评估的个体数量10,e1为在一次执行所述遗传算法中完成评估的个体总数10,t1为第1次执行遗传算法时未完成评估的个体数量90,s2=min(10,5000-10-90)=10。在第3次执行遗传算法时,s2为10,e2为在前两次执行所述遗传算法中完成评估的个体总数20,t1为第2次执行所述遗传算法时未完成评估的个体数量90。s2=min(10,5000-20-90)=10。在该遗传编程方法的最终阶段,在第492次执行遗传算法时,s491为10,e491为在前491次执行所述遗传算法中完成评估的个体总数4910,t491为第491次执行所述遗传算法时未完成评估的个体数量90,s492=min(10,5000-4910-90)=0。

为了更加清楚地说明本发明的技术方案及优点,如图2所示,下面对本发明实施例提供的遗传编程方法进行详细的说明,具体包括:

步骤201:获取第一预设数量的第一个体。

具体地,第一预设数量不少于两个,例如,接前例所述,第一预设数量为100,个体可以为用于效能评估的树形评估函数。

步骤202:根据预设的样本数据和预设的适应度评估规则对所有的第一个体进行评估。

具体地,将预设的样本数据输入到每一个第一个体中,并利用预设的适应度评估规则对所有的第一个体进行评估,以得到每一个第一个体的适应度,其中,适应度评估规则,通过如下公式确定:

其中,f用于表征个体的适应度值,n用于表征样本数据的数量,y用于表征预设的第一评估值,用于表征样本数据输入到每一个第一个体中后所获得的第二评估值。

步骤203:根据第一个体和预设的遗传算法确定子代个体。

具体地,根据预设的锦标赛算法,在第一个体中确定出至少两个父代个体;按照遗传算法中的交叉算法和变异算法对至少两个父代个体进行计算,确定第一预设数量的子代个体。

例如,接前例所述,第一次采用预设的遗传算法时,根据100个第一个体确定100个子代个体。

步骤204:对所有的子代个体进行评估,确定完成评估的子代个体的数量达到预设的第一预设阈值。

具体地,以并行的方式利用上述适应度评估规则对所有的子代个体进行评估;以轮询的方式轮询所有的子代个体,确定完成评估的子代个体的数量是否达到预设的第一预设阈值,其中,第一预设阈值小于第一预设数量。

例如,接前例所述,第一预设阈值为10。第i次(i小于492且为整数)执行遗传算法时,对100个子代个体以并行的方式进行评估,通过轮询方式确定完成评估的子代个体数量为10时,执行步骤205。在该遗传编程方法的最终阶段,第i次(i不小于492且为整数)执行遗传算法时,对ti-1个子代个体以并行的方式进行评估,通过轮询方式确定完成评估的子代个体数量为10时,执行步骤205。

步骤205:按照适应度由高至低的顺序筛选出第一预设数量的第二个体。

具体地,如果完成评估的子代个体的数量达到第一预设阈值,则将该子代个体确定为目标子代个体,在所有的第一个体和所有的目标子代个体中,按照适应度由高至低的顺序筛选出第一预设数量的第二个体,并将第二个体确定为第一个体。

例如,接前例所述,第i次执行遗传算法,当已完成评估的子代个体的数量达到10时,对该10个已完成评估的子代个体和第i-1次执行遗传算法所获得的100个体,按照适应度由高至低的顺序筛选出100个体并确定为第一个体。

步骤206:确定已完成评估的个体总数是否小于第二预设阈值,如果是则执行步骤207,否则执行步骤208。

例如,接前例所述,确定已完成评估的个体总数是否小于5000。

步骤207:根据第一个体和遗传算法,确定第二预设数量的第三个体,并将第三个体和未完成评估的子代个体确定为子代个体,以及执行步骤204。

具体地,第二预设数量,通过如下公式确定:

si=min(si-1,e-ei-1-ti-1)

其中,si用于表征第i次执行遗传算法时的第二预设数量,si-1用于表征第i-1次执行遗传算法时完成评估的个体数量,e用于表征第二预设阈值,ei-1用于表征在i-1次执行遗传算法中完成评估的个体总数,ti-1用于表征第i-1次执行遗传算法时未完成评估的个体数量,其中,i为大于等于2的整数;

根据预设的锦标赛算法,在第一个体中确定出至少两个父代个体;按照遗传算法中的交叉算法和变异算法对至少两个父代个体进行计算,确定第二预设数量的子代个体。

例如,接前例所述,第i次(i小于492且为整数)执行遗传算法时,根据该公式确定10个子代个体。在该遗传编程方法的最终阶段,第i次(i不小于492且为整数)执行遗传算法时,根据该公式确定0个子代个体,即不再产生新的子代个体,开始对ti-1个子代个体以并行的方式进行评估直至确定已完成评估的个体总数等于或大于5000。

步骤208:输出适应度最高的子代个体。

具体地,按照适应度由高至低的顺序在第二个体中确定适应度最高的子代个体并输出。

例如,接前例所述,在最后一次执行遗传算法所确定的100个子代个体中,按照适应度由高至低的顺序在该100个体中确定适应度最高的子代个体并输出。

如图3、图4所示,本发明实施例提供了遗传编程装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的遗传编程装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的cpu将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的遗传编程装置,包括:获取模块401、评估模块402、子代生成模块403、判断模块404和确定模块405;

获取模块401,用于获取第一预设数量的第一个体,其中,第一预设数量不少于两个;

评估模块402,用于将预设的样本数据输入到由获取模块401获取的每一个第一个体中,并利用预设的适应度评估规则对所有的第一个体进行评估,以得到每一个第一个体的适应度;

子代生成模块403,用于根据由评估模块402评估后的第一个体和预设的遗传算法,确定第一预设数量的子代个体;

评估模块402,还用于利用适应度评估规则对子代生成模块403确定所有的的子代个体进行评估;

判断模块404,用于确定评估模块402完成评估的子代个体的数量是否达到预设的第一预设阈值;

确定模块405,用于判断模块404确定完成评估的子代个体的数量达到第一预设阈值时,将该子代个体确定为目标子代个体,并在所有的第一个体和所有的目标子代个体中,按照适应度由高至低的顺序筛选出第一预设数量的第二个体,将第二个体确定为第一个体,其中,第一预设阈值小于第一预设数量;

判断模块404,还用于判断评估模块402已完成评估的个体总数是否小于第二预设阈值;

子代生成模块403,还用于判断模块402确定已完成评估的个体总数小于第二预设阈值时,根据由确定模块405确定的第一个体和遗传算法,确定第二预设数量的第三个体,其中,第二预设数量等于第一预设阈值;

确定模块405,还用于将由子代生成模块403确定的第三个体和评估模块402中未完成评估的子代个体确定为子代个体,并在已完成评估的个体总体不小于第二预设阈值时,输出适应度最高的子代个体。

在本发明的一个实施例中,评估模块402还用于以并行的方式利用适应度评估规则对所有的子代个体进行评估;

判断模块404还用于以轮询的方式轮询所有的子代个体,确定完成评估的子代个体的数量是否达到预设的第一预设阈值。

在本发明的一个实施例中,评估模块402所利用的适应度评估规则,通过如下公式确定:

其中,f用于表征个体的适应度值,n用于表征样本数据的数量,y用于表征预设的第一评估值,用于表征样本数据输入到每一个第一个体中后所获得的第二评估值。

在本发明的一个实施例中,子代生成模块403还用于根据预设的锦标赛算法,在第一个体中确定出至少两个父代个体,并按照遗传算法对至少两个父代个体进行计算,确定第一预设数量的子代个体。

在本发明的一个实施例中,子代生成模块403所确定的第二预设数量,通过如下公式确定:

si=min(si-1,e-ei-1-ti-1)

其中,si用于表征第i次执行遗传算法时的第二预设数量,si-1用于表征第i-1次执行遗传算法时完成评估的个体数量,e用于表征第二预设阈值,ei-1用于表征在i-1次执行遗传算法中完成评估的个体总数,ti-1用于表征第i-1次执行遗传算法时未完成评估的个体数量,其中,i为大于等于2的整数。

可以理解的是,本发明实施例示意的结构并不构成对遗传编程装置的具体限定。在本发明的另一些实施例中,遗传编程装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。

上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明实施例还提供了遗传编程装置,包括:至少一个存储区和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例中的遗传编程方法。

本发明实施例还提供了一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行本发明任一实施例中的遗传编程方法。

具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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