我开始钻研GA到这里来研究一下,我似乎无法找到交叉代断点的答案。举例来说,如果我开始与家长:
Father = [A,B,B,A,C]
交叉算法的实现
Mother = [D,D,B,A,A]
在什么时候我能legitmately停止生产儿童证明所有可能的组合已经用尽?代码如下:
void reproduce(String[] father, String[] mother) {
double choice = Math.random() * 100;
if((int) choice % 10 < 2){
//start at father[1] and swap.
//Continue for other choices
这是一小片,以我利用逻辑。所以我的问题回来了,我如何合理地确定何时停止创建孩子?或者,这只是一个数学问题,我应该只看一个直排列生成器,而忽略GA?
我宁愿认为遗传算法的重点在于寻找解决问题的启发式方法,并非详尽无遗。如果你不得不尝试每种组合,那么你可以在没有GAs的情况下解决问题。 – 2010-10-04 00:40:07
这可能更接近我们所需要的,因为GA对我而言是新的东西,这就是为什么我似乎回到彻底搜索,因为它是我熟悉的。 – Woot4Moo 2010-10-04 00:44:04
GA最适合那些无法彻底解决的问题。当我在一家工程公司工作以解决*许多*变量和约束条件下的复杂非线性方程时,我们使用了类似的东西。 – 2010-10-04 00:45:32