既然聊的对象是针对象棋软件而言,故下面的分类就只考虑二人博弈了
二人博弈的种类,根据不同的视角,可进行不同的划分,这里先从博弈信息公开程度的视角进行分类,可分为两种:完全信息博弈、非完全信息博弈。
完全信息博弈:
对游戏双方而言,博弈的所有信息都是公开,双方同时可见的,且没有任何随机因素的影响。
信息公开,同时可见这个定义在理解上肯定没有什么歧义,但随机因素指的是什么呢?因为在象棋中不存在这个因素,为了便于理解,举个例子,比如两个人玩大富翁,虽然棋盘上看的到的信息都是双方同时可见的,但因为双方怎样走,取决与扔的骰子,这个因素是随机的,所以这个场景下的大富翁游戏不属于完全信息博弈。
典型的完全信息博弈包括大部分棋类: 国际象棋、围棋、黑白棋、五子棋等。对于完全信息博弈游戏,一般采用博弈树+估值函数进行建模。
非完全信息博弈:
对游戏双方而言,部分信息是某方不可见的,或者是有随机因素影响。典型的非完全信息博弈:扑克、桥牌等。对于非完全信息博弈,一般采用蒙特卡罗法等进行建模(近年来围棋程序在蒙特卡罗法的应用上进行了不少实践,目前顶尖的围棋程序均采用此思想,能够把这个思想借鉴到完全信息博弈游戏,也算是一个重大的改进),这部分与象棋软件无关,后续就不再提了。
之所以先明确这个分类,是因为印象中有朋友曾讨论过斗地主还是什么牌类复杂性大于棋类的话题,个人认为这样的比较其实是没有太大的实际意义的,在博弈的理论中,二者分属于不同的领域,即使是属于同一领域,做这样的比较也未见得有多大实际意义,棋类是人与人之间的竞技,某个棋类对软件而言很简单了,不代表人类的智力就可以完全征服他,从这个意义上讲,这些棋类之间其实没有高下之分。