Neural network 一个智能游戏机器人的编程

Neural network 一个智能游戏机器人的编程,neural-network,deep-learning,artificial-intelligence,minimax,behavior-tree,Neural Network,Deep Learning,Artificial Intelligence,Minimax,Behavior Tree,我正在参加一个编程比赛,目标是编写一个可以玩特定游戏的机器人。 游戏的目标是赚取一定数量的积分。你可以控制多艘飞艇,四处移动,捕捉岛屿,驾驶携带宝藏的无人驾驶飞机。你和一个对手比赛,回合同时进行,并且有时间限制。你可以一次移动多艘飞船和无人机。您可以用Python、Java或C#编写bot。 确切的细节并不重要,只是每艘飞船每转大约有15个选项(移动和射击),总体而言,每转大约有10000个不同的选项(飞艇移动和射击的不同配置) 到目前为止,我很天真地参加了这场比赛,并没有做任何特别聪明的事情(

我正在参加一个编程比赛,目标是编写一个可以玩特定游戏的机器人。 游戏的目标是赚取一定数量的积分。你可以控制多艘飞艇,四处移动,捕捉岛屿,驾驶携带宝藏的无人驾驶飞机。你和一个对手比赛,回合同时进行,并且有时间限制。你可以一次移动多艘飞船和无人机。您可以用Python、Java或C#编写bot。 确切的细节并不重要,只是每艘飞船每转大约有15个选项(移动和射击),总体而言,每转大约有10000个不同的选项(飞艇移动和射击的不同配置) 到目前为止,我很天真地参加了这场比赛,并没有做任何特别聪明的事情(例如,如果靠近敌人,射击)。我读过关于minimax算法的书,我真的很想在这里应用它(或者类似的东西),你可以假设我可以说出一个状态的值。我的问题是每个回合都有大量的选项,这会产生一个巨大的分支因子,让我无法深入

问题1:有没有更好的、适用的方法来解决这个问题?也许是深度学习或类似的东西? 问题2:有没有办法最小化分支因子?我读过关于alpha-beta和类似算法的文章,但似乎没有什么能起到作用


任何帮助都将不胜感激

对于这类问题,minimax算法似乎是很自然的。首先,游戏将以抽象的方式建模,然后使用解算器找到从当前状态到游戏状态的路径,从而最大化点数。与minimax类似的方法是GOAP,它是在1970年为机器人Shakey实现的,名为STRIPS。但是,GOAP和minimax有两个问题:第一,需要一个抽象的游戏模型(可能是PDDL或游戏描述语言),第二,状态空间太大

一个更好的替代计划的方法是使用行为树。这是一个描述代理行为的静态程序。不需要解算器,也不需要完整的游戏建模。相反,自下而上的方法与多个编辑-编译-运行迭代一起使用,以找到最佳的行为树(测试驱动开发)。为了实现这种编程方法,必须首先实现所谓的“反应式计划器”,这是实时计划器的另一个词。这是一个将行为树映射到甘特图上的模块,用于在特定时刻执行操作。作为介绍,unity3d引擎是一个很好的起点,它有一个现成的完整的行为树实现。

(1)
您可以假设我可以说出状态的值
-这我非常怀疑(2)
是否有更好的、适用于此问题的方法?
比什么更好?您只引入了一条静态规则。因此,当然(3)
…深入学习
这将花费您数月/年的时间(4)
有没有办法将分支因子降至最低?
-当然,移动排序和良好的评估函数允许在alpha beta中进行有效的修剪。(5) 这是一个非常困难和复杂的问题。也许先试试简单一点。