遗传算法策略(染色体)可以使用记忆吗?
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 对其进行训练。
我一直想实现一种遗传算法,为跳伞机器人问题设计策略。
基本上,两个机器人降落在无限的一维世界的随机位置,该世界被分成离散的正方形。每个机器人在着陆的地方留下一个降落伞。
我们的目标是编写一个算法,如果两个机器人都遵循它保证让他们相遇。
可能的行动。 向左移动,向右移动,等待一个转弯。 可能的状态:站在降落伞上,不站在降落伞上。
根据我对染色体编码策略的理解,我可以做这样的事情。
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 对其进行训练。