Алгоритм это что такое означает
Что такое алгоритм: о сложном – простыми словами
О том, что такое алгоритмы и как они влияют на нашу жизнь.
Наверняка вы слышали слово «алгоритм». Этот термин широко используется в современной жизни. И если вставить слово в повседневный разговор не составит труда, намного сложнее объяснить, что именно это такое. Сегодня поговорим о значении слова и об истинной природе алгоритмов, которые существовали в человеческой жизни еще до момента появления компьютерных технологий.
1. Алгоритм – это набор конкретных инструкций
Простыми словами, «алгоритм – это последовательность инструкций», говорит Педро Домингос, профессор компьютерных наук в Вашингтонском университете и автор книги «Верховный алгоритм. Как машинное обучение изменит наш мир».
Как испечь пирог, найти значение суммы 2+2 или управлять страной в соответствии с Конституцией – все это алгоритмы. Но чаще всего это слово связывают со сферой IT. В этом случае под «алгоритмом» понимается «последовательность инструкций, которые говорят компьютеру, что делать».
Любая компьютерная программа – это алгоритм, написанный на языке компьютерного программирования, который компьютер может понять и выполнить. И это устроено намного сложнее, чем в обычной жизни.
«Компьютерные алгоритмы должны быть предельно точны. Для их определения могут потребоваться миллионы строк», – подчеркивает профессор.
2. Люди писали и использовали алгоритмы задолго до появления компьютеров
Несмотря на то что сегодня алгоритмы используются в контексте компьютерных технологий, их история намного старше ПК. Люди создавали алгоритмы еще в Вавилонскую эпоху – они помогали им решать математические уравнения и управлять земледельческим обществом.
«Все потому, что для выполнения алгоритма не всегда нужен компьютер – им могут управлять сами люди», – утверждает Домингос.
С появлением и распространением компьютеров во второй половине XX-го века алгоритмы начали активно использоваться в военной сфере (для определения того, куда навести ракету), а позже в области бизнес-администрирования (в приложениях для расчета заработной платы) и науки (прогноз погоды).
Поворотный момент для развития современных алгоритмов наступил, когда Ларри Пейдж и Сергей Брин создали Google PageRank. Вместо того чтобы просто полагаться на информацию на странице для определения ее релевантности поисковому запросу, алгоритм поисковой системы учитывал множество других сигналов, которые помогали ему выявлять наилучшие результаты.
Например, сколько других ссылок указывало на статью и насколько авторитетными были эти статьи, в зависимости от количества ссылок, указывающих на эти страницы, и так далее.
3. Сегодня алгоритмы повсюду
С распространением компьютеров и Интернета алгоритмы стали неотъемлемой частью нашей повседневной жизни. На них основаны новостные ленты социальных сетей, которые определяют, какой контент показывать вам при скроллинге, а также механизмы интернет-магазинов, предлагающих вам товары, которые могли бы вам понравиться.
«Facebook может разместить в вашей новостной ленте кучу постов и публикаций, но благодаря алгоритму он довольно избирателен, – сказал Домингос. – Обычно он учитывает целую комбинацию факторов. Например, как часто вы взаимодействуете с людьми, которые прямо или косвенно создали этот пост; насколько публикации близки вам в вашей социальной сети; насколько они актуальны с точки зрения тематики, насколько свежи и т. д.».
По словам профессора Домингоса, мы сталкиваемся с алгоритмами на протяжении всей нашей жизни и даже можем об этом не подозревать. Например, благодаря алгоритму посудомоечная машина узнает, когда пора переходить от стирки к сушке. Это алгоритм определяет, как ваш автомобиль регулирует потребление топлива и понимает, когда его бак на заправке становится полным.
«Совершенно очевидно, что каждый раз, когда вы пользуетесь компьютером или Интернетом, вы имеете дело с алгоритмами, – подчеркнул Домингос. – В наши дни они задействованы практически во всем».
4. В самых сложных алгоритмах используется машинное обучение
Благодаря технологическому прогрессу современные алгоритмы претерпевают дальнейшие изменения. Особенно с появлением машинного обучения – разновидности искусственного интеллекта (ИИ).
«В традиционном программировании человек должен записывать каждую мелочь, для того чтобы это сделал другой, что очень затратно по времени и средствам, – объяснил Домингос. – Машинное обучение – это компьютер, использующий свои собственные алгоритмы вместо того, чтобы ему говорили, что делать».
Другими словами, машинное обучение – это когда программист вводит в программу необработанные данные в качестве отправной точки, а затем задает конечную точку того, как выглядит организованная, классифицированная версия этих данных.
Остальное делает программа: она самостоятельно выясняет, как добраться из пункта А в пункт Б. Рассмотрим пример из кулинарии. Человек, который умеет готовить, может превратить обычный лук из сырого в карамелизированные обжаренные кусочки.
В традиционном варианте программист должен был бы прописать каждый шаг инструкции по приготовлению лука. Но в алгоритме, разработанном ИИ, с учетом конечной точки-цели, программа сама должна выяснить, как перейти от сырого состояния к карамелизированному. Это значит, что машина учится этому самостоятельно.
Такие типы алгоритмов становятся еще более мощными, когда человек не знает, как добраться из точки А в точку Б. Например, человеческий процесс, такой как способность понимать, что кошка это кошка, требует сложных умственных способностей, которые невозможно расписать пошагово.
Но если дать программе набор фотографий кошки и предметов, которые кошкой не являются, и показав желаемую конечную точку в качестве категоризации изображения кошки в виде животного, компьютер научится выполнять этот процесс самостоятельно.
«Это возможность создавать мощные сложные алгоритмы с минимальным вмешательством человека», – подчеркивает Домингос.
5. Алгоритмы – это не волшебство
Из-за большого количества обрабатываемых алгоритмов данных может показаться, что они ключ ко всем загадкам человечества. Но важно помнить, что алгоритм – всего лишь набор инструкций. Более того, его создают люди, а это значит, что он может быть ошибочным. Люди, которые не очень разбираются в компьютерах, часто полагают, что «алгоритмы идеальны». Что в корне неверно.
Домингос объяснил, что программисты тратят огромное количество времени на исправление ошибок в алгоритмах. Все для того, чтобы они давали соответствующие результаты.
«Кроме того, в традиционном программировании вы должны беспокоиться о предвзятости программиста, – говорит Домингос. – В машинном обучении вы в основном должны беспокоиться о предвзятости, исходящей от данных».
Например, алгоритм найма, основанный на машинном обучении, может использовать в качестве отправной точки множество резюме кандидатов, а в качестве результата – резюме людей, которые были наняты в прошлом. Однако большинство технологических компаний не отличаются расовым разнообразием.
Таким образом, автоматизированный алгоритм, который дает рекомендации по найму, может отражать это реальное неравенство: исследования показали, что искусственный интеллект может отражать гендерные и расовые стереотипы людей, которые их обучают.
6. Алгоритмы по-прежнему способны изменить мир
Алгоритмы могут быть несовершенными, но они все равно меняют наш мир. «Все эти вещи, которые мы принимаем как должное – Интернет, социальные сети и так далее, – они бы не существовали без алгоритмов», – сказал Домингос.
«Современные алгоритмы делают для умственного труда то же, что когда-то сделала промышленная революция с ручным трудом. Алгоритмы – это автоматизация интеллекта. И очень мощное средство: то, что раньше требовало больших умственных и физических усилий, теперь можно сделать с помощью алгоритма… Алгоритмы никуда не денутся. Но только от нас зависит то, какими мы их создадим – предвзятыми или справедливыми, полезными или вредными», – подытожил профессор.
Значение слова «алгоритм»
[По латинской форме арабского имени хорезмийского математика 9 в. аль-Хорезми — Algorithmi]
Источник (печатная версия): Словарь русского языка: В 4-х т. / РАН, Ин-т лингвистич. исследований; Под ред. А. П. Евгеньевой. — 4-е изд., стер. — М.: Рус. яз.; Полиграфресурсы, 1999; (электронная версия): Фундаментальная электронная библиотека
Ранее в русском языке писали «алгорифм», сейчас такое написание используется редко, но, тем не менее, имеет место исключение (нормальный алгорифм Маркова).
Часто в качестве исполнителя выступает компьютер, но понятие алгоритма необязательно относится к компьютерным программам, так, например, чётко описанный рецепт приготовления блюда также является алгоритмом, в таком случае исполнителем является человек (а может быть и некоторый механизм, ткацкий станок, и пр.).
Можно выделить алгоритмы вычислительные (о них в основном идет далее речь), и управляющие. Вычислительные по сути преобразуют некоторые начальные данные в выходные, реализуя вычисление некоторой функции. Семантика управляющих алгоритмов существенным образом может отличаться и сводиться к выдаче необходимых управляющих воздействий либо в заданные моменты времени, либо в качестве реакции на внешние события (в этом случае, в отличие от вычислительного алгоритма, управляющий может оставаться корректным при бесконечном выполнении).
Понятие алгоритма относится к первоначальным, основным, базисным понятиям математики. Вычислительные процессы алгоритмического характера (арифметические действия над целыми числами, нахождение наибольшего общего делителя двух чисел и т. д.) известны человечеству с глубокой древности. Однако в явном виде понятие алгоритма сформировалось лишь в начале XX века.
Частичная формализация понятия алгоритма началась с попыток решения проблемы разрешения (нем. Entscheidungsproblem), которую сформулировал Давид Гильберт в 1928 году. Следующие этапы формализации были необходимы для определения эффективных вычислений или «эффективного метода»; среди таких формализаций — рекурсивные функции Геделя — Эрбрана — Клини 1930, 1934 и 1935 гг., λ-исчисление Алонзо Чёрча 1936 г., «Формулировка 1» Эмиля Поста 1936 года и машина Тьюринга. В методологии алгоритм является базисным понятием и получает качественно новое понятие как оптимальности по мере приближения к прогнозируемому абсолюту. В современном мире алгоритм в формализованном выражении составляет основу образования на примерах, по подобию.
алгори́тм
1. точный набор инструкций, описывающих последовательность действий для достижения результата, решения задачи ◆ Ведь все эти машины работают по «алгоритму» ― точно предписанному руководству к действию. В. Пекелис, «Может ли «думающая» машина решить любую задачу?» // «Техника — молодежи», 1959 г. (цитата из НКРЯ) ◆ Алгоритмом называется последовательность операций, ведущих к цели, когда каждый данный шаг однозначно определён предыдущим и предопределяет последующий. А. К. Сухотин, «Парадоксы науки», 1978 г. (цитата из НКРЯ)
Фразеологизмы и устойчивые сочетания
Делаем Карту слов лучше вместе
Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!
Спасибо! Я стал чуточку лучше понимать мир эмоций.
Вопрос: капитулировать — это что-то нейтральное, положительное или отрицательное?
Алгоритм
Из Википедии — свободной энциклопедии
Алгори́тм (лат. algorithmi — от имени среднеазиатского математика Аль-Хорезми [1] ) — конечная совокупность точно заданных правил решения некоторого класса задач или набор инструкций, описывающих порядок действий исполнителя для решения определённой задачи. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители.
Ранее в русском языке писали «алгорифм», сейчас такое написание используется редко, но тем не менее имеет место исключение (нормальный алгорифм Маркова).
Часто в качестве исполнителя выступает компьютер, но понятие алгоритма необязательно относится к компьютерным программам, так, например, чётко описанный рецепт приготовления блюда также является алгоритмом, в таком случае исполнителем является человек (а может быть и некоторый механизм, например ткацкий или токарный станок с числовым управлением, и пр.).
Можно выделить алгоритмы вычислительные (далее речь в основном идёт о них), и управляющие. Вычислительные, по сути, преобразуют некоторые начальные данные в выходные, реализуя вычисление некоторой функции. Семантика управляющих алгоритмов существенным образом может отличаться и сводиться к выдаче необходимых управляющих воздействий либо в заданные моменты времени, либо в качестве реакции на внешние события (в этом случае, в отличие от вычислительного алгоритма, управляющий может оставаться корректным при бесконечном выполнении).
Понятие алгоритма относится к первоначальным, основным, базисным понятиям математики. Вычислительные процессы алгоритмического характера (арифметические действия над целыми числами, нахождение наибольшего общего делителя двух чисел и т. д.) известны человечеству с глубокой древности. Однако в явном виде понятие алгоритма сформировалось лишь в начале XX века.
Частичная формализация понятия алгоритма началась с попыток решения проблемы разрешения (нем. Entscheidungsproblem ), которую сформулировал Давид Гильберт в 1928 году. Следующие этапы формализации были необходимы для определения эффективных вычислений [2] или «эффективного метода» [3] ; среди таких формализаций — рекурсивные функции Геделя — Эрбрана — Клини 1930, 1934 и 1935 гг., λ-исчисление Алонзо Чёрча 1936 г., «Формулировка 1» Эмиля Поста 1936 года и машина Тьюринга.
Алгоритм
Алгори́тм — набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что работа каких-то инструкций алгоритма может быть зависима от других инструкций или результатов их работы. Таким образом, некоторые инструкции должны выполняться строго после завершения работы инструкций, от которых они зависят. Независимые инструкции или инструкции, ставшие независимыми из-за завершения работы инструкций, от которых они зависят, могут выполняться в произвольном порядке, параллельно или одновременно, если это позволяют используемые процессор и операционная система.
Ранее часто писали «алгорифм», сейчас такое написание используется редко, но, тем не менее, имеет место (например, Нормальный алгорифм Маркова).
Часто в качестве исполнителя выступает некоторый механизм (компьютер, токарный станок, швейная машина), но понятие алгоритма необязательно относится к компьютерным программам, так, например, чётко описанный рецепт приготовления блюда также является алгоритмом, в таком случае исполнителем является человек.
Понятие алгоритма относится к первоначальным, основным, базисным понятиям математики. Вычислительные процессы алгоритмического характера (арифметические действия над целыми числами, нахождение наибольшего общего делителя двух чисел и т. д.) известны человечеству с глубокой древности. Однако, в явном виде понятие алгоритма сформировалось лишь в начале XX века.
Частичная формализация понятия алгоритма началась с попыток решения проблемы разрешения (нем. Entscheidungsproblem ), которую сформулировал Давид Гильберт в 1928 году. Следующие этапы формализации были необходимы для определения эффективных вычислений [1] или «эффективного метода» [2] ; среди таких формализаций — рекурсивные функции Геделя — Эрбрана — Клини 1930, 1934 и 1935 гг., λ-исчисление Алонзо Чёрча 1936 г., «Формулировка 1» Эмиля Поста 1936 года и машина Тьюринга. В методологии алгоритм является базисным понятием и получает качественно новое понятие как оптимальности по мере приближения к прогнозируемому абсолюту. В современном мире алгоритм в формализованном выражении составляет основу образования на примерах, по подобию. На основе сходства алгоритмов различных сфер деятельности была сформирована концепция (теория) экспертных систем.
Содержание
История термина
Современное формальное определение алгоритма было дано в 30—50-е годы XX века в работах Тьюринга, Поста, Чёрча (тезис Чёрча — Тьюринга), Н. Винера, А. А. Маркова.
Само слово «алгоритм» происходит от имени хорезмского учёного Абу Абдуллах Мухаммеда ибн Муса аль-Хорезми (алгоритм — аль-Хорезми). Около 825 года он написал сочинение, в котором впервые дал описание придуманной в Индии позиционной десятичной системы счисления. К сожалению, персидский оригинал книги не сохранился. Аль-Хорезми сформулировал правила вычислений в новой системе и, вероятно, впервые использовал цифру 0 для обозначения пропущенной позиции в записи числа (её индийское название арабы перевели как as-sifr или просто sifr, отсюда такие слова, как «цифра» и «шифр»). Приблизительно в это же время индийские цифры начали применять и другие арабские учёные. В первой половине XII века книга аль-Хорезми в латинском переводе проникла в Европу. Переводчик, имя которого до нас не дошло, дал ей название Algoritmi de numero Indorum («Алгоритмы о счёте индийском»). По-арабски же книга именовалась Китаб аль-джебр валь-мукабала («Книга о сложении и вычитании»). Из оригинального названия книги происходит слово Алгебра (алгебра — аль-джебр — восполнение).
Таким образом, мы видим, что латинизированное имя среднеазиатского учёного было вынесено в заглавие книги, и сегодня считается, что слово «алгоритм» попало в европейские языки именно благодаря этому сочинению. Однако вопрос о его смысле длительное время вызывал ожесточённые споры. На протяжении многих веков происхождению слова давались самые разные объяснения.
Одни выводили algorism из греческих algiros (больной) и arithmos (число). Из такого объяснения не очень ясно, почему числа именно «больные». Или же лингвистам больными казались люди, имеющие несчастье заниматься вычислениями? Своё объяснение предлагал и энциклопедический словарь Брокгауза и Ефрона. В нём алгорифм (кстати, до революции использовалось написание алгориѳм, через фиту) производится «от арабского слова Аль-Горетм, то есть корень». Разумеется, эти объяснения вряд ли можно счесть убедительными.
Упомянутый выше перевод сочинения аль-Хорезми стал первой ласточкой, и в течение нескольких следующих столетий появилось множество других трудов, посвящённых всё тому же вопросу — обучению искусству счёта с помощью цифр. И все они в названии имели слово algoritmi или algorismi.
Про аль-Хорезми позднейшие авторы ничего не знали, но поскольку первый перевод книги начинается словами: «Dixit algorizmi: …» («Аль-Хорезми говорил: …»), всё ещё связывали это слово с именем конкретного человека. Очень распространённой была версия о греческом происхождении книги. В англо-норманнской рукописи XIII века, написанной в стихах, читаем:
Алгоризм был придуман в Греции. Это часть арифметики. Придуман он был мастером по имени Алгоризм, который дал ему своё имя. И поскольку его звали Алгоризм, Он назвал свою книгу «Алгоризм».
Около 1250 года английский астроном и математик Иоанн Сакробоско написал труд по арифметике Algorismus vulgaris, на столетия ставший основным учебником по вычислениям в десятичной позиционной системе счисления во многих европейских университетах. Во введении Сакробоско назвал автором науки о счёте мудреца по имени Алгус (Algus). А в популярной средневековой поэме «Роман о Розе» (1275—1280) Жана де Мена «греческий философ Алгус» ставится в один ряд с Платоном, Аристотелем, Евклидом и Птолемеем! Встречался также вариант написания имени Аргус (Argus). И хотя, согласно древнегреческой мифологии, корабль «Арго» был построен Ясоном, именно этому Арго приписывалось строительство корабля.
«Мастер Алгус» (или Аргус) стал в средневековой литературе олицетворением счётного искусства. И в уже упоминавшейся «Романе о розе», и в известной итальянской поэме «Цветок», написанной Дуранте, имеются фрагменты, в которых говорится, что даже «mestre Argus» не сумеет подсчитать, сколько раз ссорятся и мирятся влюблённые. Английский поэт Джефри Чосер в поэме «Книга герцогини» (1369 г.) пишет, что даже «славный счётчик Аргус» (noble countour Argu) не сможет счесть чудовищ, явившихся в кошмарных видениях герою.
Однако со временем такие объяснения всё менее занимали математиков, и слово algorism (или algorismus), неизменно присутствовавшее в названиях математических сочинений, обрело значение способа выполнения арифметических действий посредством арабских цифр, то есть на бумаге, без использования абака. Именно в таком значении оно вошло во многие европейские языки. Например, с пометкой «устар.» оно присутствует в представительном словаре английского языка Webster’s New World Dictionary, изданном в 1957 г.
Алгоритм — это искусство счёта с помощью цифр, но поначалу слово «цифра» относилось только к нулю. Знаменитый французский трувер Готье де Куанси (Gautier de Coincy, 1177—1236) в одном из стихотворений использовал слова algorismus-cipher (которые означали цифру 0) как метафору для характеристики абсолютно никчёмного человека. Очевидно, понимание такого образа требовало соответствующей подготовки слушателей, а это означает, что новая система счисления уже была им достаточно хорошо известна.
Многие века абак был фактически единственным средством для практичных вычислений, им пользовались и купцы, и менялы, и учёные. Достоинства вычислений на счётной доске разъяснял в своих сочинениях такой выдающийся мыслитель, как Герберт Аврилакский (938—1003), ставший в 999 г. папой римским под именем Сильвестра II. Новое с огромным трудом пробивало себе дорогу, и в историю математики вошло упорное противостояние лагерей алгорисмиков и абацистов (иногда называемых гербекистами), которые пропагандировали использование для вычислений абака вместо арабских цифр. Интересно, что известный французский математик Николя Шюке (Nicolas Chuquet, 1445—1488) в реестр налогоплательщиков города Лиона был вписан как алгорисмик (algoriste). Но прошло не одно столетие, прежде чем новый способ счёта окончательно утвердился, столько времени потребовалось, чтобы выработать общепризнанные обозначения, усовершенствовать и приспособить к записи на бумаге методы вычислений. В Западной Европе учителей арифметики вплоть до XVII века продолжали называть «магистрами абака», как, например, математика Никколо Тарталью (1500—1557).
Итак, сочинения по искусству счёта назывались Алгоритмами. Из многих сотен можно выделить и такие необычные, как написанный в стихах трактат Carmen de Algorismo (латинское carmen и означает стихи) Александра де Вилла Деи (Alexander de Villa Dei, ум. 1240) или учебник венского астронома и математика Георга Пурбаха (Georg Peurbach, 1423—1461) Opus algorismi jocundissimi («Веселейшее сочинение по алгоритму»).
Постепенно значение слова расширялось. Учёные начинали применять его не только к сугубо вычислительным, но и к другим математическим процедурам. Например, около 1360 г. французский философ Николай Орем (Nicolaus Oresme, 1323/25-1382) написал математический трактат Algorismus proportionum («Вычисление пропорций»), в котором впервые использовал степени с дробными показателями и фактически вплотную подошёл к идее логарифмов. Когда же на смену абаку пришёл так называемый счёт на линиях, многочисленные руководства по нему стали называть Algorithmus linealis, то есть правила счёта на линиях.
Можно обратить внимание на то, что первоначальная форма algorismi спустя какое-то время потеряла последнюю букву, и слово приобрело более удобное для европейского произношения вид algorism. Позднее и оно, в свою очередь, подверглось искажению, скорее всего, связанному со словом arithmetic.
В 1684 году Готфрид Лейбниц в сочинении Nova Methodvs pro maximis et minimis, itemque tangentibus… впервые использовал слово «алгоритм» (Algorithmo) в ещё более широком смысле: как систематический способ решения проблем дифференциального исчисления.
В XVIII веке в одном из германских математических словарей, Vollstandiges mathematisches Lexicon (изданном в Лейпциге в 1747 г.), термин algorithmus всё ещё объясняется как понятие о четырёх арифметических операциях. Но такое значение не было единственным, ведь терминология математической науки в те времена ещё только формировалась. В частности, выражение algorithmus infinitesimalis применялось к способам выполнения действий с бесконечно малыми величинами. Пользовался словом алгоритм и Леонард Эйлер, одна из работ которого так и называется — «Использование нового алгоритма для решения проблемы Пелля» (De usu novi algorithmi in problemate Pelliano solvendo). Мы видим, что понимание Эйлером алгоритма как синонима способа решения задачи уже очень близко к современному.
Однако потребовалось ещё почти два столетия, чтобы все старинные значения слова вышли из употребления. Этот процесс можно проследить на примере проникновения слова «алгоритм» в русский язык.
Историки датируют 1691 годом один из списков древнерусского учебника арифметики, известного как «Счётная мудрость». Это сочинение известно во многих вариантах (самые ранние из них почти на сто лет старше) и восходит к ещё более древним рукописям XVI в. По ним можно проследить, как знание арабских цифр и правил действий с ними постепенно распространялось на Руси. Полное название этого учебника — «Сия книга, глаголемая по еллински и по гречески арифметика, а по немецки алгоризма, а по русски цифирная счётная мудрость».
Таким образом, слово «алгоритм» понималось первыми русскими математиками так же, как и в Западной Европе. Однако его не было ни в знаменитом словаре В. И. Даля, ни спустя сто лет в «Толковом словаре русского языка» под редакцией Д. Н. Ушакова (1935 г.). Зато слово «алгорифм» можно найти и в популярном дореволюционном Энциклопедическом словаре братьев Гранат, и в первом издании Большой советской энциклопедии (БСЭ), изданном в 1926 г. И там, и там оно трактуется одинаково: как правило, по которому выполняется то или иное из четырёх арифметических действий в десятичной системе счисления. Однако к началу XX в. для математиков слово «алгоритм» уже означало любой арифметический или алгебраический процесс, выполняемый по строго определённым правилам, и это объяснение также даётся в следующих изданиях БСЭ.
Алгоритмы становились предметом всё более пристального внимания учёных, и постепенно это понятие заняло одно из центральных мест в современной математике. Что же касается людей, от математики далёких, то к началу сороковых годов это слово они могли услышать разве что во время учёбы в школе, в сочетании «алгоритм Евклида». Несмотря на это, алгоритм всё ещё воспринимался как термин сугубо специальный, что подтверждается отсутствием соответствующих статей в менее объёмных изданиях. В частности, его нет даже в десятитомной Малой советской энциклопедии (1957 г.), не говоря уже об однотомных энциклопедических словарях. Но зато спустя десять лет, в третьем издании Большой советской энциклопедии (1969 г.) алгоритм уже характеризуется как одна из основных категорий математики, «не обладающих формальным определением в терминах более простых понятий, и абстрагируемых непосредственно из опыта». Как мы видим, отличие даже от трактовки первым изданием БСЭ разительное! За сорок лет алгоритм превратился в одно из ключевых понятий математики, и признанием этого стало включение слова уже не в энциклопедии, а в словари. Например, оно присутствует в академическом «Словаре русского языка» (1981 г.) именно как термин из области математики.
Одновременно с развитием понятия алгоритма постепенно происходила и его экспансия из чистой математики в другие сферы. И начало ей положило появление компьютеров, благодаря которому слово «алгоритм» вошло в 1985 г. во все школьные учебники информатики и обрело новую жизнь. Вообще можно сказать, что его сегодняшняя известность напрямую связана со степенью распространения компьютеров. Например, в третьем томе «Детской энциклопедии» (1959 г.) о вычислительных машинах говорится немало, но они ещё не стали чем-то привычным и воспринимаются скорее как некий атрибут светлого, но достаточно далёкого будущего. Соответственно и алгоритмы ни разу не упоминаются на её страницах. Но уже в начале 70-х гг. прошлого столетия, когда компьютеры перестали быть экзотической диковинкой, слово «алгоритм» стремительно входит в обиход. Это чутко фиксируют энциклопедические издания. В «Энциклопедии кибернетики» (1974 г.) в статье «Алгоритм» он уже связывается с реализацией на вычислительных машинах, а в «Советской военной энциклопедии» (1976 г.) даже появляется отдельная статья «Алгоритм решения задачи на ЭВМ». За последние полтора-два десятилетия компьютер стал неотъемлемым атрибутом нашей жизни, компьютерная лексика становится всё более привычной. Слово «алгоритм» в наши дни известно, вероятно, каждому. Оно уверенно шагнуло даже в разговорную речь, и сегодня мы нередко встречаем в газетах и слышим в выступлениях политиков выражения вроде «алгоритм поведения», «алгоритм успеха» или даже «алгоритм предательства». Академик Н. Н. Моисеев назвал свою книгу «Алгоритмы развития», а известный врач Н. М. Амосов — «Алгоритм здоровья» и «Алгоритмы разума». А это означает, что слово живёт, обогащаясь всё новыми значениями и смысловыми оттенками.
Определения алгоритма
Формальное определение
Разнообразные теоретические проблемы математики и ускорение развития физики и техники поставили на повестку дня точное определение понятия алгоритма.
Первые попытки уточнения понятия алгоритма и его исследования осуществляли в первой половине XX века Алан Тьюринг, Эмиль Пост, Жак Эрбран, Курт Гедель, А. А. Марков, Алонзо Чёрч. Было разработано несколько определений понятия алгоритма, но впоследствии было выяснено, что все они определяют одно и то же понятие (см. Тезис Чёрча — Тьюринга) [3]