The goal of inductive logic programming is to induce a set of rules (a logic program) that generalises examples. Inducing programs with many rules and literals is a major challenge. To tackle this challenge, we decompose programs into \emph{non-separable} fragments, learn fragments separately, and then combine them. We implement our approach in a generate, test, combine, and constrain loop. Our anytime approach can learn optimal, recursive, and large programs and supports predicate invention. Our experiments on multiple domains (including program synthesis and inductive general game playing) show that our approach can increase predictive accuracies and reduce learning times compared to existing approaches.
翻译:感性逻辑编程的目标是引导一套规则(逻辑程序),它能概括一些实例。用许多规则和字面来引导程序是一个重大挑战。要应对这一挑战,我们就将程序分解成 emph{n-separable} 碎片,分别学习碎片,然后将其合并。我们在生成、测试、组合和限制循环中执行我们的方法。我们随时可以学习最佳、循环和大型程序,并支持上游发明。我们在多个领域的实验(包括程序合成和感性一般游戏)表明,我们的方法可以增加预测的精度,减少学习时间,与现有方法相比。