![]() |
1
8
问题是,成本函数会受到你定义的状态的很大影响。你在状态中编码的信息越多,你的人工智能就越平衡,但它执行起来就越困难,因为它必须指数级地搜索你包含的每一个额外的状态变量(在穷尽搜索中) 如果你提供了一个状态和代价函数的定义,你的问题就会转化成一个AI中的一般问题,可以用你选择的任何算法来解决。
第三条( )SA和我上面列出的技术是一般的人工智能技术,并不是真正专门用于游戏的人工智能。一般来说,算法越专业,它就越有机会表现得更好。没有免费的午餐 2 . 3的另一个扩展是所谓的并行回火,它通过帮助SA避免局部最优来显著提高SA的性能。关于平行回火的一些原著相当陈旧 3 4 . 不管你最终选择什么方法,像我前面说的那样,把问题分解成状态和代价函数都是非常重要的。根据经验,我会从20-50个状态变量开始,因为状态搜索空间是这些变量数量的指数。 |
![]() |
2
11
如果你阅读 Russell and Norvig ,你会发现各种各样的算法,更新到今天的最新水平。这就是说,我很惊讶有多少不同的问题类可以成功地接近贝叶斯算法。
虽然在某些方面可能是个疯子, Stephen Wolfram 已经证明了在 very simple rules . 他勇敢地从 Game of Life 量子物理学和整个宇宙。 同样,许多关于小型机器人的研究都集中在 emergent behavior swarm intelligence . 虽然经典 military strategy 这种方法可能比Clojure的STM更适合Erlang或Scala的基于actor的并发模型:我认为自组织和actor可以非常好地结合在一起。尽管如此,我仍然可以设想在每个回合中运行一个单位列表,让每个单位评估一小部分非常简单的规则,以确定其下一步行动。我很想知道你是否尝试过这种方法,以及它是如何进行的! 编辑 genetic 或进化规划;i、 e.让你的虚拟玩具士兵在你睡觉的时候互相发动战争,让他们编码他们的策略,并混合、匹配和变异他们的策略代码;让裁判程序选出更成功的勇士。 我读过一些关于这些技术取得的惊人成功的文章,这些设备的运行方式是我们从未想到过的。我听说,在这些原则上工作的人工智能必须被有意地简化,以避免挫败人类的对手。 |
![]() |
3
8
有很多书和网上文章都是关于这个的。我强烈推荐 AI游戏编程智慧 系列。特别是第一卷第六节 |
![]() |
4
6
这是一个巨大的问题,其他的答案都指出了值得研究的惊人资源。 我在过去处理过这个问题,发现简单的行为表现复杂/紧急的行为方法对于人类设计来说有点太难了,除非从基因/进化的角度来处理。 我最终使用了人工智能的抽象层,类似于现实生活中军队的工作方式。部队将与附近的部队同时分组成小队,小队与附近的小队一起组成一个小营。在这里可以使用更多的层次(一个地区的集团营等),但最终在最高层是高级战略人工智能。
向单个单位发出的命令的一个例子是“到这里来”和“向这个目标射击”。向更高级别发出的更高级别命令将是“保护此位置”,该级别将处理该位置并向较低级别发出适当的命令。 最高级别的人工智能大师负责董事会的战略决策,比如“我们需要更多的单位”,或者“我们应该朝着这个位置前进”。 军队的类比在这里起作用;指挥官、中尉和指挥系统。 |
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 6 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 10 月前 |
![]() |
Paul C · 在维基百科上,将二叉搜索树转换为排序链表的算法是否存在错误? 11 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 11 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 11 月前 |