~ruther/ctu-fee-eoa

ref: 944bef5f91e6a509a496111259b61d79d7df3e31 ctu-fee-eoa/codes d---------
944bef5f — Rutherther a month ago
feat(tsp): add nearest neighbor initializer
44fb8c92 — Rutherther a month ago
feat(tsp): add cycle, no and partially mapped crossovers
11befbf6 — Rutherther a month ago
refactor(tsp): split to multiple files out of tsp.rs
ce632f10 — Rutherther a month ago
fix(lib): do not take mut self in population.iter()
ec2647b8 — Rutherther a month ago
feat(lib): add roulette wheel selection
45b0d91f — Rutherther a month ago
refactor(tsp): put plotting to main to not repeat code
9063396d — Rutherther a month ago
feat(lib): add random search
e326216f — Rutherther a month ago
feat(tsp): add ea binary algorithm
25d83780 — Rutherther a month ago
tests(tsp): adapt to new binarystring -> node permutation implementation
d2cfd7e0 — Rutherther a month ago
tests(tsp): add test for verify_solution
dd037eb9 — Rutherther a month ago
feat(tsp): add move node perturbation
8eaf8145 — Rutherther a month ago
fix(tsp): properly implement binary string -> node permutation fitness
ec7345a5 — Rutherther a month ago
feat(lib): add n consecutive bit flip perturbation for binary string
38c9f268 — Rutherther a month ago
feat(lib): add two point and n point crossovers
f304d071 — Rutherther a month ago
refactor(lib): implement generic evolutionary strategy using .wrapped_mut

Thanks to wrapped_mut now the one_to_five strategy can be implemented
without relying on BoundedPerturbation etc.
e3d7f213 — Rutherther a month ago
feat(tsp): allow crossing bounds in reverse subsequence perturbation

Currently subsequence perturbation was capable only of changes
inside of bounds (left, right), but allow it going through
the right bound, ie. from element 8 to element 1 - swapping
8 with 1, 9 with 0, 10 with 10... this generalizes the perturbation.
Also, change the behavior to generate an index and a length instead
of two indices. This allows for constraining the length of
subsequences.
4d86e224 — Rutherther a month ago
feat: add possibility to evolve strategy during evolution_algorithm
b999449b — Rutherther a month ago
refactor: generalize apply_to_mutations
99f05825 — Rutherther a month ago
refactor(lib): allow modifying mutation perturbation
f63848aa — Rutherther a month ago
refactor(lib): add methods to get wrapped perturbations instead of traits.

Remove WrapperPerturbation and ListWrapperPerturbation in favor of
wrapped and wrapped_mut functions on PerturbationOperator. This
allows for easier handling as it's not easy to downcast Any into
WrapperPerturbation or ListWrapperPerturbation. So instead
always return dyn PerturbationOperator instead of dyn Any.
Use dyn Any only for downstasting to concrete types.

This finally allows for apply_to_mutations to be implemented
under MutationPerturbation, allowing to modify the arguments.
Next