信息化的本质分享 http://blog.sciencenet.cn/u/Babituo

博文

围棋信息中的层次问题(1)

已有 5009 次阅读 2011-7-19 10:11 |个人分类:电脑围棋|系统分类:科研笔记| 围棋

--不要以为我仅仅是在谈围棋,围棋是个小宇宙,棋如人生.
 
1.问题的提出
      一局围棋对局的过程,是关于棋局信息的演变过程.
      对局双方不断地向棋盘输入信息,最终棋盘上的信息凝固在一个状态:胜负分明的状态.
一局棋的从始至终,棋局上的信息也在不断的积累,有的积累下来的信息可能不可能再改变,有的则可能被改变?
       那么,关于一局棋的信息,从变与不变的角度出发,能够划分出多少个层次?每个层次上有包含哪些信息?不同层次上的信息又是如何相互影响的呢?
 
这个问题,有关棋局的模型组织问题
        如果可以用模型化的方法来解决围棋的问题,那么模型的效率高低是高度敏感的.因此,模型必须考虑运行的效率问题.
        围棋的本质是信息运动,因此根据围棋信息运动的快慢程度来设计围棋的模型,是以运行效率最高为最优先设计原则来设计的,也只有这样的设计,才可能达到最高的效率.
        这样的设计,总是试图减少重复已有的信息改变,总是试图在已有的改变基础上,真实地增加新增的信息改变,但也不会漏过任何的信息改变.
        我曾经提出"盘/局分离"的概念,就是遵循这一原则的,进一步,局中的信息应该也还可以进行进一步的分离的,如何进行呢?
        好比在一杯清水中,逐步加入蔗糖,然后加热把水分蒸发,又逐步析出新的蔗糖晶体,糖水的浓度会持续变化,而析出的蔗糖,就是凝固的不再变化的信息.
 
从"盘/局分离"谈起
一局棋,起始于一个空棋盘.
空棋盘,就是棋局的初始信息,就棋盘自身而言,这些初始信息始终为棋局所用,而且始终不会改变.因此,围棋信息最底层的信息,就是棋盘信息.
除了棋盘信息,剩下的就是对局过程的信息.
这样,从"变与不变"的角度出发,围棋信息至少可分为2层:棋盘信息和对局信息.
这就是我说的"棋/局分离"的概念.
棋盘是一杯清水,对局是加入蔗糖后的糖水浓度变化过程(形象一点是有黑糖和白糖之分的糖水浓度的变化过程).

棋盘信息有哪些?
有哪些是根据对局中要用到哪些?可以为对局过程提供哪些信息的角度来考虑的.
最基本的信息是:
棋盘上总共有361个交叉点,我们用A0,A1,..A18,B0,B1,...B18,...,...,S0,S1,...S18来标识它们.这些信息是整个下棋过程中不会变化的信息,我们不需要在下棋过程中再来重复地创建它们.
然后的基本信息是:
每一个交叉点可能在上下左右四个方向上连接另外的2-4个交叉点,1-2个无连接.列举这些信息就是:
A0点: 无上连点,下连B0点,无左连点,右连A1点
A1点: 无上连点,下连B1点,左连A0点,右连A2点
...
A18点: 无上连点,下连B18点,左连A17点,无右连点
B0点: 上连A0点,下连C0点,无左连点,右连B1点
...
...
S18点: 上连R18点,无下连点,左连S17点,无右连点
当然,说以上的是基本信息是不准确的,从信息最少化的原则考虑,其实只有其中的一半是基本的,另一半是根据对称的知识可推导出来的信息,因此,在上述的描述方法中,有一半的信息是冗余于对称规则信息的.
也就是说,如果我们取对称规则信息,我们只需要记录一半的正向连接关系就可以了,但在要在使用这些信息的时候,我们就必须利用对称规则求出反向连接关系的信息.求反向连接关系的信息如果是运行中常用的信息的话,则求解过程就是一个重复耗时的过程,如果这个耗时过程比直接索引出连接关系更耗时的话,我们就宁愿采用全记录邻接关系信息的模型.
如果把上述"用空间换取时间"的手段发挥到极致,我们还会发现大量的类似静态的可直接索引的信息和位置关系规则信息是相互冗余的,如果我们使用通常"高效存储信息"优先于"高效利用信息"的设计习惯来设计的话,很自然地会选择,用一个函数来求解各类位置关系.这样,就自然离开了"最高效利用信息"的轨道.
比如说,我们想知道一个交叉点的左上角点存在不?如果存在,是哪个交叉点?我们可以用索引计算的办法来计算,也可以用间接索引来索引,还可以用直接索引的办法直接记录在每个交叉点的上面,哪一种办法最节省时间呢?当然是使用信息空间最多的那种,最快能找到答案.
推而广之,我们未来在棋局过程中将来可能大量重复使用的任何的位置关系的信息,都应该直接记录到每个交叉点的索引目录上,有哪些呢?大家不妨列举以下,自己程序中出现过的位置关系计算涵数.我要问的是:既然这些关系的信息是永远也不会再变化的,为什么我们还要在使用过程中去计算它们呢?如果针对一个点出现多次求同一位置关系的过程,不就会开销更多的时间来重复计算这些静态的已死信息吗?
 
