minimax相关内容

Minimax 为一个白痴解释

我已经浪费了我一整天的时间试图使用极小极大算法来制作无与伦比的 tictactoe AI.一路上我错过了一些东西(脑残). 我不是在这里寻找代码,只是更好地说明我哪里出错了. 这是我当前的代码(由于某种原因,minimax 方法总是返回 0): from copy import deepcopy类 Square(对象):def __init__(self, player=None): ..
发布时间:2021-09-07 19:26:38 Python

如何为 nim 游戏 python 编写极小极大算法?

我尝试在 python 中编写一个极小极大算法.但它是如此令人困惑.我是递归函数的新手.我的思维结构在某处有一些错误,但我无法解决.我的极小极大树返回 '-100' 必须是 100 才能获得正确答案.如果有什么遗漏或不清楚,请告诉我.谢谢 def startposition():返回 2, 'max'定义终端状态(状态):如果状态 == (0, 'min') 或状态 == (0, 'max'): ..
发布时间:2021-07-05 19:29:21 Python

缓存可以用于alpha-beta搜索算法吗?

我正在研究minimax井字游戏算法.我使它工作正常,将树中的每个状态都缓存了. 然后我实施了alpha-beta修剪,这似乎影响了游戏.我认为问题在于,如果修剪了任何后代(子代,孙代等),则无法“信任"节点.这是真的吗? 就目前而言,我只是在缓存状态,如果它们没有修剪后代.此图像显示了我的观点(不是井字游戏).最大的玩家是向上的三角形,该三角形应选择左侧的移动.但是,如果在alpha ..

如何实现连接4的转置表?

我正在用python创建connect 4 AI,为此我使用了带有迭代加深和alpha beta修剪的minimax.对于更大的深度,它仍然很慢,因此我想实现一个转置表.在阅读了它之后,我认为我有了大致的想法,但是我还没有完全能够使它起作用.这是我的代码的一部分:( minimax的最大化部分): if(isMaximizing):maxEval = -99999999999bestMove ..

二进制搜索在这种情况下不起作用?

https://leetcode.com/problems/猜测数字更高或更低的ii/#/说明. 我们正在玩猜猜游戏.游戏如下: 我选择一个从1到n的数字.你得猜猜我选了哪个号码. 每次您猜错了,我都会告诉您我选的号码是否更高或更低. 但是,当您猜出某个特定的x时,如果您猜错了,您支付$ x.当您猜到我选的号码时,您就赢了游戏. 给定一个特定的n≥1,请找出您至少需要 ..
发布时间:2021-04-02 20:41:54 其他开发

TicTacToe和Minimax

我是一位年轻的程序员,正在学习python并努力实现AI(使用minimax)来玩TicTacToe.我开始在线观看教程,但是该教程使用的是JavaScript,因此无法解决我的问题.我也看过这个问题( ticticactoe的Python minimax ),但是它没有任何答案,实施方式与我的有很大不同. 编辑:您将在下面找到的代码是答案之一(@water_ghosts)所建议的编辑. ..
发布时间:2020-11-16 01:42:08 Python

尝试使用延续传递样式以通过minimax算法避免堆栈溢出

我的目标摘要:弄清楚如何使用连续传递样式来避免使用算法时的堆栈溢出,我认为这种算法无法进行尾递归.或者,找到一种使函数尾部递归的方法. 详细信息: 我是F#(通常是函数式编程)的新手,我正尝试通过alpha-beta修剪实现minimax算法.这是一种算法,用于确定两人游戏的最佳移动方式.可以在以下位置找到该算法的伪代码: https://en.wikipedia. org/wiki/Alp ..

带有TicTacToe的Minimax算法无法正常工作

我已经在此论坛上的一个类似问题中发帖了,但是由于旧帖子过长了,并且我重写了算法,因此我开始撰写新帖子. 可以在此处. 所以我只是想为我的TicTacToe游戏实现一个minimax算法,除了事实证明这非常困难,即使经过数天的尝试发现错误,我也找不到它.您可以在下面找到我的代码.首先,我有一些定义,typedef和声明: typedef signed char s8; typedef u ..
发布时间:2020-09-07 19:18:45 AI人工智能

