oyd的专栏

草木竹石皆可为剑

用户操作
[即时聊天] [发私信] [加为好友]
oydID:oyd
98137次访问,排名1034,好友11人,关注者16人。
aaaa
oyd的文章
原创 67 篇
翻译 2 篇
转载 19 篇
评论 277 篇
oyd的公告
最近评论
yyzbest:忽然想到一个idea:
单机的计算速度是有限的,可否搞成分布式计算,每一步棋是有成千上万台机子计算之后的结果,然后把它放在网上和高手挑战。
爱爱爱:呵呵,mogo那么弱的棋力竟然也能动摇楼主的信念啊。
greenery:正在研究AI的学习中。
oyd:这个方法我越想越觉得似曾相识,后来翻书一看,赫然就是博弈书上介绍过的置换表法。然后我还想起一个可能的Bug,我没有在每生成一步棋后,把不用的那些分支所占用的hash位置清除。有可能一些没用的数据占据了hash表空间使得程序终局时表现不佳。
勋:感觉熟悉信息论的能够更深入的概括一下这个算法。
文章分类
收藏
    相册
    个人摄影作品集
    个人摄影作品集2
    广告
    dylgsy
    pigo的流水账(RSS)
    九贱的BLOG
    恋花蝶的博客
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes
    2008年12月27日

    原创 围棋AI之路(三)UCT,进来之后才发现是地狱收藏

    照例还是先公布代码 http://download.csdn.net/source/913373

    以及编译好的可执行程序,下载地址:http://download.csdn.net/source/913515

    前面介绍的UCT算法听起来很诱人,但是只有你真正去实验一下你才知道原来有这么多问题。

    理论上,UCT是一个一致的算法,它可以随着模拟次数的增加而自然提高棋力,而且理论上,它还可以计算到任意深度,而且理论上,它是天然支持并行计算的。

    但是,看看它华丽的外衣下面隐藏着哪些东西吧:

    一、模拟速度和内存问题

    目前的模拟速度是让我满意的,但是内存跟不上,9路棋盘上的5万局模拟+UCT选择,也只需要1秒多时间,10万局也就差不多3秒钟,但是,如果我想持续进行120秒的模拟,1G的内存也是不够用的。
    2008年12月20日

    原创 围棋AI之路(二)棋盘的实现收藏

    代码先公布:http://download.csdn.net/source/891878
    到现在为止,我只实现了一个棋盘,确切的说是在棋盘上随机走棋的速度测试程序,我借鉴了lib-ego,在上面做了一些改进,现在这个棋盘可以使用围棋规则或者五子棋规则。我的目标是让我的AI程序用同样的算法来对待围棋、五子棋甚至小时候玩过的黑白棋,它不需要任何棋类知识,你只要告诉它下棋的规则。我们的脑细胞可曾了解究竟什么是围棋?它们只是机械的执行自己的职能,而亿万个细胞堆叠在一起就使人类会下棋了。
    上面说的三种棋的棋盘有一些共同的特点:棋盘是由n行n列的平行线段交叉组成的格子,棋子分黑白两种颜色,棋手分为两方,分执一种颜色的棋子。双方轮流下子,每次下一个子,棋子要下在空的交叉点上(黑白棋似乎是下在格子里,但是应该没有本质区别)。
    根据这些特点我们开始设计棋盘的结构。
    一、比特棋盘
    很想在围棋中使用比特棋盘,就像国际象棋中那样,用一个64bit的数就描述了棋盘上的一种棋子。围棋上尽管也可以做到,例如用一个361bit的数来描述棋盘上的黑棋,另一个361bit阅读全文>

    发表于 @ 2008年12月20日 23:37:00|评论(loading...)|编辑|收藏

    2008年11月14日

    原创 围棋AI之路(一)理论收藏

    注:本文其实只介绍mogo程序所采用的MC+UCT算法。记得以前还曾为深蓝击败顶尖人类棋手而暗喜,庆幸自己选择了围棋这一体现人类智慧优越感的游戏。因为人机博弈的设计不外乎两个方面:估值和搜索,而这两者在国际象棋上表现非常好,深蓝仅仅靠的暴力搜索下出的妙手让大师也手足无措,你要不信,去问问卡斯帕罗夫和深蓝对局时什么感受。然后估值和搜索用在围棋上似乎失灵了阅读全文>

    发表于 @ 2008年11月14日 19:06:00|评论(loading...)|编辑|收藏

    2008年11月09日

    原创 字符串匹配算法(四)可以滑动多远收藏

    记得在穷举法中,每一趟比较后,无论成与不成,都将模式向右滑动一个位置,然后继续比较。有没有办法能利用之前的比较结果,使得模式滑动的更远一点呢?阅读全文>

    发表于 @ 2008年11月09日 16:41:00|评论(loading...)|编辑|收藏

    2008年10月31日

    原创 字符串匹配算法(三)位运算的魔法——KR与SO收藏

    位运算经常能做出一些不可思议的事情来,例如不用临时变量要交换两个数该怎么做呢?一个没接触过这类问题的人打死他也想不出来。如果拿围棋来做比喻,那么位运算可以喻为编程中的“手筋”。按位的存储方式能提供最大的存储空间利用率,而随着空间被压缩的同时,由于CPU硬件的直接支持,速度竟然神奇般的提升了。举个例子,普通的数组要实现移位操作,那是O(n)的时间复杂度,而如果用位运算中的移位,就是一个指令搞定了。阅读全文>

    发表于 @ 2008年10月31日 18:53:00|评论(loading...)|编辑|收藏

    2008年10月30日

    原创 字符串匹配算法(二)穷举与自动机收藏

    穷举法又叫暴力法。大多数程序员眼里,它是幼稚的,但大师们不这么认为。自动机的方法其实和穷举法有点相似,都是用最简单直白的方式来做事情。区别在于……阅读全文>

    发表于 @ 2008年10月30日 13:45:00|评论(loading...)|收藏

    2008年10月29日

    原创 字符串匹配算法(一)简介收藏

    本文历举当今主要的字符串匹配算法,大致翻译自EXACT STRING MATCHING ALGORITHMS,去掉一些废话,增加一些解释。阅读全文>

    发表于 @ 2008年10月29日 15:22:00|评论(loading...)|收藏

    2008年10月28日

    原创 php调用C代码的方法详解收藏

    在php程序中需要用到C代码,应该是下面两种情况:1 已有C代码,在php程序中想直接用2 由于php的性能问题,需要用C来实现部分功能针对第一种情况,最合适的方法是用system调用,把现有C代码写成一个独立的程序。参数通过命令行或者标准输入传入,结果从标准输出读出。其次,稍麻烦一点的方法是C代码写成一个daemon,php程序用socket来和它进行通讯。重点讲讲第二种情况,虽然沿用system调用的方法也可以,但是想想你的目的是优化性能,那么频繁的起这么多进程,当然会让性能下降。而写daemon的方法固然可行,可是繁琐了很多。我的简单测试,同样一个算法,用C来写比用php效率能提高500倍。而用php扩展的方式,也能提高90多倍(其中的性能损失在了参数传递上了吧,我猜)。所以有些时候php扩展就是我们的最佳选择了。这里我着重介绍一下用C写php扩展的方法,而且不需要重新编译php。首先,找到一个php的源码,php4或者php5版本的都可以,与你目标平台的php版本没有关系。在源码的ext目录下可阅读全文>

    发表于 @ 2008年10月28日 17:10:00|评论(loading...)|收藏

    2008年10月20日

    原创 直面经典:重温KMP(不着一图,尽得精髓)收藏

    KMP算法,每一个初学者都曾被它搞迷糊,在数据结构教材上,这个算法出现的如此之早,你怎能指望一个还没搞懂二叉树遍历的人来理解KMP呢,记得越快,忘得越快。直到多年以后回过头来看看,这才发现KMP算法如神谕般震撼了我。实在无法想象当初Knuth、Pratt、Morris三人竟然同时发现了它。 我们假设一个场景,你手上拿着一串红蓝两种颜色的珠子,墙上挂着一串更长的珠子,同样是红蓝两色的,你的任务就是找出和你手中珠子排列顺序相同的一段。 最简单也最容易想到的方法,就是从墙上第一颗开始,拿手中的珠子挨个去和墙上珠子去比,都相同那就OK了,不相同再从墙上第二颗开始,以此类推。(文章中我就不给代码了,需要代码的直接跳到正文最后去复制)有人会想:如果我手里的珠子都是红色的,我还用这种方法,我傻呀?对,Knuth当年也是这样想的。你看,假设你手里是连续的100颗红色珠子,墙上从第一颗开始是99颗红色珠子,那么当你比到第100颗你才发现少了一颗,你要从第二颗开始再去数一遍吗?没人会这么做,除了程序员。当然,正常人都要从第100颗之后再去找连续的红色珠子。有阅读全文>

    发表于 @ 2008年10月20日 14:45:00|评论(loading...)|收藏

    2008年09月22日

    原创 软件的价值在哪里?软件根本就没有价值!!收藏

    今天听朋友谈起他准备去买个wii,因为想玩某游戏。他为了玩某个游戏愿意花几千块钱买wii,但是我知道,他很难为了某游戏,去花100多买个正版游戏。(这里我省略了一个前提:有盗版的情况下)这让我想起,我以前的公司卖打印机给客户,20多万一台的卖。但是一套软件只要几千块,用户也不愿意买,只能作为打印机的附赠品。其实那家公司是做软件的,只不过软件有个打印功能。我开始思考,为何人们普遍不愿意承认软件的价值,只承认硬件的价值呢?硬件工程师和软件工程师都要每天8小时干活,一样该加班的加班。最后我思考的结果是:不是人们不承认,而是软件根本就没有价值!可是软件有用啊,软件有用那是它有使用价值,马克思说过,商品具有价值,是因为凝结着人类劳动。可是软件也是人用劳动做出来的呀,不错,最开始做一款软件的时候,是需要人的智慧在里面的。可是软件一旦做成后,再次制作该软件的成本就阅读全文>

    发表于 @ 2008年09月22日 12:44:00|评论(loading...)|收藏

    2008年04月22日

    转载 家乐福网站被黑存照收藏

    发现家乐福网站http://www.carrefours.com.cn/ 被黑阅读全文>

    发表于 @ 2008年04月22日 16:49:00|评论(loading...)|收藏

    2008年04月16日

    转载 告广大市民书收藏

    刚刚结束的法国PARIS站OLYMPIC圣火传递,并不象大多数国人所知道的那样平静。在中国人把象征友谊与和平的OLYMPIC圣火传进法国时,我们看到法国人和法国go-vern-ment都做了什么阅读全文>

    发表于 @ 2008年04月16日 16:39:00|评论(loading...)|收藏

    Csdn Blog version 3.1a
    Copyright © oyd