Новая философская энциклопедия В 4 томах. Том 1 (1184478), страница 49
Текст из файла (страница 49)
Степень данного многочлена определяетобъем исходных данных, которые могут быть обработаны.В частности, для вычислений часто приемлемы алгоритмы, число шагов которых растет как четвертая степеньот исходных данных, а для работы с большими базамиданных обычно неприемлемы даже квадратично растущие алгоритмы.Экспоненциальный рост числа шагов машины Тьюринга означает, что область реального применения данногоалгоритма жестко ограничена сверху и никакой рост вычислительных ресурсов не может значительно поднятьпланку. Напр., для увеличения числа булевых переменныхв проверяемой пропорциональной формуле на 1 придетсяподнимать быстродействие машины в два раза.
Более чемэкспоненциальный рост означает практическую невычислимость.Прямая и обратная функции могут сильно различаться посложности, поэтому строить простые коды, практическине расшифровываемые без знания ключа. Это послужилоосновой современной практики кодирования и электронных подписей.Сложность описания системы — гораздо более сложныйобъект, чем само ее описание. Т. о., познать систему полностью может лишь система более высокого порядка. Минимум сложности описаний конструктивных объектов сданным числом элементов растет медленнее, чем любая вычислимая функция (т.
о., есть громадные, но исключительно просто описываемые объекты, напр. 10'° ). Сложностьописания большинства объектов данной длины не намногониже, чем длина записи этих объектов. Т. о., возникает понятие содержательного случайного объекта, не описываемого кратко никакими алгоритмическими средствами.На основе теории сложности описания А. Н. Колмогоров,Л.
А. Левин, П. Мартин-Леф и другие развили алгоритмическую теорию вероятностей. Основой данной теорииявилось содержательное определение случайной последовательности по Р. Мизесу. Двоичная последовательностьслучайна, если из нее нельзя выбрать никакую последовательность с другой частотой нулей и единиц. Напр., последовательность 0, 1, 0, 1...
неслучайна, поскольку последовательность ее четных членов состоит из одних единиц.В классической математике такое определение пусто. А. Н.Колмогоров уточнил его, предложив рассматривать лишьалгоритмические перестановки подмножеств членов данной последовательности.
Оказалось, что случайность связана со сложностью определения. Сложность фрагментовслучайной последовательности пропорциональна длине ихзаписи. Итак, содержательно случайные объекты являютсяприближениями к случайным последовательностям.Для любой совокупности программ, имеющих ограниченную сложность, можно построить ограниченный универсальный алгоритм, исполняющий все их без ошибок,но его сложность будет неизмеримо выше, чем сложностьисполняемых программ. Далее, можно построить алгоритмический процесс, расширяющий ограниченный универсальный алгоритм с тем, чтобы включить любую предъявленную программу, не входящую в данный класс, но приэтом сложность универсального метода станет еще выше.Уже один шаг данного процесса диагонализации далековыводит за рамки класса функций, считающихся реальновычислимыми.
Это — алгоритмическая основа софизма,примененного в аргументе Саймона (см. Парадокс логический). Заметим, что тезис Черча содержит одно важноеонтологическое предположение: о невозможности обозреть вечность. Поэтому в общей теории относительности(в частности, во вселенной Гёделя, в которой время может ходить по кругу) имеются миры, в которых, пролетаясквозь вращающуюся черную дыру, можно вычислить алгоритмически невычислимую функцию. Класс функций,которые могут быть вычислены в таких Вселенных, называется гиперарифметическим. Он неопределим в арифметике и определим лишь в анализе.Лит.: Клини С.
К. Введение в метаматематику. М., 1957; Барендрегт X. λ-исчисление. Его синтаксис и семантика. М., 1984;Марков Α. Α., Нагорный Н. М. Теория алгоритмов. М., 1984; Теория рекурсий. — В кн.: Справочная книга по математическойлогике. М., 1982; Успенский В. Α., Семенов А. Л. Теория алгоритмов: основные открытия и приложения. М., 1987; Роджерс X.Теория рекурсивных функций и эффективная вычислимость.М., 1972; Непейвода Η.
Η. Прикладная логика. Ижевск, 1997.Η. Η. Непейвода78АЛЕКСАНДЕРАЛГОРИТМИЧЕСКИЙ ЯЗЫК — искусственная системаязыковых средств, обладающая выразительными возможностями, достаточными для того, чтобы с ее помощьюможно было задать любое принадлежащее заранее очерченному классу детерминированное общепонятное предписание, выполнение которого ведет от варьирующихв определенных пределах исходных данных к искомомурезультату.
Такого рода предписания носят название алгоритмов, откуда и сам термин «алгоритмический язык».В систематическое употребление он был введен в 1958Г. Боттенбрухом. Исторически понятие алгоритмическогоязыка сформировалось в 50-х гг. 20 в. в процессе становления компьютерного программирования как самостоятельной научной дисциплины. Однако теоретическиеистоки этого понятия прослеживаются еще в работах 30-хгг. С. К. Клини, Э.
Л. Поста, А. М. Тьюринга и А. Черчапо уточнению общего математического понятия алгоритма. В настоящее время теория алгоритмических языков,а также проблематика, связанная с их разработкой и использованием, составляет один из важнейших разделовинформатики.В логико-лингвистическом и гносеологическом аспектеалгоритмические языки представляют собой одну из моделей императива (повелительного наклонения), и потомувыступают, с одной стороны, как средство фиксации операционного знания, а с другой — как инструмент машинной, человеко-машинной или даже просто человеческойкоммуникации.
За короткий промежуток времени алгоритмические языки превратились в новое познавательноесредство, органически вошедшее в научную и практическую деятельность человека. Обычно к ним предъявляетсятребование «универсальности», заключающееся в том, чтодолжна иметься возможность моделирования с их помощью любых алгоритмов из числа тех, которые дают какоелибо уточнение общего понятия алгоритма (напр., машинТьюринга). Абсолютная точность синтаксиса алгоритмического языка необходима не во всех случаях. Но в определенных ситуациях (напр., когда тексты, записанные накаком-либо алгоритмическом языке, начинают выступатьв роли средства общения с компьютером) этот алгоритмический язык должен быть оформлен в виде соответствующего формализованного языка с четко описанным синтаксисом и точно заданной семантикой его грамматическихкатегорий. Центральное место в таких алгоритмическихязыках занимают тексты, называющиеся программами(собственно говоря, именно они и выражают понятиеалгоритма).
Понятие программы формулируется в чистоструктурных терминах синтаксиса этого языка, без какого-либо обращения в смысловым категориям. Точно такой же характер носит и описание процедуры выполненияпрограммы. Поэтому в роли исполнителя алгоритмов, записанных на формализованных алгоритмических языках,может выступать не только человек, но и наделенное соответствующими возможностями автоматическое устройство, напр., компьютер. «Теоретические» алгоритмическиеязыки (такие, как язык машин Тьюринга или нормальныхалгорифмов Маркова) лежат в основе общей теории алгоритмов.«Практические» алгоритмические языки — т. н. языкипрограммирования для компьютеров (в настоящее времяих известно более тысячи) — используются в практике машинного решения самых разнообразных по своему характеру задач.
На ранней стадии программирования употреблялись «машинно-ориентированные» алгоритмическиеязыки т. н. языки «низкого уровня»), учитывавшие структуру или даже характеристики конкретных вычислительныхмашин (систему команд, особенности и структуру памятии т. п.). Потом им на смену пришли «проблемноориентированные» алгоритмические языки (языки «высокого уровня»),освободившие пользователя от необходимости ориентироваться на машины определенного типа и тем самым придавшие его усилиям гораздо большую математическую направленность.
Дальнейшим развитием идеи алгоритмическогоязыка явились языки программирования более общего, необязательно алгоритмического характера. Как и алгоритмические языки, такие языки в конечном счете тоже нацеленына получение машинных программ, но во многих случаях ихтексты допускают определенную свободу в выполнении и,как правило, дают лишь материал для синтеза искомых алгоритмов, а не сами эти алгоритмы.