[发明专利]用遗传程序设计创建通用积木块在审
申请号: | 202080095841.9 | 申请日: | 2020-01-30 |
公开(公告)号: | CN115104109A | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 大卫·詹姆斯·兰达埃塔 | 申请(专利权)人: | 自然计算有限责任公司 |
主分类号: | G06N3/12 | 分类号: | G06N3/12;G06F8/36;G06F9/44 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 俞立文;杨明钊 |
地址: | 美国新*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 遗传 程序设计 创建 通用 积木 | ||
1.一种使通用计算积木块进化的方法,所述方法包括:
用随机生成的对函数进行编码的程序初始化父种群;
获得随机生成的测试输入的列表;
生成目标数据集,所述目标数据集包括随机生成的二进制字符串的输入输出对;
应用适应度函数,以将适应度分数分配给所述父种群中的每个程序,其中,所述适应度分数至少表示程序匹配所述目标数据集中的输入输出对的能力;
用所述父种群中满足新颖性条件的程序的副本初始化种子列表,其中,所述新颖性条件表示程序针对所述随机生成的测试输入的列表产生不同且唯一输出的能力;
确定是否已经满足所述种子列表的终止条件,其中,所述终止条件表示所述种子列表中的一个或更多个程序对一个或更多个遗传程序设计实例进行求解的能力;
根据确定所述终止条件尚未得到满足:
将至少一个遗传算子应用于所述父种群以获得程序的当前后代种群,其中,所述至少一个遗传算子包括被应用于所述父种群以基于程序的适应度分数使所述种子列表生长以对所述一个或更多个遗传程序设计实例进行求解的算子;以及
重复以下步骤直到满足所述终止条件:
生成新目标数据集,所述新目标数据集包括随机生成的二进制字符串的输入输出对;
应用所述适应度函数为所述当前后代种群中的每个程序分配新适应度分数,其中,所述新适应度分数至少表示程序匹配所述新目标数据集中的输入输出对的能力;
将所述当前后代种群中满足所述新颖性条件的程序的副本附加到所述种子列表;以及
将所述至少一个遗传算子应用于所述当前后代种群,以获得程序的新后代种群,并将程序的所述新后代种群设置为所述当前后代种群。
2.根据权利要求1所述的方法,还包括:
使用所述种子列表在表示多个问题的遗传程序设计实例的测试套件内初始化种群;以及
基于所述测试套件的测试结果,确定是否已经满足所述终止条件。
3.根据权利要求1所述的方法,还包括:
当将所述至少一个遗传算子应用于所述当前后代种群时,基于伯努利分布,选择在所述种子列表中的优于所述当前后代种群中的程序的程序作为父代,其中,所述种子列表中的每个程序被选择作为父代的机会均等。
4.根据权利要求1所述的方法,其中,确定程序是否满足所述新颖性条件是基于:
确定程序对针对所述随机生成的测试输入生成输出序列的函数进行编码,所述输出序列不同于由所述种子列表中的程序编码的函数针对所述随机生成的测试输入所生成的输出序列。
5.根据权利要求4所述的方法,还包括:
对于所述种子列表中的每个程序,确定并存储函数签名,所述函数签名包括由所述程序编码的函数针对所述随机生成的测试输入所生成的输出序列;以及
检索所述函数签名;
其中,确定所述程序对与由所述种子列表中的程序编码的函数不同的函数进行编码还基于:
确定所述程序对针对所述随机生成的测试输入生成与所述函数签名不同的输出序列的函数进行编码。
6.根据权利要求1所述的方法,其中,所述终止条件至少取决于所述种子列表的大小。
7.根据权利要求1所述的方法,其中,所述终止条件至少取决于确定所述种子列表是否以预定生长速率生长。
8.根据权利要求1所述的方法,还包括当应用所述适应度函数时任意断开连接。
9.根据权利要求1所述的方法,还包括当初始化所述种子列表以及附加到所述种子列表时,从所述种子列表中丢弃对不读取输入的平凡函数进行编码的程序。
10.根据权利要求9所述的方法,还包括执行句法分析以识别对不读取输入的平凡函数进行编码的程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于自然计算有限责任公司,未经自然计算有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080095841.9/1.html,转载请声明来源钻瓜专利网。