Skip to content

Releases: ToKiNoBug/HeuristicFlow

HeuristicFlow v1.6.3

25 Apr 05:38
Compare
Choose a tag to compare

Updates

  1. Add interface cmake targets
  2. Install like a cmake package
  3. Configure Eigen3 automatically
  4. Fixed an error in SimpleMatrix

HeuristicFlow v1.6.2.1

28 Jul 13:10
25ec4a1
Compare
Choose a tag to compare

This version has no new algorithms but some slight new tools.

Updates

  • You can convert a double to its bianry form with function constexpr heu::binCode heu::encode(double), where heu::binCode is a 64 btis unsigned enumeration type. For inverse conversion, use constexpr double heu::decode(heu::binCode). These two functions computes at compile time.
  • New box constraints : heu::FixedDiscreteBox and heu::FixedContinousBox. You should pass the range via template parameter so that the range is fixed at compile time. For C++17, floating-point can't be passed through template parameters, so we have heu::FixedContinousBox17, which receives range data in heu::binCodes.

HeuristicFlow v1.6.2

22 Jul 07:35
89af557
Compare
Choose a tag to compare

Updates:

  • Add 10 selection methods for SOGA : RouletteWheel, Tournament, MonteCarlo, Probability, LinearRank, ExponentialRank, Boltzmann and EliteReserved. Selectiong method can also be determined at runtime.
  • Matrix types in SimpleMatrix module can evulate between different types.
  • Box constraint in EAGloable module is rewritten.
  • Add infinite box constraint (initialize by gaussian distribution).
  • The PSO module has its own special box constraint.

Full Changelog: v1.6.1...v1.6.2

HeuristicFlow v1.6.0

24 Jun 13:35
5ea9497
Compare
Choose a tag to compare

Updates :

  • New module : Atomic Orbit Search (AOS) and a new algorithm of the same name
  • 19 template test functions for single-objective solvers (4 scalable and 15 nonscalable) in module EAGlobal
    • You can call them like heu::testFunctions<Eigen::Array2d,double>::eggHolder.
  • heu::array_traits<class T> : New metafunction that are able to tell attributes of a general vector class like type, compile-time-size, element-type and whether a Eigen class or not.
  • Box constraints have new member fuction applyConstraint(...) now.

Changes :

  • Depends on C++17 now.

HeuristicFlow v1.5.0

04 Apr 06:32
2fd36f9
Compare
Choose a tag to compare

Updates:

  • Add PSODefaults.

Changes:

  • Generate document by doxygen
  • Optimized NSGA2's performance.
  • Add denpendent : libEigen
  • ...

HeuristicFlow v1.4.1

16 Mar 14:01
Compare
Choose a tag to compare

Updates:

  • Compability to C++14
  • Versatile box constraint for all kinds of real, binary and symbolic encoding. You can assign much more variables at compile time.
  • More default GA operators under box constriant : iFunNd,iFunXd, iFunNb, iFunXb, iFunNs, iFunXs, mFun_d, mFun_b and mFun_s.
  • PSO module supports compile time initializpr now.

Changes:

  • Macro in source file Heu_MAKE_GLOBAL no longer required.

HeuristicFlow v1.4.0

11 Mar 16:29
Compare
Choose a tag to compare

Updates:

  • New module : EAGlobal
  • Box constraint for GA
  • min and max function with multiple parameters

Changes:

  • GA now supports compile-time function binding
  • NSGA2 uses an adaptively normalized congestion now
  • Renamed OtGlobal after HfGlobal

HeuristicFlow v1.3.3

13 Feb 11:21
Compare
Choose a tag to compare

This project has been renamed as HeuristicFlow, while previous namespace name OptimT was renamed as Heu.

Updates:

  • New MOEA: NSGA3
  • New generic function to compute matrix product and inverse matrix using Heu::MatrixDynamicSize and Heu::MatrixFixedSize.
  • MatrixMap.
  • 2 methods to convey floating point numbers in template under C++20. (Heu::DivCode and Heu::PowCode)

Changes:

  • Macro OptimT_DO_PARALLELIZE is replaced by Heu_USE_THREADS.
  • Macro OptimT_NSGA2_RunTimeObjNum_MaxRTObjNum is replaced by Heu_MOGA_MaxRunTimeObjNum.
  • Macro OptimT_USE_EIGEN,OptimT_GA_USE_EIGEN and OptimT_PSO_USE_EIGEN are no longer required. Partial specializations for Eigen will be activated once you included Eigen before this lib.

Bugs Fixed:

  • Fixed the bug that the size of MOGA's Pareto frontier exceeds the population size.

OptimTemplates v1.3.2

04 Feb 16:51
Compare
Choose a tag to compare

Updates:

  • Fresher API : replace std::tuple<Args...> with single custom type.
  • Replace otherOptFun with virtual function virtual void customOptAfterEachGeneration().
  • Testing version of NSGA3.

Bugs fixed:

  • Fixed the bug that MatrixDynamicSize failed to compile in debug mode -- static member are now encapsulated in static function.

Changes:

  • When no other parameters provided, Args_t won't appear in initialize and fitness functions

OptimTemplates v1.3.1

29 Jan 11:58
Compare
Choose a tag to compare

Updates:

  • NSGA2 now supports using Eigen's array types (Eigen::Array<double,...>) as fitness value with vectorized implementation of selection operation.
  • NSGA2 now supports working with runtime objective numbers.

Changes:

  • New classes: MOGAAbstract, MOGABase, NSGABase, NSGA2Base (All of them are used to reduce code duplication while supporting runtime objective numbers and boosting with eigen arrays).