【问题标题】:Gather all answer sets into one answer set (ASP)将所有答案集收集到一个答案集 (ASP)
【发布时间】:2021-09-23 09:23:46
【问题描述】:

我的问题是,如果我可以将所有答案集收集到一个答案中。我为我的程序附上了下面的代码。它返回的结果和我想要的描述。

% Main domain predicates definitions
argument(1..3).
element(1).


#show scope/2.

{scope(A, U) : element(U)}:- argument(A).

我得到的如下图所示

但我想得到的是,一些谓词对于每个答案集都有一个唯一的 id。例如:

newScope(1,empty)-newScope(2,2,1)-newScope(3,3,1)-....-newScope(8,1,1)|newScope(8,2,1) |newScope(8,3,1)

先谢谢有耐心回答我的人。

【问题讨论】:

    标签: answer-set-programming clingo


    【解决方案1】:

    你不能这样做,除非你接受原子的指数爆炸,甚至不是那么容易。您无法在单个答案集中枚举答案集(枚举的复杂性更高,因此您无法在一个 NP 问题中解决n NP 问题(枚举)(除非您在编码中描述n NP 问题) ,这是不实际的)。

    也许你可以描述你想要达到的目标,还有其他方法可以做到这一点。

    您的问题可以通过析取规则来解决,因为这样复杂度会上升到 NP^2。 编辑:我发现https://github.com/potassco/guess_and_check 可以完全按照您的要求来描述 NP^2 问题,而无需手动编写析取逻辑程序。

    【讨论】:

      【解决方案2】:

      您还可以查看以下论文的第 3.3.2 节:

      那里介绍的方法允许您通过找到m1-diverse 稳定模型来计算逻辑程序的m 不同的稳定模型。但请注意,m 必须作为输入给出,因此该方法不能直接适用于计算一个包含逻辑程序所有稳定模型的稳定模型的问题。

      【讨论】:

      • 您好,我解决了它,也许不是用最优化的方法,但它完成了工作。我为每个答案集提供了一个 ID,然后使用“asp-wrapper 程序”对它们进行了处理。谢谢你的帮助:) :)
      猜你喜欢
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多