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

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

2.Теоремы об алгоритмической неразрешимости показывают, что математика не сводится к построениюалгоритмов.

3.Область применения алгоритмов весьма широка и к ней

относятся не тольхо вычислительные процессы. Более того, дли многих проблем, ечнгяюишхея трудными, теоретически построить алгоритм можно, но его реализация сопряжена с очень долгим счетом и необходимостью запоминать большое количество промежуточных результатов. Создание быстродействующих вычисли]ельных машин значительно расширило круг решаемых задач.

§14. Съедение любого преобразования слив в алфавите

квычислению значений целочисленных функций

Пусть А - алфавит, содержащий п букв. Поставим в соот­ ветствие каждой буква а (аеЛ) число (гсделев номер) g(я) из чисел 1,2,...,«, причем различным буквам пасшим в соответствие различные числи Оеделевы номера). Очевидно, что по каждому g(fl) всегда можно восстановить букву. Если задано некоторое слово Р,

например, PmOHaa...a-m(fltfiA'). то сопоставим ему геделев номер:

£(Р)-2*'

'

где bi-giaj и дт -

т-е простое число. Легко видеть, что таким

образом можно определить геделев номер каждому слову Р и по каждому геделеву номеру g{Р) легко восстановить слово, которому соответствует этот номер.

Пример. Пусть А={а,Ь,с). Тогда можно положить g(<i)=l, , g[c)=3. Если P=aabn, то £(/)=2^3^5^71. Если же задаю 251

число .^18, то, представив 18 в виде произведения степеней простых чисел 18=2 *32, получаем, что 18 является гедапевым номером слова

Q-ab.

Пусть задана последовательность слов в алфавите А, которую можно, например, назвать предложением в алфавите А. Тогда этой последовательности слов можно сопоставить последовательность гедслсвых номеров каждого слова в том же порядке, что и слова, либо, считая, что пробел между словами имеет геделев номер (л+1), сопоставить всей последовательности один геделев номер. Напричер, пусть А={а.Ь.с) и задана последовательность слов Р=аЬЬ cabb ею,

тогда либо

HiP'rticbb). g(cabb). &ап) w2'*35‘ 55, 2 ^ 3 ^ - 7 5. г'ГЗ1.

^ )- 2 ^ 3 ^ 5 ^ 7 ^ 1 IJ*13'M7!*19!*23**291+3 I1.

Ясно, что в данных случая» по данному номеру или последо­ вательности номеров можно единственный образом восстановить исходную последовательность слов (предложение).

Как только проведена нумерация, становится понятным, что любое преобразование слов или предложений в алфавите А в слове или предложенииЛ можно свести к вычислению значений функции

И” <р(й) или ¢1= 41(¾¾...¾).

где п,7|],Ч)....я* - геделевы номера преобразуемых слов или пред­ ложений, a m - геделев ноиер результата. Это следует из того, что после введения нумерации можно имгть дело у»е только с соответст­ вующими номерами слов нли предложений а не с самими словами или предложениями.

Очевидно, что еоли у нас есть метод преобразования слов (предложений) алфавит» А. то ecib и метод вычисления значений соответствующей функции. Действительно, чтобы нейти значение <р(л) при я=а, можно по а восстановить слово (предложение), затем : помощью имеющегося метода преобразовать ею в слово, явлвяющееся результатом и по результирующему слову (предложению) найти геделев номер <р(«). Следовательно, ф(а)=р.

Наоборот, если есть метод вьгчио.теш* функции 4>(л), го. стало быть, имеется в метод преобразования исходное олова (предло­ жении). Действительно, по записи слова (предложения) мшюго найти соответствующий ему номер а, затем иичислип. |5“ ip(o) и по |! оирсдеиить результирующее слово (предложение).

Тахиы образом, всякое преобразование слон или предложений a:iфаввггаА в слова или предложения того же ллфаииго мпжиа свести к вычислениюзначении некоторой функции, и наоборот.

Раисе «рели всевозможный преобразований слов алфавита пас интересовали преобразования, которые используют механическую процедуру, т.о. преобразовании с помолдао алгориггмоп. П слелу'о- щем и-фаграфс займемся изучением функций, значения которых вычисляются с помощью некоторых ’’механических" процедур, и уста­ новим связь с вычислимостью при помощи нормальных вягорщ-мпи.

§15. Примитивно рекурсюипдс

пойщерскурснкные функции

Рекурсивное определение функции - зю, грубо голоря, опреде­ ление, в котором «начечил функции дао данных api-yMeirron непо­ средственно определяются значениями этой тке функции для "Полос Простых" apiyMBwrou или значениями "болсс ироешх" функций. (Понмтав ''более простой" следует уточните: например, простейшей функцией можно считать функцию-константу). Такой подход е рас­ смотрению функций удобентем, что рекурсивные онреде.'юинхможно рассматривать как алгоритмы.

Здесь, как и Ери определении вычислимости по Маркову или Тыорннту, будем рассматриватьтолько арифметические функции.

Теперь приступим к строгому определению ириштитюрекурсивных а общерекуренвных функций.

1. Следующие функции называются исходными (ироешШими)

функшими:

1)MV.IL функима: 2(.г>=0 ори V i (ikO),

2) функция прибавления единицы: при 9*(д£0), ясно, что. используя функции 2 и ,V. можно получил, любую функциюконстанту, например:

