前言: 闲得没事, 网上搜"游戏AI", 看到一篇>的文章. 而这篇文章刚好和之前讲的对弈类游戏AI对应上. 于是有了想法, 想把它作为一个实例来进行解读, 从而对之前偏理论的文章做个总结. 承接上四篇博文: (1). 评估函数+博弈树算法 (2). 学习算法 (3). 博弈树优...
分类:
其他好文 时间:
2015-04-13 06:50:10
阅读次数:
108
前言: 对弈类游戏的智能算法, 网上资料颇多, 大同小异. 然而书上得来终觉浅, 绝知此事要躬行. 结合了自己的工程实践, 简单汇总整理下. 一方面是对当年的经典>表达敬意, 另一方面, 也想对自己当年的游戏编程人生做下回顾. 承接上两篇博文: (1). 评估函数+博弈树算法 (2)...
分类:
其他好文 时间:
2015-04-07 13:35:16
阅读次数:
128
前言: 对弈类游戏的智能算法, 网上资料颇多, 大同小异. 我写这篇文章, 一方面是对当年的经典>表达敬意, 另一方面, 也想对自己当年的游戏编程人生做下回顾. 上一篇博文:对弈类游戏的人工智能(1)--评估函数+博弈树算法, 着重讲述了评估函数+博弈树, 本文着重讲述学习算法, 以及性能优...
分类:
编程语言 时间:
2015-03-31 19:58:16
阅读次数:
198
很感谢黄岚老师的帮助,在她的指导下完成了论文的书写工作,现已被Ei检索。之前有过设计五子棋AI的想法,当时想的运用博弈树,一层一层搜索来完成,我的第一版确实也是这么做的。后来看到这个方法已经烂大街,并且衍生出很多变种,改进也很大,于是尝试着创新。无意中看到一篇文章:遗传算法:内存中的进化,生动的.....
分类:
编程语言 时间:
2015-02-04 10:56:01
阅读次数:
147
不会输,超碉!井字棋这个游戏真是太无聊啦!算法大概就是,有一个给状况进行估价的函数,深搜每种状况,假设每个人都按对自己最有利的方式走(假设玩家也是不傻),最后让电脑走出最有利的一步。代码: 1 //#pragma comment(linker, "/STACK:102400000,10240000....
分类:
编程语言 时间:
2015-01-20 06:11:29
阅读次数:
557
题意:给一颗树,每次可以删掉一条与节点1(root)的连通的边,两人轮流操作,谁不能操作谁输。
题解:
只能套公式:
Colon原理:SG(x)=XOR{SG(y)+1|y是x的子结点}。
好了。水了。
代码:
#include
#include
#include
#include
#define N 101000
using namespace std;...
分类:
其他好文 时间:
2015-01-13 09:03:39
阅读次数:
153
博弈树搜索技术简介:博弈树的搜索算法,负值极大搜索,alpha-beta搜索,渴望搜索,PVS极窄窗口搜索等。通常来说,搜索算法常常和以下技术联合在一起。如下:1.置换表,记录已经搜索过的棋局,避免再次搜索。2.吃子启发,优先试下能够吃对方棋子的走法。3.杀手启发,历史启发简化版。4.历史启发,优先...
分类:
编程语言 时间:
2014-10-18 16:55:14
阅读次数:
347
public class GameTree {/*** 推断剩余球数,谁能取到最后谁赢,* ,一人取一次,默认我方先取,,是否能必胜,能就返回true,否则false* @param x剩余球数* @return*/static boolean f(int x){int[] op={1,3,7,8}...
分类:
其他好文 时间:
2014-10-10 17:41:14
阅读次数:
214
这题不科学~~本以为鬼谷子的钱袋是能在BZOJ写的最短的程序了,这题还要短…..好吧,思考难度神马的还是有点的(至少对我这种蒟蒻来说)。很明显这是道博弈论的题目,在纸上画出了n=1~4的博弈树,发现bob和alice是交替出现的…0.0当时就在想不会这么巧吧。忍不住百度了下解题,果然是这样的,不过解...
分类:
其他好文 时间:
2014-10-05 14:55:38
阅读次数:
221
public class GameTree {/*** 推断剩余球数,谁能取到最后谁赢,* ,一人取一次,默认我方先取,,是否能必胜,能就返回true,否则false* @param x剩余球数* @return*/static boolean f(int x){int[] op={1,3,7,8}...
分类:
其他好文 时间:
2014-07-11 18:48:55
阅读次数:
180