This is a special post for quick takes by Roman Malov. Only they can create top-level comments. Comments here also appear on the Quick Takes page and All Posts page.
This notion is crucially time-dependent: one algorithm might be seen as fast right now but slow tomorrow. To use that word, we need to have a frame of reference, which could of course be other algorithms on the same "ontology level," trying to do the same thing, but having them around is not always the case.
In some sense, every (sufficiently open-minded) search algorithm will find a solution. By "open-mindedness" I mean that its search space has other algorithms in it, which would be executed via this initial algorithm as "hardware" (or maybe not, depending on our assumptions). At some point it would stumble upon some search algorithm which would find some algorithm which would find the solution (think of grid search on hyperparameters for an ML algorithm for finding the shortest route on a map).
What I propose is to put the field of computer science on this same ontological level of "search algorithm in the recursive space of search algorithms over search algorithms and solutions," and for it to have some numerical speed. Not infinite speed. Just some high speed, with regard to which discovered algorithms can be slow or fast.
One could go even further and say that "evolution" is also one of those search algorithms. Maybe even the most fundamental one.
"search algorithm in the recursive space of search algorithms over search algorithms and solutions," and for it to have some numerical speed. Not infinite speed. Just some high speed
First of all, this algorithm will have low speed in practice. Additionally, I expect that "one algorithm might be seen as fast right now but slow tomorrow" is true only if the incentives change around compute (e.g. due to the rise of GPUs executing armies of operations in parallel) or if the algorithm becomes obsolete. For example, the Miller-Rabin test placed the task of check... (read more)