gpt4 book ai didi

artificial-intelligence - 游戏中的软编码 AI

转载 作者:行者123 更新时间:2023-12-05 01:13:33 24 4
gpt4 key购买 nike

我正在开发一款游戏,其概念类似于 Risk 或 Monopoly(本质上是一种棋盘游戏,尽管我的要求可以推断)。因此,假设我想要计算机对手,我需要编写一个 AI。

现在,我的问题是我是否需要直接在程序中对 AI 进行编程(硬编码),或者我编写的程序是否存在某种方式可以从方向列表和行为规则中读取,软编码 人工智能。

我假设如果我要像之前描述的那样进行软编码,我将需要对 AI 可以使用的所有可能的操作进行编程。我还假设我不能告诉软模式 AI 做任何事情,除非经过编程(例如,一些取决于多种因素的决策行动)。与硬编码特定 AI 相比,软编码的彻底改革(优势/劣势)是什么?

最佳答案

一些 AI 技术非常占用 CPU,例如基于启发式的广度优先或深度优先搜索,适用于许多策略游戏。

这样的搜索需要您建立 API,以便检索当前“状态”(游戏状态的完整表示),以及从该状态(或任何状态)开始的所有可能移动/更改的列表),以及这些移动/更改中的每一个都会导致的新状态。

完成此操作后,任何算法都可以进行适当的 API 调用,以查看可以移动到哪些状态,以及可以从这些状态移动到哪些状态等。可以达到的状态将会增加您尝试向前看的 Action 越多,即使是 2 个 Action 对计算机来说也可能是一项可怕的任务。

由于这种困难,启发式分数用于评估遵循某些分支的可能有用性,因此搜索算法可能会立即丢弃当前状态下 90% 的第一个可能移动。

遵循这种获取状态、评估它们并查看从状态到后续状态的可能移动/变化的模式的 AI,您显然可以对 AI 进行软编码,但 AI 为启发式地对状态评分所做的工作可能是任何东西,你的软代码就像一门迷你语言。就个人而言,除非你想实现一种迷你语言,否则这是一种非常辛苦的做事方式。此外,您的软代码将需要某种解释,这可能会使它比代码慢两倍,或者慢 10 或 100 倍......并且任何指数级困难的技术都意味着性能非常非常重要。如果所选择的 AI 方法的难度不是指数级的,也不是简单的困难,可以使用软代码,但您仍然必须实现一种迷你语言。

您当然可以将 AI 实现为单独的程序,通过网络与您的游戏程序进行通信。这可能只是本地主机到本地主机,但当然不需要。其性能在某种程度上取决于网络延迟和带宽,但这可能是也可能不是重大问题。

您还可以将 AI 实现为可动态加载的库(即,您的游戏可能会查看某个文件夹,查看一堆 lib 文件并尝试在运行时加载它们(例如,对于 UNIX,使用 dlopen())。然后您可以删除随时添加新的 AI,而无需触及游戏本身。如果您的主要要求是拥有插件 AI 并在性能重要的地方保持性能,这可能是可行的方法。

关于artificial-intelligence - 游戏中的软编码 AI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18613319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com