Скачиваний:
60
Добавлен:
21.03.2019
Размер:
4.06 Mб
Скачать

упростить. Такая часть выражения называется редексам, а операция упрощения называетсяредукцией.

Процесс редукции завершается, когда выражение, преобразо­ ванное редукцией, не содержит больше редекоа. выражение, не со­ держащее релексэ, называется нормальной формой.

Например, при оценке выражения (+(/62Хх25)) сначала выби­ раются редексы и упрощаются соответственно до 3 и 10, Полученное выражение (+3 10) также является редуцируемым, поэтому имеем

(+3 10)-»1J.

Резулыат (оценка выражении) 13 невозможно упростить, поэтому он считается нормальной формой.

Применение функции Применение функции/к аргументу х обозначается как !р) Функция err нескольких аргументов представля­ ется, например, следующим образом (f{x,y,z)). Однако функцию от не­ скольких аргунешов можно интерпретировать как результат синтеза функций от одного аргумента. Например (+3 4) можно интерпрети­ ровать как (+3)4, т.е. как прибавление тройки к аргументу 4.

Ламбда-абстрахурик - это олно выражение, определяющие функцию. Например, выражение

(Xx.-hrl)

определяет функцию прибавления единицы к переменно# м. Запись

Ах показывает, что это выражение является ламбда-абстракцией, формальным параметром которой является х Выражение, которое следует за точкой (в данном случае это -4(1), является телом ламбдаабстракции.

Рассмотрим следующее лаибда-выраженнс:

<М.+ху)1.

Здесь х считается связанной переменной, 3 - значением для*.

Для оценки этого выражения необходимо, чтобы переменила у уже имела какое-либо значение. Обычно значение свободной пере­ менной определяепся во внешнем выражении, содержащем это выра­ жение.

Пусть имеем оыражеиие (лх.+*1)4, и котором записаны после­ довательно ламбла-абстрашшя (Хдс.ч-х1) и аргумент 4, При замен* i на 4 получим ( 1-4 1). Это правит преобразования называется ^-преобразованием.

Примеры P-преобразований: (ix +^1)4-^-^4 1; (и+ж)5-^+5 5->10; (U3)5-*3;

