A ProbLog program is a logic program with facts that only hold with a specified probability. In this contribution we extend this ProbLog language by the ability to answer "What if" queries. Intuitively, a ProbLog program defines a distribution by solving a system of equations in terms of mutually independent predefined Boolean random variables. In the theory of causality, Judea Pearl proposes a counterfactual reasoning for such systems of equations. Based on Pearl's calculus, we provide a procedure for processing these counterfactual queries on ProbLog programs, together with a proof of correctness and a full implementation. Using the latter, we provide insights into the influence of different parameters on the scalability of inference. Finally, we also show that our approach is consistent with CP-logic, i.e. with the causal semantics for logic programs with annotated with disjunctions.
翻译:ProbLog程序是一种逻辑程序,其中的事实仅以指定概率成立。本文扩展了ProbLog语言,使其能够回答“假设”查询。直观而言,ProbLog程序通过求解基于相互独立预定义布尔随机变量的方程组来定义一个概率分布。在因果理论中,Judea Pearl针对此类方程组提出了反事实推理方法。基于Pearl的演算体系,我们提供了一种处理ProbLog程序反事实查询的流程,并给出了正确性证明与完整实现。通过该实现,我们揭示了不同参数对推理可扩展性的影响。最后,我们还证明了该方法与CP-逻辑(即带有析取注释的逻辑程序的因果语义)具有一致性。