Arithmetic circuits arise in the context of weighted logic programming languages, such as Datalog with aggregation, or Dyna. A weighted logic program defines a generalized arithmetic circuit—the weighted version of a proof forest, with nodes having arbitrary rather than boolean values. In this paper, we focus on finite circuits. We present a flexible algorithm for efficiently querying node values as they change under updates to the circuit's inputs. Unlike traditional algorithms, ours is agnostic about which nodes are tabled (materialized), and can vary smoothly between the traditional strategies of forward and backward chaining. Our algorithm is designed to admit future generalizations, including cyclic and infinite circuits and propagation of delta updates.
@InProceedings{filardo_et_al:LIPIcs.ICLP.2012.425, author = {Filardo, Nathaniel Wesley and Eisner, Jason}, title = {{A Flexible Solver for Finite Arithmetic Circuits}}, booktitle = {Technical Communications of the 28th International Conference on Logic Programming (ICLP'12)}, pages = {425--438}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-939897-43-9}, ISSN = {1868-8969}, year = {2012}, volume = {17}, editor = {Dovier, Agostino and Santos Costa, V{\'\i}tor}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ICLP.2012.425}, URN = {urn:nbn:de:0030-drops-36420}, doi = {10.4230/LIPIcs.ICLP.2012.425}, annote = {Keywords: arithmetic circuits, memoization, view maintenance, logic programming} }
Feedback for Dagstuhl Publishing