如何在Clingo(回答集编程)中无需硬编码将任意输入设为变量?
在Clingo中动态匹配任意输入节点为root变量
要实现让root(A)自动匹配所有输入的node节点,无需硬编码每个节点,只需添加一条规则关联两者即可:
% 规则:只要存在node(A)事实,就生成对应的root(A) root(A) :- node(A). % 输入的节点事实 node(a). node(b). node(c). node(d).
效果说明
运行这段代码后,Clingo会借助变量绑定机制,让变量A遍历所有满足node(A)的常量,自动为每个节点生成对应的root实例。最终的回答集会包含:root(a), root(b), root(c), root(d)
这条规则完全适配任意数量的node输入——不管后续添加多少个新的node(X)事实,root(X)都会自动匹配生成,无需修改规则。
内容的提问来源于stack exchange,提问作者Xie Dongzhan
相关产品推荐
相关产品推荐

