Answer set programming (
ASP) is a form of
declarative programming oriented towards difficult (primarily
NP-hard)
search problems. It is based on the
stable model (answer set) semantics of
logic programming. In ASP, search problems are reduced to computing stable models, and
answer set solvers — programs for generating stable models—are used to perform search. The computational process employed in the design of many answer set solvers is an enhancement of the
DPLL algorithm and, in principle, it always terminates (unlike
Prolog query evaluation, which may lead to an
infinite loop).