将所有答案集合成一个答案集 (ASP)
Gather all answer sets into one answer set (ASP)
我的问题是,我是否可以将所有答案集中到一个答案中。我为我的程序附上了下面的代码。它的结果 returns 和我想要的描述。
% 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)|新范围(8,3,1)
在此先感谢有耐心回答我的人。
你不能这样做,除非你接受原子的指数爆炸,即使它不是那么容易。你不能在一个单一的答案集中枚举答案集(枚举的复杂度更高,所以你不能在一个NP问题中解决n
NP问题(枚举)(除非你描述n
NP您的编码问题,这是不切实际的)。
也许你可以描述你想要达到的目标,还有其他方法可以做到这一点。
你的问题可以用析取规则解决,因为这样复杂度就会上升到 NP^2。
编辑:我发现 https://github.com/potassco/guess_and_check 可以完全按照您的要求来描述 NP^2 问题,而无需手动编写析取逻辑程序。
您还可以查看以下论文的第 3.3.2 节:
那里介绍的方法允许您通过找到 m
1
多种稳定模型来计算逻辑程序的 m
不同稳定模型。但请注意,m
必须作为输入给出,因此该方法不能直接适用于计算包含逻辑程序的所有稳定模型的一个稳定模型的问题。
我的问题是,我是否可以将所有答案集中到一个答案中。我为我的程序附上了下面的代码。它的结果 returns 和我想要的描述。
% 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)|新范围(8,3,1)
在此先感谢有耐心回答我的人。
你不能这样做,除非你接受原子的指数爆炸,即使它不是那么容易。你不能在一个单一的答案集中枚举答案集(枚举的复杂度更高,所以你不能在一个NP问题中解决n
NP问题(枚举)(除非你描述n
NP您的编码问题,这是不切实际的)。
也许你可以描述你想要达到的目标,还有其他方法可以做到这一点。
你的问题可以用析取规则解决,因为这样复杂度就会上升到 NP^2。 编辑:我发现 https://github.com/potassco/guess_and_check 可以完全按照您的要求来描述 NP^2 问题,而无需手动编写析取逻辑程序。
您还可以查看以下论文的第 3.3.2 节:
那里介绍的方法允许您通过找到 m
1
多种稳定模型来计算逻辑程序的 m
不同稳定模型。但请注意,m
必须作为输入给出,因此该方法不能直接适用于计算包含逻辑程序的所有稳定模型的一个稳定模型的问题。