user1311390
user1311390

Reputation:

Arenas where core.logic dominates [soft]

Community Wiki

I don't care about the reputation points, I just want good answers. Feel free to remark this question as community wiki.

Context

I'm been working through The Reasoned Schemer, and have found the following observations:

Question:

Besides (1) solving logic puzzles and (2) type inference, what are the domains of problems that logic programming dominates?

Thanks!

Upvotes: 10

Views: 1099

Answers (2)

Joonas Pulakka
Joonas Pulakka

Reputation: 36577

Constraint logic programming can be really useful for solving various scheduling, resource allocation, and other nontrivial constraint satisfaction / combinatorial optimization problems. All you have is declarative: the constraints (e.g. only one aircraft can be on the runway at a time), and maybe something you want to minimize/maximize (throughput/waiting).

There are various well-known flavors of that in Prolog, including CLP(FD), which works in finite integer domain, and CLP(R), which works in real domain. At least CLP(FD) seems to be in core.logic's immediate roadmap.

I believe such Prolog-derived solutions are actively being used in air traffic control and other logistics tasks, although it's hard to get precise info what technologies exactly such mission- and life-critical companies are using under the hood.

Upvotes: 4

Christian Fritz
Christian Fritz

Reputation: 21374

Research in artificial intelligence, and in particular cognitive robotics and other application of logic-based knowledge representation, are areas where Prolog is used a lot for its close relation to logic theory. This relation is very useful because it basically brings theory to life. Theorems can be proven on paper, and then implemented almost trivially in prolog and executed, and the executing programs have the proven properties. This allows for programs that are "correct by construction", which is the opposite of first writing programs and then trying to prove properties about them (as is done in formal methods, using, e.g., model checking).

The semantic web is another place where logic programming plays a growing role.

Upvotes: 3

Related Questions