【发布时间】:2011-07-28 09:26:27
【问题描述】:
DFA 必须具有以下四个属性:
DFA 有 N 个节点
每个节点有 2 个传出转换。
每个节点都可以从其他节点访问。
从所有可能性中以完全一致的随机性选择 DFA
这是我目前所拥有的:
- 从 N 个节点的集合开始。
- 选择一个尚未选择的节点。
- 将其输出连接到其他 2 个随机选择的节点
- 将一个转换标记为 1,将另一个转换标记为 0。
- 转到 2,除非已选择所有节点。
- 确定是否存在没有传入连接的节点。
- 如果是这样,从具有多个传入连接的节点窃取传入连接。
- 转到 6,除非没有没有传入连接的节点
但是,这个算法是不正确的。考虑图中节点 1 有两个连接到节点 2(反之亦然),而节点 3 有两个连接到节点 4(反之亦然)。是这样的:
1 2
3 4
在哪里, 我的意思是双向两个传出连接(所以总共有 4 个连接)。这似乎形成了 2 个派系,这意味着并非每个州都可以从其他州到达。
有人知道如何完成算法吗?或者,有人知道另一种算法吗?我似乎隐约记得可以使用二叉树来构造它,但我不确定。
【问题讨论】:
-
您确定要从每个节点访问所有节点吗?制作一个所有节点都可以从起始节点到达的节点要简单得多。
-
是的,我确定我需要从每个节点都可以访问所有节点。
-
随机构造的确定性有限自动机 (DFA)。 DFA 是确定性的。它是从具有 N 个节点的所有可能的 DFA 中随机选择的,具有完全均匀的分布。
-
也就是说,它是从所有DFA中随机选择的,具有我在问题中提到的四个属性。
-
你会说这真的是一个图形问题吗?由于下面有一两个图形解决方案,我只是对数学感到好奇。SE 会是一个更好的地方来询问这些是否没有解决。
标签: algorithm random finite-automata dfa state-machine