Мы, кажется, говорим о математической теории?
Следует четко разделять неформальное понятие алгоритма, определения которого вы даете, от формализованного понятия алгоритма, задаваемого определением машины Тьюринга, либо нормального алгоритма, либо лямбда-исчисления, либо системы равенств, либо машины Колмогорова-Шёнхаге...
Дайте формальное определение.
Я что монографию тут написать должен?
Хорошо, вот определение, которое мне нравится:
Алгоритм - это иерархический граф в узлах которого расположены конечные или счетные наборы полиномов, от конечного или счетного количества переменных, с конечным или счетным количеством мономов.
В полиномах используются только операции сложения и умножения.
Правила сложения и умножения - определяется языком, но обладают свойствами кольца.
Вычисление алгоритма - это последовательное вычисление полиномов, начиная с корневого узла и далее по некоему пути в графе, определяемому значениями некоторых переменных, отвечающих за направление вычислений (можно называть их временными переменными).
Другой набор переменных отвечает за результат вычислений (можно называть их пространственными переменными).
Вычисление алгоритма прекращается по достижении тупиковой ветви графа.
В узлах графа реализуются "параллельные вычисления" - все ,находящиеся там, полиномы вычисляются одновременно и результат их вычислений не зависит от хода вычислений других полиномов ,того-же узла.
А машину Тьюринга лучше не поминайте - это какой-то громоздкий монстр, мешаюший пониманию сути алгоритмов, его давно уже пора выкинуть на свалку как бесполезную и вредную вещь.
В доказательство невычислимости никакой путаницы нет.
Там мы описываем некоторую функцию, затем предполагаем, что для ее вычисления существует алгоритм (конечный алгоритм, если уж Вы так хотите), а затем приводим это предположение к противоречию. Доказательство никак не использует понятие бесконечного алгоритма и ни к чему никакие бесконечные алгоритмы не приравнивает.
Ну если вы предполагаете некую функцию, то надо предполагать, что эта функция может и не существовать или словесному описанию этой функции может не соответствовать никакого алгоритма, её реализующего (поскольку описание некорректно).
Но если все же функция существует, у неё есть алгоритм, то надо ещё доказать, что у этого алгоритма конечное число команд (что не факт), причем любая база данных - это тоже команды для алгоритма, поскольку любой алгоритм можно заменить эквивалентной ему базой данных и наоборот.
А базы данных, к стати, могут быть бесконечными, поскольку любую базу данных можно заменить числом, а числа бывают бесконечно длинные.
Отсюда простой вывод - алгоритмы тоже бывают бесконечными.
-- Ср фев 10, 2010 01:53:33 --Это Вы где такое определение у Колмогорова нашли?
Вы внимательно читали?
Я же написал где - в Википедии, ищите ссылку на слово "Алгоритм".