智能电子围棋棋盘论文

智能电子围棋棋盘

隋 振, 侯天晨, 段绿辉, 吴 涛, 张天星

(吉林大学 通信工程学院, 长春 130022)

摘要 : 为使传统围棋对弈更加方便、 快捷, 改进了势力模型算法, 借助Windows操作系统设计了一种行列扫描电路式智能电子棋盘, 其组成包括行列扫描棋盘电路、 信息采集模块、 上位机(PC)软件3部分: 通过行列扫描棋盘电路得到对弈棋局信息, 经过信息采集模块传递信息到上位机中, 在上位机中通过VC程序编译, 完成棋局显示、 双方棋手用时记录、 目数统计、 棋子数统计、 胜负判定等功能。与现有电子棋盘相比, 在不损失信息采集准确性、 稳定性的基础上极大降低了生产成本。通过测试, 该系统能稳定显示对弈棋局, 势力模型算法能快速、 有效地分析出对弈情况。

关键词 : 围棋; 矩阵扫描电路; C++语言; 势力模型

0 引 言

围棋是中国四大国粹之一。中国围棋的起源非常早, 它的发展、 传承与中华文化的发展紧密相连。围棋不仅可以启发人们的智慧, 同时还能影响和滋养华夏民族的道德、 行为、 审美和思维方式[1]。中国的职业围棋选手大约有400人, 业余选手大约有1 100万人[2]。围棋人口庞大, 因此我国举办了许多围棋比赛。但传统围棋比赛的时间、 棋谱的记录还是人工手动记录, 十分繁琐。随着电子技术的发展, 电子围棋盘的出现改变了传统的计时、 记录的方式。例如文献[3]设计了一种运用光敏电阻作为获取棋子状态的传感器, 对棋子状态的模糊模型进行数据的处理和识别, 最后在PC端上显示对弈棋局; 文献[4]设计了一种基于触摸屏的围棋对弈系统, 在Android平台上有很好的应用。但这些电子棋盘大都造价昂贵, 为商品普及带来了不便。

为此, 笔者设计了一种行列扫描式的电子棋盘, 通过行列扫描棋盘电路得到对弈棋局信息, 在上位机中编写相应程序, 进而完成棋局显示、 双方棋手用时记录、 目数统计、 胜负判定等功能。通过这些辅助程序使对弈更加简单、 方便。

1 系统方案与分析

1.1 系统结构

图1 系统结构示意图
Fig.1 The diagram of the system structure

系统的整体设计技术方案: 底层为电压采集矩阵电路棋盘, 通过数据采集模块(使用采集卡作为信息采集模块, 其型号为USB2832)从矩阵棋盘得到棋子信息, 在上位机中进行软件程序的编写, 完成棋局分析与显示、 计时、 最终对弈结果的判断。基于此, 电子棋盘将主要由以下3个部分构成: 矩阵棋盘电路、 数据采集和上位机。系统结构图如图1所示。

1.2 创新性分析

随着电子技术的发展, 市场上出现了许多电子围棋棋盘, 为围棋爱好者提供了极大的方便。表1列举了许多电子围棋产品及它们的原理和价格。由表1可以看到市场上的电子棋盘售价比较昂贵。究其原因, 围棋棋盘361个节点需要361个传感器, 这就使棋盘电路复杂, 进而造价昂贵。笔者设计的基于分压原理的智能电子棋盘, 其棋盘电路是矩阵键盘式。黑白棋子内嵌入不同阻值电阻, 插入矩阵扫描电路后可采集到不同电压值以区分黑白棋子。在不损失信息采集准确性、 稳定性的基础上极大降低了生产成本。笔者制作一个棋盘作为验证, 其制作成本不到1 000元。

在进行棋局分析时, 笔者对比分析了基于势力模型分析法、 搜索算法、 基于形势判断的遗传算法等棋局分析方法。最后采用势力模型分析法, 改进势力模型中的规划参数, 分析最优输出结果。使软件能有效地判断出双方势力, 进而分析对弈结果。

表1 电子围棋商品统计表

Tab.1 The table of the electronic Go commodity

