~ruther/ctu-fee-eoa

ref: c0d71ff4c9e0d11290955bbf96a83d8eb84e8477 ctu-fee-eoa/codes/eoa_lib/src d---------
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
92bd0617 — Rutherther 3 months ago
feat: add into_iter for population
1d889574 — Rutherther 3 months ago
feat: add utilities to perturbation to iterate through wrappers easily

Make PerturbationOperator implement Any, allowing it to be downcasted.
Make WrapperPerturbation for perturbations that wrap other
perturbations, such as the mutation perturbation and bounded perturbation.
Make ListWrapperPerturbation for pertrubations that wrap multiple
pertrubations, such as the combined perturbation.

This should allow for easily looking through perturbations, finding
all perturbations of a specific type and modifying them. One use
case can be for changing the probability of a mutation perturbation
during evolution.
c6e0be8a — Rutherther 3 months ago
chore: do not pass pairing as mut
de36016c — Rutherther 3 months ago
tests: tweak one_max parameters
c47387eb — Rutherther 3 months ago
refactor: abstract pairing to n-ary
372dc756 — Rutherther 3 months ago
tests: adjust evolution one_max algorithm to always find optimum
b39687d4 — Rutherther 3 months ago
feat(binary_string): add single bit perturbation, flip perturbation
Next