A magic value in a program is a constant symbol that is essential for the execution of the program but has no clear explanation for its choice. Learning programs with magic values is difficult for existing program synthesis approaches. To overcome this limitation, we introduce an inductive logic programming approach to efficiently learn programs with magic values. Our experiments on diverse domains, including program synthesis, drug design, and game playing, show that our approach can (i) outperform existing approaches in terms of predictive accuracies and learning times, (ii) learn magic values from infinite domains, such as the value of pi, and (iii) scale to domains with millions of constant symbols.
翻译:一个程序中的魔力价值是一个常年的符号,对于执行这个程序至关重要,但对于它的选择却没有明确的解释。 具有魔力价值的学习方案对于现有的程序综合方法来说是困难的。 为了克服这一局限性,我们引入了一种感知逻辑的编程方法,以便有效地学习带有魔力价值的方案。 我们在包括程序合成、药物设计和游戏在内的不同领域的实验表明,我们的方法可以(一) 超越现有方法的预测理解和学习时间,(二) 从无穷的领域学习魔法价值,例如Pi的价值,(三) 向具有数百万个恒定符号的领域学习。