Не бывает бесконечных алгоритмов.
Давайте формальное определение.
Чтобы ответить полно, надо по существу развить некоторую теорию. Поэтому, дам лишь самые общие определения. Конечный алгоритм есть всего лишь выражение некоторого математического опыта. Вычисление или вывод задаётся чётким правилом, разбивающим вывод на конечное число шагов. На каждом шаге вполне ясно, какие действия предпринять, чтобы сделать этот шаг. В этом и «эффективность». Но можно получать объект и «в эффективном процессе»: к примеру, вычисление числа
можно получить в процессе, который интуитивно есть бесконечный алгоритм. У нас есть геометрическое основание существования числа
, есть основание к тому, чтобы ввести число
так сказать синтетически. Затем, синтетическое число перерабатывается явно эффективным правилом в десятичную числовую последовательность. Чем не бесконечный алгоритм? Он и не может быть другим для бесконечных последовательностей. Ограничивать алгоритм переработкой заранее данных символов – необоснованный приём. Впрочем, даже символы, как непрерывные фигуры по существу – бесконечные объекты. Каждый шаг в конечном алгоритме это некоторое, вообще говоря, непрерывное действие. В том числе, и для вычислительных машин. Так что такой шаг можно разбить на другие и т.д. Т.е. каждый конечный алгоритм можно свести к бесконечному. К примеру, на каком-то шаге даётся задание подсчитать число
, а затем, в зависимости от результата, перейти к следующему шагу.
Это, что касается конечности алгоритмов.
«Эффективная функция» задаётся конкретными примерами (на сей раз можно последовать Гёделю). Т.е. предъявляется конкретная функция, и эффективность её оспаривать бессмысленно. Затем, композициями и некоторыми другими операциями получаем другие эффективные функции. Рекурсивные функции, конечно же – эффективные.
Для теории с фиксированным алфавитом строим эффективную функцию следующим алгоритмом: 1) упорядочи все символы алфавита теории; 2) лексикографически упорядочи слова цепочки символов, в частности слова и правильные выражения; 3) найди способ выделения эффективных функций теории (а других функций там нет), и пересчитай их, пользуясь лексикографическим порядком как функции
; 4) введи новый символ F, соответствующий новой функции (описываемой вне языка теории); 5)
, если
определена;
- не определена, если
- не определена. Почему
не эффективная функция?