从 Alloy 4.2 中的图形创建独立集
Creating an independent set from a graph in Alloy 4.2
我创建了一个测试图来尝试从中创建一个独立的集合。我知道独立集是一组不相连的顶点,但我不确定如何在 alloy 4.2 中完成此操作。这是我拥有的:
abstract sig Vertex {
e: set Vertex -- e is the edge relation
}
-- the test graph has vertices A, B, C, D, E, F
one sig A, B, C, D, E, F extends Vertex { }
pred independentSet[e: Vertex->Vertex, s: set Vertex] {
--code here?
}
pred show {
-- setting up the edge relation
(A->A + A->B + A->C + A->D) +
(B->A + B->B + B->C + B->E) +
(C->A + C->B + C->C + C->F) = e
}
run show for 6
all i, j: s | not i -> j in e
我的回答是这样的,我觉得挺对的,而且举了个例子。我认为它遗漏了一点,但我不确定如何充分表达它。我希望它能给你一个想法!
no e
更短。 (但对于评论来说太短了,所以这是一个填充物。)
我创建了一个测试图来尝试从中创建一个独立的集合。我知道独立集是一组不相连的顶点,但我不确定如何在 alloy 4.2 中完成此操作。这是我拥有的:
abstract sig Vertex {
e: set Vertex -- e is the edge relation
}
-- the test graph has vertices A, B, C, D, E, F
one sig A, B, C, D, E, F extends Vertex { }
pred independentSet[e: Vertex->Vertex, s: set Vertex] {
--code here?
}
pred show {
-- setting up the edge relation
(A->A + A->B + A->C + A->D) +
(B->A + B->B + B->C + B->E) +
(C->A + C->B + C->C + C->F) = e
}
run show for 6
all i, j: s | not i -> j in e
我的回答是这样的,我觉得挺对的,而且举了个例子。我认为它遗漏了一点,但我不确定如何充分表达它。我希望它能给你一个想法!
no e
更短。 (但对于评论来说太短了,所以这是一个填充物。)