ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2024
Просмотров: 79
Скачиваний: 1
1ИНИШРСТВ0 ВЫСШЕГО И СРЕДНЕГО СДЕЩАЛЬНОГО
ОБРАЗОВАНИЯ СССР
Харьковский авиационный институтt
ОСНОВЫ ТЕОРИЙ АЛГОРИТМОВ (Учебное яоообие)
Харьков - 1973
3 |
Гос. |
I |
цяучно-тохни''. . |
j |
бий>. .■•••вка |
1 |
? -Ж '-' ' |
| |
ЧИТАЛЬНОГО - |
Ц и - Ш 5 ' д
С о с т а в и т е л и :
доктор технических наук, профессор БЕРЕЗШ Н,Т. кандидат технических наук ФУРМАНОВ К.К.
- J -
ВВЕДЕНИЕ
Одной из основных проблем современной науки является разработка и внедрение в практику методов исследования динами ки функционирования сложных систем. При проектировании и созда нии таких систем, их испытаниях и эксплуатации возникают мно гочисленные задачи, требующие знания количественных и качест венных закономерностей, свойственных рассматриваемым системам.
Для решения этих задач в последние годы интенсивно раз виваются новые методы, связанные с теорией алгоритмов и алго ритмическим описанием процессов функционирования сложных оистем, теорией специальных видов случайных процессов, особенно теорией массового обслуживания ££] .
В настоящее время в области синтеза вычислительных ал горитмов управления уже накоплен определенный опыт, однако он еще недостаточно систематизирован и освещен в литературе. Прак тика создания сложных систем ставит задачи, которые в большин стве сйучаев нельзя решить традиционными средствами и метода ми [2 ] , а новая общая теория оистем только зарождается. Од нако существует ряд достаточно хорошо разработанных теорети ческих дисциплин, которые позволяют оинтезировать и анализиро вать отдельные подсистемы и характеристики сложных оистем. Осо бое меото здесь принадлежит алгоритмическому подходу решения указанных задач. Такой подход во многих случаях при достаточно общих предположениях о характере рассматриваемых, процессов да ет возможность получить уравнения относительно основных харак теристик процессов и систем и провести весьма общее их иссле дование.
По оценке специалистов будущая "теория оистем должна строиться на методах упрощения и по оути дела предотавлять со бой науку упрощения". Отсюда оледует, что поскольку оинтез ал горитмов является частью общей теории оложных систем, то он должен предотавлять собой не что иное, как науку оптимизации.
Рассматривая теорию алгоритмов в целом, можно прийти к выводу^ что она имеет в овоем развитии два направления.
- 4 -
Первое направление связано о изучением свойств алгорит мов гак объектов математической теории. Эта теория в первую очередь обязана фундаментальным работам А.А.Маркова, П.С.Нови кова, А.Тьюринга, А.И.Мальцева, Р.Петер, А.Н.Колмогорова, В.А.Успенского, С.Клини, А,Черча, К.Геделя.
*>В работах АД.Маркова [ з ] вводится понятие нормаль ных алгоритмов, которые являются универсальной алгоритмической системой. Здесь попользуется один тип элементарных операторов, называемых операторами подстановки, и один тип элементарных распознавателей, называемых распознавателями вхождения. Распознаватель вхождения задается указанием некоторого фикси
рованного олова |
^ |
• а смысл ого применения состоит в том, что |
||||||||
для любого заданного слова р |
проверяется условно - входит или |
|||||||||
не входит слово |
в |
олово р . |
|
|
|
|
||||
|
|
Оператор подстановки обычно задается в виде двух слов, |
||||||||
соединенных стрелкой, |
. |
Работа |
оператора |
подстанов |
||||||
ки состоит в том, что он осуществляет подстановку слова |
|
|||||||||
вместо |
первого вхождения слова |
в любоз заданное для пере |
||||||||
работки |
слово |
р |
, |
При этом," если выделить явным образом пер |
||||||
вое вхождение слова |
в слови р |
, записывая слово р |
в виде |
|||||||
р* |
<^t р 4 , |
то |
после применения |
рассматриваемого |
оператора |
|||||
оно |
преобразуется в |
олово р * ч . р * - |
|
|
|
|||||
|
|
А.А.Марков , |
доказал, что для любого алгоритма в произ |
|||||||
вольном конечном |
алфавите А |
можно построить эквивалентный |
||||||||
ему нормальный алгоритм над алфавитом f\ |
. Употребление поня |
|||||||||
тия нормального алгоритма над алфавитом означает следующее. |
||||||||||
|
|
В-раде случаев не удается построить нормальный алго |
||||||||
ритм, эквивалентный данному алгоритму (в алфавите А |
), |
если |
||||||||
использовать в подстановках алгоритма только буквы алфавита |
||||||||||
j\ |
. Однако оказывается возможным построить требуемый нормаль |
|||||||||
ный алгоритм, |
добавляя к алфавиту А некоторое количество новых |
|||||||||
букв. |
|
|
|
|
|
|
|
|
|
|
|
|
Невозможно дать строгое математическое доказательство |
||||||||
S'!............... |
|
1..................... |
|
|
........................................... |
|
|
................................... |
|
|
^Проводимый ниже обзор работ по теории алгоритмов является |
||||||||||
весьма кратким и,естественно,не может претендовать на |
полноту. |
- 5 -
принципа нормализации, поскольку понятие произвольного алгорит ма не является строго определенным математическим понятием. Доказано, что все алгоритмы нормализуемы и вое известные в на стоящее время способы композиции алгоритмов, позволяющие стро ить новые алгоритмы из уже извеотных, не выходят за пределы класса нормализуеыости алгоритмов.
Алгоритмической оиотемой, получившей достаточно полное развитие, является система, основанная на использовании конст руктивно определяемых арифметических (целочисленных) функций, получивших специальное название рекурсивных функций. Существен ный вклад в теорию рекурсивных функций внесли А.И.Колмогоров и В.А.Успенский [4 ,5 ] , Р.Петер [б ], С.Клини [ 7 ] , АЛерч (8-1 и]
К.Тед ель [ I I I .
Применение подобных функций в теории алгоритмов основа но на идее нумерации слов в произвольном алфавите последова тельными натуральными числами. Наиболее просто такую нумера цию можно осуществить, располагая слова в порядке возрастания их длин, а среди слов, имеющих одинаковую длину, - в произвол*, ном порядке. После осуществления нумерации входных и выходных
слов в произвольном алфавитном операторе [12-13] этот |
оператор |
||
естественным образом превращается в функцию |
У “ i |
С Ю , в ко |
|
торой как аргумент X , |
так и сама функция у |
принимают неотрм |
|
дательные целочисленные |
значения. |
|
|
Среди арифметических функций выделяются особо простые функции, которые называются элементарными арифметическими ф., ■ днями: это, во-первых, функция, тождественно равная нулю, во-
вторых, тождественные функции -f |
в-третьих, функция но |
посредственного следования K * i ) = |
х + 1 , определенная для |
всех целых неотрицательных значений своего аргумента. Используя в качестве исходных функций перечисленные о;,
ментарные арифметические функции, можно с помощью небольшого числа общих конструктивных приемов строить все более сложные арифметические функции.
Арифметические функции,которые могут быть построены vu элементарных арифметических функций, носят название частично рекурсивных функцай* Боли такие функции оказываются к то >•/
- 6 -
же всщ у определенными, то они называются общерекурсивными функциями.
Два следующих подхода к теории алгоритмов принадлежат
Э.Пооту и А.Тьюрингу.
Валгоритмической системе, предложенной Э.Постом
[l4 j , входная и выходная информации представляются в стандарт ном двоичном алфавите. Алгоритм представляется в виде конечно го упорядоченного набора правил, называемых приказаш . Для за писи входной, выходной и промежуточной информации использует ся гипотетическая инфюрмационная лента, разделенная на отдель ные ячейки, в каждой из которых может размещаться лишь одна буква. Те ячейки, в которых записаны единицы, называются от меченными» а те, в которых записаны нули,- неотмеченными.
Работа алгоритмов производится дискретными шагами, на каждом из которых выполняется один из составляющих алгоритма приказов. Каждому шагу соответствует определенная активная ячейка на информационной ленте. Для первого приказа алгоритма фиксируется в качестве активной некоторая начальная ячейка. Дальнейшие месторасположения ячеек на ленте должны быть пре дусмотрены в самом алгоритма.
Доказано, что класс всех алгоритмов, эквивалентных ал горитмам Э.Поста, совпадает с классом всех нормализуемых ал горитмов.
Валгоритмической системе, предложенной А.Тьюрингом
[15], также употребляется запись информации на бесконечной в обе стороны ленте, разбитой на отдельные ячейки. Однако, в отличив от алгоритмов Э.Поста, для записи информации можно при
менить не обязательно стандартный двоичный, а произвольный ко нечный алфавит.
Каждая ячейка информационной ленты служит для записи одной буквы. Эта буква может обозреваться специальным чувстви тельным элементом так называемой головки машины Тьюринга, спо собной перемещаться вдоль информационной ленты в обе стороны* Головка машины Тьюринга может находиться в конечном числе раз личных состояний , . . . , , печатать в обозреваемую ячейку любую букву la , 3CJL»**»»3Cm11 осуществлять сдвиг влево
- 7 -
или вправо вдоль информационной ленты на одну ячейку. Запись алгоритма, реализуемого машиной Тьюринга, производится с по мощью nporpai.Mii работы этой машины.
Показано, что вое алгоритмы, реализуемые с помощью ви доизмененной специальным образом машины Тьюринга, нормализуе мы и, наоборот, любой нормализуемый алгоритм может быть реа лизован с помощью специальным образом построенной для этой цели машины Тьюринга.
Если произвести анализ вышеперечисленных работ, то мо; но заметить, что они, имея огромное теоретическое значение, почти не применимы для исследования алгоритмов, подлежащих реализации на вычислительных системах, так как одни из них предполагают бесконечно большое количество операций, другие-
бесконечно большие информационные ленты |
и т .п , |
, |
В связи с этим потребности практики на базе существу |
||
ющих общих теорий алгоритмов привели к |
оозданию прикладной |
теории алгоритмов, которая изучает свойства их, связанные с реализацией техническими системами.
Большой вклад в развитие этой теории внесли советские ученые А.А.Ляпунов, Н.А.Криницкий, Ю.И.Янов, А.П.Ершов, В.М. Глушков, M.F.Щура-Бура, Н.П.Бусленко, Б.З.Гнеденко, Д.А.Поспелов, В.В.Липаев, К.К.Колин, К),С.Голубев -Новожилов и многи». другие.
А.А.Ляпунов £1б] впервые ввел аппарат описания и нося*, допания алгоритмов на уровне групп операций (операторов). Схему алгоритма, составленную из арифметических операторов и логических условий, А.А.Ляпунов называл логической схемой п...
горитма.
Логическая схема алгоритма определяет порядок работы операторов в зависимости от значения . ходящих в нее логичес ких условии. Работа алгоритма начинается с того, что сраба тывает самый левый член схемы. После того как некоторый член схемы сраоотал, определяется, какой член схемы должен работа* следом за ним. Если это был оператор, то следом за шш молча* работать тот член схемы, который стоит непосредственно сярай.я
за ним.
- 8 -
Если последний сработанный член схемы был логическим условием, то возможны два случая. Если проверяющееся условие выполнено, то должен работать член, соседний оправа, Еоли оно нарушено, то должен работать тот член, к которому ведет стрел ка, начинающаяся после данного условия. Работа алгоритма окан чивается либо тогда, когда последний из работающих операторов содержит указание о прекращении работы, либо когда на некото ром этане не оказывается такого, члена схемы, который должен был бы работать.
Таким образом, распределение значений логических усло вий в логической схеме определяет порядок,работы операторов, ' входящих в эту схему.
Описание алгоритма при помощи логических схем исполь- -уетсявкак промежуточный этап при машинной реализации этого алгоритма. Это - первый этап формализации алгоритма. Ему пред шествует содержательное описание того же алгоритма.
Логические схемы алгоритмов нашли широкое применение при программировании сложных математических задач о целью ре шения их на ЭЦВМ.
Если отавится вопроо о материальной реализации алгорит ма, осуществляющего заданную переработку информации, то возни кают требования способности устройства реализовать как операто ры, так и проверку логических условий, осуществляющих порядок работы этих операторов. В случае реализации алгоритма в вычис лительной машине операторы и логические уоловия должны быть осуществлены ври помощи команд или подпрограмм машин. Кроме того, при практический рассмотрении алгоритма всегда возника ет вопроо об отыскании возможно более экономных реализаций как с точки зрения рабочего времени, так и с точки зрения исполь зования оборудования.
В связи с этим появилась необходимость в различных спо собах тождественных преобразований алгоритмов, так как различ ные формы одного и того же алгоритма предъявляют различные требования к материальной реализации их.
В работах Ю.й.Яяова [17,18] уже раскрывается внутренняя структура логических операторов (условий), считая остальные one-
- 9 -
раторы данными как целые и неизвестные. В связи с этим подхо дом получается ряд преобразований логических схем. Логические операторы Ю.И.Янов рассматривает как логические функции так называемых основных логических переменных, используя при их описании аппарат исчисления высказываний.
В работах Н.А.Кршшцкого [19] исследуются схемы, со стоящие из операторов 3-х видов - действующих, логических и варьирующих. Для описания внутренней структуры нелогических операторов не было готового математичеокого аппарата, поэто му Н.А.Криницкому пришлось такой аппарат разработать. Ему уда лось получить сиотему эквивалентных преобразований комплексов, полную в том смысле, что с помощью конечного числа таких пре образований каждый из двух эквивалентных между собой комплек сов можно свести к другому. Получена обширная система равно сильных преобразований схем, содержащая в качестве своей час ти преобразования, изученные Ю.И.Яновым. Доказана полнота этой сиотемы равносильных преобразований для так называемых прямых и спрямленных схем,
А.П.Ершов [20,2l] исследует вопросы связи операторных алгоритмов с частично-рекурсивными функциями и нормальными ал горитмами, вопроон совместимости величин в памяти при програм мировании.
Исследованию цепочек операторных схем алгоритмов, т .е , конечных последовательностей выполнения операторов, посвящен
ряд работ В.ВаМартынюка [22-24] . |
‘ |
Р.М.Карп в своей работе [2б] |
, исходя из описания алго |
ритмов в виде блок-схемы и применяя понятия теории графов, вво дит определение приемлемой блок-схемы. Если блок-схема неприем лема, то должцо выполняться по крайней мере одно из условий:
а) существует оператор, который не мбжет быть достигнут, исходя из входа и, следовательно, является совершенно излишним;
б ) существует'оператор, ни один путь из которого не дет к выходу, следовательно, если их этот оператор достигнет, то выполнение алгоритма никогда не закончится. Метод анализа алгоритмов, предложенный Р.М.Карпом, позволяет проверить, яв ляется ли блок-схема приемлемой. Подобные результаты получил