【发布时间】:2023-04-03 05:52:01
【问题描述】:
我一直想实现一种遗传算法,为跳伞机器人问题制定策略。
基本上,两个机器人降落在一个无限的一维世界的随机位置,该世界被划分为离散的正方形。每个机器人在降落的地方留下一个降落伞。
我们的目标是编写一个算法,如果两个机器人都遵循它保证让它们相遇。
可能的行动。 向左移动,向右移动,等待转弯。 可能的状态:站在降落伞上,而不是站在降落伞上。
根据我对染色体编码策略的理解,我可以做这样的事情。
0 move left
1 move right
3 wait
对于各州来说,第一个索引是没有降落伞,第二个索引是有降落伞,所以
03 - move left if you are not on a parachute and wait if you are.
该问题的实际解决方案涉及以下策略:向左移动并循环等待,除非您看到降落伞,然后停止等待(赶上另一个机器人)这样的策略如何编码为染色体?谢谢。
【问题讨论】:
-
问题在于,一种足以表达解决方案的强大语言将难以在遗传算法中使用。这显然不是一个可以用遗传算法解决的难题。实际的解决方案应该类似于
target=1;repeat{move to target; target=-2*target}(其中move to x表示向左或向右定位x相对于起点)。如果机器人发现另一个机器人的降落伞,它应该停止的附加规则。如果机器人从距离 d 开始,机器人将在 O(d) 时间内找到彼此。 -
我不同意遗传算法无法解决它!仅当您错误地构图时。
标签: algorithm genetic-algorithm evolutionary-algorithm