2 系统实现

2.1 系统硬件设计

图2 系统硬件电路图(局部)
Fig.2 The circuit diagram of system (partial)

系统硬件包括棋盘电路模块和信息采集模块。两个模块统一工作, 共同完成棋盘上的信息采集、 传输, 因此统称硬件模块。系统硬件电路如图2所示。图2中, USB2832是一款数据采集卡, 16路I/O, 32路AD。直接通过USB与上位机相连接, 所提供库程序可以方便完成数据采集和传输。

3) 叠加定律。每个点受到4个方向的控制力作用, 任一方向受到的控制力大小是这个方向受到的所有力的代数和。最后受力叠加判断该点势力所属。

硬件棋盘做成19×19矩阵键盘模式。其每列通过光耦(型号4N29)由数据采集卡I/O口控制通断, 上接5 V电压源, 每列循环给5 V电平。其每行连接数据采集卡AD口, 实时采集电压值。每行尾部连接一个分压电阻, 阻值为5 kΩ。黑白棋子内嵌入了不同阻值的电阻, 如图3所示。每个棋子摆放位置前串进一个二极管, 以避免寄生回路的产生, 使采集更稳定。

a 棋子结构 b 棋子实物
图3 棋子图
Fig.3 The diagram of piece

1) 棋盘信息采集。通过数据采集卡提供的库程序进行I/O扫描和AD电压采集。逻辑电平有3层, 如某位置采集到电压0.4 V, 则该位置有黑子; 某位置采集到电压4.1 V, 则该位置有白子; 某位置未采集到电压, 则该位置无子。将采集到的信息存储在一个19×19的二维数组中, 对应棋盘上的19×19个网格交叉点。在棋盘上某个位置没有棋子, 则数组里对应位置的数值为0; 在棋盘上某个位置有一个白色棋子, 则数组里对应位置的数值为-1; 在棋盘上某个位置有一个黑子, 则数组里对应位置的数值为1。

该系统编程时采用势力模型分析棋局, 势力模型分析法是判断围棋局势的常用算法。当双方收官完成, 棋局数据存入GameOverMap[19][19]数组, 然后通过建立势力模型完成势的大小的分析判断。所谓势力模型, 每一颗棋子都有其自己的价值所在, 这个价值由围棋本身对局形势所决定, 不仅体现在它的几个临近点上, 还对较远的区域有着比较强的控制潜力。

2.2 系统软件设计

近年, 谷歌的围棋系统Alpha Go在3场比赛中以3 ∶0的成绩击败了围棋世界冠军柯洁, 引发了全国围棋的热潮[5], 计算机如何分析棋局、 人工智能的发展等话题不绝于耳[6-10]。该系统作为一个围棋产品, 其软件部分需要完成的工作就是对弈的显示和胜负判断及一些辅助功能。因此系统软件就按照功能模块进行设计, 其包括: 棋盘信息采集、 棋局分析和双方计时。

2) 棋局分析。需要处理上述19×19数组, 从中得到双方目数进而判断出对弈结果。围棋胜负判断规则为数子法, 双方下子完毕, 将死子清理出盘外, 然后对一方活棋进行计数。胜负基准以棋局总点数的一半为归本点, 凡一方活棋大于此数则为胜者。但是黑方有先手优势, 所以黑方要贴出3又1/4子, 即黑方184又1/4, 白方176又3/4为双方获胜基数[11]。如何通过计算机分析棋局, 文献[12-15]阐述了通过势力模型、 搜索算法、 最小路径集的方法、 基于形势判断的遗传算法对棋局进行分析; 文献[16,17]则是通过对大量围棋棋谱数据分析启发自己开发的程序; 他们都取得了显著效果。但其中搜索算法代价极大, 围棋每步大约都有一百个可行点, 则仅14步就会有1028种变化, 因此只能局部搜索, 而局部搜索却又不可避免会陷入局部最优解。其中基于形势判断的遗传算法, 随着棋局进展, 棋局越来越接近终局, 棋局变化越少, 形式判断才会更准确, 也就是说它需要大量数据, 就增加了存储量和运算量。

