我知道问题的标题有点模糊,但请耐心听我说,这里是问题所在:每次我为一个游戏编写游戏或机器人时,我都会使用状态机、决策树或行为树。这些技术的问题在于,它们需要我预先编程角色/机器人将要遇到的所有条件,因此每当用户做出我没有设置条件的出乎意料的事情时,他们就会失败。
现在我正在开发一个星际争霸机器人(bwapi),使用状态机,我正在考虑为每个单位使用一个单独的状态机,并由一个主控指挥士兵做什么,但这仍然需要我预先编程所有内容,而对于像星际争霸这样的游戏来说,这是不可能的。我能想到的唯一能让它学习的方法是使用遗传编程来进化这些状态机。
假设地图上有一座桥,如果 20 个海军陆战队员试图同时通过这座桥,就会发生严重的交通拥堵。我可以使用什么技术使其能够从错误中学习?这样我就不必预先编程一个“一个接一个地过桥”的条件。
编辑:仅仅因为一个问题中包含“星际争霸”或“机器人”这两个词,并不意味着它自动成为非 SO 问题,这个问题也适用于机器人技术。
回答:
要有所进展,你首先需要定义你的机器人适应度的经验测量标准。它必须比“严重交通拥堵”更清晰。
你如何衡量它?
什么是获胜?是否有数值指标表明你的机器人正在“获胜”?首先解决这个问题,然后当你有一种真实的方法来评估一个机器人与任何数量的其他机器人时,将其插入到 GP 算法中作为适应度函数。