Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有以下遗传编程问题(家庭作业):我需要使用 5 个数字(0 到 9)和任何运算符(+、-、*、/)来生成一个表达式,给我答案为 30。谁能解释一下我该如何使用遗传编程来解决这个问题?
首先,这是一个基因编程(GP)问题。您可以谷歌它以获取更多详细信息。
在 GP 中,每个人代表一个计算机程序,使用树结构表示。在您的问题中,它代表一个数学表达式。下图中的树可以代表表达式“3.4-x”的个人。
叶节点是从您的数字集中选择的,非叶节点是从运算符集中选择的。
然后,您可以选择一些交叉和变异算子来进化您的表达式。
对于交叉算子,您可以在两个父节点中的每个节点中选择一个随机节点,然后交换相应的子树以创建两个子节点,如下图所示。
另外,对应的变异算子也很多,比如随机选择一个节点来改变数字或算子。