当导电的棋子落在线路交叉点时, 线路导通。I/O扫描到该列, 则该列电路有电压5 V, 由串联分压原理, 黑子110 kΩ, 与分压电阻5 kΩ分压, 采集到电压值0.4 V左右; 白子1 kΩ, 与分压电阻5 kΩ分压, 采集到电压值4.1 V左右。通过每行连接的AD口, 采集通电的某列所有棋子的电压值。这种3逻辑电平, 即电平分为0 V、 0.4 V、 4 V 3个电压档次, 分别代表棋子的有无和黑、 白。

穗长与产量的相关系数为0.35,直接通径系数为0.20,稍小于出籽率,通过活动积温和穗行数所起的作用为正向作用,而通过出籽率起的作用为轻微负向作用。穗行数与产量的相关系数为0.18,直接通径系数为0.13,通过活动积温、穗长和出籽率所起的作用为正向作用。

2014年8月中共中央政治局召开的会议审议通过的 《关于深化考试招生制度改革的实施意见》,对分类考试、综合评价、多元录取的考试招生模式进行了深化改革。在面对中西部地区和人口大省的高考录取率问题上,农村学生能否上重点高校的教育公平问题,以及中小学招生时存在的择校难和择校热的现状上,将采取适当对招生计划分配方式进行改进。在教育生态系统中,逐步健全教育公平、选人用人趋于科学、体制机制的实施监督有力,将各级各类教育衔接和沟通,逐步实现对多种学习成果均多元认可且学分转化,搭建终身学习“立交桥”。

其实, 当扫描到棋盘电路中某一列时, 该列电路实质是一个19路并联电路, 在每个棋子和分压电阻之间进行电压采集。利用不同阻值棋子分压的不同, 采集到不同电压值, 就能得到棋子黑白信息。

图4 棋子势力图
Fig.4 The diagram of chess force

在围棋对局中, 追求的是本方取得最大限度的获得领地的机会。把每个棋子对周围的影响称之为力, 力在棋盘上向四周蔓延, 遇到另一个力源后衰减。而棋盘上许许多多的棋子, 就有许许多多的力源, 每个点受到的力就是所有力源的叠加, 这些力有大小和方向, 是矢量叠加。把棋子作为一个辐射源(见图4), 将该棋子的辐射作用延伸到棋盘其他部分。把黑子和白子的辐射值分别设定为正和负。本势力模型初始势力影响值64, 距离该点最近的棋子受影响最大, 依次递减。这个最大影响值为32, 影响力值随着距离增加而成比例减小。于是一个棋子对邻位的影响势力值为32, 尖位和关位为16, 小飞和大关位为8。初始势力值设定尽量避免小数运算, 节约计算量。势力的蔓延传播符合以下3个规律。

在新旧动能转换的背景下,“创新”是驱动校企合作的有利元素,传统的职业教育模式要被取代,现代学教学模式和现代学徒制人才培养模式将成为主流。

1) 衰减规律。控制力遇到一个点后, 力的大小被衰减, 符号方向不变地继续向前传播。如果遇到空点, 衰减后的控制力变为原来的一个常数倍(笔者取1/2), 该常数被称为传播率; 如果遇到有子点, 势力不仅会在原方向衰减为原来的一个比例倍, 还会产生与控制力方向相垂直的两个新的控制力。这两个力符号与原控制力相同, 方向垂直, 为原控制力的1/4。

2) 反射规律。在围棋对战中素有金角银边之说, 也就是在围棋的边和角更容易受到棋子影响。因此设计反射定律。控制力达到棋盘边界后, 会被反射回来, 该反射力与原控制力方向相反, 符号相同, 大小是原控制力的一个常数倍, 该常数称为反射率。反射率常数定为1。

昨天下午,我正在教室里给学生上作文课,忽然就感觉讲台上光线一暗,李老黑堵在了教室门口。他像半截黑塔一样,把秋天明媚的阳光一下子拦截在了门外。李老黑先是表情威严地扫视了一遍学生,接着扫视了一眼黑板。几十双眼睛齐刷刷地望着李老黑,好一阵教室里只剩下了喘气的声音。李老黑巡视完以后,用食指对着我勾了勾,我就碎着小步跟在他的大屁股后面走了出去。