使用minimax搜索信息不完善的纸牌游戏

我想使用minimax搜索(带有alpha-beta修剪),或者更确切地说是negamax搜索,以使计算机程序玩纸牌游戏. 纸牌游戏实际上由4个玩家组成.因此,为了能够使用minimax等,我将游戏简化为“我"与“其他".每次“移动"之后,您都可以从游戏本身客观地读取当前状态的评估.当所有4位玩家都放置了卡后,最高的玩家将全部获胜-且卡的值也将计算在内. 由于您不知道其他3个玩家之间的 ..
发布时间:2020-09-07 19:05:58 AI人工智能

游戏AI在井字游戏中的一面功能强大,而另一方面却变得愚蠢

我正在尝试使用PyGame和MiniMax算法在Python中制作井字游戏.当获得第一次机会(扮演"X")时,AI的表现确实很好,但是当没有机会(扮演"O")时,AI变得愚蠢到足以帮助使用户获胜.我想我知道问题出在哪里,但是更改它会使整个程序陷入混乱,并且无法按照给定的文档字符串进行操作. 我制作了两个python文件-一个用于GUI(runner.py),另一个用于游戏和AI的逻辑(ticta ..

Haskell递归极小极大树

我正在尝试使用minimax算法在Haskell中编写一个Tic Tac Toe程序.我构造了自己的"Rose a"数据类型,如下所示: data Rose a = a :> [Rose a] 这是我要“存储"我的minimax树的数据类型.我了解minimax算法的工作原理,但似乎无法在递归函数中实现它. minimax :: Player -> Rose Board -> Ro ..
发布时间:2020-08-22 20:13:38 其他开发

Java中用于Minimax算法的树表示

我想在Java中实现Minimax算法. 我找不到很好的树表示形式.有没有现成的,或者我应该自己做? 顺便说一句,这是针对吃豆子游戏的 谢谢 解决方案 您不需要一个. 经常用树来说明minimax算法. 但是,该树表示算法选择最佳移动所采取的步骤.它不是算法所拥有的数据结构. 相反,您将使用 iteration 和递归.在树的每个内部节点上,您将遍历子级,并对每个子 ..
发布时间:2020-07-02 05:03:09 Java开发

在F#元组中使用CustomComparison和CustomEquality实现自定义比较

我在这里要问一个特定的话题-我确实在网络上找不到关于此的信息. 我正在实现F#版本的Minimax算法.我现在遇到的问题是我想比较我的树的叶子(下面的数据结构).在搜索VS给我的错误时,我发现了这样的东西: 我曾经拥有的树类型: type TreeOfPosition = | LeafP of Position | BranchP of Position * Tre ..
发布时间:2020-06-26 12:39:41 其他开发

二十一点minimax算法

我正在实现一个带有极大极小树的二十一点游戏,该树将计算概率并根据该概率自动玩游戏。 假设我们玩一副甲板,第一副游戏庄家需要:' 5 ',而玩家需要' 5 7 ',因此玩家的总得分是12。 在这种情况下,我首先要检查玩家的立场决定的所有可能概率。 如果玩家站立: 我的剩余牌面像这样: 牌组的结构(K,V)K:卡号,V:卡数 {1:4, 2、4、3、4、4:4、5:2 ..
发布时间:2020-06-03 21:32:29 Java开发

将Minimax转换为Negamax(python)

我正在制作Othello播放器,并实现了带有alpha-beta修剪功能的minimax算法。然后,我对在线上的最佳算法进行了大量研究,并不断了解它们都使用的“ negamax”算法。似乎大多数人认为negamax比minimax快(我认为是因为它不能在min和max player之间切换?),所以我想将minimax算法转换为negamax,如果不太困难的话。 我想知道人们是否对使用neg ..

Minimax算法说明

我正在寻找Minimax算法的伪代码: 函数Minimax-Decision(state)返回一个操作 ;输入:状态(当前游戏状态) ;'E'表示元素,'a'是动作 返回使Min-Value(Result(a,状态)) 如果终端测试(状态)然后返回效用(状态) v ..
发布时间:2020-06-03 20:50:44 其他开发