SlideShare una empresa de Scribd logo
1 de 86
Descargar para leer sin conexión
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
A Survey of Evaluation Techniques
and Systems for Answer Set Programming
Francesco Ricca
University of Calabria, Italy
Klagenfurt 2019
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Outline
1 Introduction and Preliminaries
2 Evaluation Techniques and Systems
3 Interfaces and Systems for Extensions
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Answer Set Programming (ASP) (1)
Answer Set Programming (ASP)[BET11]
Declarative programming paradigm
Non-monotonic reasoning and logic programming
Stable model semantics [GL91]
Expressive KRR Language
Roots in Datalog and Nonmonotonic logic
Extended over the years to ease modeling
→ Disjunction, (Weak) Constraints, Aggregates, Functions...
Can model problems up to ΣP
2 /ΠP
2 [EGM97, DEGV01]
→ even problems not (polynomially) translatable to SAT
Standardized syntax: ASPCore 2.0 [CFG+
12]
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Answer Set Programming (ASP) (2)
Idea:
1 Represent a computational problem by a Logic program
2 Answer sets correspond to problem solutions
3 Use an ASP solver to find these solutions
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Answer Set Programming (ASP) (3)
ASP: A Major paradigm for logic-based AI
1 Declarative, readable and expressive language
→ stable model semantics, language extensions [GL91])
2 Robust and efficient implementations [LMR16]
→ continuous improvements (see ASP comp. [CGMR16, GMR17])
3 Applications in several fields [EGL16]
Workforce Management, Planning, Scheduling,
Information Integration, Data cleaning, Bioinformatics,
Robotics, Natural Language Understanding, ...
see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99,
DGH09, CHO+
09, RDG+
10, RGA+
12, GNA13]
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Answer Set Programming (ASP) (3)
ASP: A Major paradigm for logic-based AI
1 Declarative, readable and expressive language
→ stable model semantics, language extensions [GL91])
2 Robust and efficient implementations [LMR16]
→ continuous improvements (see ASP comp. [CGMR16, GMR17])
3 Applications in several fields [EGL16]
Workforce Management, Planning, Scheduling,
Information Integration, Data cleaning, Bioinformatics,
Robotics, Natural Language Understanding, ...
see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99,
DGH09, CHO+
09, RDG+
10, RGA+
12, GNA13]
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Answer Set Programming (ASP) (3)
ASP: A Major paradigm for logic-based AI
1 Declarative, readable and expressive language
→ stable model semantics, language extensions [GL91])
2 Robust and efficient implementations [LMR16]
→ continuous improvements (see ASP comp. [CGMR16, GMR17])
3 Applications in several fields [EGL16]
Workforce Management, Planning, Scheduling,
Information Integration, Data cleaning, Bioinformatics,
Robotics, Natural Language Understanding, ...
see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99,
DGH09, CHO+
09, RDG+
10, RGA+
12, GNA13]
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Answer Set Programming (ASP) (3)
ASP: A Major paradigm for logic-based AI
1 Declarative, readable and expressive language
→ stable model semantics, language extensions [GL91])
2 Robust and efficient implementations [LMR16]
→ continuous improvements (see ASP comp. [CGMR16, GMR17])
3 Applications in several fields [EGL16]
Workforce Management, Planning, Scheduling,
Information Integration, Data cleaning, Bioinformatics,
Robotics, Natural Language Understanding, ...
see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99,
DGH09, CHO+
09, RDG+
10, RGA+
12, GNA13]
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
ASP Syntax
Rule: a1 | . . . | an :- b1, . . . , bk , not bk+1, . . . , not bm.
head body
Atoms and Literals: ai , bi , not bi
Positive Body: b1, . . . , bk
Negative Body: not bk+1, . . . , not bm.
Fact: A rule with empty body
Constraint: A rule with empty head
Variables: allowed in atom’s arguments
Must occur in the positive body (Safety)
Can be seen as placeholders for constants
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
ASP Syntax
Rule: a1 | . . . | an :- b1, . . . , bk , not bk+1, . . . , not bm.
head body
Atoms and Literals: ai , bi , not bi
Positive Body: b1, . . . , bk
Negative Body: not bk+1, . . . , not bm.
Fact: A rule with empty body
Constraint: A rule with empty head
Variables: allowed in atom’s arguments
Must occur in the positive body (Safety)
Can be seen as placeholders for constants
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Informal Semantics
Rule: a1 | . . . | an :- b1, . . . , bk , not bk+1, . . . , not bm.
head body
Informal Semantics:
“If all b1, . . . , bk are true and all bk+1, . . . , bm are not true,
then at least one among a1, . . . , an is true”.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Informal Semantics
Rule: a1 | . . . | an :- b1, . . . , bk , not bk+1, . . . , not bm.
head body
Informal Semantics:
“If all b1, . . . , bk are true and all bk+1, . . . , bm are not true,
then at least one among a1, . . . , an is true”.
Example
isInterestedinASP(X) | isCurious(X) :- attendsASP(X).
attendsASP(john).
Two (minimal) models encoding two plausible scenarios:
M1:{isInterestedinASP(john), attendsASP(john).}
M2:{isCurious(john), attendsASP(john).}
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Informal Semantics (3)
Constraint:
:- b1, . . . , bk , not bk+1, . . . , not bm.
Informal Semantics:
“It is not possible that all b1, . . . , bk are true and all bk+1, . . . , bm are false”.
Example
isInterestedinASP(X) | isCurious(X) :- attendsASP(X).
:- hatesASP(X), isInterestedinASP(X).
attendsASP(john). hatesASP(john).
Only one plausible scenario:
M1:{isInterestedinASP(john), attendsASP(john), hatesASP(john).}
M2:{isCurious(john), attendsASP(john), hatesASP(john).}
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Informal Semantics (3)
Constraint:
:- b1, . . . , bk , not bk+1, . . . , not bm.
Informal Semantics:
“It is not possible that all b1, . . . , bk are true and all bk+1, . . . , bm are false”.
Example
isInterestedinASP(X) | isCurious(X) :- attendsASP(X).
:- hatesASP(X), isInterestedinASP(X).
attendsASP(john). hatesASP(john).
Only one plausible scenario:
M1:{isInterestedinASP(john), attendsASP(john), hatesASP(john).}
M2:{isCurious(john), attendsASP(john), hatesASP(john).}
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Extensions for Modeling Optimization Problems
Weak Constraints:
Express desiderata
Constraints which should possibly be satisfied
(as soft constraints in CSP)
Syntax: :∼ b(X, Y).
Intuitive meaning: “set b as false, if possible”
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Extensions for Modeling Optimization Problems
Weak Constraints:
Express desiderata
Constraints which should possibly be satisfied
(as soft constraints in CSP)
Syntax: :∼ b(X, Y). [w@p]
Weigth and Priority: ([w@p])
• higher weights/priorities ⇒ higher importance
• “@p” can be omitted
“minimize the sum of the weights of the violated constraints in the highest
priority level, and so on”
Declarative specification of optimization problems
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Aggregates (Informal)
Aggregate atoms: Express functions calculated over sets of elements:
Lg <op f{S} <op Ug
Example
5 < #count{EmpId : emp(EmpId, male, Skill, Salary)} ≤ 10
The atom is true if the number of male employees is greater than 5 and does
not exceed 10.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Aggregates (Informal)
Aggregate atoms: Express functions calculated over sets of elements:
Lg <op f{S} <op Ug
Example
5 < #count{EmpId : emp(EmpId, male, Skill, Salary)} ≤ 10
The atom is true if the number of male employees is greater than 5 and does
not exceed 10.
Allows for compact specifications of rules and constraints!
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Programming in ASP (Example 1)
Example (3-col)
Problem: Given a graph, assign one color out of 3 colors to each node such
that two adjacent nodes have always different colors.
Input: a Graph is represented by node(_) and edge(_, _).
% guess a coloring for the nodes
(r) col(X, red) | col(X, yellow) | col(X, green) :- node(X).
% discard colorings where adjacent nodes have the same color
(c) :- edge(X, Y), col(X, C), col(Y, C).
% NB: answer sets are subset minimal → only one color per node
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Programming in ASP (Example 1)
Example (3-col)
Problem: Given a graph, assign one color out of 3 colors to each node such
that two adjacent nodes have always different colors.
Input: a Graph is represented by node(_) and edge(_, _).
% guess a coloring for the nodes
(r) col(X, red) | col(X, yellow) | col(X, green) :- node(X).
% discard colorings where adjacent nodes have the same color
(c) :- edge(X, Y), col(X, C), col(Y, C).
% NB: answer sets are subset minimal → only one color per node
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Programming in ASP (Example 1)
Example (3-col)
Problem: Given a graph, assign one color out of 3 colors to each node such
that two adjacent nodes have always different colors.
Input: a Graph is represented by node(_) and edge(_, _).
% guess a coloring for the nodes
(r) col(X, red) | col(X, yellow) | col(X, green) :- node(X).
% discard colorings where adjacent nodes have the same color
(c) :- edge(X, Y), col(X, C), col(Y, C).
% NB: answer sets are subset minimal → only one color per node
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Programming in ASP (Example 1)
Example (3-col)
Problem: Given a graph, assign one color out of 3 colors to each node such
that two adjacent nodes have always different colors.
Input: a Graph is represented by node(_) and edge(_, _).
% guess a coloring for the nodes
(r) col(X, red) | col(X, yellow) | col(X, green) :- node(X).
% discard colorings where adjacent nodes have the same color
(c) :- edge(X, Y), col(X, C), col(Y, C).
% NB: answer sets are subset minimal → only one color per node
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Programming in ASP (Example 2)
Example (Team Building)
% An employee is either included in the team or not
inTeam(I) | outTeam(I) :- emp(I, Sx, Sk, Sa).
% The team consists of a certain number of employees
:- nEmp(N), #count{I : inTeam(I)} <> N.
% At least a given number of different skills must be present in the team
:- nSkill(M), #count{Sk : emp(I, Sx, Sk, Sa), inTeam(I)} < M.
% The sum of the salaries of the employees working in the team must not
exceed the given budget
:- budget(B), #sum{Sa, I : emp(I, Sx, Sk, Sa), inTeam(I)} > B.
% The salary of each individual employee is within a specified limit
:- maxSal(M), #max{Sa : emp(I, Sx, Sk, Sa), inTeam(I)} > M.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Programming in ASP (Example 3)
Example (Traveling Salesman Person)
Problem: Find a path of minimum length in a Weighted Graph beginning at
the starting node which contains all nodes of the graph.
Input: node(_) and edge(_, _, _), and start(_).
% Guess a path
inPath(X, Y) | outPath(X, Y) :- edge(X, Y, _).
% Ensure that it is Hamiltonian
:- #count{X : inPath(X, Y)} > 1.
:- #count{Y : inPath(X, Y)} > 1.
:- node(X), not reached(X).
:- inPath(X, Y), start(Y).
reached(X) :- reached(Y), inPath(Y, X).
reached(X) :- start(X).
% Minimize the sum of distances
:∼ inPath(X, Y), edge(X, Y, C). [C]
| Guess
|
| Check
|
|
| Aux. Rules
|
| Optimize
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Programming in ASP (Example 3)
Example (Traveling Salesman Person)
Problem: Find a path of minimum length in a Weighted Graph beginning at
the starting node which contains all nodes of the graph.
Input: node(_) and edge(_, _, _), and start(_).
% Guess a path
inPath(X, Y) | outPath(X, Y) :- edge(X, Y, _).
% Ensure that it is Hamiltonian
:- #count{X : inPath(X, Y)} > 1.
:- #count{Y : inPath(X, Y)} > 1.
:- node(X), not reached(X).
:- inPath(X, Y), start(Y).
reached(X) :- reached(Y), inPath(Y, X).
reached(X) :- start(X).
% Minimize the sum of distances
:∼ inPath(X, Y), edge(X, Y, C). [C]
| Guess
|
| Check
|
|
| Aux. Rules
|
| Optimize
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Programming in ASP (Example 3)
Example (Traveling Salesman Person)
Problem: Find a path of minimum length in a Weighted Graph beginning at
the starting node which contains all nodes of the graph.
Input: node(_) and edge(_, _, _), and start(_).
% Guess a path
inPath(X, Y) | outPath(X, Y) :- edge(X, Y, _).
% Ensure that it is Hamiltonian
:- #count{X : inPath(X, Y)} > 1.
:- #count{Y : inPath(X, Y)} > 1.
:- node(X), not reached(X).
:- inPath(X, Y), start(Y).
reached(X) :- reached(Y), inPath(Y, X).
reached(X) :- start(X).
% Minimize the sum of distances
:∼ inPath(X, Y), edge(X, Y, C). [C]
| Guess
|
| Check
|
|
| Aux. Rules
|
| Optimize
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Main Evaluation Strategies
Evaluation of ASP Programs [KLPS16]
Traditionally a two-step process: “Ground+Solve”
1 Instantiation or grounding
→ Variable elimination → Exponential output
→ Support language features & Keep output small!!
2 Propositional search or ASP solving
→ Model Generation: “compute models” → related to SAT
→ (Stable) Model Checking: “check if model is stable” → coNP
Single step evaluation: “Grounding-less”
→ Grounding bottleneck → Grounding and search interleaved
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
The traditional Architecture of ASP Systems
“Pay as you go approach”
The instantiator can often evaluate stratified programs
The model generator or solver suffices for normal/HCF
The model checker needed for unrestricted disjunction
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
About the Instantiation
Some facts:
Exponential in the worst case
Input of a subsequent exponential procedure
Significantly affects the performance of the overall process
Full instantiation: i.e., apply every possible substitution
→ Not viable in practice
Intelligent instantiation
→ Keep the size of the instantiation as small as possible
→ Equivalent to the full one
→ Intelligent Instantiators can solve problems in P
→ Deductive Databases as a subcase!
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
About the Instantiation
Some facts:
Exponential in the worst case
Input of a subsequent exponential procedure
Significantly affects the performance of the overall process
Full instantiation: i.e., apply every possible substitution
→ Not viable in practice
Intelligent instantiation
→ Keep the size of the instantiation as small as possible
→ Equivalent to the full one
→ Intelligent Instantiators can solve problems in P
→ Deductive Databases as a subcase!
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
About the Instantiation
Some facts:
Exponential in the worst case
Input of a subsequent exponential procedure
Significantly affects the performance of the overall process
Full instantiation: i.e., apply every possible substitution
→ Not viable in practice
Intelligent instantiation
→ Keep the size of the instantiation as small as possible
→ Equivalent to the full one
→ Intelligent Instantiators can solve problems in P
→ Deductive Databases as a subcase!
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Instantiation Example: 3-Colorability
% guess a coloring for the nodes
(r) col(X, red) | col(X, yellow) | col(X, green) :- node(X).
% discard colorings where adjacent nodes have the same color
(c) :- edge(X, Y), col(X, C), col(Y, C).
Instance: node(1). node(2). node(3). edge(1, 2). edge(2, 3).
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Instantiation Example: 3-Colorability
% guess a coloring for the nodes
(r) col(X, red) | col(X, yellow) | col(X, green) :- node(X).
% discard colorings where adjacent nodes have the same color
(c) :- edge(X, Y), col(X, C), col(Y, C).
Instance: node(1). node(2). node(3). edge(1, 2). edge(2, 3).
Full Theoretical Instantiation:
col(red, red) | col(red, yellow) | col(red, green) :- node(red).
col(yellow, red) | col(yellow, yellow) | col(yellow, green) :- node(yellow).
col(green, red) | col(green, yellow) | col(green, green) :- node(green).
. . .
col(1, red) | col(1, yellow) | col(1, green) :- node(1).
. . .
:- edge(1, 2), col(1, 1), col(2, 1).
. . .
:- edge(1, 2), col(1, red), col(2, red).
. . .
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Instantiation Example: 3-Colorability
% guess a coloring for the nodes
(r) col(X, red) | col(X, yellow) | col(X, green) :- node(X).
% discard colorings where adjacent nodes have the same color
(c) :- edge(X, Y), col(X, C), col(Y, C).
Instance: node(1). node(2). node(3). edge(1, 2). edge(2, 3).
Full Theoretical Instantiation: → is huge (2916 rules) and redundant!
col(red, red) | col(red, yellow) | col(red, green) :- node(red).
col(yellow, red) | col(yellow, yellow) | col(yellow, green) :- node(yellow).
col(green, red) | col(green, yellow) | col(green, green) :- node(green).
. . .
col(1, red) | col(1, yellow) | col(1, green) :- node(1). ← OK!
. . .
:- edge(1, 2), col(1, 1), col(2, 1). ← redundant!
. . .
:- edge(1, 2), col(1, red), col(2, red). ← OK!
. . .
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Instantiation Example: 3-Colorability
% guess a coloring for the nodes
(r) col(X, red) | col(X, yellow) | col(X, green) :- node(X).
% discard colorings where adjacent nodes have the same color
(c) :- edge(X, Y), col(X, C), col(Y, C).
Instance: node(1). node(2). node(3). edge(1, 2). edge(2, 3).
Intelligent Instantiation: → equivalent but much smaller (9 rules)!
col(1, red) | col(1, yellow) | col(1, green).
col(2, red) | col(2, yellow) | col(2, green).
col(3, red) | col(3, yellow) | col(3, green).
:- col(1, red), col(2, red).
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow).
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation & Checking
Model Generator or Solver → produces candidate models
Works on propositional programs
Similar to a SAT solver
Intelligent backtracking algorithm
Propagate Deterministic Consequences
→ Unit Propagation, Support Propagation,
→ Well-founded Negation, etc.
Assume a literal l (heuristically) until a model is generated
Upon inconsistency Backtrack (assume not l)
Model Checker → checks if candidates are Answer Sets
Enabled only for hard (non-HCF) instances
Implements a coNP-complete task
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation & Checking
Model Generator or Solver → produces candidate models
Works on propositional programs
Similar to a SAT solver
Intelligent backtracking algorithm
Propagate Deterministic Consequences
→ Unit Propagation, Support Propagation,
→ Well-founded Negation, etc.
Assume a literal l (heuristically) until a model is generated
Upon inconsistency Backtrack (assume not l)
Model Checker → checks if candidates are Answer Sets
Enabled only for hard (non-HCF) instances
Implements a coNP-complete task
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation Example: 3-Colorability
Model Generation step:
col(1, red) | col(1, yellow) | col(1, green).
col(2, red) | col(2, yellow) | col(2, green).
col(3, red) | col(3, yellow) | col(3, green).
:- col(1, red), col(2, red).
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow).
True: {}
False: {}
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation Example: 3-Colorability
Model Generation step: Chose literal
col(1, red) | col(1, yellow) | col(1, green).
col(2, red) | col(2, yellow) | col(2, green).
col(3, red) | col(3, yellow) | col(3, green).
:- col(1, red), col(2, red).
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow).
True: {} ← col(1, red)
False: {}
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation Example: 3-Colorability
Model Generation step: Propagate Deterministic Consequences
col(1, red) | col(1, yellow) | col(1, green). ← 1-support propagation
col(2, red) | col(2, yellow) | col(2, green).
col(3, red) | col(3, yellow) | col(3, green).
:- col(1, red), col(2, red). ← 2-unit propagation
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow).
True: {col(1, red)}
False: { col(1, yellow), col(1, green), col(2, red) }
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation Example: 3-Colorability
Model Generation step: Chose literal
col(1, red) | col(1, yellow) | col(1, green).
col(2, red) | col(2, yellow) | col(2, green).
col(3, red) | col(3, yellow) | col(3, green).
:- col(1, red), col(2, red).
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow).
True: {col(1, red) ← col(2, yellow) }
False: { col(1, yellow), col(1, green), col(2, red) }
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation Example: 3-Colorability
Model Generation step: Propagate Deterministic Consequences
col(1, red) | col(1, yellow) | col(1, green).
col(2, red) | col(2, yellow) | col(2, green). ←1-support propagation
col(3, red) | col(3, yellow) | col(3, green).
:- col(1, red), col(2, red).
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow). ← 2-unit propagation
True: {col(1, red), col(2, yellow) }
False: { col(1, yellow), col(1, green), col(2, red), col(2, green),
col(3, yellow) }
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation Example: 3-Colorability
Model Generation step: Chose literal
col(1, red) | col(1, yellow) | col(1, green).
col(2, red) | col(2, yellow) | col(2, green).
col(3, red) | col(3, yellow) | col(3, green).
:- col(1, red), col(2, red).
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow).
True: {col(1, red), col(2, yellow)} ← col(3, red)
False: { col(1, yellow), col(1, green), col(2, red), col(2, green),
col(3, yellow) }
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation Example: 3-Colorability
Model Generation step: Propagate Deterministic Consequences
col(1, red) | col(1, yellow) | col(1, green).
col(2, red) | col(2, yellow) | col(2, green).
col(3, red) | col(3, yellow) | col(3, green). ←support propagation
:- col(1, red), col(2, red).
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow).
True: {col(1, red), col(2, yellow), col(3, red)
False: { col(1, yellow), col(1, green), col(2, red), col(2, green),
col(3, yellow) col(3, green) }
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Generation Example: 3-Colorability
Model Generation step: Answer set found!
col(1, red) | col(1, yellow) | col(1, green).
col(2, red) | col(2, yellow) | col(2, green).
col(3, red) | col(3, yellow) | col(3, green).
:- col(1, red), col(2, red).
:- col(1, green), col(2, green).
:- col(1, yellow), col(2, yellow).
:- col(2, red), col(3, red).
:- col(2, green), col(3, green).
:- col(2, yellow), col(3, yellow).
Answer Set: {col(1, red), col(2, yellow), col(3, red) }
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (1)
Consider: M = {a, b}
a | b | c.
a :- b.
b :- a, not c..
a :- c.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (1)
Step:(1)
Consider: M = {a, b}
a | b | c.
a :- b.
b :- a, not c..
a :- c.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (1)
Step:(2)
Consider: M = {a, b}
a | b | c.
a :- b.
b :- a, not c.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (1)
Step:(3)
Consider: M = {a, b}
a | b | c.
a :- b.
b :- a.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (2)
Consider: M = {a, b}
a | b.
a :- b.
b :- a.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (2)
Step: (6-9)
Consider: M = {a, b}
a | b. =⇒ ← a ∧ b
a :- b.
b :- a.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (2)
Step: (6-9)
Consider: M = {a, b}
a | b. =⇒ ← a ∧ b
a :- b. =⇒ b ← a
b :- a.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (2)
Step: (6-9)
Consider: M = {a, b}
a | b. =⇒ ← a ∧ b
a :- b. =⇒ b ← a
b :- a. =⇒ a ← b
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (2)
Step: (6-9)
Consider: M = {a, b} =⇒ a ∨ b ←
a | b. =⇒ ← a ∧ b
a :- b. =⇒ b ← a
b :- a. =⇒ a ← b
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (2)
Step: (6-9)
Consider: M = {a, b} =⇒ a ∨ b
a | b. =⇒ ← a ∧ b =⇒ ¬a ∨ ¬b
a :- b. =⇒ b ← a =⇒ ¬a ∨ b
b :- a. =⇒ a ← b =⇒ ¬b ∨ a
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Model Checking via SAT test (2)
Consider: M = {a, b} =⇒ a ∨ b
=⇒ ¬a ∨ ¬b
=⇒ ¬a ∨ b
=⇒ ¬b ∨ a
Unsatisfiable → Answer Set!
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Evolution of grounders
Lparse [SN01]
→ front-end system → intermediate format
→ normal programs
→ ω-restricted → “domains”
DLV [LPF+
06]
→ disjunctive programs
→ safety condition
→ deductive database techniques
Gringo [GST07]
→ front-end system → Lparse format
→ λ-restricted → “positive recursion”
Gringo v.3+ and i-dlv [GKKS11, CFPZ17]
→ Reinterpret DLV’s + new tech. (e.g., decompositions [BMMW17])
→ ASPCore2 standard language + Language extensions
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Evolution of grounders
Lparse [SN01]
→ front-end system → intermediate format
→ normal programs
→ ω-restricted → “domains”
DLV [LPF+
06]
→ disjunctive programs
→ safety condition
→ deductive database techniques
Gringo [GST07]
→ front-end system → Lparse format
→ λ-restricted → “positive recursion”
Gringo v.3+ and i-dlv [GKKS11, CFPZ17]
→ Reinterpret DLV’s + new tech. (e.g., decompositions [BMMW17])
→ ASPCore2 standard language + Language extensions
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Native Solvers & Systems
DPLL-based [DLL62]
Smodels [SNS02] → dedicated inferences normal programs
GnT [JNS+
06] → disj. model checking based on Smodels
DLV [LPF+
06] → disj. unfounded sets + SAT-based check [? ]
CDCL-based [SLM09]
Clasp [GKNS07] → nogood learning + SAT tech.
Wasp [ADLR15] → clause learning + SAT tech.
Beyond CDCL (and ASP)
Clingo [GKK+
16] → monolithic (Gringo + Clasp) + ...
DLV 2.0 [ACD+
17] → monolithic (i-dlv + Wasp) + ...
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Translation-based solvers
Translation to SAT
Cmodels (v1) → Clark completion for tight programs [EL03]
assat [LZ02] & Cmodels (v2) [LM04] → Loop formulas
Cmodels (v3) [GLM06] → disj. via SAT-based stability check
lp2sat [Jan06, JN11] → level rankings [Nie08]
Other target formalisms
lp2acyc [GJR] → aciclycity condition
lp2mip [LJN12] → mixed integer programming
lp2* [JNS09, NJN11] → PB-Constraint, Diff. Logic, Bit Vector
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Grounding less systems
Lazy grounding (Interleave/blend grounding+search)
GASP [PDPR09] → Based on [LPST10]
ASPERIX [LN09] → Based on [LPST10]
OMIGA [DEF+
12] → Based on Rete [For82]
ALPHA [Wei17] → Lazy grounding + CDCL
IDP [dCDBS15] → Lazy model expansion
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Multiprocessing & Portfolios
Portfolio systems (Dominating ASP Competitions since 2011)
Claspfolio [GKK+
11a, HLS14] → SATZILLA approach [XHHL08]
ME-ASP [MPR14, MPR15] → AQME approach [PT09]
ASPEED & PPfolio → Optimized portfolios [HKLS15]
Multiprocessing
DLV parallel grounding [PRS13] (SMP machines)
Lparse + DPLL-based parallel ASP solvers
→ [FMMT01, PBB03, BPEL05, GJM+
06] based on [ZBH96]
Multiprocessing variants of Clasp [GKK+
11b, GKS12, GKK+
15]
→ Parallel & distributed CDCL-search & portfolio
ASP solving utilizing GPUs [DFPV16]
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Systems Interfaces
ASP Systems
Highly optimized and sophisticated implementations
Extensions are non-obvious
API to make extensions easier
Clingo API [GKK+b]
→ Customized solving control via C, lua and python scripts
→ Incremental solving [GKK+
a] and External propagators [DW12]
Wasp API [ADLR15]
→ Solver extension via Python, C++, and Perl
→ Domain Heuristics [DGL+
16] and Custom Propagators [CDRS17]
DLV 2.0 [ACD+
17]
→ i-dlv + Wasp easier development of propagators.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Systems Interfaces
ASP Systems
Highly optimized and sophisticated implementations
Extensions are non-obvious
API to make extensions easier
Clingo API [GKK+b]
→ Customized solving control via C, lua and python scripts
→ Incremental solving [GKK+
a] and External propagators [DW12]
Wasp API [ADLR15]
→ Solver extension via Python, C++, and Perl
→ Domain Heuristics [DGL+
16] and Custom Propagators [CDRS17]
DLV 2.0 [ACD+
17]
→ i-dlv + Wasp easier development of propagators.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Systems for ASP Extensions
Advanced frameworks based on ASP
Constraint ASP (CASP) [BBG05, BKOS17, BL17]
→ Augment the Boolean representations of ASP with constraints
→ Systems: ACSOLVER, CLINGCON, EZCSP, IDP, INCA, and MINGO
ASP Modulo Theories (ASPMT) [SL16]
→ Systems: ASPMT2SMT, EZSMT
Bound-Founded ASP (BFASP) [ACS13]
→ System: CHUFFED (CP solver + propagator BF integer variables)
Higher-order EXternal (HEX) programs [EFI+16]
→ ASP programs + external sources (e.g., ontological reasoning)
→ System: DLVHEX
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Conclusion
1 History of ASP Implementations
Ground + Solve
→ Grounders, Native and Translation-based Solvers
→ Portfolios and Parallel-distributed implementations
Grounding-less
2 Interfaces and Extensions
Easy extensions with Python, C++, etc.
→ Customized control over grounding and solving
→ New Heuristics and Propagators
3 Systems for ASP Extensions
Constraint ASP (CASP), ASPMT, HEX Programs, etc.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Acknowledgments
Thanks for your attention!
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
Thanks to my co-authors
All the details and references in our paper:
[GLMPRS18]
Martin Gebser, Nicola Leone, Marco Maratea, Simona
Perri, Francesco Ricca, Torsten Schaub:
“Evaluation Techniques and Systems for Answer Set
Programming: a Survey”
Proceedings of IJCAI 2018, pg. 5450-5456 AAAI Press
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References
[ACD+
17] Mario Alviano, Francesco Calimeri, Carmine Dodaro, Davide
Fuscà, Nicola Leone, Simona Perri, Francesco Ricca,
Pierfrancesco Veltri, and Jessica Zangari. The ASP system
DLV2. In LPNMR, volume 10377 of Lecture Notes in Computer
Science, pages 215–221. Springer, 2017.
[ACS13] R. A. Aziz, G. Chu, and P. J. Stuckey. Stable model semantics
for founded bounds. TPLP, 13(4-5):517–532, 2013.
[ADLR15] Mario Alviano, Carmine Dodaro, Nicola Leone, and Francesco
Ricca. Advances in WASP. In LPNMR, volume 9345 of Lecture
Notes in Computer Science, pages 40–54. Springer, 2015.
[BBG05] S. Baselice, P. A. Bonatti, and M. Gelfond. A preliminary report
on integrating of answer set and constraint solving. In Answer
Set Programming, volume 142 of CEUR Workshop Proceedings,
2005.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[BET11] Gerhard Brewka, Thomas Eiter, and Miroslaw Truszczynski.
Answer set programming at a glance. Commun. ACM,
54(12):92–103, 2011.
[BKOS17] M. Banbara, B. Kaufmann, M. Ostrowski, and T. Schaub.
Clingcon: The next generation. TPLP, 17(4):408–461, 2017.
[BL17] M. Balduccini and Y. Lierler. Constraint answer set solver
EZCSP and why integration schemas matter. TPLP,
17(4):462–515, 2017.
[BMMW17] Bernhard Bliem, Marius Moldovan, Michael Morak, and Stefan
Woltran. The impact of treewidth on ASP grounding and solving.
In IJCAI, pages 852–858. ijcai.org, 2017.
[BPEL05] Marcello Balduccini, Enrico Pontelli, Omar El-Khatib, and Hung
Le. Issues in parallel execution of non-monotonic reasoning
systems. Parallel Computing, 31(6):608–647, 2005.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[CDRS17] B. Cuteri, C. Dodaro, F. Ricca, and P. Schüller. Constraints, lazy
constraints, or propagators in ASP solving: An empirical
analysis. TPLP, 17(5-6):780–799, 2017.
[CFG+
12] F. Calimeri, W. Faber, M. Gebser, G. Ianni, R. Kaminski,
T. Krennwallner, N. Leone, F. Ricca, and T. Schaub.
ASP-Core-2: Input language format. https://www.mat.
unical.it/aspcomp2013/ASPStandardization/, 2012.
[CFPZ17] Francesco Calimeri, Davide Fuscà, Simona Perri, and Jessica
Zangari. I-DLV: the new intelligent grounder of DLV. Intelligenza
Artificiale, 11(1):5–20, 2017.
[CGMR16] Francesco Calimeri, Martin Gebser, Marco Maratea, and
Francesco Ricca. Design and results of the fifth answer set
programming competition. Artif. Intell., 231:151–181, 2016.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[CHO+
09] Ozan Caldiran, Kadir Haspalamutgil, Abdullah Ok, Can Palaz,
Esra Erdem, and Volkan Patoglu. Bridging the gap between
high-level reasoning and low-level control. In LPNMR, pages
342–354, 2009.
[dCDBS15] Broes de Cat, Marc Denecker, Maurice Bruynooghe, and
Peter J. Stuckey. Lazy model expansion: Interleaving grounding
with search. J. Artif. Intell. Res., 52:235–286, 2015.
[DEF+
12] Minh Dao-Tran, Thomas Eiter, Michael Fink, Gerald Weidinger,
and Antonius Weinzierl. Omiga : An open minded grounding
on-the-fly answer set solver. In JELIA, volume 7519 of Lecture
Notes in Computer Science, pages 480–483. Springer, 2012.
[DEGV01] Evgeny Dantsin, Thomas Eiter, Georg Gottlob, and Andrei
Voronkov. Complexity and Expressive Power of Logic
Programming. ACM Computing Surveys, 33(3):374–425, 2001.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[DFPV16] A. Dovier, A. Formisano, E. Pontelli, and F. Vella. A GPU
implementation of the ASP computation. In PADL’16, volume
9585, pages 30–47, 2016.
[DGH09] James P. Delgrande, Torsten Grote, and Aaron Hunter. A general
approach to the verification of cryptographic protocols using
answer set programming. In LPNMR, pages 355–367, 2009.
[DGL+
16] C. Dodaro, P. Gasteiger, N. Leone, B. Musitsch, F. Ricca, and
K. Schekotihin. Combining answer set programming and domain
heuristics for solving hard industrial problems (application
paper). TPLP, 16(5-6):653–669, 2016.
[DLL62] Martin Davis, George Logemann, and Donald W. Loveland. A
machine program for theorem-proving. Commun. ACM,
5(7):394–397, 1962.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[DW12] C. Drescher and T. Walsh. Answer set solving with lazy nogood
generation. In Technical Communications of ICLP’12, pages
188–200, 2012.
[EEB10] Halit Erdogan, Esra Erdem, and Olivier Bodenreider. Exploiting
umls semantics for checking semantic consistency among umls
concepts. In In Proc. of MedInfo, 2010.
[EFI+
16] T. Eiter, M. Fink, G. Ianni, T. Krennwallner, C. Redl, and
P. Schüller. A model building framework for answer set
programming with external computations. Theory and Practice
of Logic Progeamming, 16(4):418–464, 2016.
[EFLP99] Thomas Eiter, Wolfgang Faber, Nicola Leone, and Gerald Pfeifer.
The diagnosis frontend of the dlv system. AI Commun.,
12(1-2):99–111, 1999.
[EGL16] Esra Erdem, Michael Gelfond, and Nicola Leone. Applications of
answer set programming. AI Magazine, 37(3):53–68, 2016.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[EGM97] Thomas Eiter, Georg Gottlob, and Heikki Mannila. Disjunctive
datalog. ACM Trans. Database Syst., 22(3):364–418, 1997.
[EIST06] Thomas Eiter, Giovambattista Ianni, Roman Schindlauer, and
Hans Tompits. Effective integration of declarative rules with
external evaluations for semantic-web reasoning. In ESWC,
pages 273–287, 2006.
[EL03] Esra Erdem and Vladimir Lifschitz. Tight logic programs. TPLP,
3(4-5):499–518, 2003.
[FMMT01] R. Finkel, V. Marek, N. Moore, and M. Truszczy´nski. Computing
stable models in parallel. In ASP’01, 2001.
[For82] Charles L. Forgy. Rete: A fast algorithm for the many
pattern/many object pattern match problem. Artificial
Intelligence, 19(1):17 – 37, 1982.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[GJM+
06] J. Gressmann, T. Janhunen, R. E. Mercer, T. Schaub, S. Thiele,
and R. Tichy. On probing and multi-threading in platypus. In
ECAI’06, volume 141 of FAIA, pages 392–396. IOS Press, 2006.
[GJR] M. Gebser, T. Janhunen, and J. Rintanen. Answer set
programming as SAT modulo acyclicity. pages 351–356.
[GKK+
a] M. Gebser, R. Kaminski, B. Kaufmann, M. Ostrowski, T. Schaub,
and S. Thiele. Engineering an incremental ASP solver. pages
190–205.
[GKK+
b] M. Gebser, R. Kaminski, B. Kaufmann, M. Ostrowski, T. Schaub,
and P. Wanko. Theory solving made easy with clingo 5. pages
2:1–2:15.
[GKK+
11a] M. Gebser, R. Kaminski, B. Kaufmann, T. Schaub, M. Schneider,
and S. Ziller. A portfolio solver for answer set programming:
Preliminary report. In LPNMR’11, volume 6645, pages 352–357,
2011.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[GKK+
11b] M. Gebser, R. Kaminski, B. Kaufmann, T. Schaub, and
B. Schnor. Cluster-based ASP solving with claspar. In
LPNMR’11, volume 6645, pages 364–369, 2011.
[GKK+
15] M. Gebser, R. Kaminski, B. Kaufmann, J. Romero, and
T. Schaub. Progress in clasp series 3. In LPNMR’15, volume
9345 of LNCS, pages 368–383. Springer, 2015.
[GKK+
16] Martin Gebser, Roland Kaminski, Benjamin Kaufmann, Max
Ostrowski, Torsten Schaub, and Philipp Wanko. Theory solving
made easy with clingo 5. In ICLP (Technical Communications),
volume 52 of OASICS, pages 2:1–2:15. Schloss Dagstuhl -
Leibniz-Zentrum fuer Informatik, 2016.
[GKKS11] Martin Gebser, Roland Kaminski, Arne König, and Torsten
Schaub. Advances in gringo series 3. In LPNMR, volume 6645
of Lecture Notes in Computer Science, pages 345–351.
Springer, 2011.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[GKNS07] Martin Gebser, Benjamin Kaufmann, André Neumann, and
Torsten Schaub. clasp : A conflict-driven answer set solver. In
LPNMR, volume 4483 of Lecture Notes in Computer Science,
pages 260–265. Springer, 2007.
[GKS12] M. Gebser, B. Kaufmann, and T. Schaub. Multi-threaded ASP
solving with clasp. TPLP, 12(4-5):525–545, 2012.
[GL91] Michael Gelfond and Vladimir Lifschitz. Classical negation in
logic programs and disjunctive databases. New Generation
Comput., 9(3/4):365–386, 1991.
[GLM06] Enrico Giunchiglia, Yuliya Lierler, and Marco Maratea. Answer
set programming based on propositional satisfiability. J. Autom.
Reasoning, 36(4):345–377, 2006.
[GMR17] Martin Gebser, Marco Maratea, and Francesco Ricca. The sixth
answer set programming competition. J. Artif. Intell. Res.,
60:41–95, 2017.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[GNA13] Terracina Giorgio, Leone Nicola, and Martello Alessandra.
Logic-based techniques for data cleaning: an application to the
italian national healthcare system. LPNMR, 2013.
[GST07] Martin Gebser, Torsten Schaub, and Sven Thiele. Gringo : A
new grounder for answer set programming. In LPNMR, volume
4483 of Lecture Notes in Computer Science, pages 266–271.
Springer, 2007.
[HKLS15] Holger Hoos, Roland Kaminski, Marius Lindauer, and Torsten
Schaub. aspeed: Solver scheduling via answer set
programming. TPLP, 15(1):117–142, 2015.
[HLS14] H. Hoos, M. Lindauer, and T. Schaub. claspfolio 2: Advances in
algorithm selection for answer set programming. TPLP,
14(4-5):569–585, 2014.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[Jan06] T. Janhunen. Some (in)translatability results for normal logic
programs and propositional theories. J. of Appl. Non-Class.
Log., 16(1-2):35–86, 2006.
[JN11] T. Janhunen and I. Niemelä. Compact translations of
non-disjunctive answer set programs to propositional clauses. In
LP, KR, and NMR, volume 6565 of LNCS, pages 111–130.
Springer, 2011.
[JNS+
06] Tomi Janhunen, Ilkka Niemelä, Dietmar Seipel, Patrik Simons,
and Jia-Huai You. Unfolding partiality and disjunctions in stable
model semantics. ACM Trans. Comput. Log., 7(1):1–37, 2006.
[JNS09] T. Janhunen, I. Niemelä, and M. Sevalnev. Computing stable
models via reductions to difference logic. In LPNMR’09, volume
5753, pages 142–154, 2009.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[KLPS16] Benjamin Kaufmann, Nicola Leone, Simona Perri, and Torsten
Schaub. Grounding and solving in answer set programming. AI
Magazine, 37(3):25–32, 2016.
[Lif02] Vladimir Lifschitz. Answer set programming and plan generation.
Artif. Intell., 138(1-2):39–54, 2002.
[LJN12] G. Liu, T. Janhunen, and I. Niemelä. Answer set programming
via mixed integer programming. In KR’12, pages 32–42. AAAI
Press, 2012.
[LM04] Yuliya Lierler and Marco Maratea. Cmodels-2: Sat-based
answer set solver enhanced to non-tight programs. In LPNMR,
volume 2923 of Lecture Notes in Computer Science, pages
346–350. Springer, 2004.
[LMR16] Yuliya Lierler, Marco Maratea, and Francesco Ricca. Systems,
engineering environments, and competitions. AI Magazine,
37(3):45–52, 2016.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[LN09] Claire Lefèvre and Pascal Nicolas. The first version of a new
ASP solver : Asperix. In LPNMR, volume 5753 of Lecture Notes
in Computer Science, pages 522–527. Springer, 2009.
[LPF+
06] Nicola Leone, Gerald Pfeifer, Wolfgang Faber, Thomas Eiter,
Georg Gottlob, Simona Perri, and Francesco Scarcello. The DLV
system for knowledge representation and reasoning. ACM
Trans. Comput. Log., 7(3):499–562, 2006.
[LPST10] Lengning Liu, Enrico Pontelli, Tran Cao Son, and Miroslaw
Truszczynski. Logic programs with abstract constraint atoms:
The role of computations. Artif. Intell., 174(3-4):295–315, 2010.
[LZ02] Fangzhen Lin and Yuting Zhao. ASSAT: Computing answer sets
of a logic program by sat solvers. In
the Eighteenth National Conference on Artif. Intell. (AAAI-2002),
Edmonton, Alberta, Canada, 2002. AAAI Press / MIT Press.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[MPR14] M. Maratea, L. Pulina, and F. Ricca. A multi-engine approach to
answer-set programming. TPLP, 14(6):841–868, 2014.
[MPR15] M. Maratea, L. Pulina, and F. Ricca. Multi-level algorithm
selection for ASP. In LPNMR’15, volume 9345 of LNCS, pages
439–445. Springer, 2015.
[Nie08] I. Niemelä. Stable models and difference logic.
53(1-4):313–329, 2008.
[NJN11] M. Nguyen, T. Janhunen, and I. Niemelä. Translating answer-set
programs into bit-vector logic. In INAP’11 and WLP’11, volume
7773, pages 95–113, 2011.
[PBB03] E. Pontelli, M. Balduccini, and F. Bermudez. Non-monotonic
reasoning on Beowulf platforms. In PADL’03, volume 2562,
pages 37–57, 2003.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[PDPR09] Alessandro Dal Palù, Agostino Dovier, Enrico Pontelli, and
Gianfranco Rossi. GASP: answer set programming with lazy
grounding. Fundam. Inform., 96(3):297–322, 2009.
[PRS13] S. Perri, F. Ricca, and M. Sirianni. Parallel instantiation of ASP
programs: Techniques and experiments. 13(2):253–278, 2013.
[PT09] L. Pulina and A. Tacchella. A self-adaptive multi-engine solver for
quantified Boolean formulas. Constraints, 14(1):80–116, 2009.
[RDG+
10] Francesco Ricca, Antonella Dimasi, Giovanni Grasso,
Salvatore Maria Ielpa, Salvatore Iiritano, Marco Manna, and
Nicola Leone. A logic-based system for e-tourism. Fundam.
Inform., 105(1-2):35–55, 2010.
[RGA+
12] Francesco Ricca, Giovanni Grasso, Mario Alviano, Marco
Manna, Vincenzino Lio, Salvatore Iiritano, and Nicola Leone.
Team-building with answer set programming in the gioia-tauro
seaport. TPLP, 12(3):361–381, 2012.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[Sak11] Chiaki Sakama. Dishonest reasoning by abduction. In IJCAI,
pages 1063–1064, 2011.
[SL16] B. Susman and Y. Lierler. Smt-based constraint answer set
solver EZSMT (system description). In ICLP (Technical
Communications), volume 52 of OASICS, pages 1:1–1:15. SD,
2016.
[SLM09] João P. Marques Silva, Inês Lynce, and Sharad Malik.
Conflict-driven clause learning SAT solvers. In Handbook of
Satisfiability, volume 185 of Frontiers in Artificial Intelligence and
Applications, pages 131–153. IOS Press, 2009.
[SN99] Timo Soininen and Ilkka Niemelä. Developing a declarative rule
language for applications in product configuration. In PADL,
pages 305–319, 1999.
Francesco Ricca Techniques and Systems for ASP
Introduction and Preliminaries
Evaluation Techniques and Systems
Interfaces and Systems for Extensions
References
References (cont.)
[SN01] Tommi Syrjänen and Ilkka Niemelä. The smodels system. In
LPNMR, volume 2173 of Lecture Notes in Computer Science,
pages 434–438. Springer, 2001.
[SNS02] Patrik Simons, Ilkka Niemelä, and Timo Soininen. Extending and
implementing the stable model semantics. Artif. Intell.,
138(1-2):181–234, 2002.
[Wei17] Antonius Weinzierl. Blending lazy-grounding and CDNL search
for answer-set solving. In LPNMR, volume 10377 of Lecture
Notes in Computer Science, pages 191–204. Springer, 2017.
[XHHL08] L. Xu, F. Hutter, H. Hoos, and K. Leyton-Brown. SATzilla:
Portfolio-based algorithm selection for SAT. Journal of Artif.
Intell. Research, 32:565–606, 2008.
[ZBH96] H. Zhang, M. Bonacina, and J. Hsiang. PSATO: A distributed
propositional prover and its application to quasigroup problems.
Journal of Symbolic Computation, 21(4):543–560, 1996.
Francesco Ricca Techniques and Systems for ASP

Más contenido relacionado

La actualidad más candente

PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Re...
PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Re...PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Re...
PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Re...RuleML
 
Propositional logic(part 2)
Propositional logic(part 2)Propositional logic(part 2)
Propositional logic(part 2)SURBHI SAROHA
 
(Final) cidoc 2009 chinese lang translation of the aat
(Final) cidoc 2009 chinese lang translation of the aat(Final) cidoc 2009 chinese lang translation of the aat
(Final) cidoc 2009 chinese lang translation of the aatAAT Taiwan
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsICSM 2011
 
On Applying Or-Parallelism and Tabling to Logic Programs
On Applying Or-Parallelism and Tabling to Logic ProgramsOn Applying Or-Parallelism and Tabling to Logic Programs
On Applying Or-Parallelism and Tabling to Logic ProgramsLino Possamai
 

La actualidad más candente (10)

PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Re...
PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Re...PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Re...
PSOA2TPTP: A Reference Translator for Interoperating PSOA RuleML with TPTP Re...
 
Propositional logic(part 2)
Propositional logic(part 2)Propositional logic(part 2)
Propositional logic(part 2)
 
Incomplete Information in RDF
Incomplete Information in RDFIncomplete Information in RDF
Incomplete Information in RDF
 
IJETAE_1013_119
IJETAE_1013_119IJETAE_1013_119
IJETAE_1013_119
 
(Final) cidoc 2009 chinese lang translation of the aat
(Final) cidoc 2009 chinese lang translation of the aat(Final) cidoc 2009 chinese lang translation of the aat
(Final) cidoc 2009 chinese lang translation of the aat
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API Limitations
 
Prolog & lisp
Prolog & lispProlog & lisp
Prolog & lisp
 
On Applying Or-Parallelism and Tabling to Logic Programs
On Applying Or-Parallelism and Tabling to Logic ProgramsOn Applying Or-Parallelism and Tabling to Logic Programs
On Applying Or-Parallelism and Tabling to Logic Programs
 
IJCTT-V4I9P137
IJCTT-V4I9P137IJCTT-V4I9P137
IJCTT-V4I9P137
 
Packrat parsing
Packrat parsingPackrat parsing
Packrat parsing
 

Similar a A Survey of Evaluation Techniques and Systems for Answer Set Programming

Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELJoel Falcou
 
An Optimized Parallel Algorithm for Longest Common Subsequence Using Openmp –...
An Optimized Parallel Algorithm for Longest Common Subsequence Using Openmp –...An Optimized Parallel Algorithm for Longest Common Subsequence Using Openmp –...
An Optimized Parallel Algorithm for Longest Common Subsequence Using Openmp –...IRJET Journal
 
apsis - Automatic Hyperparameter Optimization Framework for Machine Learning
apsis - Automatic Hyperparameter Optimization Framework for Machine Learningapsis - Automatic Hyperparameter Optimization Framework for Machine Learning
apsis - Automatic Hyperparameter Optimization Framework for Machine Learningandi1400
 
Designing A Syntax Based Retrieval System03
Designing A Syntax Based Retrieval System03Designing A Syntax Based Retrieval System03
Designing A Syntax Based Retrieval System03Avelin Huo
 
HDR Defence - Software Abstractions for Parallel Architectures
HDR Defence - Software Abstractions for Parallel ArchitecturesHDR Defence - Software Abstractions for Parallel Architectures
HDR Defence - Software Abstractions for Parallel ArchitecturesJoel Falcou
 
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVSCBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVSGautham Rajesh
 
Software Abstractions for Parallel Hardware
Software Abstractions for Parallel HardwareSoftware Abstractions for Parallel Hardware
Software Abstractions for Parallel HardwareJoel Falcou
 
A Verified Modern SAT Solver
A Verified Modern SAT SolverA Verified Modern SAT Solver
A Verified Modern SAT SolverKatie Naple
 
A lexisearch algorithm for the Bottleneck Traveling Salesman Problem
A lexisearch algorithm for the Bottleneck Traveling Salesman ProblemA lexisearch algorithm for the Bottleneck Traveling Salesman Problem
A lexisearch algorithm for the Bottleneck Traveling Salesman ProblemCSCJournals
 
Continuous Architecting of Stream-Based Systems
Continuous Architecting of Stream-Based SystemsContinuous Architecting of Stream-Based Systems
Continuous Architecting of Stream-Based SystemsCHOOSE
 
3110003_PPS_GTU_Study_Material_Presentations_Unit-2_18122020041700AM (1).pptx
3110003_PPS_GTU_Study_Material_Presentations_Unit-2_18122020041700AM (1).pptx3110003_PPS_GTU_Study_Material_Presentations_Unit-2_18122020041700AM (1).pptx
3110003_PPS_GTU_Study_Material_Presentations_Unit-2_18122020041700AM (1).pptxLeenaChaudhari24
 
Rapport_Cemracs2012
Rapport_Cemracs2012Rapport_Cemracs2012
Rapport_Cemracs2012Jussara F.M.
 
Software testing strategies
Software testing strategiesSoftware testing strategies
Software testing strategiesKrishna Sujeer
 
Reference Scope Identification of Citances Using Convolutional Neural Network
Reference Scope Identification of Citances Using Convolutional Neural NetworkReference Scope Identification of Citances Using Convolutional Neural Network
Reference Scope Identification of Citances Using Convolutional Neural NetworkSaurav Jha
 
CS 542 -- Query Execution
CS 542 -- Query ExecutionCS 542 -- Query Execution
CS 542 -- Query ExecutionJ Singh
 
Compiler_Project_Srikanth_Vanama
Compiler_Project_Srikanth_VanamaCompiler_Project_Srikanth_Vanama
Compiler_Project_Srikanth_VanamaSrikanth Vanama
 
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...Pooyan Jamshidi
 

Similar a A Survey of Evaluation Techniques and Systems for Answer Set Programming (20)

Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSEL
 
An Optimized Parallel Algorithm for Longest Common Subsequence Using Openmp –...
An Optimized Parallel Algorithm for Longest Common Subsequence Using Openmp –...An Optimized Parallel Algorithm for Longest Common Subsequence Using Openmp –...
An Optimized Parallel Algorithm for Longest Common Subsequence Using Openmp –...
 
apsis - Automatic Hyperparameter Optimization Framework for Machine Learning
apsis - Automatic Hyperparameter Optimization Framework for Machine Learningapsis - Automatic Hyperparameter Optimization Framework for Machine Learning
apsis - Automatic Hyperparameter Optimization Framework for Machine Learning
 
Designing A Syntax Based Retrieval System03
Designing A Syntax Based Retrieval System03Designing A Syntax Based Retrieval System03
Designing A Syntax Based Retrieval System03
 
HDR Defence - Software Abstractions for Parallel Architectures
HDR Defence - Software Abstractions for Parallel ArchitecturesHDR Defence - Software Abstractions for Parallel Architectures
HDR Defence - Software Abstractions for Parallel Architectures
 
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVSCBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
CBSE XII COMPUTER SCIENCE STUDY MATERIAL BY KVS
 
Software Abstractions for Parallel Hardware
Software Abstractions for Parallel HardwareSoftware Abstractions for Parallel Hardware
Software Abstractions for Parallel Hardware
 
Project
ProjectProject
Project
 
Thesis
ThesisThesis
Thesis
 
A Verified Modern SAT Solver
A Verified Modern SAT SolverA Verified Modern SAT Solver
A Verified Modern SAT Solver
 
A lexisearch algorithm for the Bottleneck Traveling Salesman Problem
A lexisearch algorithm for the Bottleneck Traveling Salesman ProblemA lexisearch algorithm for the Bottleneck Traveling Salesman Problem
A lexisearch algorithm for the Bottleneck Traveling Salesman Problem
 
Continuous Architecting of Stream-Based Systems
Continuous Architecting of Stream-Based SystemsContinuous Architecting of Stream-Based Systems
Continuous Architecting of Stream-Based Systems
 
3110003_PPS_GTU_Study_Material_Presentations_Unit-2_18122020041700AM (1).pptx
3110003_PPS_GTU_Study_Material_Presentations_Unit-2_18122020041700AM (1).pptx3110003_PPS_GTU_Study_Material_Presentations_Unit-2_18122020041700AM (1).pptx
3110003_PPS_GTU_Study_Material_Presentations_Unit-2_18122020041700AM (1).pptx
 
Rapport_Cemracs2012
Rapport_Cemracs2012Rapport_Cemracs2012
Rapport_Cemracs2012
 
Software testing strategies
Software testing strategiesSoftware testing strategies
Software testing strategies
 
Seminar on MATLAB
Seminar on MATLABSeminar on MATLAB
Seminar on MATLAB
 
Reference Scope Identification of Citances Using Convolutional Neural Network
Reference Scope Identification of Citances Using Convolutional Neural NetworkReference Scope Identification of Citances Using Convolutional Neural Network
Reference Scope Identification of Citances Using Convolutional Neural Network
 
CS 542 -- Query Execution
CS 542 -- Query ExecutionCS 542 -- Query Execution
CS 542 -- Query Execution
 
Compiler_Project_Srikanth_Vanama
Compiler_Project_Srikanth_VanamaCompiler_Project_Srikanth_Vanama
Compiler_Project_Srikanth_Vanama
 
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
 

Más de Förderverein Technische Fakultät

The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...Förderverein Technische Fakultät
 
Engineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfEngineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfFörderverein Technische Fakultät
 
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfThe Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfFörderverein Technische Fakultät
 
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Förderverein Technische Fakultät
 
East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...Förderverein Technische Fakultät
 
Advances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksAdvances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksFörderverein Technische Fakultät
 
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfIndustriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfFörderverein Technische Fakultät
 

Más de Förderverein Technische Fakultät (20)

Supervisory control of business processes
Supervisory control of business processesSupervisory control of business processes
Supervisory control of business processes
 
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
 
A Game of Chess is Like a Swordfight.pdf
A Game of Chess is Like a Swordfight.pdfA Game of Chess is Like a Swordfight.pdf
A Game of Chess is Like a Swordfight.pdf
 
From Mind to Meta.pdf
From Mind to Meta.pdfFrom Mind to Meta.pdf
From Mind to Meta.pdf
 
Miniatures Design for Tabletop Games.pdf
Miniatures Design for Tabletop Games.pdfMiniatures Design for Tabletop Games.pdf
Miniatures Design for Tabletop Games.pdf
 
Distributed Systems in the Post-Moore Era.pptx
Distributed Systems in the Post-Moore Era.pptxDistributed Systems in the Post-Moore Era.pptx
Distributed Systems in the Post-Moore Era.pptx
 
Don't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptxDon't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptx
 
Engineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfEngineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdf
 
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfThe Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
 
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
 
Towards a data driven identification of teaching patterns.pdf
Towards a data driven identification of teaching patterns.pdfTowards a data driven identification of teaching patterns.pdf
Towards a data driven identification of teaching patterns.pdf
 
Förderverein Technische Fakultät.pptx
Förderverein Technische Fakultät.pptxFörderverein Technische Fakultät.pptx
Förderverein Technische Fakultät.pptx
 
The Computing Continuum.pdf
The Computing Continuum.pdfThe Computing Continuum.pdf
The Computing Continuum.pdf
 
East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...
 
Machine Learning in Finance via Randomization
Machine Learning in Finance via RandomizationMachine Learning in Finance via Randomization
Machine Learning in Finance via Randomization
 
IT does not stop
IT does not stopIT does not stop
IT does not stop
 
Advances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksAdvances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial Networks
 
Recent Trends in Personalization at Netflix
Recent Trends in Personalization at NetflixRecent Trends in Personalization at Netflix
Recent Trends in Personalization at Netflix
 
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfIndustriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
 
Introduction to 5G from radio perspective
Introduction to 5G from radio perspectiveIntroduction to 5G from radio perspective
Introduction to 5G from radio perspective
 

Último

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Último (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

A Survey of Evaluation Techniques and Systems for Answer Set Programming

  • 1. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References A Survey of Evaluation Techniques and Systems for Answer Set Programming Francesco Ricca University of Calabria, Italy Klagenfurt 2019 Francesco Ricca Techniques and Systems for ASP
  • 2. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Outline 1 Introduction and Preliminaries 2 Evaluation Techniques and Systems 3 Interfaces and Systems for Extensions Francesco Ricca Techniques and Systems for ASP
  • 3. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Answer Set Programming (ASP) (1) Answer Set Programming (ASP)[BET11] Declarative programming paradigm Non-monotonic reasoning and logic programming Stable model semantics [GL91] Expressive KRR Language Roots in Datalog and Nonmonotonic logic Extended over the years to ease modeling → Disjunction, (Weak) Constraints, Aggregates, Functions... Can model problems up to ΣP 2 /ΠP 2 [EGM97, DEGV01] → even problems not (polynomially) translatable to SAT Standardized syntax: ASPCore 2.0 [CFG+ 12] Francesco Ricca Techniques and Systems for ASP
  • 4. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Answer Set Programming (ASP) (2) Idea: 1 Represent a computational problem by a Logic program 2 Answer sets correspond to problem solutions 3 Use an ASP solver to find these solutions Francesco Ricca Techniques and Systems for ASP
  • 5. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Answer Set Programming (ASP) (3) ASP: A Major paradigm for logic-based AI 1 Declarative, readable and expressive language → stable model semantics, language extensions [GL91]) 2 Robust and efficient implementations [LMR16] → continuous improvements (see ASP comp. [CGMR16, GMR17]) 3 Applications in several fields [EGL16] Workforce Management, Planning, Scheduling, Information Integration, Data cleaning, Bioinformatics, Robotics, Natural Language Understanding, ... see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99, DGH09, CHO+ 09, RDG+ 10, RGA+ 12, GNA13] Francesco Ricca Techniques and Systems for ASP
  • 6. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Answer Set Programming (ASP) (3) ASP: A Major paradigm for logic-based AI 1 Declarative, readable and expressive language → stable model semantics, language extensions [GL91]) 2 Robust and efficient implementations [LMR16] → continuous improvements (see ASP comp. [CGMR16, GMR17]) 3 Applications in several fields [EGL16] Workforce Management, Planning, Scheduling, Information Integration, Data cleaning, Bioinformatics, Robotics, Natural Language Understanding, ... see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99, DGH09, CHO+ 09, RDG+ 10, RGA+ 12, GNA13] Francesco Ricca Techniques and Systems for ASP
  • 7. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Answer Set Programming (ASP) (3) ASP: A Major paradigm for logic-based AI 1 Declarative, readable and expressive language → stable model semantics, language extensions [GL91]) 2 Robust and efficient implementations [LMR16] → continuous improvements (see ASP comp. [CGMR16, GMR17]) 3 Applications in several fields [EGL16] Workforce Management, Planning, Scheduling, Information Integration, Data cleaning, Bioinformatics, Robotics, Natural Language Understanding, ... see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99, DGH09, CHO+ 09, RDG+ 10, RGA+ 12, GNA13] Francesco Ricca Techniques and Systems for ASP
  • 8. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Answer Set Programming (ASP) (3) ASP: A Major paradigm for logic-based AI 1 Declarative, readable and expressive language → stable model semantics, language extensions [GL91]) 2 Robust and efficient implementations [LMR16] → continuous improvements (see ASP comp. [CGMR16, GMR17]) 3 Applications in several fields [EGL16] Workforce Management, Planning, Scheduling, Information Integration, Data cleaning, Bioinformatics, Robotics, Natural Language Understanding, ... see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99, DGH09, CHO+ 09, RDG+ 10, RGA+ 12, GNA13] Francesco Ricca Techniques and Systems for ASP
  • 9. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References ASP Syntax Rule: a1 | . . . | an :- b1, . . . , bk , not bk+1, . . . , not bm. head body Atoms and Literals: ai , bi , not bi Positive Body: b1, . . . , bk Negative Body: not bk+1, . . . , not bm. Fact: A rule with empty body Constraint: A rule with empty head Variables: allowed in atom’s arguments Must occur in the positive body (Safety) Can be seen as placeholders for constants Francesco Ricca Techniques and Systems for ASP
  • 10. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References ASP Syntax Rule: a1 | . . . | an :- b1, . . . , bk , not bk+1, . . . , not bm. head body Atoms and Literals: ai , bi , not bi Positive Body: b1, . . . , bk Negative Body: not bk+1, . . . , not bm. Fact: A rule with empty body Constraint: A rule with empty head Variables: allowed in atom’s arguments Must occur in the positive body (Safety) Can be seen as placeholders for constants Francesco Ricca Techniques and Systems for ASP
  • 11. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Informal Semantics Rule: a1 | . . . | an :- b1, . . . , bk , not bk+1, . . . , not bm. head body Informal Semantics: “If all b1, . . . , bk are true and all bk+1, . . . , bm are not true, then at least one among a1, . . . , an is true”. Francesco Ricca Techniques and Systems for ASP
  • 12. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Informal Semantics Rule: a1 | . . . | an :- b1, . . . , bk , not bk+1, . . . , not bm. head body Informal Semantics: “If all b1, . . . , bk are true and all bk+1, . . . , bm are not true, then at least one among a1, . . . , an is true”. Example isInterestedinASP(X) | isCurious(X) :- attendsASP(X). attendsASP(john). Two (minimal) models encoding two plausible scenarios: M1:{isInterestedinASP(john), attendsASP(john).} M2:{isCurious(john), attendsASP(john).} Francesco Ricca Techniques and Systems for ASP
  • 13. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Informal Semantics (3) Constraint: :- b1, . . . , bk , not bk+1, . . . , not bm. Informal Semantics: “It is not possible that all b1, . . . , bk are true and all bk+1, . . . , bm are false”. Example isInterestedinASP(X) | isCurious(X) :- attendsASP(X). :- hatesASP(X), isInterestedinASP(X). attendsASP(john). hatesASP(john). Only one plausible scenario: M1:{isInterestedinASP(john), attendsASP(john), hatesASP(john).} M2:{isCurious(john), attendsASP(john), hatesASP(john).} Francesco Ricca Techniques and Systems for ASP
  • 14. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Informal Semantics (3) Constraint: :- b1, . . . , bk , not bk+1, . . . , not bm. Informal Semantics: “It is not possible that all b1, . . . , bk are true and all bk+1, . . . , bm are false”. Example isInterestedinASP(X) | isCurious(X) :- attendsASP(X). :- hatesASP(X), isInterestedinASP(X). attendsASP(john). hatesASP(john). Only one plausible scenario: M1:{isInterestedinASP(john), attendsASP(john), hatesASP(john).} M2:{isCurious(john), attendsASP(john), hatesASP(john).} Francesco Ricca Techniques and Systems for ASP
  • 15. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Extensions for Modeling Optimization Problems Weak Constraints: Express desiderata Constraints which should possibly be satisfied (as soft constraints in CSP) Syntax: :∼ b(X, Y). Intuitive meaning: “set b as false, if possible” Francesco Ricca Techniques and Systems for ASP
  • 16. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Extensions for Modeling Optimization Problems Weak Constraints: Express desiderata Constraints which should possibly be satisfied (as soft constraints in CSP) Syntax: :∼ b(X, Y). [w@p] Weigth and Priority: ([w@p]) • higher weights/priorities ⇒ higher importance • “@p” can be omitted “minimize the sum of the weights of the violated constraints in the highest priority level, and so on” Declarative specification of optimization problems Francesco Ricca Techniques and Systems for ASP
  • 17. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Aggregates (Informal) Aggregate atoms: Express functions calculated over sets of elements: Lg <op f{S} <op Ug Example 5 < #count{EmpId : emp(EmpId, male, Skill, Salary)} ≤ 10 The atom is true if the number of male employees is greater than 5 and does not exceed 10. Francesco Ricca Techniques and Systems for ASP
  • 18. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Aggregates (Informal) Aggregate atoms: Express functions calculated over sets of elements: Lg <op f{S} <op Ug Example 5 < #count{EmpId : emp(EmpId, male, Skill, Salary)} ≤ 10 The atom is true if the number of male employees is greater than 5 and does not exceed 10. Allows for compact specifications of rules and constraints! Francesco Ricca Techniques and Systems for ASP
  • 19. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Programming in ASP (Example 1) Example (3-col) Problem: Given a graph, assign one color out of 3 colors to each node such that two adjacent nodes have always different colors. Input: a Graph is represented by node(_) and edge(_, _). % guess a coloring for the nodes (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). % discard colorings where adjacent nodes have the same color (c) :- edge(X, Y), col(X, C), col(Y, C). % NB: answer sets are subset minimal → only one color per node Francesco Ricca Techniques and Systems for ASP
  • 20. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Programming in ASP (Example 1) Example (3-col) Problem: Given a graph, assign one color out of 3 colors to each node such that two adjacent nodes have always different colors. Input: a Graph is represented by node(_) and edge(_, _). % guess a coloring for the nodes (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). % discard colorings where adjacent nodes have the same color (c) :- edge(X, Y), col(X, C), col(Y, C). % NB: answer sets are subset minimal → only one color per node Francesco Ricca Techniques and Systems for ASP
  • 21. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Programming in ASP (Example 1) Example (3-col) Problem: Given a graph, assign one color out of 3 colors to each node such that two adjacent nodes have always different colors. Input: a Graph is represented by node(_) and edge(_, _). % guess a coloring for the nodes (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). % discard colorings where adjacent nodes have the same color (c) :- edge(X, Y), col(X, C), col(Y, C). % NB: answer sets are subset minimal → only one color per node Francesco Ricca Techniques and Systems for ASP
  • 22. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Programming in ASP (Example 1) Example (3-col) Problem: Given a graph, assign one color out of 3 colors to each node such that two adjacent nodes have always different colors. Input: a Graph is represented by node(_) and edge(_, _). % guess a coloring for the nodes (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). % discard colorings where adjacent nodes have the same color (c) :- edge(X, Y), col(X, C), col(Y, C). % NB: answer sets are subset minimal → only one color per node Francesco Ricca Techniques and Systems for ASP
  • 23. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Programming in ASP (Example 2) Example (Team Building) % An employee is either included in the team or not inTeam(I) | outTeam(I) :- emp(I, Sx, Sk, Sa). % The team consists of a certain number of employees :- nEmp(N), #count{I : inTeam(I)} <> N. % At least a given number of different skills must be present in the team :- nSkill(M), #count{Sk : emp(I, Sx, Sk, Sa), inTeam(I)} < M. % The sum of the salaries of the employees working in the team must not exceed the given budget :- budget(B), #sum{Sa, I : emp(I, Sx, Sk, Sa), inTeam(I)} > B. % The salary of each individual employee is within a specified limit :- maxSal(M), #max{Sa : emp(I, Sx, Sk, Sa), inTeam(I)} > M. Francesco Ricca Techniques and Systems for ASP
  • 24. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Programming in ASP (Example 3) Example (Traveling Salesman Person) Problem: Find a path of minimum length in a Weighted Graph beginning at the starting node which contains all nodes of the graph. Input: node(_) and edge(_, _, _), and start(_). % Guess a path inPath(X, Y) | outPath(X, Y) :- edge(X, Y, _). % Ensure that it is Hamiltonian :- #count{X : inPath(X, Y)} > 1. :- #count{Y : inPath(X, Y)} > 1. :- node(X), not reached(X). :- inPath(X, Y), start(Y). reached(X) :- reached(Y), inPath(Y, X). reached(X) :- start(X). % Minimize the sum of distances :∼ inPath(X, Y), edge(X, Y, C). [C] | Guess | | Check | | | Aux. Rules | | Optimize Francesco Ricca Techniques and Systems for ASP
  • 25. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Programming in ASP (Example 3) Example (Traveling Salesman Person) Problem: Find a path of minimum length in a Weighted Graph beginning at the starting node which contains all nodes of the graph. Input: node(_) and edge(_, _, _), and start(_). % Guess a path inPath(X, Y) | outPath(X, Y) :- edge(X, Y, _). % Ensure that it is Hamiltonian :- #count{X : inPath(X, Y)} > 1. :- #count{Y : inPath(X, Y)} > 1. :- node(X), not reached(X). :- inPath(X, Y), start(Y). reached(X) :- reached(Y), inPath(Y, X). reached(X) :- start(X). % Minimize the sum of distances :∼ inPath(X, Y), edge(X, Y, C). [C] | Guess | | Check | | | Aux. Rules | | Optimize Francesco Ricca Techniques and Systems for ASP
  • 26. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Programming in ASP (Example 3) Example (Traveling Salesman Person) Problem: Find a path of minimum length in a Weighted Graph beginning at the starting node which contains all nodes of the graph. Input: node(_) and edge(_, _, _), and start(_). % Guess a path inPath(X, Y) | outPath(X, Y) :- edge(X, Y, _). % Ensure that it is Hamiltonian :- #count{X : inPath(X, Y)} > 1. :- #count{Y : inPath(X, Y)} > 1. :- node(X), not reached(X). :- inPath(X, Y), start(Y). reached(X) :- reached(Y), inPath(Y, X). reached(X) :- start(X). % Minimize the sum of distances :∼ inPath(X, Y), edge(X, Y, C). [C] | Guess | | Check | | | Aux. Rules | | Optimize Francesco Ricca Techniques and Systems for ASP
  • 27. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Main Evaluation Strategies Evaluation of ASP Programs [KLPS16] Traditionally a two-step process: “Ground+Solve” 1 Instantiation or grounding → Variable elimination → Exponential output → Support language features & Keep output small!! 2 Propositional search or ASP solving → Model Generation: “compute models” → related to SAT → (Stable) Model Checking: “check if model is stable” → coNP Single step evaluation: “Grounding-less” → Grounding bottleneck → Grounding and search interleaved Francesco Ricca Techniques and Systems for ASP
  • 28. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References The traditional Architecture of ASP Systems “Pay as you go approach” The instantiator can often evaluate stratified programs The model generator or solver suffices for normal/HCF The model checker needed for unrestricted disjunction Francesco Ricca Techniques and Systems for ASP
  • 29. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References About the Instantiation Some facts: Exponential in the worst case Input of a subsequent exponential procedure Significantly affects the performance of the overall process Full instantiation: i.e., apply every possible substitution → Not viable in practice Intelligent instantiation → Keep the size of the instantiation as small as possible → Equivalent to the full one → Intelligent Instantiators can solve problems in P → Deductive Databases as a subcase! Francesco Ricca Techniques and Systems for ASP
  • 30. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References About the Instantiation Some facts: Exponential in the worst case Input of a subsequent exponential procedure Significantly affects the performance of the overall process Full instantiation: i.e., apply every possible substitution → Not viable in practice Intelligent instantiation → Keep the size of the instantiation as small as possible → Equivalent to the full one → Intelligent Instantiators can solve problems in P → Deductive Databases as a subcase! Francesco Ricca Techniques and Systems for ASP
  • 31. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References About the Instantiation Some facts: Exponential in the worst case Input of a subsequent exponential procedure Significantly affects the performance of the overall process Full instantiation: i.e., apply every possible substitution → Not viable in practice Intelligent instantiation → Keep the size of the instantiation as small as possible → Equivalent to the full one → Intelligent Instantiators can solve problems in P → Deductive Databases as a subcase! Francesco Ricca Techniques and Systems for ASP
  • 32. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Instantiation Example: 3-Colorability % guess a coloring for the nodes (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). % discard colorings where adjacent nodes have the same color (c) :- edge(X, Y), col(X, C), col(Y, C). Instance: node(1). node(2). node(3). edge(1, 2). edge(2, 3). Francesco Ricca Techniques and Systems for ASP
  • 33. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Instantiation Example: 3-Colorability % guess a coloring for the nodes (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). % discard colorings where adjacent nodes have the same color (c) :- edge(X, Y), col(X, C), col(Y, C). Instance: node(1). node(2). node(3). edge(1, 2). edge(2, 3). Full Theoretical Instantiation: col(red, red) | col(red, yellow) | col(red, green) :- node(red). col(yellow, red) | col(yellow, yellow) | col(yellow, green) :- node(yellow). col(green, red) | col(green, yellow) | col(green, green) :- node(green). . . . col(1, red) | col(1, yellow) | col(1, green) :- node(1). . . . :- edge(1, 2), col(1, 1), col(2, 1). . . . :- edge(1, 2), col(1, red), col(2, red). . . . Francesco Ricca Techniques and Systems for ASP
  • 34. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Instantiation Example: 3-Colorability % guess a coloring for the nodes (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). % discard colorings where adjacent nodes have the same color (c) :- edge(X, Y), col(X, C), col(Y, C). Instance: node(1). node(2). node(3). edge(1, 2). edge(2, 3). Full Theoretical Instantiation: → is huge (2916 rules) and redundant! col(red, red) | col(red, yellow) | col(red, green) :- node(red). col(yellow, red) | col(yellow, yellow) | col(yellow, green) :- node(yellow). col(green, red) | col(green, yellow) | col(green, green) :- node(green). . . . col(1, red) | col(1, yellow) | col(1, green) :- node(1). ← OK! . . . :- edge(1, 2), col(1, 1), col(2, 1). ← redundant! . . . :- edge(1, 2), col(1, red), col(2, red). ← OK! . . . Francesco Ricca Techniques and Systems for ASP
  • 35. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Instantiation Example: 3-Colorability % guess a coloring for the nodes (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). % discard colorings where adjacent nodes have the same color (c) :- edge(X, Y), col(X, C), col(Y, C). Instance: node(1). node(2). node(3). edge(1, 2). edge(2, 3). Intelligent Instantiation: → equivalent but much smaller (9 rules)! col(1, red) | col(1, yellow) | col(1, green). col(2, red) | col(2, yellow) | col(2, green). col(3, red) | col(3, yellow) | col(3, green). :- col(1, red), col(2, red). :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). Francesco Ricca Techniques and Systems for ASP
  • 36. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation & Checking Model Generator or Solver → produces candidate models Works on propositional programs Similar to a SAT solver Intelligent backtracking algorithm Propagate Deterministic Consequences → Unit Propagation, Support Propagation, → Well-founded Negation, etc. Assume a literal l (heuristically) until a model is generated Upon inconsistency Backtrack (assume not l) Model Checker → checks if candidates are Answer Sets Enabled only for hard (non-HCF) instances Implements a coNP-complete task Francesco Ricca Techniques and Systems for ASP
  • 37. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation & Checking Model Generator or Solver → produces candidate models Works on propositional programs Similar to a SAT solver Intelligent backtracking algorithm Propagate Deterministic Consequences → Unit Propagation, Support Propagation, → Well-founded Negation, etc. Assume a literal l (heuristically) until a model is generated Upon inconsistency Backtrack (assume not l) Model Checker → checks if candidates are Answer Sets Enabled only for hard (non-HCF) instances Implements a coNP-complete task Francesco Ricca Techniques and Systems for ASP
  • 38. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation Example: 3-Colorability Model Generation step: col(1, red) | col(1, yellow) | col(1, green). col(2, red) | col(2, yellow) | col(2, green). col(3, red) | col(3, yellow) | col(3, green). :- col(1, red), col(2, red). :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). True: {} False: {} Francesco Ricca Techniques and Systems for ASP
  • 39. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation Example: 3-Colorability Model Generation step: Chose literal col(1, red) | col(1, yellow) | col(1, green). col(2, red) | col(2, yellow) | col(2, green). col(3, red) | col(3, yellow) | col(3, green). :- col(1, red), col(2, red). :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). True: {} ← col(1, red) False: {} Francesco Ricca Techniques and Systems for ASP
  • 40. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation Example: 3-Colorability Model Generation step: Propagate Deterministic Consequences col(1, red) | col(1, yellow) | col(1, green). ← 1-support propagation col(2, red) | col(2, yellow) | col(2, green). col(3, red) | col(3, yellow) | col(3, green). :- col(1, red), col(2, red). ← 2-unit propagation :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). True: {col(1, red)} False: { col(1, yellow), col(1, green), col(2, red) } Francesco Ricca Techniques and Systems for ASP
  • 41. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation Example: 3-Colorability Model Generation step: Chose literal col(1, red) | col(1, yellow) | col(1, green). col(2, red) | col(2, yellow) | col(2, green). col(3, red) | col(3, yellow) | col(3, green). :- col(1, red), col(2, red). :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). True: {col(1, red) ← col(2, yellow) } False: { col(1, yellow), col(1, green), col(2, red) } Francesco Ricca Techniques and Systems for ASP
  • 42. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation Example: 3-Colorability Model Generation step: Propagate Deterministic Consequences col(1, red) | col(1, yellow) | col(1, green). col(2, red) | col(2, yellow) | col(2, green). ←1-support propagation col(3, red) | col(3, yellow) | col(3, green). :- col(1, red), col(2, red). :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). ← 2-unit propagation True: {col(1, red), col(2, yellow) } False: { col(1, yellow), col(1, green), col(2, red), col(2, green), col(3, yellow) } Francesco Ricca Techniques and Systems for ASP
  • 43. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation Example: 3-Colorability Model Generation step: Chose literal col(1, red) | col(1, yellow) | col(1, green). col(2, red) | col(2, yellow) | col(2, green). col(3, red) | col(3, yellow) | col(3, green). :- col(1, red), col(2, red). :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). True: {col(1, red), col(2, yellow)} ← col(3, red) False: { col(1, yellow), col(1, green), col(2, red), col(2, green), col(3, yellow) } Francesco Ricca Techniques and Systems for ASP
  • 44. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation Example: 3-Colorability Model Generation step: Propagate Deterministic Consequences col(1, red) | col(1, yellow) | col(1, green). col(2, red) | col(2, yellow) | col(2, green). col(3, red) | col(3, yellow) | col(3, green). ←support propagation :- col(1, red), col(2, red). :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). True: {col(1, red), col(2, yellow), col(3, red) False: { col(1, yellow), col(1, green), col(2, red), col(2, green), col(3, yellow) col(3, green) } Francesco Ricca Techniques and Systems for ASP
  • 45. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Generation Example: 3-Colorability Model Generation step: Answer set found! col(1, red) | col(1, yellow) | col(1, green). col(2, red) | col(2, yellow) | col(2, green). col(3, red) | col(3, yellow) | col(3, green). :- col(1, red), col(2, red). :- col(1, green), col(2, green). :- col(1, yellow), col(2, yellow). :- col(2, red), col(3, red). :- col(2, green), col(3, green). :- col(2, yellow), col(3, yellow). Answer Set: {col(1, red), col(2, yellow), col(3, red) } Francesco Ricca Techniques and Systems for ASP
  • 46. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (1) Consider: M = {a, b} a | b | c. a :- b. b :- a, not c.. a :- c. Francesco Ricca Techniques and Systems for ASP
  • 47. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (1) Step:(1) Consider: M = {a, b} a | b | c. a :- b. b :- a, not c.. a :- c. Francesco Ricca Techniques and Systems for ASP
  • 48. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (1) Step:(2) Consider: M = {a, b} a | b | c. a :- b. b :- a, not c. Francesco Ricca Techniques and Systems for ASP
  • 49. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (1) Step:(3) Consider: M = {a, b} a | b | c. a :- b. b :- a. Francesco Ricca Techniques and Systems for ASP
  • 50. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (2) Consider: M = {a, b} a | b. a :- b. b :- a. Francesco Ricca Techniques and Systems for ASP
  • 51. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (2) Step: (6-9) Consider: M = {a, b} a | b. =⇒ ← a ∧ b a :- b. b :- a. Francesco Ricca Techniques and Systems for ASP
  • 52. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (2) Step: (6-9) Consider: M = {a, b} a | b. =⇒ ← a ∧ b a :- b. =⇒ b ← a b :- a. Francesco Ricca Techniques and Systems for ASP
  • 53. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (2) Step: (6-9) Consider: M = {a, b} a | b. =⇒ ← a ∧ b a :- b. =⇒ b ← a b :- a. =⇒ a ← b Francesco Ricca Techniques and Systems for ASP
  • 54. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (2) Step: (6-9) Consider: M = {a, b} =⇒ a ∨ b ← a | b. =⇒ ← a ∧ b a :- b. =⇒ b ← a b :- a. =⇒ a ← b Francesco Ricca Techniques and Systems for ASP
  • 55. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (2) Step: (6-9) Consider: M = {a, b} =⇒ a ∨ b a | b. =⇒ ← a ∧ b =⇒ ¬a ∨ ¬b a :- b. =⇒ b ← a =⇒ ¬a ∨ b b :- a. =⇒ a ← b =⇒ ¬b ∨ a Francesco Ricca Techniques and Systems for ASP
  • 56. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Model Checking via SAT test (2) Consider: M = {a, b} =⇒ a ∨ b =⇒ ¬a ∨ ¬b =⇒ ¬a ∨ b =⇒ ¬b ∨ a Unsatisfiable → Answer Set! Francesco Ricca Techniques and Systems for ASP
  • 57. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Evolution of grounders Lparse [SN01] → front-end system → intermediate format → normal programs → ω-restricted → “domains” DLV [LPF+ 06] → disjunctive programs → safety condition → deductive database techniques Gringo [GST07] → front-end system → Lparse format → λ-restricted → “positive recursion” Gringo v.3+ and i-dlv [GKKS11, CFPZ17] → Reinterpret DLV’s + new tech. (e.g., decompositions [BMMW17]) → ASPCore2 standard language + Language extensions Francesco Ricca Techniques and Systems for ASP
  • 58. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Evolution of grounders Lparse [SN01] → front-end system → intermediate format → normal programs → ω-restricted → “domains” DLV [LPF+ 06] → disjunctive programs → safety condition → deductive database techniques Gringo [GST07] → front-end system → Lparse format → λ-restricted → “positive recursion” Gringo v.3+ and i-dlv [GKKS11, CFPZ17] → Reinterpret DLV’s + new tech. (e.g., decompositions [BMMW17]) → ASPCore2 standard language + Language extensions Francesco Ricca Techniques and Systems for ASP
  • 59. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Native Solvers & Systems DPLL-based [DLL62] Smodels [SNS02] → dedicated inferences normal programs GnT [JNS+ 06] → disj. model checking based on Smodels DLV [LPF+ 06] → disj. unfounded sets + SAT-based check [? ] CDCL-based [SLM09] Clasp [GKNS07] → nogood learning + SAT tech. Wasp [ADLR15] → clause learning + SAT tech. Beyond CDCL (and ASP) Clingo [GKK+ 16] → monolithic (Gringo + Clasp) + ... DLV 2.0 [ACD+ 17] → monolithic (i-dlv + Wasp) + ... Francesco Ricca Techniques and Systems for ASP
  • 60. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Translation-based solvers Translation to SAT Cmodels (v1) → Clark completion for tight programs [EL03] assat [LZ02] & Cmodels (v2) [LM04] → Loop formulas Cmodels (v3) [GLM06] → disj. via SAT-based stability check lp2sat [Jan06, JN11] → level rankings [Nie08] Other target formalisms lp2acyc [GJR] → aciclycity condition lp2mip [LJN12] → mixed integer programming lp2* [JNS09, NJN11] → PB-Constraint, Diff. Logic, Bit Vector Francesco Ricca Techniques and Systems for ASP
  • 61. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Grounding less systems Lazy grounding (Interleave/blend grounding+search) GASP [PDPR09] → Based on [LPST10] ASPERIX [LN09] → Based on [LPST10] OMIGA [DEF+ 12] → Based on Rete [For82] ALPHA [Wei17] → Lazy grounding + CDCL IDP [dCDBS15] → Lazy model expansion Francesco Ricca Techniques and Systems for ASP
  • 62. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Multiprocessing & Portfolios Portfolio systems (Dominating ASP Competitions since 2011) Claspfolio [GKK+ 11a, HLS14] → SATZILLA approach [XHHL08] ME-ASP [MPR14, MPR15] → AQME approach [PT09] ASPEED & PPfolio → Optimized portfolios [HKLS15] Multiprocessing DLV parallel grounding [PRS13] (SMP machines) Lparse + DPLL-based parallel ASP solvers → [FMMT01, PBB03, BPEL05, GJM+ 06] based on [ZBH96] Multiprocessing variants of Clasp [GKK+ 11b, GKS12, GKK+ 15] → Parallel & distributed CDCL-search & portfolio ASP solving utilizing GPUs [DFPV16] Francesco Ricca Techniques and Systems for ASP
  • 63. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Systems Interfaces ASP Systems Highly optimized and sophisticated implementations Extensions are non-obvious API to make extensions easier Clingo API [GKK+b] → Customized solving control via C, lua and python scripts → Incremental solving [GKK+ a] and External propagators [DW12] Wasp API [ADLR15] → Solver extension via Python, C++, and Perl → Domain Heuristics [DGL+ 16] and Custom Propagators [CDRS17] DLV 2.0 [ACD+ 17] → i-dlv + Wasp easier development of propagators. Francesco Ricca Techniques and Systems for ASP
  • 64. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Systems Interfaces ASP Systems Highly optimized and sophisticated implementations Extensions are non-obvious API to make extensions easier Clingo API [GKK+b] → Customized solving control via C, lua and python scripts → Incremental solving [GKK+ a] and External propagators [DW12] Wasp API [ADLR15] → Solver extension via Python, C++, and Perl → Domain Heuristics [DGL+ 16] and Custom Propagators [CDRS17] DLV 2.0 [ACD+ 17] → i-dlv + Wasp easier development of propagators. Francesco Ricca Techniques and Systems for ASP
  • 65. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Systems for ASP Extensions Advanced frameworks based on ASP Constraint ASP (CASP) [BBG05, BKOS17, BL17] → Augment the Boolean representations of ASP with constraints → Systems: ACSOLVER, CLINGCON, EZCSP, IDP, INCA, and MINGO ASP Modulo Theories (ASPMT) [SL16] → Systems: ASPMT2SMT, EZSMT Bound-Founded ASP (BFASP) [ACS13] → System: CHUFFED (CP solver + propagator BF integer variables) Higher-order EXternal (HEX) programs [EFI+16] → ASP programs + external sources (e.g., ontological reasoning) → System: DLVHEX Francesco Ricca Techniques and Systems for ASP
  • 66. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Conclusion 1 History of ASP Implementations Ground + Solve → Grounders, Native and Translation-based Solvers → Portfolios and Parallel-distributed implementations Grounding-less 2 Interfaces and Extensions Easy extensions with Python, C++, etc. → Customized control over grounding and solving → New Heuristics and Propagators 3 Systems for ASP Extensions Constraint ASP (CASP), ASPMT, HEX Programs, etc. Francesco Ricca Techniques and Systems for ASP
  • 67. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Acknowledgments Thanks for your attention! Francesco Ricca Techniques and Systems for ASP
  • 68. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References Thanks to my co-authors All the details and references in our paper: [GLMPRS18] Martin Gebser, Nicola Leone, Marco Maratea, Simona Perri, Francesco Ricca, Torsten Schaub: “Evaluation Techniques and Systems for Answer Set Programming: a Survey” Proceedings of IJCAI 2018, pg. 5450-5456 AAAI Press Francesco Ricca Techniques and Systems for ASP
  • 69. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References [ACD+ 17] Mario Alviano, Francesco Calimeri, Carmine Dodaro, Davide Fuscà, Nicola Leone, Simona Perri, Francesco Ricca, Pierfrancesco Veltri, and Jessica Zangari. The ASP system DLV2. In LPNMR, volume 10377 of Lecture Notes in Computer Science, pages 215–221. Springer, 2017. [ACS13] R. A. Aziz, G. Chu, and P. J. Stuckey. Stable model semantics for founded bounds. TPLP, 13(4-5):517–532, 2013. [ADLR15] Mario Alviano, Carmine Dodaro, Nicola Leone, and Francesco Ricca. Advances in WASP. In LPNMR, volume 9345 of Lecture Notes in Computer Science, pages 40–54. Springer, 2015. [BBG05] S. Baselice, P. A. Bonatti, and M. Gelfond. A preliminary report on integrating of answer set and constraint solving. In Answer Set Programming, volume 142 of CEUR Workshop Proceedings, 2005. Francesco Ricca Techniques and Systems for ASP
  • 70. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [BET11] Gerhard Brewka, Thomas Eiter, and Miroslaw Truszczynski. Answer set programming at a glance. Commun. ACM, 54(12):92–103, 2011. [BKOS17] M. Banbara, B. Kaufmann, M. Ostrowski, and T. Schaub. Clingcon: The next generation. TPLP, 17(4):408–461, 2017. [BL17] M. Balduccini and Y. Lierler. Constraint answer set solver EZCSP and why integration schemas matter. TPLP, 17(4):462–515, 2017. [BMMW17] Bernhard Bliem, Marius Moldovan, Michael Morak, and Stefan Woltran. The impact of treewidth on ASP grounding and solving. In IJCAI, pages 852–858. ijcai.org, 2017. [BPEL05] Marcello Balduccini, Enrico Pontelli, Omar El-Khatib, and Hung Le. Issues in parallel execution of non-monotonic reasoning systems. Parallel Computing, 31(6):608–647, 2005. Francesco Ricca Techniques and Systems for ASP
  • 71. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [CDRS17] B. Cuteri, C. Dodaro, F. Ricca, and P. Schüller. Constraints, lazy constraints, or propagators in ASP solving: An empirical analysis. TPLP, 17(5-6):780–799, 2017. [CFG+ 12] F. Calimeri, W. Faber, M. Gebser, G. Ianni, R. Kaminski, T. Krennwallner, N. Leone, F. Ricca, and T. Schaub. ASP-Core-2: Input language format. https://www.mat. unical.it/aspcomp2013/ASPStandardization/, 2012. [CFPZ17] Francesco Calimeri, Davide Fuscà, Simona Perri, and Jessica Zangari. I-DLV: the new intelligent grounder of DLV. Intelligenza Artificiale, 11(1):5–20, 2017. [CGMR16] Francesco Calimeri, Martin Gebser, Marco Maratea, and Francesco Ricca. Design and results of the fifth answer set programming competition. Artif. Intell., 231:151–181, 2016. Francesco Ricca Techniques and Systems for ASP
  • 72. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [CHO+ 09] Ozan Caldiran, Kadir Haspalamutgil, Abdullah Ok, Can Palaz, Esra Erdem, and Volkan Patoglu. Bridging the gap between high-level reasoning and low-level control. In LPNMR, pages 342–354, 2009. [dCDBS15] Broes de Cat, Marc Denecker, Maurice Bruynooghe, and Peter J. Stuckey. Lazy model expansion: Interleaving grounding with search. J. Artif. Intell. Res., 52:235–286, 2015. [DEF+ 12] Minh Dao-Tran, Thomas Eiter, Michael Fink, Gerald Weidinger, and Antonius Weinzierl. Omiga : An open minded grounding on-the-fly answer set solver. In JELIA, volume 7519 of Lecture Notes in Computer Science, pages 480–483. Springer, 2012. [DEGV01] Evgeny Dantsin, Thomas Eiter, Georg Gottlob, and Andrei Voronkov. Complexity and Expressive Power of Logic Programming. ACM Computing Surveys, 33(3):374–425, 2001. Francesco Ricca Techniques and Systems for ASP
  • 73. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [DFPV16] A. Dovier, A. Formisano, E. Pontelli, and F. Vella. A GPU implementation of the ASP computation. In PADL’16, volume 9585, pages 30–47, 2016. [DGH09] James P. Delgrande, Torsten Grote, and Aaron Hunter. A general approach to the verification of cryptographic protocols using answer set programming. In LPNMR, pages 355–367, 2009. [DGL+ 16] C. Dodaro, P. Gasteiger, N. Leone, B. Musitsch, F. Ricca, and K. Schekotihin. Combining answer set programming and domain heuristics for solving hard industrial problems (application paper). TPLP, 16(5-6):653–669, 2016. [DLL62] Martin Davis, George Logemann, and Donald W. Loveland. A machine program for theorem-proving. Commun. ACM, 5(7):394–397, 1962. Francesco Ricca Techniques and Systems for ASP
  • 74. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [DW12] C. Drescher and T. Walsh. Answer set solving with lazy nogood generation. In Technical Communications of ICLP’12, pages 188–200, 2012. [EEB10] Halit Erdogan, Esra Erdem, and Olivier Bodenreider. Exploiting umls semantics for checking semantic consistency among umls concepts. In In Proc. of MedInfo, 2010. [EFI+ 16] T. Eiter, M. Fink, G. Ianni, T. Krennwallner, C. Redl, and P. Schüller. A model building framework for answer set programming with external computations. Theory and Practice of Logic Progeamming, 16(4):418–464, 2016. [EFLP99] Thomas Eiter, Wolfgang Faber, Nicola Leone, and Gerald Pfeifer. The diagnosis frontend of the dlv system. AI Commun., 12(1-2):99–111, 1999. [EGL16] Esra Erdem, Michael Gelfond, and Nicola Leone. Applications of answer set programming. AI Magazine, 37(3):53–68, 2016. Francesco Ricca Techniques and Systems for ASP
  • 75. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [EGM97] Thomas Eiter, Georg Gottlob, and Heikki Mannila. Disjunctive datalog. ACM Trans. Database Syst., 22(3):364–418, 1997. [EIST06] Thomas Eiter, Giovambattista Ianni, Roman Schindlauer, and Hans Tompits. Effective integration of declarative rules with external evaluations for semantic-web reasoning. In ESWC, pages 273–287, 2006. [EL03] Esra Erdem and Vladimir Lifschitz. Tight logic programs. TPLP, 3(4-5):499–518, 2003. [FMMT01] R. Finkel, V. Marek, N. Moore, and M. Truszczy´nski. Computing stable models in parallel. In ASP’01, 2001. [For82] Charles L. Forgy. Rete: A fast algorithm for the many pattern/many object pattern match problem. Artificial Intelligence, 19(1):17 – 37, 1982. Francesco Ricca Techniques and Systems for ASP
  • 76. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [GJM+ 06] J. Gressmann, T. Janhunen, R. E. Mercer, T. Schaub, S. Thiele, and R. Tichy. On probing and multi-threading in platypus. In ECAI’06, volume 141 of FAIA, pages 392–396. IOS Press, 2006. [GJR] M. Gebser, T. Janhunen, and J. Rintanen. Answer set programming as SAT modulo acyclicity. pages 351–356. [GKK+ a] M. Gebser, R. Kaminski, B. Kaufmann, M. Ostrowski, T. Schaub, and S. Thiele. Engineering an incremental ASP solver. pages 190–205. [GKK+ b] M. Gebser, R. Kaminski, B. Kaufmann, M. Ostrowski, T. Schaub, and P. Wanko. Theory solving made easy with clingo 5. pages 2:1–2:15. [GKK+ 11a] M. Gebser, R. Kaminski, B. Kaufmann, T. Schaub, M. Schneider, and S. Ziller. A portfolio solver for answer set programming: Preliminary report. In LPNMR’11, volume 6645, pages 352–357, 2011. Francesco Ricca Techniques and Systems for ASP
  • 77. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [GKK+ 11b] M. Gebser, R. Kaminski, B. Kaufmann, T. Schaub, and B. Schnor. Cluster-based ASP solving with claspar. In LPNMR’11, volume 6645, pages 364–369, 2011. [GKK+ 15] M. Gebser, R. Kaminski, B. Kaufmann, J. Romero, and T. Schaub. Progress in clasp series 3. In LPNMR’15, volume 9345 of LNCS, pages 368–383. Springer, 2015. [GKK+ 16] Martin Gebser, Roland Kaminski, Benjamin Kaufmann, Max Ostrowski, Torsten Schaub, and Philipp Wanko. Theory solving made easy with clingo 5. In ICLP (Technical Communications), volume 52 of OASICS, pages 2:1–2:15. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 2016. [GKKS11] Martin Gebser, Roland Kaminski, Arne König, and Torsten Schaub. Advances in gringo series 3. In LPNMR, volume 6645 of Lecture Notes in Computer Science, pages 345–351. Springer, 2011. Francesco Ricca Techniques and Systems for ASP
  • 78. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [GKNS07] Martin Gebser, Benjamin Kaufmann, André Neumann, and Torsten Schaub. clasp : A conflict-driven answer set solver. In LPNMR, volume 4483 of Lecture Notes in Computer Science, pages 260–265. Springer, 2007. [GKS12] M. Gebser, B. Kaufmann, and T. Schaub. Multi-threaded ASP solving with clasp. TPLP, 12(4-5):525–545, 2012. [GL91] Michael Gelfond and Vladimir Lifschitz. Classical negation in logic programs and disjunctive databases. New Generation Comput., 9(3/4):365–386, 1991. [GLM06] Enrico Giunchiglia, Yuliya Lierler, and Marco Maratea. Answer set programming based on propositional satisfiability. J. Autom. Reasoning, 36(4):345–377, 2006. [GMR17] Martin Gebser, Marco Maratea, and Francesco Ricca. The sixth answer set programming competition. J. Artif. Intell. Res., 60:41–95, 2017. Francesco Ricca Techniques and Systems for ASP
  • 79. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [GNA13] Terracina Giorgio, Leone Nicola, and Martello Alessandra. Logic-based techniques for data cleaning: an application to the italian national healthcare system. LPNMR, 2013. [GST07] Martin Gebser, Torsten Schaub, and Sven Thiele. Gringo : A new grounder for answer set programming. In LPNMR, volume 4483 of Lecture Notes in Computer Science, pages 266–271. Springer, 2007. [HKLS15] Holger Hoos, Roland Kaminski, Marius Lindauer, and Torsten Schaub. aspeed: Solver scheduling via answer set programming. TPLP, 15(1):117–142, 2015. [HLS14] H. Hoos, M. Lindauer, and T. Schaub. claspfolio 2: Advances in algorithm selection for answer set programming. TPLP, 14(4-5):569–585, 2014. Francesco Ricca Techniques and Systems for ASP
  • 80. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [Jan06] T. Janhunen. Some (in)translatability results for normal logic programs and propositional theories. J. of Appl. Non-Class. Log., 16(1-2):35–86, 2006. [JN11] T. Janhunen and I. Niemelä. Compact translations of non-disjunctive answer set programs to propositional clauses. In LP, KR, and NMR, volume 6565 of LNCS, pages 111–130. Springer, 2011. [JNS+ 06] Tomi Janhunen, Ilkka Niemelä, Dietmar Seipel, Patrik Simons, and Jia-Huai You. Unfolding partiality and disjunctions in stable model semantics. ACM Trans. Comput. Log., 7(1):1–37, 2006. [JNS09] T. Janhunen, I. Niemelä, and M. Sevalnev. Computing stable models via reductions to difference logic. In LPNMR’09, volume 5753, pages 142–154, 2009. Francesco Ricca Techniques and Systems for ASP
  • 81. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [KLPS16] Benjamin Kaufmann, Nicola Leone, Simona Perri, and Torsten Schaub. Grounding and solving in answer set programming. AI Magazine, 37(3):25–32, 2016. [Lif02] Vladimir Lifschitz. Answer set programming and plan generation. Artif. Intell., 138(1-2):39–54, 2002. [LJN12] G. Liu, T. Janhunen, and I. Niemelä. Answer set programming via mixed integer programming. In KR’12, pages 32–42. AAAI Press, 2012. [LM04] Yuliya Lierler and Marco Maratea. Cmodels-2: Sat-based answer set solver enhanced to non-tight programs. In LPNMR, volume 2923 of Lecture Notes in Computer Science, pages 346–350. Springer, 2004. [LMR16] Yuliya Lierler, Marco Maratea, and Francesco Ricca. Systems, engineering environments, and competitions. AI Magazine, 37(3):45–52, 2016. Francesco Ricca Techniques and Systems for ASP
  • 82. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [LN09] Claire Lefèvre and Pascal Nicolas. The first version of a new ASP solver : Asperix. In LPNMR, volume 5753 of Lecture Notes in Computer Science, pages 522–527. Springer, 2009. [LPF+ 06] Nicola Leone, Gerald Pfeifer, Wolfgang Faber, Thomas Eiter, Georg Gottlob, Simona Perri, and Francesco Scarcello. The DLV system for knowledge representation and reasoning. ACM Trans. Comput. Log., 7(3):499–562, 2006. [LPST10] Lengning Liu, Enrico Pontelli, Tran Cao Son, and Miroslaw Truszczynski. Logic programs with abstract constraint atoms: The role of computations. Artif. Intell., 174(3-4):295–315, 2010. [LZ02] Fangzhen Lin and Yuting Zhao. ASSAT: Computing answer sets of a logic program by sat solvers. In the Eighteenth National Conference on Artif. Intell. (AAAI-2002), Edmonton, Alberta, Canada, 2002. AAAI Press / MIT Press. Francesco Ricca Techniques and Systems for ASP
  • 83. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [MPR14] M. Maratea, L. Pulina, and F. Ricca. A multi-engine approach to answer-set programming. TPLP, 14(6):841–868, 2014. [MPR15] M. Maratea, L. Pulina, and F. Ricca. Multi-level algorithm selection for ASP. In LPNMR’15, volume 9345 of LNCS, pages 439–445. Springer, 2015. [Nie08] I. Niemelä. Stable models and difference logic. 53(1-4):313–329, 2008. [NJN11] M. Nguyen, T. Janhunen, and I. Niemelä. Translating answer-set programs into bit-vector logic. In INAP’11 and WLP’11, volume 7773, pages 95–113, 2011. [PBB03] E. Pontelli, M. Balduccini, and F. Bermudez. Non-monotonic reasoning on Beowulf platforms. In PADL’03, volume 2562, pages 37–57, 2003. Francesco Ricca Techniques and Systems for ASP
  • 84. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [PDPR09] Alessandro Dal Palù, Agostino Dovier, Enrico Pontelli, and Gianfranco Rossi. GASP: answer set programming with lazy grounding. Fundam. Inform., 96(3):297–322, 2009. [PRS13] S. Perri, F. Ricca, and M. Sirianni. Parallel instantiation of ASP programs: Techniques and experiments. 13(2):253–278, 2013. [PT09] L. Pulina and A. Tacchella. A self-adaptive multi-engine solver for quantified Boolean formulas. Constraints, 14(1):80–116, 2009. [RDG+ 10] Francesco Ricca, Antonella Dimasi, Giovanni Grasso, Salvatore Maria Ielpa, Salvatore Iiritano, Marco Manna, and Nicola Leone. A logic-based system for e-tourism. Fundam. Inform., 105(1-2):35–55, 2010. [RGA+ 12] Francesco Ricca, Giovanni Grasso, Mario Alviano, Marco Manna, Vincenzino Lio, Salvatore Iiritano, and Nicola Leone. Team-building with answer set programming in the gioia-tauro seaport. TPLP, 12(3):361–381, 2012. Francesco Ricca Techniques and Systems for ASP
  • 85. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [Sak11] Chiaki Sakama. Dishonest reasoning by abduction. In IJCAI, pages 1063–1064, 2011. [SL16] B. Susman and Y. Lierler. Smt-based constraint answer set solver EZSMT (system description). In ICLP (Technical Communications), volume 52 of OASICS, pages 1:1–1:15. SD, 2016. [SLM09] João P. Marques Silva, Inês Lynce, and Sharad Malik. Conflict-driven clause learning SAT solvers. In Handbook of Satisfiability, volume 185 of Frontiers in Artificial Intelligence and Applications, pages 131–153. IOS Press, 2009. [SN99] Timo Soininen and Ilkka Niemelä. Developing a declarative rule language for applications in product configuration. In PADL, pages 305–319, 1999. Francesco Ricca Techniques and Systems for ASP
  • 86. Introduction and Preliminaries Evaluation Techniques and Systems Interfaces and Systems for Extensions References References (cont.) [SN01] Tommi Syrjänen and Ilkka Niemelä. The smodels system. In LPNMR, volume 2173 of Lecture Notes in Computer Science, pages 434–438. Springer, 2001. [SNS02] Patrik Simons, Ilkka Niemelä, and Timo Soininen. Extending and implementing the stable model semantics. Artif. Intell., 138(1-2):181–234, 2002. [Wei17] Antonius Weinzierl. Blending lazy-grounding and CDNL search for answer-set solving. In LPNMR, volume 10377 of Lecture Notes in Computer Science, pages 191–204. Springer, 2017. [XHHL08] L. Xu, F. Hutter, H. Hoos, and K. Leyton-Brown. SATzilla: Portfolio-based algorithm selection for SAT. Journal of Artif. Intell. Research, 32:565–606, 2008. [ZBH96] H. Zhang, M. Bonacina, and J. Hsiang. PSATO: A distributed propositional prover and its application to quasigroup problems. Journal of Symbolic Computation, 21(4):543–560, 1996. Francesco Ricca Techniques and Systems for ASP