- 4
- 0
- 约2.12千字
- 约 4页
- 2020-02-04 发布于贵州
- 举报
基于置换表技术的中国象棋搜索算法研究
引言 在中国象棋的人机博弈的研究中,局面搜索算法是核心,中国象棋的博弈过程中,针对某一局面,平均着法达到60步,故减少搜索的节点,提高搜索的速度和节省搜索过程中内存开销,就成了中国象棋搜索研究一个终极目标。Alpha-Beta搜索算法是人机博弈的一个基本算法,但是该算法在搜索过程中,存在大量的冗余[1]。本文即在这一基本算法的基础上,加入置换表技术和Hash table技术,以提高搜索速度。 1 Alpha-Beta搜索算法 如图1所示,结点下面的数字为该节点所代表的局面评估值。在左图中,节点B的值为18,节点D的值为16,因为C节点要取其子节点的最小值,故可以判定节点C的值将小于或者等16,而A节点的值为B节点和C节点的最大值,这样无论E节点和F节点的值为多少,都不影响A节点的取值,因为A节点此时肯定会取B节点的值18联盟,这样将节点D的后继节点减去称Alpha剪枝。观察图1的右半部的极大极小树,A节点要取B节点和C节点的最小值,C节点要取其子结点的最大值,而D节点的值为18,故C节点的值最小为18,这个值已经大于B节点的值了,所以无论E节点和F节点的值为多少,都不影响A了点的取值,所以将节点D的后继节点减去称Beta剪枝。 原始的Alpha-Beta搜索算法略显繁琐,需要在奇数层进行Alpha剪枝,在偶数层进行Beta剪枝,利用负极大值搜索的思想,可以统一在任何一层进行Beta剪枝。 置换表的思想 Alpha-Beta 搜索算法的剪枝过程对搜索节点的排序顺序依赖很大,当搜索顺序的排列为最差情况时,其搜索效果与极大极小值相同[2]。其实在搜索的过程中,随着搜索层次的加深,会出现一些节点是原来搜索过的,如果能直接利用已经搜索过的节点局面评估值,而不重新搜索一次,这样相同于进行了很大程度的剪枝[3]。我们可以利用一个数组将已经搜索过和节点保存起来,在搜索新的节点时,先到数组中检查以前是否已经搜索过本节点,如果是,则直接用数组里保存的局面评估值,如果没有,则继续正常搜索,这就是置换表的思想。 哈希表来实现置换表搜索 因为在搜索的过程中,节点数量非常大,如果将每一个节点都与数组中的元素一一对应,内存开销太大,不可能实现。为了解决这一问题,可以利用哈希表技术。每一个搜索节点对应哈希表中一个节点,但是反过来,哈希表中的一个节点并不一定只对应一个搜索节点,这就是哈希冲突,在同一次搜索过程中,哈希冲空的可能性并不高,在实际的应用中这是一个可靠的办法。根据中国象棋搜索的特点,定义如下哈希数组。 对要搜索的每一节点,计算出它的一个哈希值以确定此局面在哈希表中的位置。计算另一个哈希值checksum,来检验表中的数据项是否是所要的那一项。64位的哈希值checksum发生冲突的几率很小,几乎可以将其冲突忽略。即使因为哈希冲突导致没有获得原来搜索过的节点,也不会影响博弈系统的运行,因为还可以采用基础的alpha-beta算法进行搜索。 在对某一局面搜索之前,先查看哈希表项hashTable[hashIndex], 如果hashTable[hashIndex].checksum == Checksum,并且hashTable[hashIndex].depth大于或者等于最大搜索深度减去当前层数,就返回hashTable[hashIndex].eval作为当前局面的估值。当对一个局面搜索完成后,将Checksum、当前层数和估值结果保存到hashTable[hashIndex]当中,以备后面的搜索使用。置换表与alpha-beta搜索协同工作的实现机制如下面的类C语言伪代码所示。 实验 基于以上核心算法,利用JAVA语言设计了一个实用系统。中国象棋的棋盘用一个10行9列的二维数组与之对应,而各棋子用对应的数字表示。棋局评估主要从剩余棋子基本值、棋子灵活性、棋子受攻击度、棋子受保护度,棋子位置附加值这几个方面来衡量。分别计算这几种类型的值,然后将它们的和作为棋局的优劣值,供搜索引擎使用。实验主要是比较alpha-beta+置换表算法与基本的alpha-beta算法在不同的搜索层次上搜索结点的个数,通过实验可知从第3层开始,alpha-beta+置换表评估的节点数目要少于alpha-beta搜索在同样深度搜索中评估的节点数。而且随着搜索的最大深度的增加,置换表的命中率也不断提高,表明重复的节点所点的比例随深度增加而增加。这表明alpha-beta+置换表评估的节点数同alpha-beta搜索评估的节点数相比的比例越来越低。由于置换表的操作对每一节点都要花费一定的时间,所以在较浅的搜索当中,由于命中率较低,虽然alpha-beta+置换表评估的节点数比alpha-be
您可能关注的文档
最近下载
- 山桐子种植加工、旅游项目可行性研究报告商业计划书.docx VIP
- 山桐子种植及种苗培育种植加工可行性研究报告申请备案.doc VIP
- 和田地区2026年度地直机关公开遴选公务员、事业单位公开选聘工作人员备考题库及完整答案详解1套.docx VIP
- 山桐子合作种植协议合同.docx VIP
- 2025年香氛未来趋势报告-英敏特.docx VIP
- 报告正文2014年太阳绿宝.pdf VIP
- 2025年高考:云南物理--试题及答案.pdf VIP
- 广东省深圳市宝安区2025-2026学年五年级上学期期末学业质量评估语文试卷.docx VIP
- (2025)山桐子产业开发生产建设项目可行性研究报告(一).docx VIP
- 2024-2025学年广东省东莞市统编版三年级上册期末考试语文试卷.pdf VIP
原创力文档

文档评论(0)