Algorithm 状态转移系统的互模拟
我有一个带标签的过渡系统(下图中左边的那个) 从图中可以看出,这两个过渡系统是“等效的” 所以我想把左边的转换成右边的。我知道这被称为互模拟收缩(分区细化),我发现了一些解释算法是什么样的(其中还包括一些Haskell代码),但我真的不知道怎么做 我正在尝试使用JavaScript中的算法 我有一个节点数组S和一个边数组RAlgorithm 状态转移系统的互模拟,algorithm,graph,partitioning,state-machine,automata,Algorithm,Graph,Partitioning,State Machine,Automata,我有一个带标签的过渡系统(下图中左边的那个) 从图中可以看出,这两个过渡系统是“等效的” 所以我想把左边的转换成右边的。我知道这被称为互模拟收缩(分区细化),我发现了一些解释算法是什么样的(其中还包括一些Haskell代码),但我真的不知道怎么做 我正在尝试使用JavaScript中的算法 我有一个节点数组S和一个边数组R N = [ { id: 'n1', propositions: 'p' }, { id: 'n2', propositions: 'p' }, { id: 'n
N = [
{ id: 'n1', propositions: 'p' },
{ id: 'n2', propositions: 'p' },
{ id: 'n3', propositions: 'q' },
{ id: 'n4', propositions: 'q' },
]
R = [
{ source: 'n1', target: 'n2', label: 'pi_1' },
{ source: 'n2', target: 'n3', label: 'pi_2' },
{ source: 'n1', target: 'n4', label: 'pi_2' },
}
在算法中,它说我应该首先创建一个具有所有相同赋值的分区,因此初始分区有两个子块:
initial_partition = {
'p': ['n1', 'n2'],
'q': ['n3', 'n4']
}
现在我需要根据它们的关系将每个块划分为子块
但是,我如何做到这一点,以及如何以左边的节点结束(即何时删除一些节点)
我发现了这个和这个,但这并不能帮助我完全理解它。你明白了吗?