$24
任务一(30pts) 实现演化算法玩Pacman游戏
在 evolutionAgents.py 中实现演化算法,并用来玩pacman游戏中的bigMaze、openMaze、smallMaze三个地图。
evolutionAgents.py 中仅给出简单参考,你可以在此基础上完善,或者自己另行实现。
该任务汇报的重点包括:
说明你所实现的演化算法的一些关键步骤:
演化算法玩Pacman的整体流程
解的表示和合法解的生成
评估函数设计
演化算子设计
以及其它你认为重要的部件
说明你所实现的演化算法的实验效果:
演化算法的具体参数设定
演化算法整体运行流程中使用评估函数的次数,以及相应达到的分数(即演化算法的效率)
由于演化算法具有随机性,你应当运行多次算法来汇报结果
任务二(10pts) 在Search和Classic环境中测试你的演化算法
这个任务要求你在Search和Classic环境中测试你在任务一中实现的演化算法,具体测试地图:
Search1、 Search2 、 Search3;
minimaxClassic、originalClassic、powerClassic。
该任务汇报的重点包括:
你如何调节参数来在这些环境中提升演化算法的效率,以及为什么要这样调。
任务三(20pts) 改进演化算法
对所实现的演化算法进行改进,并在任务二中的几个环境中进行测试。
可能的改进方向:
解的表示改进
评估函数改进
演化算子改进
参数优化
可能能参考的论文:
[RHEA] Rolling Horizon Evolution versus Tree Search for Navigation in Single-Player Real-Time Games
[Adaptive-RHEA] Self-Adaptive Rolling Horizon Evolutionary Algorithms for General Video Game Playing
该任务汇报的重点包括:
演化算法的改进思路,即为什么要这么做?
你可以针对性地根据Search或者Classic环境的特点来改进算法,或者对算法进行通用的改进
具体的改进实现;
改进后的演化算法效率。
评分标准
作业的评分主要参考任务的完成情况(60%)以及报告的书写(40%)。
在报告中,你需要分别阐述每个任务的解决过程。实验报告应包括但不限于:任务叙述+解决方法+实验效果+必要分析,以及说明如何运行你的代码来获得实验中报告的结果。
特别提醒:一份逻辑清晰的实验报告和实验效果同等重要。
如果你的算法能取得好的效果,实验报告却潦草,最终也会影响你的分数。如果你无法实现效果好的算法,一份展现你努力尝试过程的报告也会弥补一些分数。
作业提交
你需要提交一份压缩文件,以“学号_姓名”的方式命名,如“MG21370001_张三.zip”。文件中需要包含完整的项目代码和实验报告,在作业截止日期(11.26 23:59)前发送到xuek@lamda.nju.edu.cn,邮件标题命名和压缩文件一致。
延期提交的折扣为-5/天,即每延迟一天,本次作业得分减5。你的作业流程可简单分为:熟悉代码、编程、修改、书写实验报告,请合理分配时间。
作业的说明和代码会发布在课程群/课程主页。
注:若发现结果造假和作业出现雷同的情况,会根据相关规定给予惩罚,详情请参考课程主页中
“学术诚信”的相关内容。请同学们务必独立完成作业!