【问题标题】:Can all problems be formulated in terms of constraints?所有问题都可以用约束来表述吗?
【发布时间】:2018-01-14 14:37:01
【问题描述】:

以下是我对使用 Alloy 建模的理解:

一个问题的合金模型有两个部分:

  1. 问题结构部分的规范。
  2. 结构部件的约束规范。

所有问题都可以用约束来表述吗?是否存在无法根据约束条件制定,因此无法使用合金建模的问题?如果是,请提供一个例子吗?

是否存在可以用约束来表述但最好用其他方式表述的问题?如果是,请提供一个例子吗?

【问题讨论】:

    标签: alloy


    【解决方案1】:

    从逻辑的本质来看,几乎任何工件都可以用逻辑术语来描述。因此,正如您正确指出的那样,问题更多的是可以方便且令人信服地表达什么。我想说的是,Alloy 等基于约束的方法的主要替代方法是基于显式排序的方法,如在 CSP 中(以及在此之前的 Michael Jackson 的 JSD)。实际上,我将这两个作为双重范式写了我的硕士论文。它被称为“结合数据和流程描述”。有关一些相关阅读,请参阅 Pamela Zave 关于操作规范的早期论文,以及她与 Michael Jackson 关于多范式描述的论文。

    【讨论】:

      【解决方案2】:

      我认为它隐含在正式模型中?当您在 Alloy 中定义您的 sig 时,您将从这些 sig 可以达到的所有可能状态开始。约束然后删除不希望或不实用的状态(例如,范围是使模型可计算的约束)。我将其与雕刻进行比较;你从一块花岗岩开始,去掉不需要的部分。

      所以问题是花岗岩是否足够?我认为很难给出理论上的完整答案,因为哥德尔总是潜伏在拐角处。然而,实际上存在明显的局限性。范围显然是一个,但由于缺乏语法糖,许多常见问题难以建模。然而,尽管有这些限制,我发现 Alloy 确实为我提供了分析现有软件结构的方法。

      【讨论】:

      • 谢谢@Peter Kriens。我真的很喜欢你雕刻花岗岩的比喻!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多