Releases: logic-ng/LogicNG
Releases · logic-ng/LogicNG
v2.2.1
v2.2.0
Added
- Improved
FormulaFactory
by avoiding creating unnecessary negations (cache pollution) during the check for complementary operands. - Improved the NNF computation by avoiding creating unnecessary negations (cache pollution) during the recursive calls.
- Extracted the NNF computation in its own transformation class
NNFTransformation
. - Moved all formula caches from the
Formula
class to theFormulaFactory
to save memory by avoiding creating empty cache maps. - New
TermPredicate
class to check whether a formula is a minterm (clause) or maxterm (DNF term). - Extended helper classes
CollectionHelper
andFormulaHelper
by additional convenient methods.
Fixed
- Fixed a bug in the
addSoftFormula
method of theMaxSATSolver
class. A soft formula is now weighted properly if the soft formula is not a clause. - Fixed a bug in the
addWithRelaxation
method of theSATSolver
class. The CNF of the formula is now computed properly regarding the configuration of the
solver.
Deprecated
- Deprecation of method
addWithoutUnknown
in classSATSolver
- this method will be removed in future versions. - Deprecation of method
addWithRelaxation
for propositions in classSATSolver
- this method will be removed in future versions.
v2.1.0
Added
- Reworked handlers
- New handlers for backbones, MUS, SMUS, prime compilation, and advanced simplifier
- three different types for timeout handlers:
SINGLE_TIMEOUT
: The timeout is started when the handler'sstarted()
method is calledRESTARTING_TIMEOUT
: The timeout is restarted everytime the handler'sstarted()
method is calledFIXED_END
: The timeout is interpreted as a fixed point in time (in milliseconds) at which the computation should be aborted
- Improved version detection for compiled and packaged versions of LogicNG
- Introduced Mockito for unit tests
Fixed
- Fixed a bug in the DIMACS formula writer when there was only a single clause with multiple literals
v2.0.2
v2.0.1
v2.0.0
Added
- DNNF data structure and compilation
- DNNF-based model counting
- BDD Reordering
- Computation of shortest MUSes
- Computation of prime implicant and implicates
- New algorithms for simplifying Boolean formulas including the possibility to define an own rating function for the formula complexity
- A new method for generation constraint graphs of formulas
- A SAT encoding of the SET COVER problem
- New explicit data structure for cardinality constraints
- New formula functions for
- Computing the depth of a formula
- Computing a minimum prime implicant of a formula
- New formula predicates for
- Pseudo Boolean Constraint containment
- Fast evaluation to a constant
- New formula transformations for
- Literal substitution
- Expansion of pseudo-Boolean constraints
- New solver function for optimizing the current formula on the solver (wrt. the number of positive/negative literals)
- New formula randomizer and corner case generator, especially useful for testing
- Configuration object for formula factory which can be used to allow trivial contradictions and tautologies in formulas and to specify a default merge strategy
for formulas from
different factories - New helper classes for collections
- Stream operators on formulas
Changed
- Changed Java Version to JDK 8
- switched to ANTLR 4.8
- switched to JUnit 5
- PBC and CC methods in the formula factory return
Formula
objects now (notPBConstraint
objects) and can simplify the constraints - Moved BDD package to
knowledgecompilation
- Reorganized
explanations
package - Reorganized code location in the BDD package and simplified the
BDDFactory
- Reorganized code location in the SAT Solver package, introduced solver functions which allow better separation of code for functions of the solver
- Propositions now hold a simple formula, no
ImmutableFormulaList
anymore - fixed a spelling problem: propositions now have a correct
backpack
- More classes are
protected
now and can be extended from outside - Moved parser grammars from
resources
toantlr
Removed
- CleaneLing solver
ImmutableFormulaList
class
v1.6.2
v1.6.1
v1.6.0
Added
- A new method for generating CNFs directly on the solver instead of using the formula factory. This often leads to a faster generation and reduced Heap
consumption but with the
loss of caching - The current formula on a MiniSat-based solver can be extracted
Changed
- The standard MiniSat-based solvers can now directly efficiently compute a backone. No extra solver is required anymore
- BDD factory can now be extended externally