2-N№Z(x))),

з

3) проектирующие функции J" при ясех

,i^C (;-1,2,...,и;*=],2,...)

2. Следующие ираьита служат для получения ковы* функций,

исходе ю У** имеющихся функций.

Подстатяха:

тогаа говорят, что

функция/ получена с- помощыоподстановкииз функцийк,й|,й},..,

Рекурсия:

 

yj[x„ * ,

00, ). ,. . , * „

 

при этом исключается с л

уп=0,ч дляа йкоторого:

 

 

б)

массированноецелое неотрицательное число.

Будем гоеорнть, что » случае а) функция/

получина ю g

и А

с помощью рекурсии, a

- параметры рекурсии, а ■

слу­

чае б)-из одной функции А с.помощью рекурсии.

 

 

254

Заметам, т е фуикшм/всегда определена: в случив и] значение определялся н: t-ro равенства, далее, если шаек

А *'Л ,-г1лУ). Ю 2-го равеиетет опредааеи fatA p.Jbj*)). анало­

гично в ля> случая б).

 

 

V-оператор;

 

 

пусть функция

-

ijKMia, что для любых Я|^еь-«х„

существует, но крайней мере, одно значение у, при котором 8(А^5....W H -

Обозначим через \iy(g{x\xi,--Jnj')^) наименьшее значение >,

при котором

 

Пусть

-.^«vJ-O). Будем тогда rowpro,

что функция / получена и-s функции g с помощью ^--оператора, ссли ля* любыхЛ|.Х; х„ Gyiuecmye'r по крайней мере одно значение у* ДЛЯ

которого

5(ЯГ;J?. ..Г-О-И

Функция налыаастся примгаяидно-рехурсивкой, если она может быть получена из исходныхфункций 1). 2) и 3) с помощью конекнот числа подемноеок и рекурсий.

Функция / называется общерекурситой. «ли он» может быть получена ю йипдлык функций I), 2) и 3) о помощью коШ’Моги'ГНС1и “оистановок, рекурсий и ц-оперитсри. ОбщгрекурсНЛные функции нногда называют р!курсивными функциями.

Из определений очевидно, что каждая примитавко-рскурсивт а функция яалиегся общср^курсивной, но нииаобираг.

Отметим. ‘Гто иршисгавно и эбщерекурсивные функции явля­ ются всюду определенными функции*, так как исходные фунпми всюду определены, а подстановки, рекурсии и ц-оператир не меняет всюду определенности.

2SS

§ I6. Примитивпо-рекурсивносп. некоторых функций, '{асснчил-рскурснслме фушецив

Теорема 6.8. Следующие фуикиии ямяет-гся примнт рекурсикными;

1) х+у;

2) х*у;

 

т-1 ,вслид>0,

г) А

4) ад=

х-у, *>?,

г*-у,

{

б) M -J

), х<у;

I у-Х. Х<у\

0,х-0,

[1,1=0,

{

*)*•<*)- 4

,х*к

i.0, wO;

S) гш(х,у) равна остатку отдеюникунаг, 10) lt{y.,y) равна часпгаму отделения)! нах; 11)х1; 12)шт(х,>); 13)пи»(ад...,;0;

14)max(jy0;

15)max(xiAV

Докичтелылвп. 1. Обозначим первое функцию через/ Hues Л,0)“ЖН1)-Я--,;,'{*), ЛЯ-1)=^+-1)=={л-1'у>+1=Лз:7)41=ЗДад))=Л<^ДЛу)), где

В результате jfy,y)r*+y получается рекурсией из примитивнапвкурсивных функций W и h(x,y,z)=jV(r), следовательно,/ - примитивно-рекурсивна.

2. Обозначим функцию умножения х над> через i|i.Тогда V (x.0)^0 = 0 = Z(x);

1де h \x jv ) ~К!-Л Итак, 'K V ) пвяучастся рекурсией из примитивно рекурсивных функций g f(x)=Z(x) и следоватеньно,

функция ц;-примитивно-рекурсивна, 3. Обозначим функцию втвед*иич в степень ПЕрезф. Для ариф­

метических функций полагаем, что х°=1 для любых целик х, в том

числе и для 1=0, т. е. ОМ (¢(0,0)=1). Получим

Ф(*.0)-*"-1-А'(ДхВ;

ф ,у+ № '^*х= < ?(х,у)ш х™ 4ф ,у)^к‘ \х,у1ц(х,т,

где Л*"(х^>г) ” V(rt/,z), т.е,

ф получается рекурсией из примитивно-

ргкуреивных функций й,

*{г)=Л,(Дх)) и

у,гу=^х,г), следова­

тельно, ¢ )-примитивно-рекурсивна.

Аналошчным образом доказывается и для функций 4)~15).

Из теоремы следует, что примитивно-рекурсивные функции образуют достаточно широкий масс всюду определенных функций.

