Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 103
Скачиваний: 0
А. ТРАХТЕНБРОТ
АЛГОРИТМЫ
ЛВЫЧИСЛИТЕЛЬНЫЕ
*8ТОМАТЫ
6Ф7
Т657 У Д К 518.5
Трахтенброт Б. А. |
|
|
|
||||
Т657 |
Алгоритмы |
и вычислительные |
автоматы. М. |
||||
«Сов. радио», |
1974 |
|
|
|
|||
|
200 с. с ил. |
|
|
|
|
||
|
Книга |
является общедоступным введением |
в теорию алгоритмов |
||||
и рассматривает круг вопросов, лежащих на грани между математи |
|||||||
ческой логикой |
и |
теорией |
автоматических вычислительных машин. |
||||
Рассчитана |
на |
широкий ^круг |
читателей, |
интересующихся кибернети |
|||
кой, вычислительной маадматикой и техникой. |
|
||||||
|
3314 |
023 |
|
|
|
|
|
Т |
046 (01)-74 |
8 4 |
7 3 |
|
|
6 Ф 7 |
|
© |
Издательство |
«Советское радио» |
1974 |
|
Светлой памяти
Алексея Андреевича |
Ляпунова |
посвящается |
эта книга |
П Р Е Д И С Л О В ИЕ |
|
Эта книга, являющаяся введением в теорию алгоритмов, посвящена разъяснению одного из самых' основных поня тий математики — цонятия алгоритма; в ней рассматрива ется круг вопросов, лежащих на грани между математи
ческой логикой и теорией автоматических |
вычислитель| |
ных машин. |
™ |
Книга состоит из трех почти равных по объему частей. Первая часть, «Алгоритмы» (§ 1—6), еще не относится к тео рии алгоритмов, хотя в ней сплошь и рядом идет речь об ал горитмах. Дело в том, что здесь слово «алгоритм» понима ется в интуитивном смысле; теория же начинается лишь там, где термин обозначает уже точно определяемое мате матическое понятие. Тем не менее материал этой части, но сящий подготовительный характер, весьма важен и полезен для понимания содержательных стимулов в пользу теории.
Вторая часть, «Машины Тьюринга» (§ 7—13), вводит уже непосредственно в круг основных понятий теории ал горитмов.
Третья часть, «Алгоритмические проблемы» (§ 14—23), является кульминационной. В ней излагается ряд фунда ментальных результатов теории, которые, к счастью, под
даются популяризации. |
Цолее подробная характеристика |
|
содержания книги дана во введении. |
|
|
Несколько слов нужно сказать о происхождении |
книги. |
|
Начальным стимулом к популяризации теории алго |
||
ритмов в печати явились |
для автора трудности и |
огорче |
ния, которые он испытывал при первых попытках |
устной |
ее популяризации. Это случилось более 20 лет назад, когда автор выступил на эту тему перед своими коллегами — математиками Пензенского педагогического института. Та кие идеи и результаты теории алгоритмов, как формализа ция вычислительного процесса, существование неразре шимых алгоритмических проблем выглядели тогда не только непривычными, но и отпугивающими.
Написание популярной статьи или небольшой книги, в которой читатель кратчайшим путем мог бы дойти до теорем об алгоритмической неразрешимости, представлялось тогда автору неотложным делом.
3
В результате этого появилась статья «Алгоритмы и ма шинное решение задач» («Математика в школе», 1956, № 4— 5); ее расширенные варианты были изданы дважды (Гос-
техиздат, 1957 г.; Физматгиз, |
1960 |
г.) в виде одноимен |
ной книги, переведенной и на |
ряд |
иностранных языков. |
Параграфы 1—9 и 13—16 настоящей книги целиком включают содержание упомянутых выше публикаций, ко торые подверглись тщательному просмотру и переработке.
Кроме того, книга содержит довольно обширный новый материал, а именно § 10—12 и § 17—24, в основу которых легли лекции, прочитанные автором студентам отделения математической лингвистики и слушателям факультета повышения квалификации Новосибирского университета. Этот материал представляет, как нам кажется, большой интерес для понимания таких разделов теории алгорит мов, которые уже не связаны непосредственно с явлением алгоритмической неразрешимости. Здесь имеются в виду главным образом следующие три проблемы: програм\щрсь-__ вание (§ 10—12), качество aлjroгJит^ю_в_($ 17—20)""й~автома-
т!^п^ра'ллельного~'действия |
(§ 21—23)/^Вгф5ч^м7~ч'а"сть |
|||
этого |
материала невозможно |
было включить |
в предыду |
|
щие |
издания |
потому, что он |
касается новых |
результатов, |
появившихся |
сравнительно недавно. |
|
В оглавлении звездочкой помечены параграфы и пункты, чтение которых требует несколько большего напряжения, хотя они и не предполагают специальной предварительной
подготовки. В тексте они набраны мелким |
шрифтом и мо |
||||||
гут быть опущены при первом чтении. |
|
|
|
|
|||
Библиографические |
справки приведены |
главным |
обра |
||||
зом в |
§ 24. |
|
|
|
|
|
|
23 |
июня 1973 года, когда книга была уже сверстана, |
||||||
скончался Алексей А1-гд^ееви^£_Ля.шшов, |
выдающийся ма |
||||||
тематик |
и кибернетик, |
замечательный |
педагог |
и |
пропа |
||
гандист |
научных знаний. Атноголетнее общение с ним очень |
||||||
много |
дало автору и, в |
частности, повлияло |
на |
судьбу |
этой книги.
Его моральная поддержка и постоянное внимание име
ли |
большое |
значение |
как при создании |
старых |
разделов |
книги, так |
и позднее, |
в период совместной работы |
в НГУ |
||
на |
организованной и |
руководимой им |
кафедре |
теорети |
ческой кибернетики. Автор рассматривает эту книгу как скромную дань памяти Алексея Андреевича.
Новосибирск, Академгородок, ноябрь, 1973 г.
Б. Трахтенброт
ВВЕДЕНИЕ
Понятие алгоритма • принадлежит к числу основных понятий математики. Под алгоритмом понимают точное предписание о выполнений в определенном порядке некото рой системы операций для решения всех задач некоторого данного типа.
Разумеется, высказанная фраза не является точным математическим определением понятия алгоритма, она, скорее, толкует значение слова «алгоритм», поясняя его смысл. Тем не менее эта формулировка близка и понятна каждому математику, она отражает то понятие алгоритма, которое стихийно складывалось с древнейших времен.
Простейшими алгоритмами являются правила, по кото рым выполняется то или иное из четырех арифметических действий в десятичной системе счисления. Термин «алго ритм» происходит от имени средневекового узбекского ма тематика Аль-Хорезми, который еще в IX веке предложил такие правила. В математике серия задач определенного типа считается решенной, когда для ее решения установлен алгоритм. Например, в алгебре установлены алгоритмы, которые по заданным коэффициентам алгебраического урав нения позволяют совершенно автоматически определить, сколько различных корней (и какой кратности) имеет дан ное уравнение, и вычислить эти корни с любой наперед заданной точностью*'. Нахождение алгоритмов является естественной целью математики.
Однако не только в математике, но и в других разно образных областях человеческой деятельности встречаются процессы, протекающие по строго определенному формаль ному предписанию, т. е. алгоритму. Например, в бухгал терском и плановом деле анализ поступающих данных,
*) Необходимо различать решение конкретной задачи и решение серии задач. Например, конкретная задача может состоять в нахож дении корней-данного алгебраического уравнения. Ее решение — найденные значения корней. Серия задач формулируется чаще всего как проблема — например, найти метод, позволяющий по любому алгебраическому уравнению определить его корни. Поэтому решение серии задач — это единое предписание (метод, алгоритм), позволяю щее решить любую конкретную задачу данной серии задач, коль скоро известны конкретные значения пеоеменных параметров, фигурирующих в этой задаче.
5
их обработка и составление материальных балансов для получения оптимальных результатов складываются из длин ной цепи элементарных операций нескольких типов, кото рые осуществляются в строгом соответствии со специаль ными инструкциями и схемами. Список таких примеров можно было бы продолжить. В § 1—4 этой книги на ряде примеров разъясняется, что такое алгоритм, и строятся алгоритмы для решения некоторых классов математиче ских и логических задач.
Создание алгоритма для задач некоторого данного типа (и в особенности «хорошего», удобного алгоритма) в тех слу чаях, когда это удается, связано, вообще говоря, с тонкими и сложными рассуждениями, требующими высокой квали фикации и большой изобретательности. Однако с того мо мента, когда такой алгоритм уже создан, процесс решения соответствующих задач становится таковым, что его может в точности выполнить человек, не имеющий ни малейшего понятия о сущности самой задачи. Требуется лишь, чтобы этот человек был способен выполнять те элементарные опе рации, из которых складывается процесс, и, кроме того, чтобы он добросовестно и аккуратно руководствовался предложенным предписанием (алгоритмом). Такой чело век, действуя, как иногда говорят, чисто машинально, может успешно решать любую задачу рассматриваемого типа. Выражение «машинальное действие», употребляемое обычно в переносном смысле, приобретает, однако, при сокременном развитии науки и техники также и прямой смысл. Именно гипотетического человека, который, руковод
ствуясь алгоритмом, |
решает задачу, можно действительно |
|||
заменить |
машиной, |
|
выполняющей |
тот же процесс. Такой |
машиной |
и является |
современная |
вычислительная машина |
|
с автоматическим |
управлением. |
|
Автоматические вычислительные машины получили большое развитие в последнее двадцатилетие и применяются для решения самых разнообразных задач. Характерная особенность этих машин, отличающая их от прежних вы числительных машин, заключается в том, что начиная с то го момента, как в них введены начальные данные (условия задачи) и программа (решающий алгоритм), они работают без всякого вмешательства человека вплоть до выдачи окон чательного результата. Производительность современных электронных автоматических машин огромна; они способны в одну секунду выполнять миллионы арифметических операций. Область их применения продолжает расти:
6
машины |
решают |
сложные |
системы уравнений, переводят |
с одного |
языка |
на другой, |
доказывают теоремы, играют |
в шахматы и т. д. Очень велики перспективы применения на производстве автоматических машин, осуществляющих управление всем технологическим процессом в масштабе крупного завода. Кроме того, возможность быстрой и на дежной математической обработки, а также анализа экспе риментальных данных создает предпосылки для появления
новых, ранее |
недоступных методов исследования во мно |
гих областях |
науки. Теперь уже все признают, что автома |
тические вычислительные машины представляют собой мощные орудия, способные не только облегчить труд чело века, но зачастую полностью освободить его от некоторых
видов большой и напряженной |
умственной работы. |
В § 4—5 кратко изложены |
принципы устройства элект |
ронных автоматических вычислительных машин и состав ления программ, т. е. алгоритмов, приспособленных для реализации в таких машинах.
Современные машины с автоматическим управлением называют электронными, так как их важнейшие узлы сконструированы из различных электронных приборов. Применение электронной техники обеспечивает большую экономию во времени на реализацию отдельных операций, совершаемых машиной. Однако основная черта этих ма шин — автоматическое управление процессами, происхо дящими в них, — не возникает за счет применения именно электронной техники. Кстати, первые фактически сконст руированные (в 1940 г.) автоматические машины были элект ромеханическими. В принципе, электронные устройства можно было бы заменить даже механическими, т. е. можно
было бы создать |
механическую |
вычислительную |
машину |
|
с автоматическим |
управлением, |
которая |
способна |
решать |
те же задачи, что и электронная |
(правда, |
значительно мед |
леннее)*». Иначе говоря, возникновение вычислительных машин нового типа нельзя рассматривать как результат развития только инженерного изобретательства и элект ронной техники. Еще за несколько лет до появления первых действующих образцов вычислительных машин с автомати
ческим |
управлением основные их принципиальные |
черты |
|||||
|
*) Первый |
в мире проект автоматической |
вычислительном |
маши |
|||
ны, |
далекого предшественника |
современных |
машин, был |
разработан |
|||
именно |
в виде |
механического |
устройства |
английским |
изобретате |
||
лем |
Ч. |
Бэббиджем в 1833 г. Однако из-за |
материальных трудно |
||||
стей |
полностью |
осуществить свой проект Бэббиджу не |
удалось. |
7