Алгоритм

Алгори́тм

Алгорифм, одно из основных понятий (категорий) математики, не обладающих формальным определением в терминах более простых понятий, а абстрагируемых непосредственно из опыта. А. являются, например, известные из начальной школы правила сложения, вычитания, умножения и деления столбиком. Вообще, под А. понимается всякое точное предписание, которое задаёт вычислительный процесс (называемый в этом случае алгоритмическим), начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного А. исходных данных) и направленный на получение полностью определяемого этим исходным данным результата; например, в упомянутых А. арифметических действий возможными результатами могут быть натуральные числа, записанные в десятичной системе, а возможными исходными данными упорядоченные пары таких чисел, и содержание предписания, т. о., помимо инструкции по развёртыванию алгоритмического процесса, должно входить также: 1) указание совокупности возможных исходных данных (в. и. д.) и 2) правило, по которому процесс признается закончившимся ввиду достижения результата. Не предполагается, что результат будет обязательно получен: процесс применения А. к конкретному в. и. д. (т.е. алгоритмический процесс, развёртывающийся начиная с этого данного) может также оборваться безрезультатно или не закончиться вовсе. В случае, если процесс заканчивается (соответственно не заканчивается) получением результата, говорят, что А. применим (соответственно неприменим) к рассматриваемому в. и. д. (Можно построить такой А. ℑ, для которого не существует А., распознающего по произвольному возможному для ℑ исходному данному, применим к нему ℑ или нет; такой А. ℑ можно, в частности, построить так, чтобы совокупностью его в. и. д. служил натуральный ряд.)

Понятие А. занимает одно из центральных мест в современной математике, прежде всего вычислительной. Так, проблема численного решения уравнений данного типа сводится к отысканию А., который всякую пару, составленную из произвольного уравнения этого типа и произвольного рационального числа ε, перерабатывает в число (или набор чисел) меньше, чем на ε, отличающееся (отличающихся) от корня (корней) этого уравнения. Усовершенствование вычислительных машин даёт возможность реализовать на них всё более сложные А. Однако встретившийся в описывающей понятие А. формулировке термин «вычислительный процесс» не следует понимать в узком смысле только цифровых вычислений. Так, уже в школьном курсе алгебры говорят о буквенных вычислениях, да и в арифметических вычислениях появляются отличные от цифр символы: скобки, знак равенства, знаки арифметических действий. Можно пойти дальше и рассматривать вычисления с произвольными символами и их комбинациями; именно таким широким пониманием пользуются при описании понятия А. Так, можно говорить об А. перевода с одного языка на другой, об А. работы поездного диспетчера (перерабатывающего информацию о движении поездов в приказы) и др. примерах алгоритмического описания процессов управления; именно поэтому понятие А. является одним из центральных понятий кибернетики. Вообще, исходными данными и результатами А. могут служить самые разнообразные конструктивные объекты; например, результатами т. н. распознающих А. служат слова «да» и «нет».

Пример алгоритма. В. и. д. и возможными результатами пусть служат всевозможные конечные последовательности букв a и b («слова в алфавите {a, b}»). Условимся называть переход от слова Х к слову Y «допустимым» в следующих двух случаях (ниже Р обозначает произвольное слово): 1) Х имеет вид аР, а Y имеет вид Pb; 2) X имеет вид baP, а Y имеет вид Paba. Формулируется предписание : «взяв какое-либо слово в качестве исходного, делай допустимые переходы до тех пор пока не получится слово вида aaP; тогда остановись, слово Р и есть результат». Это предписание образует А., который обозначим через ℜ. Возьмем в качестве исходного данного слово babaa. После одного перехода получим baaaba, после второго aabaaba. В силу предписания мы должны остановиться, результат есть baaba. Возьмём в качестве исходного данного слово baaba. Получим последовательно abaaba, baabab, abababa, bababab, babababa, ... Можно доказать, что процесс никогда не кончится (т. е. никогда не возникает слово, начинающееся с aa и для каждого из получающихся слов можно будет совершить допустимый переход). Возьмём теперь в качестве исходного данного слово abaab. Получим baabb, abbaba, bbabab. Далее мы не можем совершить допустимый переход, и в то же время нет сигнала остановки. Произошла т.н. «безрезультативная остановка». Итак, ℜ применим к слову babaa и неприменим к словам baaba и abaab.

