paradigmsanswer-set-programmingclingo

Practical Advantages and Disadvantages of Answer Set Programming/Logic Programming


I've recently taken an interest in Logic Programming, and more specifically Answer-Set Programming with CLINGO, and was wondering what the general consensus on this paradigm is in practical terms. For example, most declarative programs, including ones from the functional and logic families tend to be more concise, and could be seen as having a closer proximity to natural language than an imperative program would.

I was just wondering if anyone knows of any practical advantages and disadvantages of ASP.


Solution

  • In a nutshell, the biggest benefit is to be able to easily solve knowledge-intense combinatorial problems (optimisation). That is to say, problems that consist of many decisions and constraints.

    Examples: Sudoku, planning, system design, music composition, and more.

    Can't those problems be represented in an imperative way? Yes, they can but using a declarative problem solving approach is easier.

    The benefits are outlined quite well in the Potassco's introduction to ASP video (Youtube) (first 20 minutes).