
§ 1.6. Элементы аналитической теории а.'
Теория алгоритмов вояшкла в математическои могательная дисциплина, предназначенная для вн ностек ^атемагики. Основными задачами, когор ней, были: исследование феномена ньразрешимс
пне математики. На первых теориях алгоритмов мы останавливаться не будем, отсылая читателя, если они его заинтересуют, к [271.
Практические применения теории алгоритмов первоначально основывались на интуитивном понятии алгоритма, поскольку математическое понятие алгоритма было разработано только для некоторых частных случаев, далеких от того, с чем приходится иметь дело на практике. Аналитическая теория алгоритмов, изучающая все их многообразие, возникла лишь в последние годы.
1.6.1. Интуитивное понятие алгоритма. Интуитивное понятие алгоритма рисует нам его как строго сформулированное правило, следуя которому можно осуществить процесс решения задачи, причем осуществить механически, максимально экономя усилия. По А. А. Маркову алгоритм — это предписание, ведущее от исходных данных к искомому результату и обладающее свойствами:
1) определенности (общепонятности и точности, не оставляющей места для произвола); 2) массовости; 3) результативности. Такое представление об алгоритме еще очень неясно, но его нетрудно уточнить. Такое уточнение нужно делать, во-первых, конкретизируя сказанное только что и, во-вторых, анализируя классические теории алгоритмов. Недостаток места вынуждает нас ограничиться приведением результата уточнения без его обоснования.
Алгоритм задается как предложение формального языка (это — запись алгоритма) и определяет дискретный процесс преобразования исходного данного, запись которого является тоже предложением (другого) формального языка, в искомый результат (тоже предложение формального языка). Понятность алгоритма заключается в том, что для его выполнения должен быть задан другой алгоритм, называемый'"алго/щтл<ол1 выполнения (или интерпретации), для которого исходным данным является совокупность записи алгоритма и записи операнда (объединяющая их символьная конструкция). От особенностей алгоритма выполнения зависит процесс, определяемый алгоритмом. Для некоторых вариантов исходных данных этот процесс содержит конечное число шагов (это — результативность ал горитма), но возможны и такие исходные данные, для которых алгоритмический процесс безрезультативно обрывается или никогда не заканчивается. В первом случае говорят, что алгоритм применим к исходному данному, а в двух последних, что — неприменим.
Алгоритмический процесс состоит из шагов, каждый из которых представляет собой выполнение достаточно простых операций. Существует набор простейших операций, называемых натуральными, все же остальные операции — это отображения, индуцируемые алгоритмами. При определении нового класса алгоритмов достаточно простыми считаются операции, которые уже получены.
Такое понимание алгоритма неминуемо ведет к тому, что его определение принимает вид рекурсивного определения (новые алю-рптмы строятся с помощью уже имеющихся). Процесс рекурсивного
определения должен начинаться с определения как мов, не опирающегося на понятие алгоритма, инач^ пне в целом являлось бы так называемым порочным 1 ветствии с вышесказанным широкое формальное о] горитма начинается с того, что вводится понятие п алгоритмов. Однако, поскольку понятие перв) мов связано с понятием операции, остановимся спер нятии. К тому же понятием операции мы пользовали формальных языков, но тогда не разъяснили это по
1.6.2. Операции. Начнем сразу с полного опре
Определение. Операциями называются:
операции (см. ниже); 2) линеаризация и делинеариза 3) двухместная операция соединения слов {конкатена, в п. 1.5.4; 4) всякое объявленное операцией отобрал вляемое алгоритмом. Больше никаких операций н<
В п. 1.6.1 мы уже упоминали о том, что следуе термином операция. Сейчас мы это понятие у\ лив натуральные операции. Предвар1 лим одну частную символьную конструкцию, котора потребуется.
Введем в рассмотрение связь первого ранга и неодинаковую с начинающей связью следования, и ляюш^и. связью.
Определение. Конструкция, которая по;
непустом слове одну из букв выделить с помощью вы (т. е. связать ее этой связью), называется квазисловс зислова называется его буква, связанная начинаю! доваиия, а его концом — связанная заканчивающ доваиия.
Пример 1.29. Из слова могу г быть получены следующие квазислова'
^ь.,.^. _“,1-^ „,-,
Если с".ял1 следования явно не указывать, то квазисло
! 1 1
"ос гос ^ нос
В качесгве натуральных операций выбраны о выполнять которые при построении теории алгориту лируют, считая, чго каждый человек умеет выпо^
________________________________________
§ Г”.!. Представление языков с помощью грамматик
Всякий формальный язык представляег собой множество цепочек и лектором конечном алфавиге1 К формальным языкам относигся в ч.чснюсгк, ряд искусстисниых языков для общения человек;! с
маШИПОП (Я'(ЫМ1 11|)()1 |);1ММ11|)ОИ;11111Я) (СМ. ГЛ. Г)). Для ОПИСАНИЯ
языков, принадлежащих к перечисленным классам, необходимо:
во-первых. указать алфавит, т. е. совокупность объектов, называемых символами (или буквами), каждый из которых можно (.(".-производить в неограниченном количестве экземпляров (подобно обычным печатным буквам или цифрам);
во-ЕП-орых, описать формальную грамматику языка, т. е. перс-ч|(с.'ипь правила, по которым из символов строяюя их последова-! ^г.носгп, принадлежащие определяемому языку,—правильные е^чиги.и.
Замегпм, чго каждый символ алфавита рассматривается как неделимый в том см1,1сле, что при пос1роеиип цепочек никогда не используются его графические элементы (части символа) и всякая носледова-юлыюсть символов единственным образом представляет собой цепочку Практически это требование досгигается, например, иуюм )С1а11овления пробела (промежутка сгапдаргной длины) меж-.чу символами, который превышает длину любого из промежутков, |.|>1мож11о всфечающихся и\\} г])!; симво,;ю:! алфавита.
(Следует подчеркнуть, что правила формальной грамматики можно рассматривать, к,ж продукции (правил:! вывода)—элементарные операции, когоры!.-. будучи применены в определенной иоследо!'..!-ю.и шч ;1: к ис<од1Ю|"1 цепочке (аксиоме), порождают лишь ира-
вильные цепочки. Сама последовательность пр пых в процессе порождения некоторой пеночки водом. Определенный таким образом язык пред! мальную систему. Известными примерами форм, жат логические исчисления (исчисление выгка и предикатов и др.), которые подробно изучакт щих разделах математической логики [36|.
По способу задания правильных цепочек ф( тики разделяются на порождающие и расиозна ющим относятся формальные грамматики, которы любую правильную цепочку с указанием ее С1| ни одной неправильной пеночки. Распознакнца” матика—это такая грамматика, которая для п) ной цепочки позволяет установить, являеюя а| вилыюй, и, в случае положительного отвеча, данной пеночки.
формальные грамматики широко применяю и программировании в связи с изучением естес' мических языков.
В настоящей главе излагаются основные све, к порождающим грамматикам, а параграфы 6.2, ны ряду основных понятий, связанных с расп( тиками (автоматы с магазинной намяи.ю и их ;^
Перейдем к понятию порождающей грамма'11 ложенному Хомским [73, 74|.
Порождающей грамматикой (и/ш, д.1” кг.-цк матикой) называеюя упорядоченная че1ие|>к;1
Ум— ксчеч!'1,и"1 сспомо! а 1 ел.пыи (11”'и'рм11|1;(.1||.11ы
ЛЫ К010])01'() С)бо:111аЧ;1101СЯ М;1.'1.1М11 1 |>Г'1ГСК11М11
начальный (нетерминал!, ими) символ, Г = {ч, -
.. , и)—конечная сисюма подстановок, левьк. торых сут1> пеночк;! м, о,' /"'(г), г;1е /•'(г)- ( па над (.бьединснным ал(|)анигом V - (^1 [] Уц внешним ч не принадлежи г алфавиту V.
Содержательно спмполы основного алфавт мешагиыми единицами ()1]|)с;1еляемого языка;
Уц—м:'таяерсменныс. ко'юр1)1е пспользуююя п| И1,1Х пеночек (для есчесчг.енщ^х языков таким являю юя, например грамма гические классы: су гол и др ); метанс^чмгппая о—аксиома, из псе пгагильные шчшчкч ш 1стес'гвепных я:Я)1К;1 сп',',е1 1'[)>1мч:'.111Ч1Л кии к.часс “11[и'дло?!\е]11!е”), / кн. (;(<с1оя1цая из пр(1;1М\ци11 (П1)аии:1а ш^во, правила определяемою языка).
11;1И()|1мс[), порождающей грамматикой является граммашка Сц--С{". 1>. '-'}. [ч, т}, о, Рц), имеющая систему прави
Определение языка /- (С/), заданного порождающей грамматикой (}, связано с понятием выводимости.
Пусть х, у—неночки, принадлежащие свободной полугруппе Р{У). Цепочка у—непосредственно выводима из цепочки х в грамма гике О, х=->у (или просто х-^-у, когда О подразумевается),
если в схеме Р данной грамматики найдется продукция и -•>- v такая, что х == х^их.^, у -= л',угд, где х,, х^ е Р(У). Иными словами, неночка у получается пуюм применения к цепочке х продукции и ->- и б Р, т. е. замет,! в цепочке х выделенного вхождения ле вой части и данной продукции ее правой частью и.
Например, в грамматике (7„ Ь-зс—^-Ь^с, асаЬа^ЬЬа и т. д. Цепочки ;/ называется выводимой и:) цепочки х в грамматике
* * О. х-^-у (или просто х->у, когда О подразумевается), если цг-
О
почки х, ч совпадают или суик.-сгвусг Поспелова [(•лыюпь цепоче! .г,,, г^, . . , .г”,, такая, чю гц - а', г* — у и для каждого /(1 ~< I < /г) имеет место г,-., =”• г,. Последовательность цепочек Ч7 == (га, г^, . . . , г/г) называется выводом цепочки у из цепочки v в грамматике О.
Например, в грамматике 0„ а—^-аЬа, причем последователь иость (о, аза, аазаа, аасаа, аЬа) служит выводом цепочка а1 <:
и.” цепочки с.
Следуег подчеркнуть, что применение продукций грамма шкп пр|1 построении выводов не является “жестким”, т. е. на каждо-.:
шаге вывода можно выбрать любую из продукции, примсчшм! I • в данный момсич. Это означает: порядок применения продмаги в граммагике произволен и любую продукцию разрешается прим! иягь после какой угодно. Необходимо лишь, чтобы данная и(к1 дукция была применимой на очередном шаге вывода. Это суп. сгвенио отличаег понятие порождающей грамматики от поняп нормального алгоритма, в котором подстановки носят харам';
предписаний и выполняются в заранее указанной строгой нш.и доватслыюстн [55]. ^
Вывод х=>у наз1,1вается полным, если у е Р (21) (т. е. ценочк.1 . о
ССХ.ЧОИТ из терминальных символов).
Заме! им, что всякий полный вывод завершаеюя ирнменгт" • 111'();1\|\111|й, правые част кочорых нредпаиляю! собой |е|)мпн I.