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.