(3)通过个别座谈了解到,对于高职高专类学生,教师还需从多方面培养其学习兴趣及自主学习习惯,并利用各种手段加强对自主学习过程的督促和检查。

图5 判断势力流程图
Fig.5 The flow chart of judging
the sphere of influence

根据上述InfluenceMap[19][19]数组, 判定黑子、 白子的势力范围。每个节点受到的势力值M 是判断依据。当M >0时该点受黑子的势力影响强过白子的势力影响, 即该点为黑子势力范围; 反之, M <0时, 该点为白子势力范围。

总结以上定律, 力向四周辐射, 衰减。遇到一个子后, 力分散, 衰减, 产生与控制力方向相垂直的两个新的控制力。力到达棋盘边缘后, 全反射, 仅仅改变控制力的方向, 符号、 大小均与原来相同。程序实现时, 采用循环嵌套。扫描GameOverMap[19][19]数组, 将其中每个子的势力计算出来并相互叠加。最终数组中每个点的势力计算结果M 存储在新的数组InfluenceMap[19][19]中。某个子的势力判断流程图如图5所示。

最后要判断围棋对弈胜负, 由上文提到的围棋规则-数子法, 双方下子完毕, 将死子清理出盘外, 然后对一方活棋进行计数。黑方有先手优势, 所以黑方要贴出3又1/4子, 黑方184又1/4, 白方176又3/4为双方获胜基数。将计算的黑子势力数与184又1/4作比较, 黑子势力数大于此值, 黑方胜利, 而少于这个数就算白方胜利。

3) 双方计时。双方棋手时间记录, 运用VC提供的函数GetTickCount(), 该函数功能是读取当前时刻系统时钟, 存储在变量T n 中。对GameOverMap[19][19]数组中黑白子数进行监视, 当扫描到GameOverMap[19][19]数组中黑子数增加1, 则黑子落子完毕, 此时为白手的思考时间: 同理, 当扫描到白子数量增加1, 白方落子完毕, 此时为黑手思考时间。

记录下双方棋手落子时间点, 每次更新显示棋盘时将一方棋手两次记录时间做差, 得到该棋手从开始思考到落子的时间差, 通过一个变量存储每次的时间差, 再通过一个全局变量将每次时间差叠加, 这就是一个棋手在本局中一共所用时间。第1手黑子先行, 因此最开始记录时间是黑手时间, 其双方计时程序流程如图6所示。其中T 1是白子落下, 黑方思考开始时间的节点; T 2是黑子落下, 白方思考开始时间的节点; T w是白子单次落子思考时间,T b是黑子单次落子思考时间;T white是白方一共所用时间,T black是黑方一共所用时间;T n是读取系统的当前时刻。

图6 时间记录流程
Fig.6 The flow chart of time recording

3 测 试

3.1 显示功能测试

系统设计完成, 笔者制作一个8×7的棋盘。在PC 机上测试, 测试环境: Windows 10 的64位操作系统。将系统连接完整, 在棋盘上放入棋子, 测视图如图7所示。在棋盘上尝试了许多棋子摆布情况, PC 端均能稳定显示。

@小哈雷:500万房子中介费挣15万,现在投资500万买房都没有中介一分不花挣得多!还不用贷款、成本、风险!

图7 显示功能测试图
Fig .7The diagram of display function test

3.2 目数统计、 胜负判断功能测试

从网络上找到典型的对弈棋局, 如图8所示。其中图8a 为AlphaGo 与柯洁人机大战第1局的棋谱, 由文献[18], 最终白子AlphaGo 以半子的优势小胜黑子柯洁; 其中图8c 为日本著名棋手桥本昌二九段执黑对坂田荣男九段执白的一局棋终局, 最终结果桥本昌二半子小胜坂田荣男。将两局的最终棋局录入PC 上的软件中, 进入目数统计、 胜负判断算法, 得到结果与棋局实际结果对比, 可得到结果如图8b 和图8c 。可以看出目数统计和最终结果与实际棋局一致。因此目数统计、 胜负判断程序有效。

