Let's say we want to have a search heuristic that (tries to) find the best hash generator, optimizing some objective function(s). A first feature set for a MvP would be: - [ ] Hashgen operators: - [ ] Computes the allowed range of their managed parameters (e.g. shifts, if it depends on `value_size` ?). - [x] Solution: - [x] Necessary interface from `EO` - [x] Have an interface that allows the addition/removal/swap of forward operators. - [x] Computes the reverse hashgen from the forward set of operators. - [ ] Objective function: - [x] A functor that computes the qualities of any given hashgen. - [ ] Estimation of a locality metric from forward-reverse hashgen. - [x] Neighbor(hood): - [x] An initializer for random forward operator set of fixed size. - [x] Neighbor for swapping operators with a fixed range of parameters (e.g. shifts) integers. - [x] Neighborhood for enumerating swaps.
Let's say we want to have a search heuristic that (tries to) find the best hash generator, optimizing some objective function(s).
A first feature set for a MvP would be:
value_size?).EO