博弈一向被认为是最富挑战的智力游戏,有着难以言语的魅力。自从出现计算机后人们就开始有了与计算机下棋的想法。早在上世纪60年代就已经出现若干博弈程序,并达到较高的水平,现已出现计算机博弈程序能够与人类博弈大师抗衡的局面。博弈理论的研究不断为人类科学提供新的课题,同时也对深层次的知识研究提出了严峻的挑战。如何表示博弈问题的状态,博弈过程和取胜的知识是目前人类仍在探讨的问题。就拿五子棋游戏来讲,棋面有15×15 = 225 个落子点,对方走完一步后,计算机差不多有200多种选择每一种选择对应搜索树的一个节点,即棋局上的一个状态。计算机走完一步后就应该考虑对方会走哪一步,此时同样有200种选择,因此有200×200种可能的选择,对应搜索分支达到200×200个,如果博弈程序要考虑20回合,搜索树就有40层,总结点大约有10^92 个。这个数字即使是计算机以每秒万亿次的速度计算,走一步棋也要一年。因此提高博弈问题的求解程序效率,因该做到以下两点:
1,改进生产过程,使之只产生好的节点,即选择比较好的节点去扩展。
2,改进测试过程,使最好的步骤能够及时被确认,确认的代价不能太大。
目前博弈论比较常用的的搜索策略有极大极小搜索策略,深度优先的alpha-beta剪枝搜索等。本文仅讨论极大极小搜索策略和深度优先的alpha-beta剪枝搜索策略。
一,极大极小值搜索
极大极小值搜索始终站在博弈一方的立场上给棋局估值,有利于这一方的棋局给一个较高的评价值,不利于这一方(有利于另一方)的给予一个较低的评价值,双方优劣不明显的局面给予一个中间评价值(一般是0)本方行棋的时候选择评价值极大的节点走步,另一方行棋时则选择评价值极小的子节点走步。这就是一个极大极小的过程。基本思想如下:当轮到对手走棋时应考虑最坏的情况;当轮到自己走棋时应考虑最好的情况;当评价往回倒退时,相应于两位棋手的对抗策略,在不同层次上交替使用前两种方法往回传递倒退值。下面举例详细说明。
假如A,B两位棋手行棋,B棋手落子后现在轮到A棋手落子,A棋手经过分析发现目前有三个落子点P1,P2,P3为最优落子点,于是A棋手分别对三个落子点进行分析以确定最好的一个
博弈算法之alpha-beta搜索
最新推荐文章于 2025-02-16 11:31:55 发布