这样根据幼儿的年龄特点,从时间、空间上进行具体、周密的设计和安排,既可以错开时间有效利用场地,使之发挥最高使用率和最好使用效果,又可以避免相互的影响,确保幼儿开展活动有时间、有场地、有器材、有成效;同时丰富有趣的晨间体育锻炼活动,慢慢的也改变了个别孩子入园习惯,不仅充分保证了幼儿每天充足的户外活动时间,而且增加了幼儿的活动密度,确保幼儿在锻炼中身体得到良好发育,增强体质,全面提升幼儿的各项综合素质,促进其对外界环境的适应能力。

图8 目数统计功能测试图
Fig .8The diagram of statistical function test

4 结 语

笔者设计了一种基于分压原理的电子围棋棋盘。利用黑、 白棋子内电阻阻值不同, 分压比不同, 然后在矩阵扫描棋盘电路上得以区分颜色。该电路造价低廉, 并能稳定地采集出棋盘对弈信息。最后在上位机中通过VC 程序编写, 完成对弈显示、 双方计时、 目数统计和胜负判断等功能。并制作了局部硬件棋盘, 测试了以上功能。该系统稳定工作, 棋局目数统计、 胜负判断算法迅速、 有效。因此设计合理可行。

参考文献 :

[1]何云波. 围棋赋与中国古代棋论话语 [J ]. 绵阳师范学院学报, 2018, 37(7): 1-4,47.

HE Yunbo .The Go Chess and the Discourse of Ancient Chinese Chess Theory [J ].Journal of Mianyang Normal University , 2018, 37(7): 1-4,47.

[2]龚勋. 中国传统文化----围棋 [J ]. 工会信息, 2017(20): 50.

GONG Xun .Chinese Traditional Culture ----Go [J ].Union Information , 2017(20): 50.

[3]李亚南. 围棋矩阵模拟信号检测与传输系统的研究 [D ]. 天津: 天津大学电气与自动化工程学院, 2007.

LI Yanan .Research on Analog Signal Detection and Transmission System of Go Matrix [D ].Tianjin :School of Electrical and Automation Engineering ,Tianjin University , 2007.

[4]王贺. 基于多点触控的围棋对弈软件在Android 上的研究与实现 [D ]. 北京: 北京邮电大学软件学院, 2013.

WANG He .Research and Implementation of Go Game Based on Multi -Touch in Android [D ].Beijing :School of Software ,Beijing University of Posts and Telecommunications , 2013.

[5]田渊栋. 阿法狗围棋系统的简要分析 [J ]. 自动化学报, 2016, 42(5): 671-675.

TIAN Yuandong .A Simple Analysis of Alpha Go [J ].Journal of Automation , 2016, 42(5): 671-675.

[6]马振.AlphaGo 背后的机器学习技术 [J ]. 电脑迷, 2018(6): 81.

MA Zhen .Machine Learning Technology behind AlphaGo [J ].Computer Fans , 2018 (6): 81.

[7]廖恒, 刘洋. 游戏中的共在----人机对弈的解释学 [J ]. 中国图书评论, 2016(6): 48-53.

LIAO Heng ,LIU Yang .The Co -Existence in the Game ----The Interpretation of Human -Machine Game [J ].Chinese Book Review , 2016(6): 48-53.

[8]袁溪. 浅谈计算机围棋中的搜索算法 [J ]. 科技风, 2018(12): 58.

YUAN Xi .Discussion on the Search Algorithm in Computer Go [J ].Science and Technology , 2018(12): 58.

[9]杨骏. 人机大战超越胜负 [N ]. 惠州日报,2016-03-16(F 02).

YANG Jun .Man -Machine Wars Overtaking the Outcome [N ].Huizhou Daily , 2016-03-16(F 02).

[10]宫书畅. 从AlphaGo 人机围棋大战解读人工智能技术 [J ]. 电子制作, 2017(16): 35,36.

