我应该如何在数据库中存储稀疏决策树(移动列表)?

Tia*_*HUo 8 database storage artificial-intelligence decision-tree data-structures

我一直在考虑为棋盘游戏制作AI很长一段时间,最近我开始收集资源和算法.游戏是非随机的,大多数时候,玩家有3次移动,有时候,有20次移动.我想存储关键动作或模糊动作,以便AI从错误中学习并且下次不会犯同样的错误.无需存储肯定会赢或输的动作.所以我实际上有一个稀疏的决策树用于游戏的开始.我想知道如何将这个决策树存储在数据库中?数据库不需要是SQL,我不知道哪个数据库适合这个特定问题.

编辑:请不要告诉我将决策树解析为内存,只要想象游戏像国际象棋一样复杂.

Kes*_*ria -1

我假设您的问题是询问如何将决策树转换为串行格式,该格式可以写入某个位置,然后用于重建树。

尝试使用树的前序遍历,使用 toString() 函数(或其等效函数)将决策树每个节点处存储的数据转换为文本描述符。所谓前序遍历,是指实现一种算法,首先在节点上执行 toString() 操作,并将输出写入数据库或文件,然后以指定的顺序在其子节点上递归地执行相同的操作。因为您正在处理稀疏树,所以您的 toString() 操作还应该包括有关子树是否存在的信息。

重建树很简单 - 第一个存储的值是根节点,第二个是左子树的根成员,依此类推。为每个节点存储的串行数据应提供有关下一个输入节点应属于哪个子树的信息。