- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在设计一个实时战略 war 游戏,其中 AI 将负责在大型六角形 map 上控制大量单位(可能超过 1000 个)。
一个单位有许多行动点数,可以用于移动、攻击敌方单位或各种特殊行动(例如 build 新单位)。例如,一辆拥有 5 个行动点的坦克可以花费 3 点用于移动,然后 2 点用于向射程内的敌人开火。不同的单位对不同的行动等有不同的成本。
一些补充说明:
对于能够在效率和合理智能行为之间取得适当平衡的特定算法/方法,您有何建议?
最佳答案
如果您阅读 Russell and Norvig ,您会发现适用于各种用途的大量算法,这些算法已更新到几乎当今最先进的水平。尽管如此,令我惊讶的是,贝叶斯算法可以成功解决许多不同的问题类别。
但是,对于您的情况,我认为每个单元都拥有自己的 Petri 网或推理引擎并不是一个好主意……可用的 CPU、内存和时间有限。因此,一种不同的方法:
虽然在某些方面可能是个疯子,Stephen Wolfram已经表明可以在 very simple rules 的基础上对非常复杂的行为进行编程.他勇敢地从 Game of Life 中推断出量子物理学和整个宇宙。
同样,很多关于小型机器人的研究都集中在emergent behavior或 swarm intelligence .而经典military strategy和实践都强烈地基于等级制度,我认为一支由完全无私、无所畏惧的战士组成的军队(就像在你的计算机上行军一样)如果作为自组织集群运行,可能会非常有效。
与 Clojure 的 STM 相比,这种方法可能更适合 Erlang 或 Scala 的基于角色的并发模型:我认为自组织和角色会非常好地结合在一起。尽管如此,我仍然可以设想在每个回合中运行一个单元列表,让每个单元只评估一小部分非常简单的规则来确定它的下一步行动。我很想知道您是否尝试过这种方法,结果如何!
编辑
在我的脑海中还有一些其他的想法,但在我写作时又溜走了:我认为如果将这种方法与 genetic 结合使用,您可以从中获得显着的结果。或进化编程;即让你的虚拟玩具士兵在你 sleep 时互相开战,让他们编码他们的策略并为这些策略混合、匹配和变异他们的代码;并让裁判程序选择更成功的勇士。
我读到过一些使用这些技术取得惊人成功的文章,其中的单元以我们从未想过的方式运行。我听说,为了不挫败人类对手,AI 必须有意降低这些原则的工作效率。
关于实时战略兵棋人工智能算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3275174/
模板方法模式和策略模式做的事情大致相同。我了解它们之间的基本区别(模板方法是基于继承的,策略是基于组合的),但是对于何时选择一个而不是另一个有什么体面的指导方针?似乎他们做的事情基本相同。 最佳答案
我确实尝试过了解 Stratego/XT 的第一步。我在谷歌上搜索了很多,我发现的所有网络资源在开始时似乎都取得了足够大的飞跃,以至于我无法建立联系。让我解释一下。 我是这样理解抽象语法树的: Min
我已经能够通过 GitHub 项目使用 node.js 和 passport.js 连接到 Facebook:https://github.com/jaredhanson/passport-faceb
我是一名优秀的程序员,十分优秀!