目录

人工智能吃豆人实验

人工智能课程(大三上)大作业:基于 UC Berkeley Pacman 课程框架完成搜索、多智能体博弈、机器学习、贝叶斯网络四个实验的自研实现。

任务背景

  • 实验1 搜索(Search in Pacman):在 search.py 中实现 DFS、BFS、UCS、A* 四类图搜索,在 searchAgents.py 中完成四角问题(CornersProblem)的状态建模与后继生成、cornersHeuristic、foodHeuristic 启发式,以及逐次吃最近食物的贪心代理 ClosestDotSearchAgent。要求启发式非负、一致,并控制节点展开数。
  • 实验2 博弈(Multi-Agent Search):在 multiAgents.py 中实现反射代理 ReflexAgent、MinimaxAgent、AlphaBetaAgent(剪枝)、ExpectimaxAgent 与 betterEvaluationFunction,处理多智能体轮流行动与 ply 深度定义,在对抗环境中取胜并达标胜率与得分。
  • 实验3 机器学习(Machine Learning):基于 PyTorch 在 models.py 中实现感知器 PerceptronModel、拟合 sin(x) 的回归 MLP、MNIST 数字分类 MLP,以及手写二维卷积 Convolve 与卷积分类模型 DigitConvolutionalModel,训练需达到预设损失与准确率阈值。
  • 实验4 贝叶斯网络(Bayesian):在 inference.py 与 factorOperations.py 中构建 Pacman 追踪幽灵的贝叶斯网络(constructBayesNet),实现因子连接 joinFactors、因子消除 eliminate,以及交错连接与消元的变量消除推理 inferenceByVariableElimination,在信息不完全时推断幽灵位置。

内容结构

路径 说明
实验1-search/ 实验1 完整工程:search.py、searchAgents.py 为自研答案,Project.md 为课程任务书,res.txt 为评测输出,layouts/、test_cases/ 为框架数据
实验2-博弈/ 实验2 完整工程:multiAgents.py 及 multiAgents-1.0/2.0/3.0.py 为自研迭代版本,submission/ 为当时提交的文件副本
实验3-机器学习/ 实验3 完整工程:models.py 为自研答案,train.py/backend.py/losses.py 等为框架,data/ 含 mnist 与语言识别数据,q*_results.txt、repairQ3.txt、评测与结果.txt 为评测输出,解题思路.md 为自研笔记
实验4-贝叶斯网络/ 实验4 完整工程:submission/inference.py、submission/factorOperations.py 为自研答案,bayesNet.py 等为框架,解题思路.md、评测与结果.txt 为自研笔记与评测输出

各实验内的 autograder.py、game.py、util.py、grading.py、graphicsDisplay.py 等其余 Python 文件与 test_cases/、layouts/、VERSION、AGENTS.md 均为课程提供的运行与评分框架。

运行方法

  • 实验1/2/4 依赖 Python 3.9 标准库即可运行(图形界面需 tkinter,无图形环境加 --frameTime 0 或 -q)。
  • 实验3 额外依赖 torch、numpy、matplotlib(见 实验3-机器学习/AGENTS.md)。
# 实验1:运行自动评分(逐题 q1~q8),或直接玩游戏
cd 实验1-search
python autograder.py -q q1
python pacman.py -l mediumMaze -p SearchAgent -a fn=bfs

# 实验2:多智能体对抗搜索
cd 实验2-博弈
python autograder.py -q q2
python pacman.py -p MinimaxAgent -l minimaxClassic -a depth=4

# 实验3:机器学习模型训练与评分
cd 实验3-机器学习
python autograder.py -q q1
python train.py

# 实验4:贝叶斯网络与追踪
cd 实验4-贝叶斯网络
python autograder.py -q q1
python hunters.py

来源声明

  • 课程框架(游戏引擎、自动评分器、测试用例、布局、任务书)来自 UC Berkeley CS188 Pacman Projects 及本校课程的改编版,非本人原创。
  • 自研部分为各实验指定文件中的填空实现:实验1 的 search.py、searchAgents.py;实验2 的 multiAgents.py(含历史版本);实验3 的 models.py;实验4 的 inference.py、factorOperations.py,以及 解题思路.md、评测与结果.txt、res.txt、q*_results.txt 等自测输出。
  • 实验报告、提交压缩包等含个人信息的文件未入库;FC_Bayesian 目录为他人副本,未采用。
  • 实验3 的 data/mnist.npz 约 18.5MB(低于 20MB 上限),已随仓库保留。
关于

人工智能大作业:Berkeley Pacman 四个实验(搜索、多智能体、机器学习、贝叶斯网络)

19.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号