遗传算法(使用数字和运算符查找表达式)

时间:2016-07-30 12:21:54

标签: genetic-algorithm genetic-programming genetic

我有以下遗传编程问题(家庭作业): 我需要使用5位数(0到9)和任何运算符(+, - ,*,/)来生成表达式,以便给出答案为30.任何人都可以解释如何使用遗传编程来解决这个问题?

1 个答案:

答案 0 :(得分:0)

首先,它是一个遗传编程(GP)问题。你可以谷歌搜索更多细节。

在GP中,每个人代表一个计算机程序,使用树形结构表示。在您的问题中,它代表一个数学表达式。下图中的树可以代表表达式“3.4-x”的个体。

enter image description here

从您的数字集中选择叶节点,从运算符集中选择非叶节点。

然后,你可以选择一些交叉和变异算子来演化你的表达。

对于交叉运算符,您可以在两个父项中选择一个随机节点,然后交换相应的子树以创建两个弹簧,如下图所示。

enter image description here

此外,还有许多相应的变异算子。例如,随机选择一个节点来改变数字或运算符。