Picat 逻辑编程语言简介 Combinatorial Search With Picat已结束
时间： 06月09日 14:00 - 16:00
地点： 上海 上海交通大学 电信群楼3号楼410会议室 （东川路800号，闵行校区）
0人赞了一下 | 0人踩了一下
Combinatorial Search With Picat
Picat is a simple, and yet powerful, logic-based multi-paradigm programming language aimed for general-purpose applications. Picat is a rule-based language, in which predicates, functions, and actors are defined with pattern-matching rules. Picat incorporates many declarative language features for better productivity of software development, including explicit non-determinism, explicit unification, functions, list comprehensions, constraints, and tabling. Picat also provides imperative language constructs, such as assignments and loops, for programming everyday things. The Picat implementation, which is based on a well-designed virtual machine and incorporates a memory manager that garbage-collects and expands the stacks and data areas when needed, is efficient and scalable. Picat can be used for not only symbolic computations, which is a traditional application domain of declarative languages, but also for scripting and modeling tasks.
Combinatorial Search With Picat
Logic programming has made great strides in solving combinatorial search problems, as witnessed by the cultivation of CLP, ASP, and tabled Prolog systems. Picat, a new member of this family, follows a different doctrine than Prolog in offering the core logic programming concepts: arrays and maps as basic data types; implicit pattern matching with explicit unification and explicit non-determinism; functions that are easier to use than relations for deterministic computations; loops that are more convenient than recursion for 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 use of tabling, has produced surprising and encouraging results; thanks to term-sharing and resource-bounded tabled search, it overwhelmingly outperforms the cutting-edge ASP and PDDL planners on several planning benchmarks used in recent ASP and IPC competitions.
逻辑式编程语言在解决组合数求解问题上不断发展，如CLP, ASP, tabled Prolog systems均对此有贡献。Picat作为逻辑式编程语言的新成员，采取了不同于Prolog的设计思路，如array和map成为基础类型，隐式pattern matching和显式unification与显式non-determinism，采用了更好用的function，循环等。
为了解决组合数求解问题，Picat提供了对于CP,SAT, MIP求解器的通用接口，对于dynamic programming的tabling接口，以及一个规划的模块。规划模块采用tabling方式，采用term-sharing,以及resource-bounded tabled search方法，使得它的效率压倒性地超过了最新的ASP和PDDL规划器。
Professor of Computer and Information Science at Brooklyn College and Graduate Center of the City University of New York.
One of the main authors of
Multi-paradigm logic-based programming language
An efficient implementation of Prolog, tabling, and finite-domain constraint solving
A Constraint-based Graphics Library
A Statistical Modeling and Learning Language (at Tokyo Institute of Technology)
Programming languages, especially constraint and logic programming languages
Compilers for high-level languages
Probabilistic learning from large amounts of data (PRISM)
Agent-based interactive systems
Optimization and problem solving
Graphics programming and graphical user interfaces