If I provide:
- A list of possible transforms, and,
- A list of input states, and,
- A corresponding list of output states for each input state, and,
- A fitness function to score each output state
Which subset of machine learning can direct me towards an optimization algorithm that can map each input state to a dictionary of input states, and, failing to find a match, apply the necessary transforms to get me to the closest-related output state?
An example involving polygon legalization:
- Any given "window" can contain N different polygons, where each polygon has lower-left and upper-right co-ordinates, as well as a polygon "type".
- The input state of the polygons may or may not be "illegal".
- A list of transforms includes: move, copy, rotate, resize
- If the input state maps directly to any output state, the input state is decided to be legal. Nothing more to be done; move on the next window.
- If the input state matches any previously seen input state, transform to the matching (known-legal) output state. Nothing more to be done; move on the next window.
- Attempt transforms in different sequences until a state is reached that satisfies a fitness function. Store this input:output state combination. Move on to the next window.
Would this imply some combination of neural networking (for classification) and genetic/evolutionary algorithms? Or, does the presence of a fitness function negate the need to store combinations of input:output states?