
TL;DR
Picat is a new logic programming language that offers advanced features like arrays, maps, and tabling, enabling efficient solving of combinatorial search problems and outperforming existing planners in benchmarks.
Contribution
Introduces Picat, a logic programming language with novel features and a planning module that significantly improves performance on combinatorial search benchmarks.
Findings
Picat outperforms ASP and PDDL planners on recent benchmarks.
Tabling and resource-bounded search enhance planning efficiency.
Picat's features simplify modeling and solving combinatorial problems.
Abstract
Picat, a new member of the logic programming family, follows a different doctrine than Prolog in offering the core logic programming concepts: arrays and maps as built-in data types; implicit pattern matching with explicit unification and explicit non-determinism; functions for deterministic computations; and loops for convenient scripting and modeling purposes. Picat provides facilities for solving combinatorial search problems, including a common interface with CP, SAT, and MIP solvers, tabling for dynamic programming, and a module for planning. Picat's planner module, which is implemented by the use of tabling, has produced surprising and encouraging results. Thanks to term-sharing and resource-bounded tabled search, Picat overwhelmingly outperforms the cutting-edge ASP and PDDL planners on the planning benchmarks used in recent ASP competitions.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, Reasoning, and Knowledge · Logic, programming, and type systems · Advanced Database Systems and Queries
