~ruther/ctu-fee-eoa

ref: fce9bfb2f2bbaa22f1fe518372b9d9d713f564c6 ctu-fee-eoa/codes/eoa_lib/src d---------
fce9bfb2 — Rutherther 2 months ago
chore: remove Copy from requirement of TournamentSelection
0420a0cc — Rutherther 2 months ago
refactor(lib): Allow fitting whole population at once

The fitness function gets fit_population function. The default
implementation is going over fit() one by one, but it can be
reimplemented by specific types.
5119e5e3 — Rutherther 2 months ago
feat(lib): constraints along with evolutionary strategies
8ac232c0 — Rutherther 2 months ago
chore: fix warnings
f39d2461 — Rutherther 2 months ago
feat(lib): allow modifying fitness function in evolution_algorithm
62595f5e — Rutherther 2 months ago
chore: move population structs to separate module
914ee761 — Rutherther 2 months ago
feat: split params out of PerturbationOperator to allow for non-'static PerturbationOperator

This means PerturbationOperators can now hold non-'static references.
Right away, utilize this in the Random2OptPerturbation for the TSPInstance.
0f5f2903 — Rutherther 3 months ago
feat: add a lot of algorithm showcases
8eb3e894 — Rutherther 3 months ago
feat(lib): add evaluation count to EA stats
ce632f10 — Rutherther 3 months ago
fix(lib): do not take mut self in population.iter()
ec2647b8 — Rutherther 3 months ago
feat(lib): add roulette wheel selection
9063396d — Rutherther 3 months ago
feat(lib): add random search
ec7345a5 — Rutherther 3 months ago
feat(lib): add n consecutive bit flip perturbation for binary string
38c9f268 — Rutherther 3 months ago
feat(lib): add two point and n point crossovers
f304d071 — Rutherther 3 months 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.
4d86e224 — Rutherther 3 months ago
feat: add possibility to evolve strategy during evolution_algorithm
b999449b — Rutherther 3 months ago
refactor: generalize apply_to_mutations
99f05825 — Rutherther 3 months ago
refactor(lib): allow modifying mutation perturbation
f63848aa — Rutherther 3 months 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.
7de4f4b4 — Rutherther 3 months ago
chore: do not clone for no reason in local search
Next