Dremi的专栏

过程重于结果。因为虽然梦想的实现可以改变生活,但你为了梦想而努力的过程,却恰恰是生活本身。 *...

人机博弈之(五)---估值基础

估值是一个通过既有的棋类知识来评估一个局面的优劣的过程。这一过程对具体的棋类知识的
依赖程度很深,但是仍有一般性的规律可循。


1. 棋子的价值评估,简单的说就是评估双方都有哪些棋子在棋盘上。根据我们的经验,可以让
一个车的价值为500,一个马的价值为300,一个兵的价值为100等等。将的价值为无限大。一方
的棋子总值就是棋盘上存活的该方棋子乘以棋子的价值的和。用一个式子表示:
 
 sideValue = sum(Number*pValude)
其中Number是某种棋子的数量,pValue是该中棋子的价值,sum是对各种棋子的总价值求和。
如果红色棋子的价值总和大于黑色的棋子价值总和,通常意味着红方的局势优于黑方。而红黑
双方的sideValue之差越大,红方的优势就越大。


2 棋子的灵活性与棋盘控制
棋子的灵活性是指棋子的活动范围,通常越大越好。一匹不能动的马很难在棋局中发挥重要的
作用;同样,一个蹲在角落里的车也是价值不高。
评估棋子的灵活性较为简单,将一个棋子的所有合法的走法罗列出来,称上该种棋子每一可移
动的价值就行了。可用下面的公式:
  mobility = sum(moveNumber * moveValue)
其中,moveNumber是某种棋子的合法走法数量,moveValue是该种棋子每一走法的价值,sum是对
所有棋子灵活性价值求和。mobility就是所有棋子的灵活性分数。
    与灵活性评估类似,还可以评估博弈双方对棋盘上位置的控制能力。在象棋中,如果一位
置落在某方棋子的合法走不上,就可以认为被该方控制。如果某一位置同时落在双方的合法的
步上,我们可以根据双方控制该位置的棋子数量及棋子价值来决定孰优孰劣。能控制更多位置
的一方应该在这项得分上更多。


3. 棋子之间的关系也是估值重要的内容之一,我们可以将某个棋子被对方棋子威胁看成是一个
步利因素。类如红车的位置在黑马的合法走法当中,此时我们可以把红车的价值减去一个值如
200来刻画这种情形。而如果红马在黑车的合法走步之中,而红马同时也在红卒的合法走步之中,
我们可以认为红马置于红卒的保护之下,没有受到威胁,价值不变。
 棋子关系的评估应考虑到该谁走棋的问题。如果某个红马落在黑炮的合法走步之内,但
此时轮到红方走棋,应该认为红马受到的威胁较轻。而如果此时轮到黑方走棋,就应该认为受到
的危险很大,应减去一个相对较大的值了。如果将被威胁,且轮到对方走棋,那么无论有何种可
以走到将位都没有意义,将等于失去了。此时应该结束估值返回失败的估值。棋子间关系的评估
可以在很大程度上提高估值的精度,通常是博弈估值的必备内容。 

阅读更多
文章标签: 活动
个人分类: 开发设计
上一篇人机博弈之(六)------代码实现(4)估值
下一篇堆排序(HeapSort)
想对作者说点什么? 我来说一句

PC游戏编程(人机博弈)

2012年03月13日 2.15MB 下载

中国象棋人机博弈源码

2012年01月01日 2.19MB 下载

PC游戏编程(人机博弈)---PDF版

2017年09月28日 2.62MB 下载

PC游戏编程(人机博弈

2012年12月10日 8.44MB 下载

没有更多推荐了,返回首页

关闭
关闭