Значение А. А. в науке встречаются на каждом шагу; умение решать задачу «в общем виде"всегда означает, по существу, владение некоторым А. Говоря, например, об умении человека складывать числа, имеют в виду не то, что он для любых двух чисел рано или поздно сумеет найти их сумму, а то, что он владеет некоторым единообразным приёмом сложения, применимым к любым двум конкретным записям чисел, т. е. иными словами, А. сложения (примером такого А. и является известное правило сложения чисел столбиком). Понятие задачи «в общем виде» уточняется при помощи понятия массовая Проблема (м. п.). М.п. задаётся серией отдельных, единичных проблем и состоит в требовании найти общий метод (то есть А.) их решения. Так, проблема численного решения уравнений данного типа и проблема автоматического перевода суть м. п.: образующими их единичными проблемами являются в 1-м случае проблемы численного решения отдельных уравнений данного типа, а во 2-м случае — проблемы перевода отдельных фраз. Ролью м. п. и определяется как значение, так и сфера приложения понятия А. М. п. чрезвычайно характерны и важны для математики: например, в алгебре возникают м.п. проверки алгебраических равенств различных типов, в математической логике — м. п. распознавания выводимости предложении из заданных аксиом и т.п. (для математической логики понятие А. существенно ещё и потому, что на него опирается центральное для математической логики понятие исчисления (См. Исчисление), служащее обобщением и уточнением интуитивных понятий «вывода» и «доказательства»). Установление неразрешимости какой-либо массовой проблемы (например, проблемы распознавания истинности или доказуемости для какого-либо логико-математического языка), т. е. отсутствия единого А., позволяющего найти решения всех единичных проблем данной серии, является важным познавательным актом, показывающим, что для решения конкретных единичных проблем принципиально необходимы специфические для каждой такой проблемы методы. Существование неразрешимых м. п. служит, т. о., проявлением неисчерпаемости процесса познания.

Содержательные явления, которые легли в основу образования понятия «А.», издавна занимали важное место в науке. С древнейших времён многие задачи математики заключались в поисках тех или иных конструктивных методов. Эти поиски, особенно усилившиеся в связи с созданием удобной символики, а также осмысления принципиального отсутствия искомых методов в ряде случаев (задача о квадратуре круга и подобные ей) — все это было мощным фактором развития научных знаний. Осознание невозможности решить задачу прямым вычислением привело к созданию в 19 в. теоретико-множественной концепции . Лишь после периода бурного развития этой концепции (в рамках которой вопрос о конструктивных методах в современном их понимании вообще не возникает) оказалось возможным в середине 20 в вновь вернуться к вопросам конструктивности, но уже на новом уровне, обогащенном выкристаллизовавшимся понятием А. Это понятие легло в основу особого конструктивного направления (См. Конструктивная математика) в математике.

Само слово «А.» происходит от algorithmi, являющегося, в свою очередь, латинской транслитерацией арабского имени хорезмийского математика 9 в. аль-Хорезми. В средневековой Европе А. называется десятичная позиционная система счисления и искусство счёта в ней, поскольку именно благодаря латинскому переводу (12 в.) трактата аль-Хорезми Европа познакомилась с позиционной системой.

Строение алгоритмического процесса. Алгоритмический процесс есть процесс последовательного преобразования конструктивных объектов (См. Конструктивные объекты) (к. о.), происходящий дискретными «шагами»; каждый шаг состоит в смене одного к. о. другим. Так, при применении А. ℙ к слову baaba возникают последовательно baaba, abaaba, baabab и т. д. А при применении, скажем, А. вычитания столбиком к паре <307, 49> последовательно возникнут такие к. о.:

Алгоритм

Алгоритм. Рис. 2 Алгоритм. Рис. 3 Алгоритм. Рис. 4

