Opened 7 years ago
#2804 new feature request
Redesign solution types
Reported by: | abeham | Owned by: | |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.x Backlog |
Component: | Encodings | Version: | 3.3.14 |
Keywords: | Cc: |
Description
A lot of encoded solution types (e.g. BinaryVector, RealVector, etc.) derive originally from ValueTypeArray<T>. Usually, ValueTypeArray<T> is fine for storing problem data or other data not relevant for performance. But an encoded solution should be as small as possible in terms of memory footprint and as fast as possible in terms of manipulation, cloning, etc.
Each ValueTypeArray<T> currently stores a List<string> elementNames as well as two boolean flags (readonly and resizable). For a RealVector this is unused payload. Additionally, the encoded solutions should be sealed and we should think about making these classes immutable so that cloning becomes cheap. Additional options would be to base them on persistent data structures (see #2727).