Knowledge Refactoring for Inductive Program Synthesis

Authors: Sebastijan Dumancic, Tias Guns, Andrew Cropper7271-7278

AAAI 2021 | Conference PDF | Archive PDF | Plain Text | LLM Run Details

Reproducibility Variable Result LLM Response
Research Type Experimental We evaluate our approach on two domains: building Lego structures and real-world string transformations. Our experiments show that learning from refactored knowledge can improve predictive accuracies fourfold and reduce learning times by half.
Researcher Affiliation Academia 1 KU Leuven, Belgium 2 Oxford University, United Kingdom
Pseudocode No The paper describes the system and its components in detail but does not include any explicit pseudocode or algorithm blocks.
Open Source Code Yes We introduce Knorf1, a system which solves the refactoring problem using constraint optimisation. A key feature of Knorf is that, rather than simply removing knowledge, it also introduces new knowledge through predicate invention. We evaluate our approach on two domains: building Lego structures and real-word string transformations. 1Code available at https://github.com/sebdumancic/knorf aaai21
Open Datasets Yes We use 130 string transformation tasks from (Cropper). The full citation for Cropper is in the references: 'Cropper, A. ???? Playgol: Learning Programs Through Play. In (IJCAI-19), 6074 6080.'
Dataset Splits No For each of the 130 tasks, we sample uniformly without replacement 5 examples as training examples and use the remaining 5 as test examples. The paper does not mention a separate validation set.
Hardware Specification Yes All experiments are run on a CPU with 3.20 GHz and 16 Gb RAM. We have allowed CP-SAT so use 8 parallel threads.
Software Dependencies No The paper mentions using 'the CP-SAT solver (Perron and Furnon 2019)' but does not provide a specific version number for this solver or any other software dependencies.
Experiment Setup Yes To build the support clause space, we set the minimum and maximum length of support clauses to 2 and 3 respectively. We impose no limit on the number of layers. When solving the COP, we impose a timeout of 90 minutes. If refactoring takes longer, we stop the search and take the best solution found so far. We additionally impose a constraint that the refactored BK cannot have more predicates than the original BK. We give Metagol a learning timeout of 60 seconds per task.