我用VC++做一个人机对弈五子棋,人机博弈的算法不好,改用αβ剪枝搜索算法,可这个算法我不会。文字性描述的文章有看,但还是看不懂,希望可以给出伪代码。最好是源码。
急用!!兄弟姐妹们帮帮忙!非常感谢!!!
急用!!兄弟姐妹们帮帮忙!非常感谢!!!
解决方案 »
- 讨论用vc开发一个软件的步骤
- 工程属性use mfc in a static library 转化为 use mfc in a shared dll的问题
- 最大最小化问题
- 谁有关于C++的电子书,给俺发一些
- CSoecket::OnReceive 接收在主线程,有什么办法移到辅线程接收
- 要做一个学生管理系统,不知道用什么工具比较好,要掌握什么东西,请教
- 请问VC7里面有没有类似object/library modules的链接设置项
- 我做了一个控件,然后要在VB中使用,我如何才能得到它所在窗体的句柄?如何才能截获它所在窗体的消息?
- cannot open input file ":.obj"怎么回事?
- 请问GetOwner(),GetParent()以及GetWindow()区别?
- vs2008如何添加一个普通的类
- 如何用离散的点画贝塞尔曲线。最好给个例子?、
http://www.pudn.com/downloads132/sourcecode/math/detail563835.html
http://www.pudn.com/downloads208/sourcecode/math/detail980621.html
(1) 对于一个与节点MIN,若能估计出其倒推值的上确界β,并且这个β值不大于 MIN的父节点(一定是或节点)的估计倒推值的下确界α,即α≥β,则就不必再扩展该 MIN节点的其余子节点了(因为这些节点的估值对MIN父节点的倒推值已无任何影响 了)。这一过程称为α剪枝。
(2) 对于一个或节点MAX,若能估计出其倒推值的下确界α,并且这个α值不小于 MAX的父节点(一定是与节点)的估计倒推值的上确界β,即α≥β,则就不必再扩展该MAX节点的其余子节点了(因为这些节点的估值对MAX父节点的倒推值已无任何影响 了)。这一过程称为β剪枝。
从算法中看到:
(1) MAX节点(包括起始节点)的α值永不减少;
(2) MIN节点(包括起始节点)的β值永不增加。
在搜索期间,α和β值的计算如下:
(1) 一个MAX节点的α值等于其后继节点当前最大的最终倒推值。
(2) 一个MIN节点的β值等于其后继节点当前最小的最终倒推值。井字棋 α-β剪枝算法:
http://codechina.net/source/1861263
简单介绍:
http://cai.csu.edu.cn/jpkc/rengongzhineng/rengongzhineng/kejian/ai/ai/chapter3/333.htm