You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Answer Set Programming(ASP)中获取论证理论的优选集?

在ASP中计算论证理论的优选集

首先明确:优选集是极大的可容许集——即无法再添加任何额外参数到集合中,同时保持集合的可容许性(冲突-free、能防御所有成员、包含所有可接受的参数)。

你的现有代码仅实现了可容许集的计算,但未添加极大性约束,因此会得到包含子集关系的多个模型(比如你提到的set2是set1的子集,它是可容许集,但不是优选集)。

问题分析

你当前的代码确保了集合满足:

  1. 冲突-free(集合内无互相攻击的参数)
  2. 集合中的每个参数都被防御
  3. 所有可接受的参数都被包含在集合中

但缺少极大性的约束:当前集合不能是另一个可容许集的真子集。set2就是这样的情况——你可以将3、5、7添加进去得到set1,而set1仍然是可容许的,因此set2不符合优选集的要求。

修改后的代码

在现有代码基础上,添加极大性约束即可得到优选集:

% Define arguments
arg(1..10).

% Define attacks
att(4,7).
att(3,10).
att(3,9).
att(7,9).
att(9,2).
att(10,5).
att(5,2).
att(5,4).
att(2,3).
att(3,1).

out(X) :- arg(X), not in(X).

% Conflict-free rule
in(X) :- arg(X), not out(X).
% Contraint => no att(X, Y) in in/1 
:- in(X), in(Y), att(X, Y).

% 定义防御关系
defended(X) :- att(Z, X), in(Y), att(Y, Z).
defended(X) :- not att(_, X), in(X).

% 约束:in中的元素必须被防御
:- in(X), not defended(X).

% Define when an argument is attacked by 'in'
attacked(Z) :- att(Y, Z), in(Y).

% Define when an argument is not defended
not_defended(X) :- att(Z, X), not attacked(Z).

% An argument is acceptable if it is defended
acceptable(X) :- arg(X), not not_defended(X).

% Ensure all acceptable arguments are included in 'in'
:- acceptable(X), not in(X).

% ---------------------- 新增极大性约束 ----------------------
% 判断参数X与当前in集合是否冲突(X攻击in中元素 或 in中元素攻击X)
conflict(X) :- in(Y), att(X, Y).
conflict(X) :- in(Y), att(Y, X).

% 参数X与in集合无冲突
no_conflict(X) :- arg(X), not conflict(X).

% 极大性约束:不存在可以添加到in集合的参数(即无法找到既无冲突又被防御的参数不在in中)
:- not in(X), no_conflict(X), defended(X).

运行结果说明

修改后用Clingo运行,只会得到一个模型:
out(1) out(2) in(3) out(4) in(5) in(7) out(9) out(10) in(6) in(8)
这就是唯一的优选集——它是极大的可容许集,无法再添加任何参数而保持可容许性。

关键逻辑解释

新增的极大性约束核心是:
对于任何不在in集合中的参数X,如果X和当前in集合无冲突,且X被当前in集合防御,那么这个模型就是无效的。因为这意味着我们可以把X添加到in集合中,得到一个更大的可容许集,说明原集合不是极大的。

内容的提问来源于stack exchange,提问作者Filiplundbeerg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 22:04:52