MINION Changelog

What's new in MINION 1.7

Jul 3, 2014
  • New functionality:
  • element_undefzero constraint
  • alldiff_matrix constraint
  • Minion now defaults to supporting 64-bit instead of 32-bit domains
  • Handle some cases where wdeg caused minion to crash
  • Update to support windows 8, latest visual studio and Mac OS X mavericks
  • Remove dependancy on boost (instead require a C++11 compiler)
  • Bugs which could result in incorrect answers:
  • Correctly reject domains like {1..0}.
  • Such domains would result in minion returning 'no solutions'. They now
  • result in 'incorrect input'.
  • reified haggisgac_stable would produce incorrect answers occasionally when
  • the --preprocess flag was used.
  • reified watchelement_undefzero would produce incorrect answers occasionally
  • Removed functionality:
  • Minion will now no longer take gz and bz2 files and auto-uncompress them.
  • You can emulate this functionality by doing 'gunzip -c file.gz | minion

New in MINION 1.6.1 (Apr 22, 2014)

  • Improvements:
  • Fixed a slowdown in reification of equality constraints
  • The windows binary now runs on all versions of Windows back to 32-bit Windows XP.

New in MINION 1.6 (Apr 22, 2014)

  • Bugfixes:
  • Fix an occasional crash when minion exits (this only happened after all output was produced.)
  • Improvements:
  • Added an implementation of the shortstr2 propagator (as published in IJCAI 2013), and SHORTTUPLES, which is a compressed form of tuples used by ShortSTR2 and some other propagators.
  • Added the command line option '-map-long-short' to automatically compress standard tuples into short tuples, for use with shortstr2 and haggisgac (also published in IJCAI 2013)
  • Added an implementation of the mddc, negativemddc and str2plus propagators.
  • All constraints now work with negative values, in particular pow, div and mod.
  • Minion can now support 64-bit domains on both 32-bit and 64-bit processors. Enable with the DOMAINS64 compile time option to CMake.
  • Other changes:
  • Many old pieces of code were cleaned up or deleted.

New in MINION 0.15 (Apr 22, 2014)

  • Improvements:
  • The Mac version of Minion is now much faster (up to 30%), due to a change of compiler switches.
  • The 'HaggisGAC' constraint has been added. This constraint is allows users to specify their own constraints, using "don't care" values.
  • The '-outputCompressed' flag has been added, which makes Minion try to compress an input file by removing implied constraints. In some situations this can lead to big speed increases, in others a small slowdown. We are particularly interested in any feedback on this option.

New in MINION 0.14 (Dec 18, 2012)

  • Bugfixes:
  • When Minion was asked to find all solutions to a problem that could be solved without search, it returned the one solution then segfaulted. This was corrected, it does not change the set of solutions but does now exit correctly.
  • Improvements:
  • Minion is now able to split the remaining search to allow parallel search. See the manual for further details. This introduces the -split command-line switch.
  • Other changes:
  • The -resume-file commandline switch has been removed because its function is no longer necessary as resume files are now self-contained. S

New in MINION 0.13 (Dec 18, 2012)

  • Bugfixes:
  • Two 'incorrect answer' bugs were fixed, involving Booleans. These are both cases of invalid input being accidentally accepted.
  • According to the manual reify(C,b) would only accept a BOOLEAN variable, but the code would accept other variables, and then produce a wrong answer. The code now works correctly.
  • The '!' operator would accept non-boolean variables, and then produce incorrect results. The input is now rejected.
  • SAC did not propagate as much as it should. This never produced incorrect answers, only a slightly larger search in some cases.
  • Minion could produce incorrect answers when too large inputs were given (around 2^31). Now sensible error message are produced.
  • Previously when using a 'MINIMISING' condition, Minion would print out the negative of the optimal value found.
  • Improvements:
  • Previously variables left out of the variable ordering were not branched on. While this was expected behaviour, it could lead to Minion printing out invalid values if these variables were not assigned by propagation. Now Minion always branches on all variables.
  • Add flag '-printonlyoptimal' which prints only the optimal solution for optimisation problems, not the intermediate solutions.
  • All constraints can now be reified.
  • Big speed improvements to some cases of element
  • varorder=random now uses a dynamic random order, rather than a static one.
  • Make memory allocation lazy. This is more efficent when we don't need much of it.
  • Produce better error messages for invalid input.

New in MINION 0.12 (Dec 18, 2012)

  • Bugfixes:
  • fix visualizer to work with more recent versions of Haskell
  • fix some numerical issues with CPU time reporting
  • fixes to watched-or and watched-and constraints
  • Misc improvements:
  • more robust and more thorough testing
  • better error messages when variables are used with incompatible constraints

New in MINION 0.11 (Dec 18, 2012)

  • New features:
  • added negation of diseq constraint
  • added negation of watched-and constraint
  • enable watched-or to work with bound variables
  • Bugfixes:
  • bug fixes with nested watched-and and watched-or
  • bug fixes in the tester
  • Misc improvements:
  • improvements in documentation
  • integrate new implementations of gcc and gccweak with many more compile-time options
  • added visualisation scripts
  • added literal tightness statistics to -instancestats
  • Never Trust a Monster to do the Work of an Evil Scientist.

New in MINION 0.10 (Dec 18, 2012)

  • Nauty is now included by default for automatic symmetry detection.
  • New features:
  • added watchvecexists_less constraint
  • added quick lexless constraint
  • added lightweight table constraint
  • new flag -instancestats that will give various properties about the instance
  • new flag -searchlimit to limit only time spent in search and not in preprocessing
  • Bugfixes:
  • time limits are now taken into account during preprocessing as well
  • some of the generators were getting old and have been updated
  • reification of unary constraints works properly now
  • set constraints on empty sets now work
  • several bugfixes for watched constraints
  • Misc improvements:
  • speed improvements and memory for the parser
  • reduced memory requirements
  • improved testing
  • tidier reimplementation of the search manager