If a chess program still has a planning or search algorithm, then I think it would still be helpful for describing an optimizer for something else.
For example, suppose a chess program uses a standard planning algorithm and and has added chest-specific heuristics, a chess world model, and goals. Then if you wanted to specify a something-else-optimizer, you could change most of the things but keep the planning algorithm.
To count as an optimizer, an optimizer for one thing doesn’t need to be easily turned into an optimizer for something else. But it needs to help.
It’s possible that there is a way to construct what should be called an optimization algorithm that has no generalizeability at all, but I’m not sure how to do that.
Sorry for the late response.
If a chess program still has a planning or search algorithm, then I think it would still be helpful for describing an optimizer for something else.
For example, suppose a chess program uses a standard planning algorithm and and has added chest-specific heuristics, a chess world model, and goals. Then if you wanted to specify a something-else-optimizer, you could change most of the things but keep the planning algorithm.
To count as an optimizer, an optimizer for one thing doesn’t need to be easily turned into an optimizer for something else. But it needs to help.
It’s possible that there is a way to construct what should be called an optimization algorithm that has no generalizeability at all, but I’m not sure how to do that.