Surya is an implementation of an inference engine, that
computes answer sets for A-Prolog with choice and cardinality rules.
It is written in C programming language.
Most of the inferences obtained by A-Prolog inference engines
are conclusions resulting from considering single A-Prolog
rules at a time. Any information present among many such
rules put together was not retrived. This lead to high amounts
of backtracking and thereby, slower computation of models.
Addressing this problem, Surya was implemented adding a new
inference rule called Extended Evaluation Rule(EER). EER
retrives information distributed among several rules in the
program. It is applied to the choice and cardinality rules
written in the program. The efficiency of the system depends on
the efficient implementation of EER. We believe that EER has
been efficiently implemented giving orders of magnitude efficiency
in cases where it is applied and almost no overhead for cases
where it is not applied.
An example of a program can be found
here.
For description of the language and a detailed explanation
of the algorithm of the engine and results, please refer to:
"Optimizing The Computation Of Stable
Models Using Merged Rules.",
Master's thesis by Veena S. Mellarkod.
|
All papers and thesis reports are available from the
KR-LAB website.
|