Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 状态转移系统的互模拟_Algorithm_Graph_Partitioning_State Machine_Automata - Fatal编程技术网

Algorithm 状态转移系统的互模拟

Algorithm 状态转移系统的互模拟,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

我有一个带标签的过渡系统(下图中左边的那个)

从图中可以看出,这两个过渡系统是“等效的”

所以我想把左边的转换成右边的。我知道这被称为互模拟收缩(分区细化),我发现了一些解释算法是什么样的(其中还包括一些Haskell代码),但我真的不知道怎么做

我正在尝试使用JavaScript中的算法

我有一个节点数组S和一个边数组R

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']
}
现在我需要根据它们的关系将每个块划分为子块

但是,我如何做到这一点,以及如何以左边的节点结束(即何时删除一些节点)


我发现了这个和这个,但这并不能帮助我完全理解它。

你明白了吗?