~ruther/ctu-fee-eoa

11befbf6 — Rutherther a year ago
refactor(tsp): split to multiple files out of tsp.rs
ce632f10 — Rutherther a year ago
fix(lib): do not take mut self in population.iter()
ec2647b8 — Rutherther a year ago
feat(lib): add roulette wheel selection
45b0d91f — Rutherther a year ago
refactor(tsp): put plotting to main to not repeat code
9063396d — Rutherther a year ago
feat(lib): add random search
e326216f — Rutherther a year ago
feat(tsp): add ea binary algorithm
25d83780 — Rutherther a year ago
tests(tsp): adapt to new binarystring -> node permutation implementation
d2cfd7e0 — Rutherther a year ago
tests(tsp): add test for verify_solution
dd037eb9 — Rutherther a year ago
feat(tsp): add move node perturbation
8eaf8145 — Rutherther a year ago
fix(tsp): properly implement binary string -> node permutation fitness
ec7345a5 — Rutherther a year ago
feat(lib): add n consecutive bit flip perturbation for binary string
38c9f268 — Rutherther a year ago
feat(lib): add two point and n point crossovers
f304d071 — Rutherther a year 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 year 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 year ago
feat: add possibility to evolve strategy during evolution_algorithm
b999449b — Rutherther a year ago
refactor: generalize apply_to_mutations
99f05825 — Rutherther a year ago
refactor(lib): allow modifying mutation perturbation
f63848aa — Rutherther a year 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.
0fe8b60c — Rutherther a year ago
feat(tsp): Output csv statistics
f5b21e84 — Rutherther a year ago
chore: add pngs to gitignore
Next