GONG Shuchang .Interpretation of Artificial Intelligence Technology from AlphaGo Human Machine Go Game [J ].Electronic Production , 2017(16): 35,36.

[11]黄春雷. 浅谈古代围棋规则与现代围棋发展 [J ]. 中国科技纵横, 2017(10): 58,59,70.

HUANG Chunlei .On the Ancient Go Rules and the Development of Modern Go [J ].Chinese Technology , 2017(10): 58,59,70.

[12]王曙光, 张珍. 基于Strength 模型的围棋棋子价值评估方法 [J ]. 科学技术与工程, 2017, 17(18): 248-252.

WANG Shuguang ,ZHANG Zhen .Value Evaluation Method of Go Chess Based on Strength Model [J ].Science Technology and Engineering , 2017, 17(18): 248-252.

[13]KRZYSZTOF KRAWIEC ,WOJCIECH MARCIN SZUBERT .Evolving Small -Board Go Players Using Coevol -Utionary Temporal Difference Learning with Archives [J ].International Journal of Applied Mathematics and Computer Science , 2011, 21(4): 52-57.

[14]CHEN Yong ,REN Yi ,LIU Linlin ,et al .A New Algorithm of Go Methodology Based on Minimal Path Set [J ].AASRI Procedia , 2012(3): 3.

[15]余磊, 魏军. 基于形式判断和遗传算法的计算机围棋静态评估算法 [J ]. 吉林大学学报: 工学版, 2011, 41(6): 1694-1698.

YU Lei ,WEI Jun .Computer Solution of Static on Positional Analysis Evaluation Problems Based and Genetic Algorithm [J ].Journal of Jilin University :Engineering and Technology Edition , 2011, 41(6): 1694-1698.

[16]LIU Zhiqing ,LI Wenhong ,LU Benjie .Automatic Acquisition of Pattern Collocations in GO [J ].The Journal of China Universities of Posts and Telecommunications , 2008(1): 61-67.

[17]LIU Zhiqing ,DOU Qing .AAutomatic Pattern Acquisition from Game Records in GO [J ].The Journal of China Universities of Posts and Telecommunications , 2007(1): 100-105.

[18]王熙. “AlphaGo ”升级版横扫围棋界, 人工智能将走向何方? [J ]. 通信世界, 2017(2): 17.

WANG Xi . “AlphaGo ”Upgraded Version Sweeps the World of Chess ,Where Will artificial Intelligence Go ? [J ].Communication World , 2017(2): 17.

Intelligent Electronic Chessboard Based on the Principle of Voltage-Division

SUI Zhen, HOU Tianchen, DUAN Lühui, WU Tao, ZHANG Tianxing

(College of Communication Engineering, Jilin University, Changchun 130022, China)

Abstract : In order to make the traditional game of Go more convenient and fast, we improve the “influence model” algorithm, and design a kind of row-scanning circuit type intelligent electronic chessboard with windows operating system. Its composition includes three parts: the row and column scanning board circuit, the information acquisition module and the upper computer (PC) software. The game board information is obtained through the row and column scanning board circuit, and the information is transmitted to the host computer through the information acquisition module, and compiled by the VC program in the host computer to complete the game board display, the player's time record, the mesh count, the chess piece count, the outcome Judging and other functions. Experiment shows that the system can stably display the game of chess, and can quickly and effectively determine the outcome of the game.

Key words : go; circuit board; C++; influence model

中图分类号 : TP271.5; TP319

文献标识码: A

收稿日期 :2018-10-10

基金项目 :国家重点研发计划智能辅助技术研发及产业化基金资助项目(2016YFB0101100)

作者简介 : 隋振(1970— ), 男, 吉林公主岭人, 吉林大学副教授, 硕士生导师, 主要从事复杂系统建模、 优化与控制研究, (Tel)86-13604312078(E-mail)suizhen@jlu.edu.cn。

文章编号: 1671-5896(2019)02-0174-07

(责任编辑: 刘东亮)

标签:;  ;  ;  ;  ;  

智能电子围棋棋盘论文
下载Doc文档

猜你喜欢