常见棋类AI人工智能算法
来源:互联网 发布:人工智能应用场景 编辑:程序博客网 时间:2024/05/06 19:43
中国象棋明棋的思路
中国象棋明棋的实现思路是这样的,整个博弈树太大,因此采用有限深度搜索,用叶子节点的局面函数值根据极大极小原理(我方选分数极大值的走法,对方选分数极小值的走法)倒推出当前节点的分数,这个分数就是当前局面优劣判断的近似值,只要局面函数选得好、搜索的深度足够,近似值就可以很接近真实值。至于α-β剪枝、迭代加深搜索、历史启发、杀手启发、空步裁剪、循环局面判断……这些只不过为了提高搜索效率而已,而将军延伸、吃子走法……只不过是为了克服水平线效应。其实最基本的思想还是博弈树的极大极小原理。
http://wenku.baidu.com/link?url=R0GhAOILj3CZo7ae0GNy1pJC5Zl1uhhkceP0EtCdSVgaHNKKuV8TWmJog4onIoJ16pbAqn7whrQz3pIr07COogTkE7VJDns1vBZ2AQpqcu_
http://bbs.blueidea.com/thread-3047030-1-1.html
搜索算法
α-β剪枝算法
α-β剪枝技术的基本思想或算法是,边生成博弈树边计算评估各节点的倒推值,并且根据评估出的倒推值范围,及时停止扩展那些已无必要再扩展的子节点,即相当于剪去了博弈树上的一些分枝,从而节约了机器开销,提高了搜索效率。具体的剪枝方法如下:
(1) 对于一个与节点MIN,若能估计出其倒推值的上确界β,并且这个β值不大于 MIN的父节点(一定是或节点)的估计倒推值的下确界α,即α≥β,则就不必再扩展该 MIN节点的其余子节点了(因为这些节点的估值对MIN父节点的倒推值已无任何影响 了)。这一过程称为α剪枝。
(2) 对于一个或节点MAX,若能估计出其倒推值的下确界α,并且这个α值不小于 MAX的父节点(一定是与节点)的估计倒推值的上确界β,即α≥β,则就不必再扩展该MAX节点的其余子节点了(因为这些节点的估值对MAX父节点的倒推值已无任何影响 了)。这一过程称为β剪枝。
从算法中看到:
(1) MAX节点(包括起始节点)的α值永不减少;
(2) MIN节点(包括起始节点)的β值永不增加。
在搜索期间,α和β值的计算如下:
(1) 一个MAX节点的α值等于其后继节点当前最大的最终倒推值。
(2) 一个MIN节点的β值等于其后继节点当前最小的最终倒推值。
估值算法
遗传算法 学习能力
开局库
历史启发
代码
中国象棋 - in html5
https://github.com/itlwei/chess
作者:一叶孤舟
联系:itlwei@163.com QQ:28701884
Demo:http://itlwei.github.io/chess/
中国象棋 - in html5是一款使用html5 canvas开发的开源小游戏,不依赖任何类库,不依赖任何后台程序,全部原生Javascript进行AI计算,欢迎广大业内同行多多交流指正,共同完善。
- 常见棋类AI人工智能算法
- 常见棋类AI复杂度介绍
- 棋类AI相关
- 人工智能AI常见的经典K-means聚类算法原理和工作过程
- AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏
- 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏
- 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏
- 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏
- 棋类游戏走步计算AI
- 人工智能---alphabeta剪枝算法实现AI井子棋
- 人工智能(AI)
- 人工智能(AI)
- 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋
- Unity人工智能学习—确定性AI算法之随机运动
- Unity人工智能确定性AI算法之随机运动
- 机器学习之-决策树算法【人工智能工程师--AI转型必修课】
- 机器学习之-集成算法【人工智能工程师--AI转型必修课】
- 人工智能之机器学习常见算法
- 移动共享开发(七)添加社交平台到分享列表
- Leetcode NO.160 Intersection of Two Linked Lists
- C++之重载操作符与友元
- shell脚本方便操作记录(持续添加)
- 第一个VC++2010 窗口程序
- 常见棋类AI人工智能算法
- 辛星笔记之Hadoop权威指南第三篇combiner
- Object-c 中字符串总结
- bluedroid 框架
- Cocos2d-x V2.x CCClippingNode 不裁剪异常显示 小米1、2等机型
- C++输出格式
- linux下weblogic启动报错:BEA-149205
- UVA - 11389 The Bus Driver Problem 贪心
- 默然日记20150301