При этом в ряду сменяющих друг друга к. о. каждый последующий полностью определяется (в рамках данного А.) непосредственно предшествующим. При более строгом подходе предполагается также, что переход от каждого к. о. к непосредственно следующему достаточно «элементарен» — в том смысле, что происходящее за один шаг преобразование предыдущего к. о. в следующий носит локальный характер (преобразованию подвергается не весь к. о., а лишь некоторая, заранее ограниченная для данного А. его часть и само это преобразование определяется не всем предыдущим к. о., а лишь этой ограниченной частью).

Т. о., наряду с совокупностями возможных исходных данных и возможных результатов, для каждого А. имеется ещё совокупность промежуточных результатов (п. р.), представляющая собой ту рабочую среду, в которой развивается алгоритмический процесс. Для ℙ все три совокупности совпадают, а для А. вычитания столбиком — нет: возможными исходными данными служат пары чисел, возможными результатами — числа (все в десятичной системе), а промежуточные результаты суть «трёхэтажные» записи вида

Алгоритм. Рис. 5

где q есть запись числа в десятичной системе, r — такая запись или пустое слово, а р — запись числа в десятичной системе с допущением точек над некоторыми цифрами.

Работа А. начинается подготовительным шагом, на котором возможное исходное данное преобразуется в начальный член ряда сменяющих друг друга промежуточных результатов; это преобразование происходит на основе специального, входящего в состав рассматриваемого А. «правила начала». Это правило для ℙ состоит в применении тождественного преобразования, а для А. вычитания — в замене пары<�а, b> на запись

Алгоритм. Рис. 6

Затем применяется «правило непосредственной переработки», осуществляющее последовательные преобразования каждого возникающего промежуточного результата в следующий. Эти преобразования происходят до тех пор, пока некоторое испытание, которому подвергаются все промежуточные результаты по мере их возникновения, не покажет, что данный промежуточный результат является заключительным; это испытание производится на основе специального «правила окончания». Например, для ℙ правило окончания состоит в проверке, не начинается ли промежуточный результат на aa. (Если ни для какого из возникающих промежуточных результатов правило окончания не даёт сигнала остановки, то либо к каждому из возникающих промежуточных результатов применимо правило непосредственной переработки, и алгоритмический процесс продолжается неограниченно, либо же к некоторому промежуточному результату правило непосредственной переработки оказывается неприменимым, и процесс оканчивается безрезультатно.) Наконец, из заключительного промежуточного результата — также на основе специального правила — извлекается окончательный результат; для ℙ это извлечение состоит в отбрасывании первых двух букв а, а для А. вычитания — в отбрасывании всего, кроме самой нижней строчки цифр. (Во многих важных случаях правило начала и правило извлечения результата задают тождественные преобразования и потому отдельно не формулируются.) Т. о., для каждого А. можно выделить 7 характеризующих его (не независимых!) параметров: 1) совокупность возможных исходных данных, 2) совокупность возможных результатов, 3) совокупность промежуточных результатов, 4) правило начала, 5) правило непосредственной переработки, 6) правило окончания, 7) правило извлечения результата.

«Уточнения» понятия А. Возможны дальнейшие «уточнения» понятия А., приводящие, строго говоря, к известному сужению этого понятия. Каждое такое уточнение состоит в том, что для каждого из указанных 7 параметров А. точно описывается некоторый класс, в пределах которого этот параметр может меняться. Выбор этих классов и отличает одно уточнение от другого. Во многих уточнениях все классы, кроме двух — класса совокупностей промежуточных результатов и класса правил непосредственной переработки, — выбираются единичными, т. е. все параметры, кроме указанных двух, жестко фиксируются. Поскольку 7 параметров однозначно определяют некоторый А., то выбор 7 классов изменения этих параметров определяет некоторый класс А. Однако такой выбор может претендовать на название «уточнения», лишь если имеется убеждение, что для произвольного А., имеющего допускаемые данным выбором совокупности возможных исходных данных и возможных результатов, может быть указан равносильный ему А. из определённого данным выбором класса А. Это убеждение формулируется для каждого уточнения в виде основной гипотезы, которая — при современном уровне наших представлений — не может быть предметом математического доказательства.

