Minimax/ Alpha beta 剪枝移动顺序?

2024-03-13

我读过(例如,http://radagast.se/othello/Help/order.html http://radagast.se/othello/Help/order.html)首先搜索每个级别的最佳动作(可以使用迭代加深找到)使得搜索速度更快。

如何在不使用太多额外内存和 CPU 时间的情况下搜索可能的最佳走法?


基本上有两种策略:

  1. 静态移动排序
  2. 动态移动排序

动态移动排序使用以前搜索中的信息,因为您再次调换到同一位置,或者您已经在之前不太彻底的搜索中到达了该位置。就是你提到的迭代加深的思想,不断增加搜索距离。

动态移动排序非常强大。有很多方法可以做到这一点,但最常见的两种是换位表和杀手招:

  • 换位表缓存有关先前搜索的信息,尤其是找到的最佳着法。当再次到达相同位置时,您可以立即从上次搜索中搜索最佳着法。很多时候,经过更深入的搜索,它被确认为最佳举措。

  • 杀手招式使用类似的方法,并且具有额外的优势,即他们可以使用来自相似但不相同位置的知识。然而,用于移动排序的杀手移动的质量通常比换位表中的移动要差。这就是为什么它们通常在换位动作后被搜索。

但是如果之前的搜索没有任何信息怎么办?通常,您拥有一些可用于静态移动排序的特定领域知识。例如,在国际象棋中有许多经验法则。一是占领棋比非占领棋更有可能成为最佳棋步。有更复杂的策略(例如,静态重新捕获分析),但您必须小心,因为更复杂的计算也会减慢搜索速度。

通过结合静态和动态走法顺序,国际象棋引擎通常可以猜测该位置的最佳走法,命中率超过 90%。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Minimax/ Alpha beta 剪枝移动顺序? 的相关文章

  • 在神经网络反向传播算法中循环训练数据

    在一个训练周期中我使用训练数据样本多少次 假设我有 60 个训练数据 我遍历第一行并进行前向传递 并使用后向传递的结果调整权重 使用 sigmoidal 函数如下 Forward pass Si sum of Wi Uj Ui f Si 1
  • 希望编写电气工程相关的开放软件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如果这个问题有点宽泛 我深表歉意 希望您的回答能帮助我将范围缩小到更有意义的问题 我在软件工程方面经验丰富 最近与一位朋友进行了交谈
  • 使用极小极大搜索进行信息不完善的纸牌游戏

    我想使用极小极大搜索 带有 alpha beta 修剪 或者更确切地说负极大搜索 让计算机程序玩纸牌游戏 纸牌游戏实际上由 4 名玩家组成 因此 为了能够使用极小极大等 我将游戏简化为 我 对抗 其他人 每次 移动 之后 你都可以从游戏本身
  • 在文本中查找相关单词的算法

    我想要一个单词 例如 Apple 并处理一个文本 或者可能更多 我想提出相关术语 例如 处理 Apple 的文档并发现 iPod iPhone Mac 是与 苹果 相关的术语 关于如何解决这个问题有什么想法吗 作为起点 您的问题涉及文本挖掘
  • 井字游戏的遗传算法

    因此 我被分配的问题是使用遗传算法编写 5x5x5 井字棋玩家 我的方法是从 3x3 开始 让它发挥作用 然后扩展到 5x5 然后扩展到 5x5x5 它的工作方式是这样的 模拟一大堆游戏 并在每个游戏的每个回合中 在相应的表 作为 C st
  • 为什么需要目标网络?

    我想了解为什么 DQN 中需要目标网络 我正在阅读有关 通过深度强化学习实现人类水平控制 的论文 我了解 Q learning Q learning 是一种基于价值的强化学习算法 它学习状态 动作之间的 最佳 概率分布 从而在一系列时间步长
  • 爬山算法简单例子

    我对爬山算法有点困惑 我想 运行 该算法 直到我找到该树中的第一个解决方案 a 是初始状态 h 和 k 是最终状态 并且它表示状态附近的数字是启发值 这是树 我的问题 我正在尝试在树上爬山 所以好吧 我们开始 a gt f gt g 然后完
  • 搜索自然语言句子结构

    存储和搜索自然语言句子结构树数据库的最佳方式是什么 Using OpenNLP 的 http incubator apache org opennlp 英语树库解析器 我可以对任意句子进行相当可靠的句子结构解析 我想做的是创建一个工具 可以
  • 如何识别给定文本中的想法和概念

    我目前正在开发一个项目 如果能够检测文本正文中何时提到某个主题 想法 这将非常有用 例如 如果文本包含 如果你告诉我更多关于琼斯先生的信息 也许会有帮助 如果我能描述一下他的外貌 或者最好是一张照片 也会很有用吗 如果能够检测到此人索要琼斯
  • 偏差在神经网络中的作用是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我知道梯度下降和反向传播算法 我不明白的是 什么时候使用偏差很重要以及如何使用它 例如 当映射AND函数 当我使用两个输入和一个输出时 它
  • 创建游戏插件时出现 SerpentAI 错误

    我最近安装了 SerpentAI 但在创建游戏插件时遇到了问题 运行命令时 serpent generate game 我提供以下答案 RaftWars 网页浏览器 What is the name of the game Titleize
  • 机器学习、人工智能和软计算

    这三个密切相关的领域有什么区别 是否存在一个特定的整体 它们都是其中的一部分 除了 CS 人工智能是试图在计算机中捕获人类智能的各个方面的智力项目 另一个项目也称为人工智能 旨在使用受人类启发的算法来解决传统上棘手的问题 人工智能可以说涵盖
  • 8 拼图有多少种可能的状态?

    经典的 8 块拼图属于滑块家族 我的书 人工智能 一种现代方法 作者 斯图尔特 拉塞尔 Stuart Russell 和彼得 诺维格 Peter Norwig 说 8 个难题9 2可能的状态 但为什么 2 你怎么得到这个 9 是拼图的可能配
  • C++ 遗传算法的最佳数据结构?

    我需要实现一个针对我的问题 大学项目 定制的遗传算法 第一个版本将其编码为短矩阵 每条染色体的位数x人口大小 这是一个糟糕的设计 因为我声明了一个短路 但仅使用 0 和 1 值 但这只是一个原型 并且按预期工作 现在是时候开发一个新的了 改
  • MinMax 树 - 当 Min 可以两步获胜时

    因此 我一直在尝试使用最小最大树来在两人棋盘游戏中创建一个简单的计算机玩家 我了解该算法的基础知识 但有一种情况让我的火鸡大脑无法理解 当 MIN 可以通过两步获胜时会发生什么 例如 假设在 connect4 tic tac toe 类型的
  • Prolog 的良好初学者材料 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我自己的 Python OCR 程序

    我还是一个初学者 但我想写一个字符识别程序 这个程序还没有准备好 而且我编辑了很多 所以评论可能不完全一致 我将使用 8 个连通性来标记连通分量 from PIL import Image import numpy as np im Ima
  • OCR 扑克牌 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我决定做一个有趣的项目 我想将扑克牌的图像作为输入并返回其等级和花色 我认为我只需要查看左上角 因为那里包含了所有信息 它应该是稳健的
  • 使用 MinMax 和 Alpha-Beta 剪枝找到最佳移动

    我正在为游戏开发 AI 我想使用MinMax算法与Alpha Beta 修剪 我对它的工作原理有一个粗略的了解 但我仍然无法从头开始编写代码 所以我花了两天的时间在网上寻找某种伪代码 我的问题是 我在网上找到的每个伪代码似乎都是基于寻找最佳
  • Tic-Tac-Toe AI:如何制作树?

    在制作井字游戏机器人时 我在尝试理解 树 时遇到了巨大的障碍 我理解这个概念 但我不知道如何实现它们 有人可以向我展示一个如何为这种情况生成树的示例吗 或者关于生成树的好教程 我想最困难的部分是生成部分树 我知道如何实现生成整棵树 但不知道

随机推荐