目前,我正在读"人工智能:一种现代方法"(罗素+诺维格)和"机器学习"(米切尔) - 和努力学习AINN的基础知识.
为了理解一些基本的东西,我有两个"新手"的问题:
Q1:在遗传算法染色体001110和101101分别以下哪个后代可能是由一个单点交叉给出的两个父母A和B?
a:001101
b:001110
Q2:上述后代中的哪一个可能是由两点交叉造成的?为什么?
请指教.
如果您不知道反交叉函数,则无法找到父项(因此AxB =>(a,b)&(任何a)=>(A,B)).
通常1点交叉功能是:
a = A1 + B2 b = B1 + A2
即使你知道a和b你也无法解决系统(2个方程组有4个变量).
如果您知道任何A或/和B的任何2个部分,则可以求解(具有2个变量的2个方程的系统).这是你的问题,因为你同时提供A和B.
通常交叉功能没有反函数,您只需要逻辑地找到解决方案,或者,如果您知道父母,则执行交叉并进行比较.
因此,要为您制作通用公式,我们应该知道两件事:
交叉功能.
反交叉功能.
第二个通常不用于GA,因为它不是必需的.
现在,我只想回答你的问题.
Q1:在遗传算法染色体001110和101101分别以下哪个后代可能是由一个单点交叉给出的两个父母A和B?
看a和b我可以看到交叉点在这里:
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
将它们与您提出的选项(小a和b)进行比较,我们可以说答案:
Q2.答: 根据给定的交叉函数,a或b都不能与AxB 进行2点交叉.
这又是不可能回答你的问题不知道的交叉功能.
我提供的功能在GA中很常见,但你可以发明很多这样的功能,这样他们就可以回答这个问题了(参见下面的评论):