Minimax 使用已经评估的树。我的缺陷在哪里?

发布于 2024-08-20 18:34:46 字数 328 浏览 5 评论 0原文

我刚刚开始尝试使用 minimax/negamax 算法,我想出了一个听起来对我来说不错的想法,但由于没有人使用它,这可能是一个有缺陷的逻辑。

我们为什么不这样做:

创建一个深度=x的三号棋,找出要采取的行动,然后等待我们的对手。在他完成他的动作之后,我们可以获取我们已经评估的动作的子树,并在使用旧节点的同时继续更深地构建它。我们可以使用已经评估的节点值,并用来自新的更深节点的新值对它们进行权衡。

尽管新值可能不如通常的方法那么精确,但我们可以更深入地了解并从中获利。

我为我的糟糕的书面和非结构化问题表示歉意,但我希望您能理解我的想法。

I just started trying to use the minimax/negamax algorithm and I came up with an idea that sounds good for me, but as nobody is using it it might be a flawed logic.

Why don't we do this:

Create a three with depth=x, figure out which move to make, and wait for our opponent. After he did his move we can just take the subtree of the moves we already evaluated and continue building it deeper while using the old nodes. We could use the already evaluated values of the nodes and weigh them with the new values from new deeper nodes.

Altough the new values might not be as exact as with the usual method we could get much deeper and profit from that.

I apologize for my and bad written and unstructured question, but I hope you get my idea.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

终遇你 2024-08-27 18:34:46

我认为您在这里缺少的是极小极大法的工作原理。 Minimax 枚举指定深度 D 的所有可能性,然后为 D 处的节点(游戏状态)分配分数,然后向上移动树,根据我是否是最大化返回每个深度的 MAX 或 MIN 节点播放器或最小化播放器。

您提出的自上而下的建议意味着您必须为较浅深度的节点分配分数,从而导致评估结果较差。

I think what you're missing here is how minimax works. Minimax enumerates all of the possibilities to a specified depth D, then assigns a score to the nodes (game states) at D, and moving back up the tree, returns the MAX or MIN node at each depth based on whether I'm the maximizing player or the minimizing player.

Your proposal of doing it top down would mean you have to assign a score to the nodes at more shallow depths, resulting in a poorer evaluation.

迟月 2024-08-27 18:34:46

这个想法正在被使用,但以不同的方式。评估分数保留在换位表中并重复使用,而不是保留搜索树(这会占用内存)。这可以在进行迭代深化时节省时间,因为许多职位都会缓存之前搜索的分数。因此,重用旧的搜索结果可以帮助进行一些中间搜索并加快移动排序,但仍然需要在引擎使用的任何终端搜索深度上评估叶节点。

The idea is being used, but in a different way. Instead of keeping the search tree around, which would be memory prohibitive, evaluation scores are kept in the transposition table and reused. This can save time when doing iterative deepening, since many positions will have cached scores from previous searches. So reusing old search results can help with some of the intermediate searches and speed up move ordering, but the leaf nodes will still need to be evaluated at whatever terminal search depth the engine is using.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文