【发布时间】:2019-11-16 01:30:20
【问题描述】:
X 的人可以是 inpatient 或 outpatient。
鉴于location(X,outpatient) 的事实,Problog 如何推断location(X,inpatient) 的概率为0?
例如我想要一个副作用:
person(1).
location(1,inpatient).
dependent(1,opioids).
receive(1,clonidine).
query(detoxification(1,opioids,success)).
推断location(1,outpatient) 的概率为零。
如果我写location(X,outpatient);location(X,inpatient).,所有查询都以 1 的概率返回。
如果我写P::location(X,outpatient);(1-P)::location(X,inpatient). 会出错,因为我没有为P 指定值。如果我为 P 指定一个值,则该值永远不会更新(正如预期的那样,因为 Prolog 将变量视为代数变量,并且我没有告诉 Problog 更新P。
如果我写location(X,outpatient) :- \+ location(X,inpatient). 我会创建一个负循环,如果我要指定反向目标,我必须这样做。
【问题讨论】:
标签: prolog logic probability