合金对称破坏不起作用

时间:2015-03-23 15:30:59

标签: alloy

我使用Alloy api生成一些模型。

最近我意识到Alloy生成了一个同构模型。 对称性突破默认吗?

亲切的问候,

1 个答案:

答案 0 :(得分:1)

是的,默认情况下打开对称性。 (实际上,我不知道有什么方法可以将其关闭,因此"默认"可能不是一个非常适合使用它的词。)

如果在结果中发现多个同构模型,那是因为合金分析仪会在性能/对称性方面进行权衡。在软件抽象的第5.2.1节讨论了权衡:

  

[分析器]从模型生成对称破坏约束,并将它们与分析约束相结合。如果它们是完美的,那么这些约束将排除每个等价类中除了一个赋值之外的所有约束,但结果需要非常大的对称破坏约束,这会使求解器过载并实际损坏性能。因此,分析器生成一个小得多的约束,它只打破了一些对称性,但实际上消除了很高比例(超过99%)的分配。