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

Can a genetic algorithm strategy (chromosome) use memory?

我一直想实现一种遗传算法,为跳伞机器人问题设计策略。

基本上,两个机器人降落在无限的一维世界的随机位置,该世界被分成离散的正方形。每个机器人在着陆的地方留下一个降落伞。

我们的目标是编写一个算法,如果两个机器人都遵循它保证让他们相遇。

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

根据我对染色体编码策略的理解,我可以做这样的事情。

0 move left
1 move right 
3 wait

对于各州,第一个索引是没有降落伞,第二个是有降落伞,所以

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

问题的实际解决方案涉及如下策略:向左移动并在循环中等待,除非你看到降落伞然后停止等待(以赶上另一个机器人)这样的策略如何编码为染色体?谢谢

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

0表示向左移动

1 表示向右移动

3表示等待

那么01就是

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

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

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