I am confused. Sometimes i read about terminating and not terminating algorithms. I almost always read these things in the context of turing machines. This means to me: There are algorithms which terminate and others which don't.
But for example the german wikipedia page for algorithm says that an algorithm always must terminate:
https://de.wikipedia.org/wiki/Algorithmus#Turingmaschinen_und_Algorithmusbegriff
"4. Das Verfahren darf nur endlich viele Schritte benötigen."
This brings me to my question:
Does every turing machine represent an algorithm, or only the turing machines which terminate for a at least one input? Or: Must an algorithm terminate, or is it okay if an algorithm runs forever? Maybe i do not really understand the formal definition of the word "algorithm"?
Best regards
Kevin
Even a Turing machine that never finishes regardless of its input can be said to 'solve a problem' (i.e., implement a recursive function), namely, the unique recursive function with empty domain.
The necessary condition in the article you quote is not that the Turing machine must be guaranteed to halt, only that is must be guaranteed to halt for every input in the domain of the recursive function (jede Eingabe, die eine Lösung besitzt).