人工智能实验报告 - 图文

更新时间:2023-10-12 14:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《人工智能》课外实践报告

项 目 名 称: 剪枝法五子棋 所 在 班 级: 2013级软件工程一班 小 组 成 员:李晓宁、白明辉、刘小晶、袁成飞、程小兰、李喜林

指 导 教 师: 薛笑荣 起 止 时 间: 2016-5-10——2016-6-18

安阳师范学院 《数据库高级应用》课外实践报告·

项目基本信息

项目名称 五子棋 智力小游戏作为人们日常休闲娱乐的工具已经深入人们的生活,五子棋更成为了智力游戏的经典,它是基于AI的αβ剪枝法和极小极大值算法实现的人工智能游戏,让人们能项目简介 和计算机进行对弈。 这个项目我们实现了当人点击“开始”按钮时,开始下棋,当人的棋子落时,计算机会根据算法进行最佳路径计算,然后落子下棋。任何一方赢了都会弹出哪方赢了。然后单击重新开始。 李晓宁 130904021 白明辉 130904001:负责界面实现和估值函数设计 文档整理 刘小晶 130904032 袁成飞 130904051:负责极小极大值算法任务分工 的设计与实现 李喜林 130904019 程小兰 130904004:负责αβ剪枝法的设计与实现 一、 系统分析

1.1背景

1

安阳师范学院 《数据库高级应用》课外实践报告·

1.1.1 设计背景

智力小游戏作为人们日常休闲娱乐的工具已经深入人们的生

活,五子棋更成为了智力游戏的经典,它是基于AI的αβ剪枝法和极小极大值算法实现的人工智能游戏,让人们能和计算机进行对弈。 能使人们在与电脑进行对弈的过程中学习五子棋,陶冶情操。并且推进人们对AI的关注和兴趣。

1.1.2可行性分析

通过研究,本游戏的可行性有以下三方面作保障 (1)技术可行性

本游戏采用Windows xp等等系统作为操作平台,使用人工智能进行算法设计,利用剪枝法进行编写,大大减少了内存容量,而且不用使用数据库,便可操作,方便可行,因此在技术上是可行的。 (2)经济可行性

开发软件:SublimText (3)操作可行性

该游戏运行所需配置低、用户操作界面友好,具有较强的操作可行性。

1.2数据需求

五子棋需要设计如下的数据字段和数据表:

1.2.1 估值函数:

2

安阳师范学院 《数据库高级应用》课外实践报告·

估值函数通常是为了评价棋型的状态,根据实现定义的一个棋局估

值表,对双方的棋局形态进行计算,根据得到的估值来判断应该采用的走法。棋局估值表是根据当前的棋局形势,定义一个分值来反映其优势程度,来对整个棋局形势进行评价。本程序采用的估值如下:

状态 眠二 假活三 眠三 活二 冲四 假活三 活三 活四 连五 分值 2 4 5 8 12 15 40 90 200

一般来说,我们采用的是15×15的棋盘,棋盘的每一条线称为一路,包括行、列和斜线,4个方向,其中行列有30路,两条对角线共有58路,整个棋盘的路数为88路。考虑到五子棋必须要五子相连才可以获胜,这样对于斜线,可以减少8路,即有效的棋盘路数为72路。对于每一路来说,第i路的估分为E(i)=Ec(i)-Ep(i),其中Ec(i)为计算机的i路估分,Ep(i)为玩家的i路估分。棋局整个形势的估值情况通过对各路估分的累加进行判断,即估值函数: 72

F(n)= Σ E(i) i=1 1.2.2 极小极大值算法:

极大极小搜索算法就是在博弈树在寻找最优解的一个过程,这主要

是一个对各个子结点进行比较取舍的过程,定义一个估值函数F(n)来分别计算各个终结点的分值,通过双方的分值来对棋局形势进行分析判断。以甲乙两人下棋为例,甲为max,乙为min。当甲走棋时,自然在博弈树中寻找最大点的走法,轮到乙时,则寻找最小点的走法,如此反复,这就是一个极大极小搜索过程,以此来寻找对机器的最佳走法。

3

安阳师范学院 《数据库高级应用》课外实践报告·

1.2.3. αβ 剪枝法:

α

β剪枝算法简单来说,就是在搜索过程中减少一定的冗余现象,

如已经找到极大值,执行该走法就可以获胜,则无须再往下进行搜索比较,此过程即为剪枝。对于极大的MAX结点,称为α剪枝;反之为β剪枝。具体规则可以简单描述如下:

α剪枝:对于极大值层结点的α值如果不小于它的任一祖先极小值层结点的β值,即α(后续层)≥β(祖先层),则可中止该极大值层中这个MAX节点以下的搜索过程,这个MAX节点最终的倒推值就确定为这个α值。

β剪枝:对于极小值结点层的β值如果不大于它任一祖先极大值层结点的α值,即α(祖先层)≥β(后续层),则可中止对该极小值层中这个MIN节点以下结点的搜索,这个MIN节点最终的倒推值就确定为这个β值。[2]

αβ剪枝可以进一步进行改进,在走棋过程中,在中心先下的一方往往有一定的优势,双方的搏斗纠缠都是在争夺最佳位置,可以考虑从中心往外螺旋进行扩展搜索;另外由于防守的需要,落子的位置通常也是在彼此下子的附近,因此可以优先考虑在这些位置进行搜索,也就是对落子位置进行排序预先搜索,更进一步的缩减冗余现象,进而提高搜索效率和行棋质量。

1.3事务需求

此游戏主要应用于人类与计算机的对弈功能。具体功能如下所述: 1.人:点击开始 找位置 下棋

4

本文来源:https://www.bwwdw.com/article/fdqf.html

Top