All notable changes to this project will be documented in this file.
v1.14.0 - 2022-01-23
breaking
: extract rosomaxa crate with generalized heuristic implementation- update dependencies
v1.13.0 - 2021-12-05
- add
compatibility
property to the job definition - add new local search operator based on SWAP* algorithm
- migrated to 2021 edition
- update dependencies
- removed dependency on
chrono
in favor oftime
- use variable strategy for leg insertion analysis
- adjust route removal ruin methods to limit a bit amount of removed jobs
- order of initial heuristics
v1.12.0 - 2021-11-16
- a new local search operator: exchange sequence
- a vicinity job clustering: group close jobs in the same stop and visit them differently
- update dependencies
- bug fixes
v1.11.5 - 2021-09-27
- a limited support for TSPLIB95 format
- more validation rules for objective usage
- change defaults for initial solution building logic
- improve rosomaxa algorithm
- improve tour order objective logic
- update dependencies
v1.11.4 - 2021-09-10
- fix a memory leak
- update dependencies
v1.11.3 - 2021-09-07
analyze clusters
command to cli- break policy property
- a penalty property for skipping break in
maximize-value
objective
- improve clustering removal heuristic
- enhance rules for slow search detection and reduce search radius in case of it
- improve unassigned jobs handling logic
- update dependencies
v1.11.2 - 2021-08-22
group
constraint on job in pragmatic format
v1.11.1 - 2021-08-17
- slice recreate method
breaking
: move tag from task to place level in pragmatic formatbreaking
: adjust break definition to be consistent with job- update dependencies
v1.11.0 - 2021-08-08
- a metaheuristic which searches in infeasible solution space
- logic to swap objective with some small probability in rosomaxa algorithm
- refactor logging configuration
- change metaheuristic coefficients
v1.10.8 - 2021-07-21
- validation rule for any relation
v1.10.7 - 2021-07-12
- export validation function
v1.10.6 - 2021-06-27
- logging prefix in config
- minor changes in core logic
v1.10.5 - 2021-06-20
- finalize tour order implementation and make it work on job place level
- minor improvements in pragmatic format logic
- update dependencies
- undocumented
hre
format
v1.10.4 - 2021-05-15
- pre/post processing steps for problem and solution
- optimization which moves backward departure time
- coefficient of variation termination criteria is extended to support time period
- do not always try to move forward departure time
v1.10.3 - 2021-05-03
- new recreate method:
RecreateWithSkipRandom
min-cv
can be used in exploration search phase- improve rosomaxa algorithm
v1.10.2 - 2021-04-28
- introduce
min-cv
parameter instead ofcost-variation
- improved stability of some tests
- bug fixes
cost-variation
parameter
v1.10.1 - 2021-04-20
breaking
: rename job'spriority
property toorder
- change default objective behaviour when
value
property is used
v1.10.0 - 2021-04-02
This release has breaking changes in pragmatic format and internal apis.
- new objectives:
minimize-distance
andminimize-duration
- new CLI option:
init-size
to control amount of initial solutions to be built built - travelling duration scale on vehicle profile: it can be used to adjust durations for specific vehicle type
- optimize cluster ruin method
- improve unassigned code reason handling
breaking
: convert profile property on vehicle type to an object
type
property from matrix profile
v1.9.1 - 2021-03-24
- maximize value objective
- build multiple initial solutions
v1.9.0 - 2021-03-19
- use dynamic hyper-heuristic by default
- flatten objective functions definition
- rebalance coefficients of recreate methods
- reduce default population selection size
v1.8.1 - 2021-02-26
- a new ruin method which destroys closest routes
- more solution checker rules
- rebalance ruin methods
- fix an issue with huge amount of possible permutations in multi job
v1.8.0 - 2021-02-07
- a new mutation operator: decompose search which is used for bigger problem instances
- a new population type: greedy
breaking
: introduced hyper-heuristic model- an experimental dynamic selective hyper-heuristic (WIP)
- speedup processing of unassigned jobs
v1.7.4 - 2021-01-23
- introduced parallelism control options (experimental).
v1.7.3 - 2021-01-08
- update
hre
format support to v2 version - update dependencies
v1.7.2 - 2020-12-05
- update dependencies
- apply minor algorithm changes
v1.7.1 - 2020-11-29
This release focuses on improving performance and bug fixing.
- use
stale
flag internally to avoid route state updates on non-changed routes
- remove unstable push tour departure LS method
v1.7.0 - 2020-11-23
This release features a new solution space exploration algorithm called ROSOMAXA: Routing Optimizations with Self Organizing MAps and eXtrAs (pronounced as "rosomaha", from russian "росомаха" - "wolverine").
- add and use by default rosomaxa algorithm
- add a new LS method to push tour departure in the future
- add a Local Search mutation
- add farthest insertion heuristic
- move Local Search out of Ruin Recreate mutation
breaking
: use string as unassigned job reason code
v1.6.4 - 2020-10-27
- tour size constraint which limits amount of job activities per tour
v1.6.3 - 2020-10-21
- introduce dispatch feature to support vehicle dispatching functionality (depot replacement)
breaking
: removed depot feature
ExchangeIntraRouteRandom
now removes and reinserts with noise a single random job
v1.6.2 - 2020-10-18
breaking
: job skills are now defined byallOf
,oneOf
andnoneOf
conditions- use
hashbrown
library inpragmatic
crate - fixed minor bugs
config
property frompragmatic
format
v1.6.1 - 2020-10-15
breaks
property inminimize-unassigned
objective- dependencies audit by
github actions
- break assignment is made less strict by default. User has certain control on its assignment by the objective
- replaced
uniform_real(0., 1.)
usage withis_hit
method inRandom
trait - default parameters of local search operators
- minor tech debt
v1.6.0 - 2020-10-14
- cargo features to build
cli
library without certain dependencies - proper
k-regret
recreate method recreate-with-perturbation
recreate method- add
local search
operators to ruin recreate mutation:- inter route best
- inter route random
- intra route random
- renamed regret to
skip-best
method
- some issues in init readers
v1.5.0 - 2020-09-07
- accept location indices for routing matrix
- do not generate initial solutions when initial solution supplied
- ruin bug with zero-cost jobs
- population size performance issue
- incorrect checker expectations regarding
vehicleId
template
- Initial public release
- Initial commit