我用VC++做一个人机对弈五子棋,人机博弈的算法不好,改用αβ剪枝搜索算法,可这个算法我不会。文字性描述的文章有看,但还是看不懂,希望可以给出伪代码。最好是源码。 
    
    急用!!兄弟姐妹们帮帮忙!非常感谢!!! 

解决方案 »

  1.   

    Pudn一搜索一大把  
    http://www.pudn.com/downloads132/sourcecode/math/detail563835.html
    http://www.pudn.com/downloads208/sourcecode/math/detail980621.html
      

  2.   

    α-β剪枝技术的基本思想或算法是,边生成博弈树边计算评估各节点的倒推值,并且根据评估出的倒推值范围,及时停止扩展那些已无必要再扩展的子节点,即相当于剪去了博弈树上的一些分枝,从而节约了机器开销,提高了搜索效率。具体的剪枝方法如下:
      (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