One possible way to do this would be to use some kind of neural network (maybe some CNN, MLP, RNN or even a Transformer
Of course there are a few issues with this:
- the inference time of the neural network would be quite large (but maybe this can be solved using Knowledge Distillation to compress the neural network size or running the search on a GPU)
- it seems that the neural network would need to be re-trained for different widths and speeds and rules which is a bit troublesome (perhaps there would be a way to give the neural network information about the speeds, maybe some similar to this?)
- the variable input size would also be a bit troublesome to deal with - what would be a good representation for the input to the neural network?
- the training data may also be a bit hard to obtain since it would need ships to be found first so that the training data can be inputted which would mean this can't be used to search for ships with new speeds? It would also need quite a number of ships of that speed to be found so...
I am considering trying to implement this in the latter half of this year when I'm more free but I don't really know how to resolve these issues. Any ideas? Or maybe there is another way to identify which extension is more promising?