Первые уточнения описанного типа предложили в 1936 американский математик Э. Л. Пост и английский математик А. М. Тьюринг (см. Тьюринга машина). Известны также уточнения, сформулированные советскими математиками А. А. Марковым (см. Нормальный алгоритм (См. Нормальный алгорифм)) и А. Н. Колмогоровым (последний предложил трактовать конструктивные объекты как топологические Комплексы определённого вида, что дало возможность уточнить свойство «локальности» преобразования). Для каждого из предложенных уточнений соответствующая основная гипотеза хорошо согласуется с практикой. В пользу этой гипотезы говорит и то, что, как можно доказать, все предложенные уточнения в некотором естественном смысле эквивалентны друг другу.

В качестве примера приведём (в модернизированном виде) уточнение, предложенное Тьюрингом. Чтобы задать тьюрингов А., надо указать: а) попарно непересекающиеся алфавиты Б, Д, Ч с выделенной в Д буквой λ и выделенными в Ч буквами α и ω, б) набор пар вида < рξ, ηTq >, где р, q∈Ч, ξ, η∈Б∪Д, а Т есть один из знаков —, 0, +, причём предполагается, что в этом наборе (называемой программой) нет 2 пар с одинаковыми первыми членами. Параметры А. задаются так: возможными исходными данными и возможными результатами служат слова в Б, а промежуточными результатами — слова в Б∪Д∪Ч, содержащие не более одной буквы из Ч. Правило начала: исходное слово Р переводится в слово λαРλ. Правило окончания: заключительным является промежуточный результат, содержащий ω. Правило извлечения результата: результатом объявляется цепочка всех тех букв заключительного промежуточного результата, которая идёт вслед за ω. и предшествует первой букве, не принадлежащей Б. Правило непосредственной переработки, переводящее А в А', состоит в следующем. Приписываем к А слева и справа букву λ; затем в образовавшемся слове часть вида ερξ, где р∈Ч, заменяем на слово Q по следующему правилу: в программе ищется пара с первым членом рξ; пусть второй член этой пары есть ηTq; если Т есть - , то Q = qεη, ЕСли Т есть 0, то Q =εqη; если Т есть +, то О = εηq. Возникающее после этой замены слово и есть А'.

См. также ст. Алгоритмов теория и лит. при этой статье.

В. А. Успенский.

Источник: Большая советская энциклопедия на Gufo.me


