问题描述
问题在于如何在CLIPS中获得相似的二进制真值表。 假设有序的初始事实如下:
(vector -1 -1 -1)
预期结果将类似于:
(vector 0 0 0 0)
(vector 0 0 0 1)
(vector 0 0 1 0)
(vector 0 0 1 1)
(vector 0 1 0 0)
(vector 0 1 0 1)
(vector 0 1 1 0)
(vector 0 1 1 1)
(vector 1 0 0 0)
问题是:如何继续获得此结果?
解决方法
不清楚您要做什么(例如,包含三个负数的向量事实的目的是什么),但是如果您只是尝试生成排列,则可以执行以下操作:
CLIPS (6.31 6/12/19)
CLIPS>
(defrule generate
(values $? ?v1 $?)
(values $? ?v2 $?)
(values $? ?v3 $?)
(values $? ?v4 $?)
=>
(assert (vector ?v1 ?v2 ?v3 ?v4)))
CLIPS> (assert (values 0 1))
<Fact-1>
CLIPS> (run)
CLIPS> (facts)
f-0 (initial-fact)
f-1 (values 0 1)
f-2 (vector 0 0 0 0)
f-3 (vector 0 0 0 1)
f-4 (vector 0 0 1 0)
f-5 (vector 0 0 1 1)
f-6 (vector 0 1 0 0)
f-7 (vector 0 1 0 1)
f-8 (vector 0 1 1 0)
f-9 (vector 0 1 1 1)
f-10 (vector 1 0 0 0)
f-11 (vector 1 0 0 1)
f-12 (vector 1 0 1 0)
f-13 (vector 1 0 1 1)
f-14 (vector 1 1 0 0)
f-15 (vector 1 1 0 1)
f-16 (vector 1 1 1 0)
f-17 (vector 1 1 1 1)
For a total of 18 facts.
CLIPS>
,
谢谢莱利先生。 如果可以的话,以下是该程序的摘要说明。该问题的目的是获得电力系统网络中某些保护装置的状态的组合。实际上,顺序向量事实中的-1对应于停电后某些开关设备的未知状态,并且目标是在二进制决策树中组合开关的所有可能状态(0:打开状态,1闭合状态)以获得满足某些条件的序列,例如非径向网络结构。 因此,并非向量事实的每种组合都是该问题的解决方案,并且尚未确定最佳解决方案。 赖利先生,上帝保佑您帮助别人。