【发布时间】:2011-10-21 18:37:10
【问题描述】:
我一直在想为棋盘游戏做一个人工智能,最近我开始收集资源和算法。游戏是非随机的,大多数时候,一个玩家有 20 步。我想存储关键动作或模棱两可的动作,以便人工智能从错误中吸取教训,下次不会犯同样的错误。无需存储肯定会赢或输的动作。所以我实际上有一个用于游戏开始的稀疏决策树。 我想知道我应该如何将这个决策树存储在数据库中?数据库不需要是 SQL,我不知道哪个数据库适合这个特定的问题。
编辑:请不要告诉我将决策树解析到内存中,想象一下游戏就像国际象棋一样复杂。
【问题讨论】:
-
为什么是数据库?只需在运行时从文本文件加载它。您只会看到拥有数十万条目的数据库的好处。保持简单,不要打扰数据库。
-
为什么是数据库?因为这棵树太大而无法存储在内存中。我知道该游戏的已解决总是获胜分支非稀疏决策树为 200mbs,该游戏至少有 14 个以上的此类分支。
-
你听说过 Redis 吗?这是一个简单的键值存储,您可以使用它来实现您的树逻辑。在不知道您的决策树是如何设置的情况下,这可能是一个合适的解决方案。
-
@tjameson Redis 是一个选项,但正如你所说,它是一个 simple 键值存储,实际上我想要一个更适合游戏树的数据库.
-
@TiansHUo- 你可以做一些基本的查询。您可能感兴趣的是钥匙。这可以进行一些非常基本的键搜索,如果您组织键以使其遵循树状结构 (
top:next:next:next:next),它可能会非常快。除了严格的键值存储之外,它还具有其他功能。我不会将此作为解决方案提交,因为我不知道您的游戏是如何设置的。
标签: database data-structures artificial-intelligence storage decision-tree