Рассмотрим, кик можно вычислять значения примитивно рекурсивны' функций. Каждая 1гримишцно-рЕкурсивкья функция получаемся из исходных функций 1), 2) и 3) с помощью конечного I числа подстановок и рекурсий Представление функции с помощью

__J подстановки и рекурсии, примененных к исходным функциям, можно рассматривать как набор инструкций д и "механического" выиислеии» значения функций. Следовательно, доказательство примитивно-р>гкур- снвности функции является одниьременно доказательством сущест­ вования алгоретма вычисления значений функций. Рассмотрим, например, функцию у(*.у)=л«>). Установлено, что

4-(¾.0) = Z(3e>=0; у(*,)+})=АУ М Л гдвЛ^Й-*+1’.

Таким образом, значение у(х.>) при >=0 определено. Зная значение этой функции при некоторых х и у, можем определить значение этой функции при * иу+1, используя уже схему вычисления значений функции.^*,)'), для которой значение приj=0 известно, а при у>0 можно выразить через функцию N, зависящую от аргумен­

та

1) и т.д.

 

Итак, ехгму задания примитивно-рекурсивны): функций можно

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

! Теорема 6.9. Мкижкмво примитнино-рекурсивных функций является счетным множеством, множество общерекурсивных функций тоже является счетным множеством.

Доказательств. Все функции константы - примитаино-рекур- сиины. следовательно, и общерекурсивны. Тогда их не меньше, чем счетное множество. Доказательство того, что их не Волсе чем счетно, приводется с помощью гвделевой нумерации, т.е. удается покмать, что каждой о5шерекурсивной функции можно соноиавить кекпгарое целое неотрицательное число (геделев номер)! причем различным функциям сопоставляются различные числа. Из этой нумервши и спелугг, 1гго пбщерекурсианых функции не более чей счетное '/ножество.

Можно доказать следующую теорему.

Теорема 6.10. Существуют арифметические всюду опреде­ ленные функции, Не являющиеся общерекурсиеиыхш функциями.

Функций (р от п аргументов называется частично-рекурсивной, если она может быть получена яз исходных функций 1), 2) и 3) с помощью конечного числа подстановок, рекурсий и ц‘-оператора, где д‘-операгор определяется так же, как и ji-оператор, но уже

258

не требуется, чтобы для V*],V%...,Vx„ существовал у такой, *сго т.е. при некоторых значениях Х\Хъ.. может и

не сущесгзоватьутиного, что к к м ... w H -

Очевидно, что всякая общерекурсивни функция является частичка рекурсивной, но tie наоборот. Можно доказать следующи: важные теоремы.

Теорема 6.11. Всякая частичио-рехурсиаяая функция (общергкурснпиая) авлятая частично вычислимой (вычислимой) по Маркину функций.

Теорема 6.12. Всякля частичная функция, частично вычис­ лимая (вччислимаа) по Маркову, является чаетиччо-рехурыиной (общерекурсивнои) функцией.

§ 17, Ламода-исчпсление

Прежде чем ввести памбаа-исчисление, укажем возможную область ее использования в вычислительных моделях.

логические вичтпытеяывле модели, основанные HJ вычиелгниях с помощью логики предикатов. Примеры таких язиков ПРОЛОГ,

ДЕЙТАЛОГ;

фуикцитатые вычислительные «одели, s которых Програм­ ма рассматривается как ыножесгво определений функций. В основу

259

этой модели положено так называемое «ламбда-исчислвние». Приме­ ром ячикв, основанного па ламбда-исчислении, имеется 436IK ЛИСП;

обьектю-ориентфаеанные вычислительные модели. В импера­ тивных (процедурных) и функциональных вычислительных моделях операция принимается за субъект, а вычисления првдставлякзтся в ви­ де использования операций с некоторыми объемами. Однако если сделать наоборот, т.е. объект операции принять за субъект, а приме­ нение операции рассматривать как передачу запроса объекту, который и выполняет ату операцию, то тикая модель является объектноориентированной, т.е. объект рассматриваются как процессы. Реви­ зована в языках PLASMA, MESA, LOOPSи др.

Теперь перейдемк некоторымпонятиям ламбда-исчислсния. Ламбда-исчисленис было введено Черчем как один из подходов

для обосновании логики и математики. В дальнейшем часть этого ис­ числения явитсь одной из теорий вычислений.

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

Ч5рч предложил использоватьламбда-исчисленнг для формали­ зации понятия эффективной вычислимости Тьюринг показал, что вы­ числимость по Тьюрингу эквивалентна ламбда-вычислимости. Таким образом, несмотря на свой ичень простой синтаксис, гамбда-исчи- сление способна реализовать все механически вычислимые фукмщи.

Выражение в лямбда-иочислении представлено в префиксной форме, т.е. вначкле располагается оператор, например, вместо а+Ь

пишется +аЬ. а вместо a/b+Ыс пишется (+(lab){xbc)).

Все программы представляются с виде выражений, а процесс выполнения программы заключается в определении шачения этого выражения и это называется оценкой выражвкия.

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

260