smodels 2.34: May 12, 2009 - Fix print internal of the constraint and weight rules again, as they were still wrong. smodels 2.33: April 17, 2008 - Improve the heuristic used in lazy lookahead. Since we are lazy, we can compute a better estimate of the size of the remaining search space. - Fix print internal of the constraint, weight and optimize rules. smodels 2.32: August 7, 2006 - Remove inline from smodels.cc to make the examples compile. - Add "-simple" for using the simple heuristic with "-nolookahead" that was used before we got lazy lookahead. smodels 2.31: May 26, 2006 - Fix a crash bug when restarting. - Remove the options "-randomize", "-tries", and "-conflicts". They are no longer needed now that we have "-restart". - Add restart.cc to examples/Makefile. (patch by Joel Faber ). - The new libtool demands some new options. smodels 2.30: May 15, 2006 - Lazy lookahead heuristic with the "-nolookahead" option. smodels 2.29: March 29, 2006 - Make Api::copy() also copy the compute statements, i.e., the truth values set by Api::set_compute(). (patch by Jean Gressmann ) - Changed the Weight typedef to unsigned long long in order to handle more and larger weights. - Added a "-restart" option for doing complete search with restarts. smodels 2.28: January 30, 2004 - Changed timer.cc such that it compiles on newer gcc. Did other changes to make newer gcc stop complaining. Mac OS X users want to change libtool to glibtool in the Makefile if they are going to build the libraries. - Made the option -internal also include the must-be-true and must-be-false atoms in the compute statement and remove the reading...done text. This actually makes the option useable. (patch by Tomi Janhunen ) smodels 2.27: October 14, 2002 - Since Smodels:revert() didn't call reset_queues(), it only worked correctly if called after an expand() call. This bug only affects users of the revert() call as smodels itself doesn't use it and the examples use it in safe situations. - Added example5.cc, which implements a push/pop interface. - Added build, binary, and install targets to the Makefile. - Renamed example4.cc to gnt.cc. smodels 2.26: September 11, 2000 - ConstraintRule::inactivate() was missing a backChainTrue call. Hence, expand was not monotone in all circumstances. Since this is assumed by Smodels::heuristic(), it triggered an assertion and we could even loose models. - MAX_WEIGHT was defined as LONG_MAX instead of ULONG_MAX - Only shuffle atoms below atomtop, makes -randomize work again smodels 2.25: December 30, 1999 - Atoms were sometimes removed from equeue without updating in_{etrue,efalse}_queue. This led to bugs in example4 - Added a library target to the Makefile for making a shared library - Small improvement to the heuristic when optimizing - Slightly improved pruning in example4 smodels 2.24: October 29, 1999 - Cosmetic changes - Stable models of disjunctive logic programs can be computed using examples/example4.cc smodels 2.23: August 2, 1999 - Fixed some issues concerning constraint and weight rules and the upper closure. smodels 2.22: July 5, 1999 - Fixed revert() again. - Setup correction. smodels 2.21: June 28, 1999 - Fixed revert(). smodels 2.20: June 22, 1999 - Made lookahead easier to understand. smodels 2.19: June 21, 1999 - Optimized the heuristic computation somewhat. smodels 2.18: June 17, 1999 - Cleared up the interface to the rules some more. Really. - Small correction to weight rule backchaining. smodels 2.17: June 15, 1999 - Simplified the optimize rule some more, i.e., maximization is no longer possible. Version 1.17 of pparse translates maximize statements into minimize statements automatically. - The api supports a restricted form of copying, see for instance example3.cc. - Cleared up the interface to the rules a bit. smodels 2.16: June 4, 1999 - The optimize rule could be simplified since the weights are now positive. - Slightly better heuristic. smodels 2.15: June 1, 1999 - Only positive weights are now allowed in the optimize statements. If you are using negative weights you'll need a new pparse (1.16). - Weights are now unsigned long. - Small dcl.cc cleanup. smodels 2.14: May 24, 1999 - Well, 2.13 didn't quite fix the problem. smodels 2.13: May 21, 1999 - The improve function was too optimistic. Programs with choice rules could produce erroneous answers. smodels 2.12: May 7, 1999 - Forgot to reverse all fields in WeightRule::swap. This was a bad bug, you could get erroneous answers when using weight rules. smodels 2.11: May 6, 1999 - Didn't free any memory. Oops. smodels 2.10: April 16, 1999 - Improved denant. - Improved backchaining of weighted rules. - The heuristic was randomized even if the option -randomize was not given. smodels 2.9: February 22, 1999 - Introduced a new option "-internal" that reduces a program and then prints it in a form that smodels accepts as input. When used together with "-w" the program is reduced using the well-founded semantics. Otherwise, the program is reduced using lookahead. smodels 2.8: February 11, 1999 - Forgot to check whether we already have found a model before doing heuristic after setup_with_lookahead. smodels 2.7: February 11, 1999 - Removed one unnecessary lookahead call. - Timing and timer changes. smodels 2.6: January 27, 1999 - The introduction of the complete randomized search also introduced a bug. It is now fixed. - The logic program is simplified some more before the search begins. smodels 2.5: January 14, 1999 - Improved pruning slightly when optimizing (maximize/minimize) - Introduced complete randomized search (-randomize). This is still slow but will become faster. smodels 2.4: November 12, 1998 - Simplified backchaining in the weight rule. smodels 2.3: November 11, 1998 - Changed the format of the constraint rule from h :- n1 { a1,...,an } n2 { not b1,...,not bm } to h :- n { a1,...,an, not b1,...,not bm }. - Simplified atomrule.{h,cc} a bit. smodels 2.2: November 9, 1998 - Simplified the weight rule. Only positive weights are allowed, and the weight is only bounded from below. The old type of weight rule can easily be expressed using the new type, see pparse 1.13. smodels 2.1: November 5, 1998 - Fixed bug in improve.cc that could corrupt the program when using weight rules. - Introduced a naive version of iterative deepening (option -iterate). Solves some hard problems.