我的字段由开放网格空间和填充网格空间组成。我的机器人只能在空地上移动。它只能检测其8个相邻网格中的任何一个(即上,下,左,右和诊断空间)中是否存在填充的网格空间。也就是说,它不能超越8个相邻的空间。这种网格中最好的搜索技术是什么?比方说,我的目标是找到网格中没有对象(对象是一组连接的填充空格)
我尝试了以下内容,一切都非常糟糕:
保留所访问的空间列表(通过将初始位置设为0,0并存储所访问空间的相对位置)。也就是说,我最好访问那些没有去过的地方。
最初转到最底部和最左边的点,然后开始详尽地搜索5个底行,然后是接下来的5个底行,依此类推......
答案 0 :(得分:0)
我不完全确定我理解你的目标,但是用于一般网格路径寻找,网格洪水填充等的最常见(非优化)算法是A *(发音为“A-Star”)。其最广泛的应用是基于网格的路径查找,具有“开放”和“封闭”节点;就像你的“开放”和“填充”网格空间一样。
退房 http://en.wikipedia.org/wiki/A * _ search_algorithm
希望有所帮助!
答案 1 :(得分:0)
你没有描述为什么你认为你的解决方案“非常糟糕”,但我认为你观察到低效的搜索行为。您可能想要尝试的尝试是使用“信息值”标记每个空间,即,当您访问该空间时,您将发现多少先前未发现的相邻空间。这是你的“奖励”。您的“费用”是前往该特定空间的距离。然后你必须找到一个设计最大化(奖励 - 成本)的搜索策略。
答案 2 :(得分:0)
听起来像部分可观察的马尔可夫决策过程。也许看看强化学习。萨顿和巴托有一本书{f {3}}。
我认为问题对于强化学习来说太难以产生好的结果而且对于经典方法(使用逻辑)来说太不确定了。