[转载]围棋编程形势判断算法[转载]

标签:
转载 |
原文地址:围棋编程形势判断算法[转载]作者:南山琴棋坊
[转载]原文来自:道客巴巴网站的论文。下面的论文摘要是我自己阅读时所做。该论文在围棋形势判断编程方面给了我很大的启发和帮助!在此特别感谢论文作者和论文的提供者:道客巴巴网站。
第四章
局面分析功能的设计与实现
围棋的最终目的是围空,占领地盘,但是棋子的作用显然不仅仅是围空,每一颗棋子都有它的本身价值,这个价值由对局形势所决定。如何标识和衡量棋子在棋局中发挥的作用,对局面进行分析,这是围棋对弈系统设计的一
个重要内容,即计算机围棋的形势判断。
4.1 围棋局面分析的影响模型
计算机围棋的形势判断,通常采用影响模型,将棋子向棋盘其他部分的辐射影响量化。
围棋中的“势”通过影响函数(又称势函数)建立可计算模型。通常,黑白子辐射值正负相反,子力辐射按距离的增加而单调递减。
棋子的影响模型是战术决策和战略决策的基础。局面的静态评估,棋子的安全性判断与分块,领地的计算与划分等,通常都基于影响模型的计算结果。在影响模型中,多个棋子的作用被看作是单个棋子作用的叠加,而单个棋
子的作用根据相对位置不同作一定的修正,黑白棋子会产生正负相反的影响。
围棋编程的一个基本任务是分块。“块”是一组有关联的同色棋子。优良的分块法能使计算机对当前的局面有较好的了解。它可用于估计局部棋子的安危,确定战术搜索的范围,产生弱块的攻防点,而且可以在块边缘选取收
官点。分块法与棋子的影响模型是分不开的。
对某点的影响估计过高或过低都将给判断带来问题。估计过高会将弱块看作强块,将原本联系不紧密的棋子视为同一棋块。估计过低会忽略可以利用依靠的棋块,在强块部分浪费手数补棋。总之,影响模型的优劣对战术、战
略决策有极其显著的影响。
4.1.2
典型的影响模型举例
影响模型的使用,贯穿了计算机围棋的发展历史,各种计算机围棋程序,都将影响模型作为战术和战略决策的基础。
1.
Zobrist的影响模型
Zobrist首次引入了影响函数将棋盘分为黑方和白方地域。他的影响函数计算棋盘上每一个交叉点的数值,黑子取+50,白子取-50,空点为0;正负数的点给临近点+1或-1,以这样的算法递归4次,可以把棋盘数值化。
1
2
2 2
2 4
6
4 2
2
4 8
10 8
4 2
1
2 6
10 62 10
6
2 1
围棋的最终目的是围空,占领地盘,但是棋子的作用显然不仅仅是围空,每一颗棋子都有它的本身价值,这个价值由对局形势所决定。如何标识和衡量棋子在棋局中发挥的作用,对局面进行分析,这是围棋对弈系统设计的一
个重要内容,即计算机围棋的形势判断。
计算机围棋的形势判断,通常采用影响模型,将棋子向棋盘其他部分的辐射影响量化。
围棋中的“势”通过影响函数(又称势函数)建立可计算模型。通常,黑白子辐射值正负相反,子力辐射按距离的增加而单调递减。
棋子的影响模型是战术决策和战略决策的基础。局面的静态评估,棋子的安全性判断与分块,领地的计算与划分等,通常都基于影响模型的计算结果。在影响模型中,多个棋子的作用被看作是单个棋子作用的叠加,而单个棋
子的作用根据相对位置不同作一定的修正,黑白棋子会产生正负相反的影响。
围棋编程的一个基本任务是分块。“块”是一组有关联的同色棋子。优良的分块法能使计算机对当前的局面有较好的了解。它可用于估计局部棋子的安危,确定战术搜索的范围,产生弱块的攻防点,而且可以在块边缘选取收
官点。分块法与棋子的影响模型是分不开的。
对某点的影响估计过高或过低都将给判断带来问题。估计过高会将弱块看作强块,将原本联系不紧密的棋子视为同一棋块。估计过低会忽略可以利用依靠的棋块,在强块部分浪费手数补棋。总之,影响模型的优劣对战术、战
略决策有极其显著的影响。
影响模型的使用,贯穿了计算机围棋的发展历史,各种计算机围棋程序,都将影响模型作为战术和战略决策的基础。
1.
Zobrist首次引入了影响函数将棋盘分为黑方和白方地域。他的影响函数计算棋盘上每一个交叉点的数值,黑子取+50,白子取-50,空点为0;正负数的点给临近点+1或-1,以这样的算法递归4次,可以把棋盘数值化。