遗传算法策略(染色体)可以使用记忆吗?

时间:2017-07-16 05:08:38

标签: algorithm genetic-algorithm evolutionary-algorithm

我一直想要实施一种遗传算法来设计跳伞机器人问题的策略。

基本上两个机器人落在无限一维世界的随机位置上,划分为离散的方块。每个机器人都会降落伞降落。

目标是编写一种算法,如果两个机器人都遵循其保证使其满足。

可能的行动。 向左移动,向右移动,等待转弯。 可能的状态:站在降落伞上,而不是站在降落伞上。

根据我对编码策略的理解,我可以做类似的事情。

0 move left
1 move right 
3 wait

对于州,第一个指数不是降落伞,第二个指标是降落伞,所以

03 - move left if you are not on a parachute and wait if you are.

该问题的实际解决方案包括以下策略:向左移动并在循环中等待,除非您看到降落伞然后停止等待(赶上其他机器人)如何将这样的策略编码为染色体?感谢。

1 个答案:

答案 0 :(得分:0)

如果您想使用遗传算法来解决问题,我相信您最好的方法是使用2位数的列表作为染色体。 每个数字代表一个州采取的行动。所以,如果我们说:

0表示向左移动

1表示向右移动

3表示等待

然后01意味着

if(state == noParachute){
    moveLeft();
}else{
    moveright();
}

你可以让染色体的长度随着时间的推移而增加,以获得更复杂的解决方案。

另一种方法是使用神经网络并使用NEAT进行训练。