All notable changes to this project will be documented in this file, since GHOST 2.0.0.
- Add Random Walk and Hill Climbing as search algorithms, for landscape analysis.
- Minor changes in the global solver algorithm, such as removing the probability to force tabu-marking a variable.
- Fix a mistake with maximization objectives in the complete solver, and a bug that happened with the compiler Clang.
- Hotfix adding a method to call the complete solver with default options.
- Add a complete solver within the framework, implementing the Arc Consistency 3 algorithm and aiming to find all solutions of a problem instance.
- Changed the interface
Solver::solve
->Solver::fast_search
, to be coherent with the newSolver::complete_search
- Fix a mistake in the final cost of an objective function to maximize, where the value v needed to be reset to the opposite value -v.
- Change Cmake and build.sh to compile the library for different Android architectures.
- Now allow modeling pure optimization problems.
- Slight memory management improvement, by pre-allocating memory during the search.
- Add the AllEqual global constraint.
- Add virtual destructors in base classes. This fixes a problem on OSX.
- Fix minor forgettings (Doxygen file, README, ...).
- Add all possible linear equation global constraints.
- Error projection is now implemented following the Strategy pattern.
- Fix an error in the AllDifferent global constraint.
- Add a constructor taking an argument std::vectorghost::Variable for each global constraint.
- Add first global constraints: AllDifferent, FixValue and LinearEquation.
- Search unit inner data have been moved into an object.
- Variable and value selection heuristics are now implemented following the Strategy pattern.
- Code optimization (avoiding copies of randutils::mt19937_rng objects)
- Change the file tree
- Fix mistakes within the search unit when one starts with a custom sector of variable values.
- Fix a mistake in Options documentation.
- The default number of threads is now the number of physical CPU cores (half the number of virtual cores for CPUs with hyper-threading).
- Add in
Options
a parameter to set the percentage of chance to escape a plateau rather than exploring it. - Rename
Options::percent_to_reset
toOptions::number_variables_to_reset
.
- Enable the include and lib files installation on Windows with Visual Studio.
- Fix a bug in the solver when some variables are assigned to any constraints.
- Fix a mistake in Objective in case some vectors are empty.
This is a minor version change due to some interface modifications.
- Permutation problem declaration is now done in the
ModelBuilder
constructor. - Remove
Objective::expert_postprocess_satisfaction
and change the name and the interface ofObjective::expert_postprocess
(previouslyObjective::expert_postprocess_optimization
)
- Fix a bad implementation of the copy-and-swap idiom in ghost::Options
- Fix some typos in the Solver screen outputs when the macro GHOST_BENCH is declared
- Remove unnecessary whitespaces
Major refactoring of version 1.0.1
- deep interface modification
- performance improvements
- new features (parallel search, ...)