search - 如何在没有鬼的迷宫中协作多个吃豆人代理,在时间受限的环境中吃掉所有的食物颗粒?
问题描述
问题实际上是来自加州大学伯克利分校 2018 年秋季课程 CS188(AI 简介)的小型竞赛。这里是小型竞赛的链接1。
(https://inst.eecs.berkeley.edu/~cs188/fa18/minicontest1.html/)
在这个迷你竞赛中,我们必须应用项目 1 中实现的搜索算法和问题(A*、ucs、bfs、dfs)来处理更困难的场景,包括控制多个 pacman 代理和在时间限制下进行规划(并且没有幽灵)在得分下降到 0 之前吃掉迷宫中的所有食物。还有对做出决定时间的惩罚,吃食物颗粒的得分提升,完成所有颗粒的得分更高。
我尝试了一些方法来解决这个问题。
- 总是向 bfs 计算的最近点移动的代理。
- 只要有机会,总是左转的特工。
- 跟踪他们在过去 7 次机会中去过的位置并且不重复的代理。(使用固定大小的队列)并从可能的合法行动中随机选择一个行动。但是这些代理效率不够高,因为它(最后一个)在 71 个迷宫中仅在 11 或 12 个迷宫中获胜,在为比赛提供的自动分级机上平均得分约为 262。
我无法让这些 pacman 代理协作以快速检索所有食物颗粒。
我想要一些关于如何继续这项任务的想法。
解决方案
推荐阅读
- c# - Unity 错误 CS0103:名称“输入”在当前上下文中不存在
- php - 如何通过 Nginx 为不同的 PHP 使用不同的 PHP-FPM 池?
- node.js - 无法更新 MongoDB 集合
- mongodb - Deno、Mongo 数据库中 59365708876800 字节的内存分配失败
- elasticsearch - 按支持排序选项的字段折叠/分组搜索查询结果
- sql - 如何在 PostgreSQL 中启用扩展?
- c - 尝试在环境变量处执行值时出现分段错误
- python - Tkinter 对象没有属性,有时可以,有时不行?
- r - 用replace_emoji()函数替换R中的表情符号由于编码不同而不起作用 - UTF8/Unicode?
- azure - 在创建另一个后端池和负载均衡器规则之前删除