Значения в других словарях

  1. алгоритм — -а, м. мат. Система вычислений по строго определенным правилам, которая после последовательного их выполнения приводит к решению поставленной задачи. Алгоритм извлечения корня из числа. Построение системы алгоритмов. Малый академический словарь
  2. АЛГОРИТМ — АЛГОРИТМ, алгорифм (от лат. algorithmi, algorismus, по имени арабского ученого 9 в. ал-Хорезми) – точное предписание, задающее потенциально осуществимый (см. Новая философская энциклопедия
  3. алгоритм — Способ (программа) решения вычислительных и других задач, точно предписывающий, как и в какой последовательности получить результат, однозначно определяемый исходными данными. Техника. Современная энциклопедия
  4. алгоритм — Совокупность последовательных логических действий, реализуемых машиной и аналогичных некоторым операциям естественного логического мышления. Толковый переводоведческий словарь / Л.Л. Нелюбин. — 3-е изд., перераб. — М.: Флинта: Наука, 2003 Толковый переводоведческий словарь
  5. алгоритм — Английское – algorithm. Латинское – algorizmus. Слово «алгоритм» получило распространение в русском языке в конце 20-х гг. XX в. По всей видимости, данное слово заимствовано из английского языка и восходит к латинскому algorizmus... Этимологический словарь Семёнова
  6. алгоритм — (algorismus) Решение задачи при помощи системы вычислений, ориентированной на разбиение операций на более простые, и последовательное их выполнение. Для алгоритма характерны дискретность, детерминированность шагов, направленность, массовость. Словарь лингвистических терминов Жеребило
  7. алгоритм — АЛГОРИТМ а, м. algorithme m. 1230 algorisme. Лексис.1. В математике — общепонятное предписание, определяющее детерминированный вычислительный процесс, ведущий от исходных данных к искомому результату. БАС-2. Словарь галлицизмов русского языка
  8. Алгоритм — (от algorithmi, algorismus, первоначально — латинская транслитерация имени среднеазиатского ученого АЛЬ-ХОРЕЗМИ) способ решения вычислительных и других задач, точно предписывающий, как и в какой последовательности получить результат... Педагогический терминологический словарь
  9. Алгоритм — Способ (программа) решения вычислительных и других задач, точно предписывающий, как и в какой последовательности получить результат, однозначно определяемый исходными данными; одно из основных понятий математики и кибернетики. Название: от фр. Судьба эпонимов. Словарь-справочник
  10. алгоритм — АЛГОРИТМ (от algorithmi, algorismus, первонач. — лат. транслитерация араб. имени ср.-азиатского математика аль-Хорезми), способ (программа) решения вычислит. Сельскохозяйственный словарь
  11. алгоритм — АЛГОРИТМ (алгорифм; от лат. формы имени ученого 9 в. аль-Хорезми — Algorithmi) — точное предписание о порядке выполнения некоторой системы операций над исходными данными для получения желаемого результата, которое исполняется вычислителем (человеком... Энциклопедия эпистемологии и философии науки
  12. алгоритм — Алгори́тм/. Морфемно-орфографический словарь
  13. алгоритм — сущ., м., употр. сравн. часто (нет) чего? алгоритма, чему? алгоритму, (вижу) что? алгоритм, чем? алгоритмом, о чём? об алгоритме; мн. что? алгоритмы, (нет) чего? алгоритмов, чему? алгоритмам, (вижу) что? алгоритмы, чем? алгоритмами, о чём?... Толковый словарь Дмитриева
  14. алгоритм — Заимств. в Советскую эпоху из англ. яз., в котором algorithm восходит к ср.-лат. algorithmus < algorizmus (по имени узбек. математика Аль-Хорезми). Этимологический словарь Шанского
  15. алгоритм — орф. алгоритм, -а Орфографический словарь Лопатина
  16. АЛГОРИТМ — (от имени среднеазиатского математика VIII-IX вв. аль-Хорезми) — в математике: точное предписание для выполнения «вычислительного» (комбинаторного) процесса. Обычно подразумевается, что... Большой психологический словарь
  17. АЛГОРИТМ — АЛГОРИТМ, разложенный поэтапно набор команд или процедур, которым необходимо следовать для получения определенного результата из исходного набора вводных данных. Научно-технический словарь
  18. Алгоритм — I Алгоритм набор правил, позволяющий решить любую конкретную задачу из определенного класса. С помощью А. задают последовательность действий, которые надо совершить для получения искомого решения, например А. диагностики заболевания по симптомам (см. Медицинская энциклопедия
  19. алгоритм — АЛГОРИТМ -а; м. 1. Матем. Последовательность проведения вычислительных операций для определения искомого результата, искомой величины. А. извлечения корня из числа. // Последовательность действий для выполнения какой-л. задачи. Толковый словарь Кузнецова
  20. алгоритм — алгоритм I м. см. алгорифм 1. Определенная последовательность операций или вычислений (в математике). 2. Программа для электронной вычислительной машины, позволяющая от исходных данных прийти к искомому результату (в информатике). II м. Обобщённая схема какой-либо или чьей-либо деятельности. Толковый словарь Ефремовой
  21. АЛГОРИТМ — (от латинской формы имени среднеазиатского математика аль-Хорезми) правило действий, последовательность проведения вычислительных операций, способ нахождения искомого результата. Экономический словарь терминов
  22. АЛГОРИТМ — АЛГОРИТМ (алгорифм) (от algorithmi — algorismus, первоначально — лат. транслитерация имени математика аль-Хорезми) — способ (программа) решения вычислительных и др. Большой энциклопедический словарь
  23. алгоритм — АЛГОРИТМ, а, м. (спец.). Совокупность действий, правил для решения данной задачи. А. извлечения корня. | прил. алгоритмический, ая, ое. Толковый словарь Ожегова
  24. АЛГОРИТМ — АЛГОРИТМ (лат. algoritmi, algoritmus; первоначально — транслитерация имени среднеазиатского ученого 9 в. — Мухамеда бен Мусы аль-Хорезми) — одно из основных понятий логики и математики. Термин... Новейший философский словарь