ai实验四实验报告

ai实验四实验报告

ID:31665077

大小:77.23 KB

页数:21页

时间:2019-01-16

ai实验四实验报告_第1页
ai实验四实验报告_第2页
ai实验四实验报告_第3页
ai实验四实验报告_第4页
ai实验四实验报告_第5页
资源描述:

《ai实验四实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、(3学时)班级:计科041班姓名:陆宇海学号:0407100232一实验目的熟悉和掌握博弈(对抗)搜索基木思想和实现关键技术,使用Python语言实现通用的极大极小算法与Alpha-Beta剪枝算法,并进行实验验证。二实验原理廨弈是人工智能取得巨人成功的领域,著名的有深蓝系统等。所有的计算机陳弈程序(或系统)的基础Alpha-Beta剪枝算法,即在极大极小算法基础再进行剪枝。熟练掌握该两种算法,能够解决博弈领域的大部分问题(当然可能需要大型数据库的支撐)。三实验条件1Python解释器,及IDLE等程序开发调试环境。2本实验所提供的几个Python文件,请解压文件

2、gameproject.rar.四实验内容1MiniMax算法实现2AlphaBeta剪枝算法实现3应用于一字棋游戏(TicTacToe),进行算法测试4应用于抓三堆游戏(Nim),进行算法测试五实验步骤1一字棋游戏的搜索问题形式化importtictactoeinitialTTTState=tictactoe.TicTacToeGameState()你先试着和一字棋随机Agent(它只会随机乱走,碰运气)对弈一局importgamesimportgameagentsgames.runGame(initialTTTState,{"X":gameagents.Hum

3、anGameAgent(),u0":gameagents.RandomGanneAgent()},False,False)#输出结果为:Yourmove?0,0Opponent'smovewas(1,1)2

4、IIIIII1III0III0IXIIIII012Yourmove?0,1Opponent'smovewas(2,0)2

5、IIIII1IXI0II0IXIII0I012Yourmove?0,22IXIIII1IXI0II0IXIII0I012Gamefinishedwithutilities{X:1,'O':-1}#山于智能体的行棋策略是随机的,故人可以毫不费

6、力地战胜它2实现一个简单的Agent,它会抢先占据中心位置,但是之后只会按照格子的顺序下子(其实不能算是智能体),试着和它玩一局:把步骤1的语句中的RandomGameAgent()替换成SimpleTTTGameAgent()即讥输出结果为:Yourmove?2,0Opponent'smovewas(1,1)2IIIIIII1III0III0IIIIIXI012Yourmove?2,2Opponent'smovewas(0,0)2IIIIIXI1III0III0I0IIIXI012Yourmove?0,2Opponent'smovewas(150)2IXIIIX

7、I1III0III0I0I0IXI012Yourmove?0,1Opponenfsmovewas(2,1)2IXIIIXI1IXI0I0I0I0I0IXIYourmove?1,22IXIXIXI1IXI0I0I0I0I0IXI012Gamefinishedwithutilities{X:1,'O':-1}#在以上的下棋步骤中,我有意让棋,才得以观察到智能体的下棋顺序:先下中间的格(1,1),若(1,1)#已被占据,则沿着从第0行到笫2行,每行从第0列到第2列的规律探索可下棋的格子然后再让随机Agent和SimpleAgent两个所谓的智能体对弈:把步骤1的语句屮的

8、HumanGameAgent()替换成SimpleTTTGameAgent()即可。#输出结果为:#回合1:2IXI0IXI1IXI0IXI0I0IXI0I012Gamefinishedwithutilities{X:0,'O':0}#双方平局#回合2:2IXIXIXI1IXI0I0I0I0I0IXI012Gamefinishedwithutilities{X:1,'O':-1}#随机智能体(RandomGameAgent)获胜#回合3:故两者对弈针对Max1IXI0IXI0IXI0I0I012Gamefinishedwithutilities{X:-1,'O':

9、1}#固定方式智能体(SimpleTTTGameAgent)获胜#经以上三次对弈,可以看出由于这两种智能体在下棋时都不考虑效用,而在无目的地下棋,#时,获胜的概率是相同的3实现极大极小算法#极大极小算法是封装在•个名叫Minimax的类里:classMinima刈GameTreeSearcher):defgetBestActionAndValue(self,currentState):#通过此函数获得最优行动方案self.player=currentSta怕.currentPlayer()#获取当前的玩家(“O”或“X”)returnself.maximin(cu

10、rrent

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。