Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Artificial intelligence 效用函数极小极大搜索_Artificial Intelligence_Minimax - Fatal编程技术网

Artificial intelligence 效用函数极小极大搜索

Artificial intelligence 效用函数极小极大搜索,artificial-intelligence,minimax,Artificial Intelligence,Minimax,嗨 我搞不懂如何用极大极小搜索来确定上的效用函数 解释它与任何游戏,你可以使用极大极小搜索 基本上我是问你如何确定效用函数 喝彩效用值只是玩家在游戏中达到某个特定状态时收到的任意值。例如,在Tic-tac-toe中,你的效用函数可以是1表示胜利,0表示平局,或者-1表示失败。 在此基础上运行minmax最多只能找到一组导致1(胜利)的操作 另一个例子是国际象棋(并不是说你可以在一盘国际象棋上运行minimax)。假设你的效用函数来自一个特定的数字,该数字基于你捕获或丢失的棋子的价值确定在特定状态

嗨 我搞不懂如何用极大极小搜索来确定上的效用函数 解释它与任何游戏,你可以使用极大极小搜索 基本上我是问你如何确定效用函数
喝彩

效用值只是玩家在游戏中达到某个特定状态时收到的任意值。例如,在Tic-tac-toe中,你的效用函数可以是1表示胜利,0表示平局,或者-1表示失败。 在此基础上运行minmax最多只能找到一组导致1(胜利)的操作


另一个例子是国际象棋(并不是说你可以在一盘国际象棋上运行minimax)。假设你的效用函数来自一个特定的数字,该数字基于你捕获或丢失的棋子的价值

确定在特定状态下移动的效用值与程序员的经验和他/她的游戏知识有关。
终端状态的效用值很容易确定。例如,在Tic tac toe中,玩家X的终端状态是当X以对角线、垂直或水平方向对齐时。创建这种状态的任何移动都是终端状态,您可以创建一个函数来检查该状态。如果是终端状态,则函数返回1或-1。 如果您的玩家代理是玩家X,在玩家X移动后,它确定玩家O将获胜,则函数返回-1。如果函数确定这是它自己的赢棋,则返回1。 如果所有单元格都被最后一次可能的移动占用,并且没有人获胜,则函数返回零

这只是在终端状态。评估中间状态是至关重要的,因为即使在3x3游戏中,也有很多组合要考虑。如果你包括对称移动,你有9个!Tic tac toe中的可能状态。对于这些中间情况,您需要提供一个评估函数,该函数返回每个状态的分数,因为它们与其他状态相关

假设我将终端状态值赋值为810、0和-810。每一步的得分为810/(#步数)。因此,如果我在6个动作中达到终点状态,分数将是810/6=135。在9个动作中,比分为90分。以这种方式构建的评估函数将有利于更快到达终端状态的移动。但是,它仍然计算为叶节点。不过,我们需要在到达叶节点之前进行求值,但这也可能是求值函数的一部分。 假设在下面的游戏中,玩家1是X,那么X接下来移动。以下是X的合法移动(行、列): (1) 0,0 (2) 0,2 (3) 2,0 (4) 2,1 (5) 2,2

||O|| |O | X | X| ||||

每次移动的效用值应该有利于最佳移动。 在这种情况下,最好的动作是(2)或(5)。因此,一个评估函数将分配一个效用值81,例如,每个效用值都是81。移动(4)对于X玩家来说是最糟糕的移动(也会保证你输给一个智能玩家),所以函数会给这个移动赋值-9。移动(1)和(3)虽然不理想,但不会使您失败,因此我们可能会指定一个1。
因此,当minimax评估这5个移动时,因为您的玩家X是max,所以选择(2)或(5)

如果我们专注于选项(2)或(5),那么游戏将在两步之后进入终端状态。因此,在现实中,评估函数应该比当前的合法移动早两步返回效用值。(此策略遵循深度限制搜索的路线,在该路线中,您的函数在特定深度进行计算,并在不到达叶节点或终端状态的情况下生成实用程序值)

现在我要回到我的第一句话。效用值将由程序员根据游戏知识编写的评估函数确定

希望我没有把你搞糊涂