iie的"三重境界"说
电脑围棋网上的iie前辈是德高望重的,也是我学电脑围棋的师傅之一.iie提出了电脑围棋的三重境界如下:
http://www.computergo.net/forum/ ... mp;highlight=%2Biie
原文摘抄如下:
设计围棋引擎的境界与进阶
很少涉及或还没有涉及到棋力,是小乘境界,按三一的说法是:子、气、势。很清楚,这一阶段是解决棋盘的表示问题,包括棋子的表示、数气这些基本功,更进一步地就是影响的表示。
与棋力相关的大乘境界,三一的说法是:眼、形、筋。这是中级阶段,要解决局面的识别问题,包括眼位的、棋形和手筋,然后是和着手生成和评估。
引擎的极乐世界:棋块、包围、对杀。最难的三一。
iie前辈后来还指出:"*三重境界*的提法,实际上分别对应:静态、战术、战略。"
 
我对此理解如下:
静态,是指棋局的每一个静态局面的信息.
战术,则是指与局部具体棋形有关的搏弈知识的信息.
战略,则是和整体局势状况有关的搏弈知识的信息.
iie说的"三重",感觉也有分层上升的意思,也就是说,高层的信息是由对底层信息的分析基础上获得的.
如果从时间累积和变化快慢的角度来看
战略层面的信息是靠战术层面的信息积累而来,那么,战略层面的信息一旦形成,就比较难以变化,一般需要较多的战术信息的积累,这就是所谓"量变引起质变".
而局面信息是只要走一步棋就会发生变化的,一个静态局面变到下一个静态局面,正是引起连续的局面信息变化的起因,而在一定的静态局面下,可能连续几步的后续手段都是完成同一项战术目标的.因此,静态局面信息的变化频度是快于战术信息的.
因此,这个分层法,从时间变化频度的角度考虑也是科学的.
 
区分棋局信息和知识信息
棋局信息是行棋之初,中,晚棋,棋盘以及棋盘上的棋子分布结构所蕴涵的信息.
知识信息是棋盘的构造规律,对局中,针对不同的状况应采用的对局求胜策略的知识性的信息.
围棋棋局的演变过程,就是棋局信息和知识信息交替作用的过程.
从变化频度的角度看:
棋局信息本身的不断变化的,而理想的知识信息(如果存在)是不会变化的.
从棋盘的结构看:
棋盘的每个交叉点的连接关系,是棋盘的基本信息,之前,我已经举例,利用棋盘结构的知识可以减少对交叉点结构关系的直接记录,比如,棋盘是对称的,正交相连的,这些知识可以帮助推断所有交叉点之间的关系.但如果动态地运用这些知识,就会存在重复耗时的问题.
对于对局信息而言,同样存在根据知识来推断计算的重复劳动问题,例如:在已经发生的局面上,重复使用相同的知识来得到相同的后续局面,这样的事情,是否会大量出现在我们的程序中?
 
小结基本层次
围棋信息包括以下2大部分:
1.围棋对局信息:具体的每一个对局过程的全部信息.
2.围棋知识信息:对所有对局同样发挥作用的行棋知识的信息,如围棋规则信息,围棋棋理信息等.
按此划分,棋盘信息应该归属到围棋知识信息中,细分下来应该可以是:
1.围棋对局信息是可变信息,至少包括:
1.1静态局面信息: 棋盘上现存棋子的状态信息,和由此产生的棋子间结构状态的信息,即子,串,块,群的存在状态信息.
1.2战术信息: 对棋盘上局部棋形的模式识别及其优劣评估的结果信息.
1.3战略信息: 对棋盘整体态势的模式识别及其优劣评估的结果信息.
2.围棋知识信息是不变信息,至少包括:
2.1棋盘信息: 棋盘交叉点数量及其连接关系及其衍生的知识信息
2.2规则信息: 行棋限制性约束,死活判断,胜负判断方法等知识信息
2.3棋理信息: 在何种战略或战术的状况下,该采用何种最优化对策的知识信息
区分变与不变,快变与慢变的意义在于找到高效利用这些信息的模型.
 
假设棋盘位置关系的地位是独立的
也就是说,单纯考虑棋盘位置点,因其位置不同而带来的地位上的不同的话,
那么,这些不同点是不会因为棋盘上有棋子而改变的.
也就是说,这些纯粹的位置关系地位是始终不会变化的.
这样考虑,是把棋盘上的落子带来的新的信息的变化另外再考虑.
把两方面的考虑"叠加",才是最终的效果,
我这样考虑,就是试图在"析出"那些变化频度更低,甚至不变的信息.
那么,在考虑变化的信息时,就可以考虑更"纯粹"的变化.
当然,这里有一个假设,就是自然界的"叠加原理"是普遍适应的.
就好比每个人的基因信息
是人在遗传上的固有信息,是不会在人的一生中变化的了,不会随人生的过程信息而变化.
但人生的信息是人的基因信息,叠加人生过程的信息的结果.
而且,人生的过程信息也会逐渐分层固化
早期的人生过程积累的信息,一般不会再变化,后期的人生过程信息则是叠加在人的基因信息和早期人生过程固化的信息基础之上的.
这也许正是"棋如人生"的信息化解释.
 
围棋信息分层的任务
棋手下棋之前在计算和查找什么信息?
1.目前棋形和局势的信息.
2.未来棋形和局势可能演变出来的状态的信息.
棋手就是进行了这两方面的计算和查询之后,
再运用头脑中的知识信息进行演变方向的选择.
我们信息分层的任务,
就是要提供尽量多,尽量快的对上述过程有支持作用的信息.
尽管我们未来支持的棋手,既可能是人类棋手,也可能是电脑棋手.
一场围棋信息的分层透析,拉开了序幕......。


https://wap.sciencenet.cn/blog-33982-466164.html

上一篇:分解与分类的关系
下一篇:围棋信息中的层次问题(2)
收藏 IP: 112.91.148.*| 热度|

3 刘钢 邹晓辉 laokanke

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 11:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部