16 个版本
0.1.15 | 2024年7月7日 |
---|---|
0.1.14 | 2023年6月4日 |
0.1.12 | 2023年5月31日 |
0.1.3 | 2023年4月27日 |
#303 in 算法
81 个月下载量
用于 autour_process
205KB
2K SLoC
为 graph_process_manager_core 实现的通用记录器
4 种类型的记录器,用于记录由 graph_process_manager_core 实现的工具的过程
- 一个 GraphViz 记录器,用于生成过程的图形表示
- 一个 nodesPrint 记录器,用于在文件中打印在过程中构建的中间对象
- 一个 stepsTrace 记录器,用于在文件中打印过程中的跟踪信息,即步骤序列
- 一个 NFAIT 记录器,用于构建非确定有限自动机(带有立即转移)
在测试模块中给出了简单的示例用法。我们将在以下内容中简要描述。
斐波那契数列
在这个例子中,我们探索斐波那契数列。为此示例设置最大深度为 10。
将简单的 GraphViz 记录器应用于此示例过程,可以得到以下表示
可以从这次探索构建以下自动机
在此处使用 nodesPrint 记录器将斐波那契数列中的数字打印到文本文件中,并使用 stepsTrace 记录器打印 'next' 步骤的序列(这里是一个简单的应用,但对于其他过程可能有各种类型的步骤等)。
以下是以两个记录器生成的示例玩具过程文件表示:
二叉树
在这个例子中,我们通过在右侧附加字母 'A' 和 'B' 来递增地构建由 'O' 组成的单词。为此探索,我们设置了最大深度为 4,最大节点(单词)数为 8。
根据我们使用的启发式方法,我们不会达到相同的单词集。
使用 BFS(广度优先搜索)我们得到以下
使用 DFS(深度优先搜索)我们得到以下
使用HCS(高覆盖搜索,优先选择具有最少公共前缀的分支)我们得到以下结果
探索可以进一步细化,使用更详细的过滤条件和优先级来选择下一步行动。也可以对下一步行动进行随机化。
依赖项
~2.5MB
~47K SLoC