当前位置:  开发笔记 > 人工智能 > 正文

遗传算法的理论问题

如何解决《遗传算法的理论问题》经验,为你挑选了1个好方法。

目前,我正在读"人工智能:一种现代方法"(罗素+诺维格)和"机器学习"(米切尔) - 和努力学习AINN的基础知识.

为了理解一些基本的东西,我有两个"新手"的问题:

Q1:在遗传算法染色体001110和101101分别以下哪个后代可能是由一个单点交叉给出的两个父母A和B?

a:001101

b:001110

Q2:上述后代中的哪一个可能是由两点交叉造成的?为什么?

请指教.



1> Dmytrii Nagi..:

如果您不知道反交叉函数,则无法找到父项(因此AxB =>(a,b)&(任何a)=>(A,B)).

通常1点交叉功能是:

a = A1 + B2
b = B1 + A2

即使你知道ab也无法解决系统(2个方程组有4个变量).

如果您知道任何A或/和B的任何2个部分,则可以求解(具有2个变量的2个方程的系统).这是你的问题,因为你同时提供A和B.

通常交叉功能没有反函数,您只需要逻辑地找到解决方案,或者,如果您知道父母,则执行交叉并进行比较.

因此,要为您制作通用公式,我们应该知道两件事:

    交叉功能.

    反交叉功能.

第二个通常不用于GA,因为它不是必需的.


现在,我只想回答你的问题.

Q1:在遗传算法染色体001110和101101分别以下哪个后代可能是由一个单点交叉给出的两个父母A和B?

ab我可以看到交叉点在这里:

    1    2
A: 00 | 1110
B: 10 | 1101

通常使用以下公式完成交叉:

a = A1 + B2
b = B1 + A2

所以可能的孩子是:

a: 00 | 1101
b: 10 | 1110

这不包括问题中的选项b.
所以Q1的答案是结果子是a:001101假设给定交叉函数

Q2:上述后代中的哪一个可能是由两点交叉造成的?为什么?

看a和b我可以看到交叉点可以在这里:

    1   2    3
A: 00 | 11 | 10
B: 10 | 11 | 01

两点交叉的常用公式是:

a = A1 + B2 + A3
b = B1 + A2 + B3

所以孩子们会:

a = 00 | 11 | 10
b = 10 | 11 | 01

将它们与您提出的选项(小ab)进行比较,我们可以说答案:

Q2.答: 根据给定的交叉函数,ab都不能与AxB 进行2点交叉.


这又是不可能回答你的问题不知道的交叉功能.

我提供的功能在GA中很常见,但你可以发明很多这样的功能,这样他们就可以回答这个问题了(参见下面的评论):

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有