作者ledia (contemplation)
看板GO
标题Re: [问题] 电脑棋力的问题
时间Mon Apr 18 04:53:20 2005
※ 引述《Equalmusic (Wintertraveller)》之铭言:
: 其实我比较想知道的是, 为什麽要教电脑一定跟人类一样的下棋方式?
: 在电脑里面输入定石, 告诉电脑哪边实力大, 势力的概念是怎样
: 然後用 points 来让电脑选择该下哪边, 这是人类的思考方式
: 大家都知道电脑优秀的地方应该是在演算速度方面
: 我从很久以前就在想, 能不能用类似做数学的方法来让电脑下围棋?
: 就像做完美结局问题一样, 用 n = 1, 2, 3, 4, 5...去寻找规律
: 简单的说, 就是在棋盘上, 对於所有的 n 属於自然数, 且 n = [1, 19]
: 用 n*n 的棋盘去让电脑算「所有的」可能性
: 最初, 唯一需要输入资料库的是死活的棋形
: 知道怎样是肯定活型, 无论如何不可能打入, 这样就可以算地盘
: 最後让电脑记住全部电脑会胜的那种最终盘型
: 然後每场棋电脑就只是排出他会胜的那种棋型而已
: 当然, 19*19 的盘面太大, 用超级电脑来算也不可能算完所有的可能
: 所以我的想法是, 就先让电脑算到 5*5 的盘面, 或是 9*9 的盘面
: 然後根据 1*1 ~ 9*9 去寻找他的数学规律
: 最後也许就可以找到一套可让电脑单纯靠基本规则来运算
: 从而在 19*19 的棋盘致获最终的胜利?
: (如果真的可以的话, 那肯定会出现神蹟般的手筋吧 @_@)
: 毕竟, 电脑再怎麽模仿他还是电脑, 价值判断如果不能精确的用数学定义
: 那即使再过一百年电脑也不可能赢人
你想的其实是很好的点子
事实上,有很多人也觉得
为什麽程式一定要学习人类的思考模式?
因此,有一支电脑围棋的作法就是:
定几个有待定系数的评分函数
然後用几个不同的初始系数评分函数的程式对下
然後大家根据胜负状况来 "进化"
(同时也会加入一些变异)
这是类似基因演算法的做法
还有另一支用到了我比较不熟的类神经网路来做
这可能就要够熟悉的人才能介绍了
但是,有没有人试着把 "所有可能" 算出来和归纳呢?
这个想法的实作其实是存在的!
像是象棋的残局资料库就是在子少时
可以把同样子力分配之下所有可能盘面都列出来, 算出胜负关系
以某种方式编码存起,如果有实战时遇到之前算出过的子力分布
那就直接去读资料库就不可能会走错了!
围棋也是有类似应用的,像是一些简单的对打入空的应法之类
( 有人推文问, 循环盘面的情形又如何呢?其实是有方法的,不
过这就得用到棋规了,无论象棋还是围棋,都有相应的规定,
程式都有方法可以处理,没问题! )
不过,可能性太大还是让问题变得很难解决
象棋的情况还好,以围棋来说,nxn 的棋盘有 n^2 格
所有的格子上会有 3 种可能,黑、白和无
因此所有的可能盘面有 3^(n^2) 种
就算 n=5,也要存 3^25 = 847288609443 这麽多资料
一个盘面如果有输、赢、和三种可能
那存下一笔资料要 2 bit (举例: 00 输, 01 赢, 10 和)
算起来是 847288609443*2 = 1694577218886 bits
= 211 Giga bytes (都比我的硬碟大了)
就更别说你要在上面作什麽分析和运算了...
既然太大的盘面做不了,就只好作盘面更小(围棋)或子力少(象棋)的
现在的确有人在研究这些东西,不过这实在不是简单的问题
有什麽结果的,据我所知并没有很多
我不知道未来的发展趋势是否会是在这上面
不过搜寻的方法毕竟还是目前的主流
毕竟打败西洋棋人类冠军的深蓝就是用这一套
( 也许围棋就要另辟新路了! )
会想说这些东西,其实是有点私心的
电脑棋类的发展其实很需要棋力高的棋手一起帮忙
不过往往遇到的是不会下棋的程式设计师
要不就是不懂程式设计原理的高强棋手
我自己相信,把电脑的棋力提升
也是有助於人类自己的棋力提升的
希望藉由这样聊一聊, 能够让更多高手棋手想要多接触一点程式的概念
也许将来打败围棋人类冠军的程式是台湾的团队所研发的也不一定 :)
围棋板还是多讲点围棋的事, 我先就此先打住了
希望众高手们不吝多讲一点棋罗 :)
--
有时候,遗忘,是令人快乐的。什麽时候?当然是有人伤了你的心的时候。
存心伤你的那个人,固然是故意和你过不去,但是被伤了心而耿耿於怀的你
,却是和自己过不去了。所以,记性不好的人,通常会是比较快乐的人,也
是比较不容易被击倒的人。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.55
※ 编辑: ledia 来自: 140.112.30.55 (04/18 04:54)
1F:推 snowrain:对啊 同时精通围棋跟程式的高手是很重要的 61.62.133.223 04/18
2F:推 Charon:这种问题我觉得是种两难,因为棋力养成要时间, 140.116.247.2 04/18
3F:→ Charon:程式能力养成或正确一点说是演算法能力养成更需要 140.116.247.2 04/18
4F:→ Charon:时间。除非可以将两者结合,能如许舜钦老师作得 140.116.247.2 04/18
5F:→ Charon:那麽好的,至少在围棋程式研究上,还没有出现, 140.116.247.2 04/18
6F:→ Charon:不是没有,只是还没有很出色的。 140.116.247.2 04/18
7F:推 nendi: 朝圣! 05/28 18:53