计算机博弈-最大最小搜索,Alpha-Beta搜索
来源:互联网 发布:画立体几何的软件 编辑:程序博客网 时间:2024/06/06 19:07
最大最小搜索:
int MinMax(int depth){ if(SideToMove() == WHITE) { return Max(depth);//白方是"最大者" } else { return Min(depth);//黑方是"最小者" }}int Max(int depth){ int best = -INFINITY; if(depth <= 0) { return Evaluate(); } GenerateLegalMoves(); while(MovesLeft()) { MakeNextMove(); val = Min(depth-1); UnmakeMove(); if(val > best) { best = val; } } return best;}int Min(int depth){ int best = INFINITY;//区别与Max() if(depth <= 0) { return Evaluate(); } GenerateLegalMoves(); while(MovesLeft()) { MakeNextMove(); val = Max(depth-1); UnmakeMove(); if(val < best) { best = val; } } return best;}
改进的最大最小搜索:
int MaxMinSearch(int depth,int player_mode){ int best = INFINITY; if(depth <= 0) { return evaluate();//评估函数 } GenerateLegalMoves();//生成当前所有着法 while(MovesLeft())//遍历所有着法 { MakeNextMove();//实施着法 val = -MaxMin(depth-1);//换位思考 UnmakeMove();//撤销着法 if(val > best) { best = val; } } return best;}
Alpha-Beta搜索:
int AlphaBeta(int depth,int alpha,int beta){ if(depth == 0) { return Evaluate(); } GenerateLegalMoves();//生成所有着法 while(MovesLeft())//遍历所有着法 { MakeNextMove();//实施着法 val = -AlphaBeta(depth-1,-beta,-alpha);//换位 UnmakeMove();//撤销着法 if(val >= beta) { return beta; } if(val > alpha) { alpha = val; } } return alpha;}
阅读全文
0 0
- 计算机博弈-最大最小搜索,Alpha-Beta搜索
- 博弈算法之alpha-beta搜索
- 博弈程序Alpha-Beta搜索算法
- alpha-beta剪枝搜索
- Alpha-Beta搜索
- Alpha-Beta搜索
- Alpha-Beta搜索
- [算法] Alpha-Beta搜索
- Alpha-Beta搜索
- Alpha-Beta搜索
- Alpha-Beta搜索
- 博弈之最大-最小搜索算法
- Alpha-Beta搜索 + 启发式评价
- Alpha-Beta搜索 | 搜索算法 | 解读技术
- 极小极大搜索方法、负值最大算法和Alpha-Beta搜索方法
- 极小极大搜索方法、负值最大算法和Alpha-Beta搜索方法
- 极小极大搜索方法、负值最大算法和Alpha-Beta搜索方法
- 极小极大搜索方法、负值最大算法和Alpha-Beta搜索方法
- 常用英语词汇
- react-navigation使用技巧
- Android studio在Refresh gradle project卡死,附解决办法
- 字符串是否整数判断 、是否小数判断
- 关于axios
- 计算机博弈-最大最小搜索,Alpha-Beta搜索
- 反向传播
- React Native导航器之react-navigation使用
- 数塔
- springWebsocket
- 链表的归并排序
- 用异或运算实现两个数字的交换(装x)
- 感知机/Pytorch—笔记
- JS中的系统对象