{Ы>.уЫЦ2 6^-(Лу./у2)6->6 2—»3; 1->4,

где (лл.+ж1) - аргументдта предыдущейлаыбда-абсгракции.

И ТА Если выракение со;»ржит несколько редексов, го возможно

одновременное их оценншак, например, се® имеем (* (+3 5) (- 5 2)Х

в виде«ледуюшегографа (рис. 6.6). Посредством параллельной ре­

скорость вычислении. При этой появ­ ляется возможность параллельной об­ работки и имеются следующие преи­ мущества по сравнению с процедурны­ миязыками.

()) Графовая структура ламбдаисчисления позвшют выявить релексыдля параллельной обрабочкя.

(2) Нет необходимости в централизованной управлении опера­ циями редукции, которые нужноделатьд о процедурных тыков.

(3)Сп«5Ь иежду редексамк можно выпог.ннть полностью уни­ фицировано.

В Процедурных языках вдачи распараллеливания вычислений требуют специальных программ, в том числе и синхронизацию

262

(по зремени) этих вычислений. В языках с лаыбда-исчислением этого не нужно. Сама структура программы однозначно определяет опти­ мально? число параллельных вгтаей вычислений.

§ 18. Основные результаты

1. Из теорем 6.5 и 6.6, следствий ш них, а также теорем 6 1

и 6.12 следует, что клвсс частично рекурсииных функций совпадает

с классом функций частично вычислимых по Маркову и классом час­ тично вычислимых по Тьюрингу функций. Бол«е общее: с помощью детальных рассмотрений показано, что формализации, предложенные Тьюрингом, Марковым (нормальные алгоритмы), а также Кпинн (частично рекурсивные функции) и другими, эквивалентны, т.е. в каждом случае получается один итот же класс функций.

Всюду определенные функции, попадающие о этот класс, являются общсрекурстыыми функциями. Часткчныг функции тгого

исконной гипотезе теории алгоритмов (принцип нормализации) любой алгоритм вполне зонвалентен нермальнпму алгоритму. Тогда сово­ купность частично рекурсивных функций совпадает с совокупностью частичных функиий; вычислимых посредством нормальниго алго-

263

2. Изучалось обширное мноиеспю конкретных функций, интуи­ тивно алгоритмически* Все они оказались частично рекурсивными функциями, т о. были найдены наборы инструкций для них с какойнибуць стандартов формализации (нормальные алгоритмы или Тькзринговская схема).

3, Доказательство указанию результатов обладает слелующей общей структурой. В каждом случае тот факт, что один формалиаооанный класс функций содержится в другом, доказываете! предъявле­ нием и обоснованием однообразной процедуры, согласно которой для любого набора инструкцийJ одной формализацииуказывается набор инструкции J' другой формализации, приводящей к гой же функции. Эта единообразная процедура оказывается а каждом случае алго-

Еслидействоватьнебуояаь, ник чемуумапалата.

§19. Вопросы и темы для самопровсрки

1.Интуитивное понгтмеалгоритма, его свойства.

2.Алфаиит, сЛола, алгоритм в алфавите. Вполнеэквивалентные в данном алфавите алгоритмы.

3.Нормальный алгоритм (алгоритм А. А. Маркова), задание,

примеры.

4.Функциивычислимыеи частично-вычислимыепоМаркову.

5.Замыначие, распространение нормальногоалгоритма.

6. Операции над поряальными алгоритмами: композиция, со­ единение, разветвление, поиторение.

7.Машина Тьюринга, общееописание.

3.Задание машиныТьюринга, примеры.

5.Алгоритм Тьюринга. Вычислимостьпо Тьюрингу.

10Связь, между алгоритмами Тьюринга и нормальными алгоритмами.

11Основная гипотеда теории алгорвтхов (принцип нормализа­ ции или тезис Ч5рча). Доказуема ли эта гипотеза';

12.проблема amоритмической неразрешимости.

13.Знаете ли вы алгоритмически разрешимые массовые про­

блемы1?

14.Примеры алгоритмически неразрешимых массовых проблем.

15.Сведения любого преобразования слов в алфавите к вычис­ лению значений целочисленные функций.

16.Примитивно-рекурсивные и обшерекуренвкые функции.

17.Причитивло-рекурсивность некоторых функций. Вычисле­

ние значений примтиши-рекурсивных функций.

18.Частично рекурсивные функции, нх связь с пычислимоггып по Маркину иТьюрингу.

19.Какие вы знаете вычислительные модели?

20.Ламбда-исчисленке Синтаксис ламбда-исчисЛснМ.

21. p-npcofipaaoваних в ламбяа-исчислении.

§20. Упражнение

I.Применим ли нормальный алгоритм

;слову: а) Я=111; б) Р=*»; в)/*-11»; г)Р=*!*1 )Иуиьтат применения.

2. Применим ли нормальный алгоритм

к слову: а) Р- \ 1111; б)?=*111*1; в) Р='*\ г) P=U1*I. Если «да», то указатьpfiynbTa^применения.

' 3. ПустьР-ЬаЬЬЬс олово в алфав»геЛ={д,6,с]-,. нормальный плгоритм

В={ab->a.

Вкакое слою перерабатываетланный алгоритмсловоF'

4.Пусть задан алфавит^ —{i,с) н нормальный алгоритм о алфа­ вит А:

Применим ли алгоршм В клюбому слову и шфавте At Сели он пршенич к некоторому слову Р, тп в какое слово он его перерабаты-

5. ПустьЛ={я,6,с} иЙ “ <

Как действует данный алгоритм? Применим ли он к любому слову

валфавитеА1

6.Построить нормальный алгоритм, стирающий последнюю б кву каждого непустого слова Р в алфавите А. Яачяется яи построен­ ный алгоритмалгоритмомв алфавите А илинад алфавитомА'1

7Пусть А - русский алфавит. Построить нормальный алгоритм над алфавитомА, который преобразует' слова «муха» в слови «слон»,

алюбое другое слова в алфавиге А в лустов слово. При этом, если слово «муха» входит в некоторое слово Q, например <2=Черемуха, то слово Qалгоритмдолженпереработать впустоеслово.

8.Пусть А - русский алфавит. Построить нормальный алгорит над алфавитом А, который преобразует слово «слон» &слово «муха»,

алюбое другое слово в алфавете А в пустое слово. При этом, если слово «слон» входит в некоторое слово Q, например £ заслон, w

слово Qалгоритмдолжен переработатьв яуеше слово.

9. Пусть 'чаданы «лфавш А и некоторое непустое слово Q в эт едфавитг. Описатьдействие нормальных алгоритмов, задаваемых ь

дающими схемами:

 

а) {Л-*‘Л

б) { Л -я а

« ( " а

«{П а

Д) {л -* И.

в) -» •£

*) в - ^ а в - М б ^ )

з ) { х ^ ‘Л{х*А)

[/I -» а

 

и) \х-*а{хеА ,аеЛ )

10. Показать, что алгоритм, заданный схемой; |'са-4р

Ipa-»p(a,p«i4,a,ysi) |(5-»М

I аху -> уах

преобразует любое слово я алфавите А ц слово, образованное id же букв, но в обратном порядке.

11.Пусть А - некоторый алфавит, аеА; В,С,D - заданные сл

валфавите/!. Рассмотреть нормальный алгоритм надалфавитом ,4

Покашъ, чти э-гаг алгоряти F неимении клюбому слову а алфавите

А, причем P{P)=D,F{B)=C.

12.ПустьА={й,Ь,с) Построить нормальный алгоритм, коюрый клюбому слову с алфавитеА будет приписыватьсправаслово abb.

 

13. Пусть ЛЧ1} и

Д1ш всякого натуральною числа п

определим по индукции 0 = 1

и м+1 = и1. Таким образом, 1-11,

2 =111 и т.д. Слова к назыиаются цифрами. Поставим теперь в соот­

ветствие всякому вектору («1,

т е

- натуральные числа,

слово

, которое обозначим через

(я,, .,ntj . Например,

(3,1,2) обозначает слово Ш 1*11*1! 1:

 

 

а) Показать, что схеме

 

 

 

all -» а5

 

 

<х1 —*»1

 

определяет нормальный алгоритм F над алфавитах! В, применимый только к тем словам в алфавите Я, которые являются цифрами, и та­ кой, что f(r)= 0 для любогои.

б) Показать, что нормальным алгоритм Q над алфавитом Я, оп­ ределяемый схемой

применим только к тем словам в алфавите В, которые суть цифры, причем С>(и)=я+1 для любогоп.

в) Построить схему нормального алгоритма в алфавите В, пере­ рабатывающего (и,,и,) в

г) Построить нормальныйалгоритм умножения ни2.

14. Построить нормальный алгоритм над алфавитом 23“ (1,»| д арифметическихопераций сложения н вычитания.

26S

15.Построить нормальный алгоритм дя* умножения па фикси-

16.Пусть /(“ {1 ,*а Ь} Показать, что следующий нормальный

алгороты

£>l-»li

*?->•

el -»Ш

*-»Л

о-»Л

Й-.1

производит умножение дву*. чисел п и м , записанных в алфавите

17.Построить нормальный алгоритм F над алфавитом А такой, чтодля любого слово Рв А было Л,Р)=РР.

18.Построить нормальный алгоритм для получения целой Части при делении а) на3; 6) на п.

19.Построить емму нормального алгоритма, равного компози­ ции нормальных алгоритмов Fи Оиалфавите

Затем применить полученный алгоритм к слову, а)

Р=111)Ш;

б) Р=*1Ш; в) Р“1*121; г) /’“**. Результат проверить, последователь­

но применяя к заданному слову алгоритмF, SSTCM G.

 

20.

Пусть имеем нормальный алгоритм F над алфавитом А, схе­

ма которого записана с использованием буи из А и произвольного

конечного числа буки, не принадлежащих А. Обозначим эти буквы,

не принадлежащие А, через S | , S i т.е. B=Auj SiSj

.%,}• Тогда

алгоритм F над алфавитом А можни считать задаиным в алфавиге В. I Юказать, что для рассматриваемого алгорюта F существует вполне эквивалентный ему в алфавмеА нормальный airopmw, сигма когоро-

269

го поетрэена только с использованием бука ti^aema С-ЛЫа,[) j (а,(3«В). Можно ли исключить однуиз букв а или 0, если п>[?

21. Дли каждого из приведенныхдалее алгоритмов над алфави­ том А~[аМ} каИти вполне эквивалентный ему нормальный алгоритм, схема которого записана только с использованиембуки а, Ь, а,р:

а Ь->Ьа

;Oi> --»В

Y-*ЬЬ

[Л->а

22. П ут. А - некоторый алфавит. Составьте нормальный алго­ ритм над А, позволяющий дм произвольных шов Р и Q в алфавите А пыяенять, одинаковыэти слова или нет. (Указание; рассмотрите слово Р*2(где чА> и постройте алгоритм, сравнивающий и словах У и Q буквы, стоящие первым слева и справа от *, затеи вторыми от * И-Т.Д.)

23.Пусть Л-{0,1,2,...,9). Составы? нормальный алгоритм над А, который любое число и, записанное в десгшчной системе счисле­ ния преобразует в п+1.

24.Будем рассматривать нормальные олгоришы в алфавете Л. До сих пор мы применяли для их задания «схемы» - столбцы формул подстановок. Однако можно задавать каждый нормальный алгоритм

ввиде одного слова, когороа поручается следующий образом. Пусть

Выпишем друг за другом в поряде очередности формулы подстановок алгоритмаF заменой стрелкимаком сц точки-знаком р и нрисоодинением после каждой подстановкизнака у. Получаемое так слово будем называть изображением алгоритмаР я обозначать симво­ лом Г . Алгоритм F называете# самолрименимым, если ои применим

ксвоей собственной записи, т.е. к слов) F\ и несамолрименимым »обратномслучае.