我在人工智能领域是新手,正在尝试使用极小极大算法实现井字游戏,但在开始之前,我想检查一下我对实现的理解:
首先,在每一步移动时,根据当前网格状态,我会创建一个决策树。决策树创建后,我将应用极小极大算法对树进行标记,然后根据这些标记选择最佳的下一步移动。接着,我会从头开始为所选的移动重新创建决策树,再次应用极小极大算法并选择最佳移动。以下是我设计的伪代码:
move(current state){ tree=make_decision-tree(current state); maxminalg(tree); choose the best move according to the returned max or min from the tree foreach (choice in choosen state) move(choice) }make_decision-tree(current state){ ....}maxminAlg(decisiontree t){ return max or min}
我的问题是,我设计的这个过程是否正确(如果正确的话,我就可以开始编码了),如果不正确,您有什么建议吗?
回答:
极小极大算法很快就会变得非常复杂。
这篇文章对这个话题有很好的解释:简单的井字游戏AI