Скачиваний:
105
Добавлен:
01.05.2014
Размер:
7.48 Mб
Скачать

Нормальные алгорифмы маркова

Всякая частная проблема из какого-нибудь общего класса проблем может быть сформулирована в виде некоторого выражения подходящего языка. Всякое выражение того или иного языка в свою очередь можно рассматривать как последовательность символов этого языка при условии, что пустое место, служащее обычно для разделения слов, воспринимается как равноправный символ того же языка. Будем называть алфавитомвсякое непустое конечное множество символов, а сами символы алфавита будем называтьбуквами.Словом в алфавите A называется всякая конечная последовательность букв алфавита A. Пустая последовательность букв называетсяпустым словоми обозначается черезL. ЕслиP обозначает словоSj1...Sjk(Si- буква из некоторой конечной последовательности букв) иQобозначает словоSr1...Srm, то пустьPQобозначаетсоединениеSj1...SjkSr1...Srm этих двух слов. В частности,PL=LP=P. Кроме того,(P1P2)P3=P1 (P2P 3).

Алфавит Аназываетсярасширением алфавитаВ, еслиВесть подмножествоА. Если алфавит Аестьрасширениеалфавита В, то всякое слово в алфавите Весть также слово в алфавитеА.

Алгорифмом в алфавите Аназывается эффективно вычислимая функция, областью определения которой служит какое-нибудь подмножество множества всех слов в алфавитеАи значениями которой являются слова в алфавитеА[2]. ПустьPесть слово в алфавите А; говорят, что алгорифмU применим к слову P, если Pсодержится в области определенияU. Если алфавитВявляется расширением алфавита А, то всякий алгорифм в алфавите Вназываетсяалгорифмом над алфавитом А. В качестве элементарной операции, на базе которой будут строиться алгорифмы, выделимподстановкуодного слова вместо другого. Если PиQ- слова в алфавите А, то выраженияP®Qи P®.Qбудем называтьформулами подстановкив алфавитеА. При этом предполагается, что стрелка®и точка .не являются буквами алфавитаА. Заметим, что здесь каждое из словPиQ может быть пустым словом. Формула подстановкиP®Qназываетсяпростой. Формула подстановкиP®.Qназываетсязаключительной.

Условимся говорить, что слово Tвходитв словоQ, если существуют такие (возможно пустые слова)U,V, чтоQ=UTV. ПустьP®(.)Qобозначает любую из формул подстановкиP®QилиP®.Q. Конечный список формул подстановки в алфавитеА

{P1® (.)Q1

{............... .

{Pr® (.)Qr.

называется схемой алгорифмаи порождает алгорифм в алфавитеА, который мы сейчас опишем. Пусть теперь дано некоторое словоPв алфавите А. Имеются две возможности:

(1) Ни одно из слов P1,..., Prне входит в слово P. Этот факт будем записывать так:U:P].

(2) Среди слов P1,..., Prсуществуют такие, которые входят в P. Пустьm- наименьшее целое число такое, что 1£m£rиPmвходит вP, иR- слово, которое получается, если самое левое вхождение слова Pmв словоPзаменить словомQm. Тот факт, что словаPиRнаходятся в описанном отношении, коротко запишем в виде (а)U:P½¾R,

если формула подстановки Pm® (.)Qm- простая (и тогда мы скажем, что алгорифмU просто переводитсловоPв словоR),

или в виде

(b) U:P½¾.R,

если формула подстановки Pm® (.)Qm- заключительная (и тогда мы скажем, что алгорифм U заключительно переводитсловоP в словоR).

Пусть U:P½=Rозначает, что существует такая последовательностьR0,R1,...,Rkслов в алфавите А, чтоP= R0,R= Rk,U:Rj½¾Rj+1 для j=0,1,...,k-2 и либоU:Rk-1½¾Rk, либоU:Rk-1½¾.Rk(в этом последнем случае будем писатьU:P½=.R вместоU:P½=R).

Полагаем теперь, что U(P)=R тогда и только тогда, когда либоU:P½=.R, либоU:P½=R иU:R]. Алгорифм, определенный таким образом называетсянормальным алгорифмом(илиалгорифмом Маркова) в алфавитеА.

Определим по индукции операцию ~, которая ставит в соответствие каждому натуральному числу nслово, состоящее изn+1 единицы:~0=1,~(n+1)=1~n. Сопоставим также каждому вектору (n1,...,nk), гдеn1,...,nk- натуральные числа, слово~ n1*...*~nkв алфавите {1,*}.

Пусть UиH- алгорифмы, аP- слово. Будем применять запись U(P)@H(P) для выражения того факта, либо алгорифмы UиHоба неприменимы к словуP, либо оба они к нему применимы и при этом U(P)=H(P). Вообще, еслиCиDкакие-нибудь выражения, тоC@Dбудет в дальнейшем обозначать, что либо оба эти выражения не определены. либо оба они определены и обозначают один и тот же объект.

Назовем два алгорифма UиHнад алфавитомА вполне эквивалентными относительно А,если для любого словаPв алфавитеА U(P)@H(P). Пусть f- эффективно вычислимая функция от nнатуральных аргументовx1,...,xn. Обозначим черезHfалгорифм вМ={1,*} такой, чтоHf(~x1*...*~xn)@~f(x1,...,xn). Предполагается также, чтоHfнеприменим к словам, отличным от вида~x1*...*~xn. Назовем функциюfвычислимой по Марковуфункцией, если существует нормальный алгорифмUнад М, вполне эквивалентный HfотносительноМ.

Будем говорить о нормальном алгорифме, что он замкнут, если его схема содержит формулу подстановки вида.Q. В работе такого алгорифма возможен лишьзаключительный обрыв, т.е. обрыв в результате применения заключительной формулы подстановки. Обозначим через U°нормальный алгорифм, схема которого получается из схемыUдобавлением новой формулы подстановки.L к ней в конце. Нормальный алгорифмU°замкнут и вполне эквивалентен алгорифмуU относительно алфавита алгорифмаU.

Покажем теперь, что композиция двух нормальных алгорифмов есть снова нормальный алгорифм. Пусть UиH- нормальные алгорифмы в алфавите А.Сопоставим каждой буквеbэтого алфавита новую буквуb', которую назовемдвойникомбуквы b. ПустьАd- алфавит, состоящий из всех двойников букв алфавитаА. Выберем еще две новые буквыaиb, не принадлежащиеА uАd. Обозначим через ЛUсхему, полученную из схемы замыкания нормального алгорифмаUзаменой в ней точки в каждой заключительной формуле подстановки буквойa, и обозначим через ЛHсхему, которая получается путем замены в схеме замыкания алгорифмаHвсех букв алфавита Аих двойниками, всех точек - буквамиb c последующей заменой всех формул подстановки видаQ и.Qсоответственно формуламиa®aQи a®abQ. Рассмотрим схему :

{ аa®aa (aÎА)

{ aa®aa¢ (aÎА)

{ a¢b®a¢b¢ (a,bÎА)

{ a¢b®ba¢(aÎА)

{ ba¢®ba(aÎА)

{ ab¢®ab (a,bÎА)

{ ab®.L

{ ЛH

{ ЛU

Нормальный алгорифм Gнад алфавитомА, определенной этой схемой таков, что для любого словаPвА G(P)=H(U(P)). Этот нормальный алгорифм называетсякомпозициейалгорифмовUиHи обозначается×H·U. В общем случае подUn·...·U1будем пониматьUn·(...U3·(U2 ·U1))...).

Пусть D- некоторый нормальный алгорифм в алфавитеАиВ- некоторое расширениеА. К схеме алгорифмаDдобавим сверху всевозможные формулы подстановки вида b®b, где b- произвольная буква изВ \ А. Полученная таким образом схема определяет некоторый нормальный алгорифмDBв алфавитеВ, который неприменим ни к какому слову, содержащему буквы изВ\А, и такой, чтоDB(P)@ D(P) для любого словаPвА. АлгорифмDBвполне эквивалентен алгорифмуDотносительно алфавитаАи называетсяформальным распространениемалгорифмаDна алфавит В.

Пусть даны нормальные алгорифмы UиHсоответственно в алфавитахА1иА2. Рассмотрим алфавитА= А1ÈА2и формальные распространенияUAиH AалгорифмовUиHна алфавитА. КомпозицияGалгорифмовUAиH Aназываетсянормальной композицией алгорифмов UиH и обозначаетсяH·U. В случае совпадения алфавитовА1иА2нормальная композиция алгорифмовUиH совпадает с их композицией. Gявляется нормальным алгорифмом надА, причемG(P)@ H (U(P)) для любого словаPвА1, и кроме того,Gприменим только к таким словамPв алфавитеА, которые удовлетворяют условиям:

1) Pесть слово вА1, 2)Uприменим кP, 3)Hприменим кU(P).

Предположим, что алфавит Вявляется расширением алфавитаА, пустьP- произвольное слово в алфавитеB. ПроекциейPA словаPна алфавит Аназывается слово, получающееся изPстиранием всех вхождений букв изВ\А. Сокращенно записанная схема {x®L ( В\А) задает нормальный алгорифм JB,Aтакой, чтоJB,A(P)= PAдля любого словаPвА. АлгорифмJB,Aназываетсяпроектирующим алгорифмом.

Пусть АиС- алфавиты без общих букв. ПоложимB=AÈC. Тогда сокращенно записанная схема

{ ca ®ac (aÎА, cÎС)

задает нормальный алгорифм YA,Cв алфавитеBтакой, чтоYA,C(P)=PAPCдля любого словаPв B.

Если Uесть нормальный алгорифм в алфавитеАиВесть расширениеА, то нормальный алгорифмHв алфавитеВ, задаваемый схемой алгорифмаU, назовем естественным распространением алгорифма Uна алфавитВ. Очевидно, чтоH(P)@ U(P) для любого словаP вА, и кроме того,H(P)@U(P)Qдля любого слова PвАи для любого словаQвВ\А. Естественное распространение алгорифмаUнаВ, вообще говоря, отличается от формального распространенияUнаВ, так как последнее неприменимо ни к какому слову с буквами изВ\А.

Пример. Алгорифм подстановки. Пусть А- некоторый алфавит,a1,..., ak- фиксированные буквы из алфавитаА иQ1,...,Qk- фиксированные слова в алфавитеB. БукваaÏ(АÈB). Тогда алгорифм в алфавитеАÈBÈ{a}со схемой

{aai®Qia (i=1,...,k)

{ax®xa (A\{a1,..., ak}

{.L

{L®a

перерабатывает всякое слово Pв алфавитеAв словоSub[a1,..., ak/Q1,...,Qk](P), в котором все вхождения буквa1,..., ak одновременно заменены на словаQ1,...,Qk.

П р е д л о ж е н и е 1. ПустьU1,..., Uk- нормальные алгорифмы иА- объединение их алфавитов. Тогда существует нормальный алгорифмHнадА, называемыйсоединением алгорифмов U1,..., Uk, такой, чтоH(P)@U1#(P)U2#(P)...Uk#(P) для любого словаPв алфавитеА, гдеUi#- есть естественное распространениеUiнаА.

Д о к а з а т е л ь с т в о. Докажем это предложение дляk=2, после чего индукцией поkлегко может быть получен и общий случай. Введем алфавитAd двойников букв алфавитаА. ПоложимB=АÈAd. ПустьU1d- нормальный алгорифм, схема которого получается заменой каждой буквы схемы алгорифмаU1её двойником, и пустьU1d# иU2#- естественные распространения соответственно алгорифмовU1d иU2наB. ПустьА={a1,..., an} иAd={ a1,..., an} . Из предыдущего примера ясно, что существуют нормальные алгорифмыW1=Sub<a1,..., an/ a1 a1,..., an an> иW2=Sub<a1,...,an/ a1,..., an> над алфавитомB. Существуют также алгорифмыLA,Ad,LAd,Aтакие, чтоLA,Ad(P)@PA PAdиLAd,A(P)@PAd PA. Тогда, как легко проверить, нормальная композицияH@W2·U1d# · LAd,A· U2#· LA,Ad· W1 обладает искомым свойством:H(P)@U1#(P)U2#(P) для любого словаPв алфавитеА. Действительно, пусть словоP имеет вид aj1aj2...ajl. Тогда

W1(P)@aj1 aj1 aj2 aj2...ajl ajl,

LA,Ad(W1(P))@ aj1aj2...ajlaj1aj2...ajl,

U2#( aj1aj2...ajlaj1aj2...ajl)@U2#(P) aj1aj2...ajl,

LAd,A(U2#(P) aj1aj2...ajl)@ aj1aj2...ajl U2#(P),

U1d#(aj1aj2...ajlU2#(P))@U1d#( aj1aj2...ajl)U2#(P),

W2(U1d#( aj1aj2...ajl)U2#(P))@ U1#(P)U2#(P).

С л е д с т в и е. 2.ПустьU1,...,Uk- нормальные алгорифмы соответственно в алфавитах A1,..., Ak, и пустьА= A1È...ÈAk. Тогда существует нормальный алгорифмHнадАÈ{*} такой, чтоH(P)@U1#(P)*U2#(P)*...*Uk#(P) для любого словаPвА,Ui#(P) - естественное распространениеUiнаА. (В частности,H(P)@U1(P)*U2(P)*...*Uk(P) для любого словаPв алфавитеA1Ç...ÇAk.

Д о к а з а т е л ь с т в о. Существует такой нормальный алгорифмDвАÈ{*}, чтоD(P)=* для любого словаPвА. Алгорифм Dзададим схемой

{ a®L (aÎ A)

{.*

Пусть, на основании предложения 1, Hесть соединение алгорифмовU1,D,U2,D,...,D,Uk. ТогдаH(P)@U1#(P)*U2#(P)*...*Uk#(P) для любого слова PвАи, в частности,H(P)@U1(P)*U2(P)*...*Uk(P) для любого словаPв пересечении алфавитовA1,..., Ak.

Л е м м а 3. (1) ПустьG- нормальный алгорифм в алфавитеАиa- произвольная буква. Тогда существует нормальный алгорифмDнадАÈ{a} такой, что для любого словаPвА

{aP, еслиG (P)=L,

D(P)={

{P, еслиG (P)¹L

и алгорифм Dприменим только к тем словам, к которым применимG.

(2) Если UиH- нормальные алгорифмы в алфавитеАиa-буква, не принадлежащаяА, то существует нормальный алгорифм W надАÈ{a} такой, чтоW(P)@U(P) иW(aP)@ H(P) для любого словаP А.

Д о к а з а т е л ь с т в о. (1) Существует нормальный алгорифмZ1 надАÈ{a}, перерабатывающийLвa и всякое непустое слово в алфавитеАÈ{a} - вL. Такой алгорифм может быть задан следующей схемой:

{a®b (aÎАÈ{a}) ,

{bb®b,

{.L,

{.a ,

где b - буква, не принадлежащая алфавитуАÈ{a}.

Пусть Z2= Z1·G. Для любого словаPвА, еслиG(P)=L, тоZ2(P)= a, и еслиG(PL, тоZ2(P)=L. ПустьT- тождественный нормальный алгорифм в А(со схемой {.L), и пустьDесть соединение алгорифмовZ2иT. Тогда, еслиG(P)=L, тоD(P)= aP, и еслиG (P)¹L, тоD(P)=P.

(2) Введем алфавит Аdдвойников букв алфавита А. ПустьB=АÈАdÈ{a,b}, где АÈАdÈ{a}. Если мы заменим в схеме замыкания алгорифмаHвсякую букву алфавитаАеё двойником, все точки - буквойb, а в получившейся в результате этого схеме заменим всякую формулу подстановки видаQ и.Qсоответственно наa®aQиa®ab, то получим некоторую схему, которую обозначим черезЛHd. ПустьЛU- cхема замыкания алгорифмаU. Построим теперь схему

{ aa®aa¢ (aÎA)

{ a¢b®a¢b¢ (a,bÎA)

{ a¢b®ba¢ (aÎA)

{ ba¢®ba(aÎA)

{ ab¢®ab (a,bÎA)

{ ab®.L

{ ЛHd

{ ЛU

Определенный этой схемой нормальный алгорифм WнадАÈ{a}есть искомый алгорифм, т.е.W(P)@U(P) иW(aP)@H(P) для любого словаP вА.

П р е д л о ж е н и е 4. ПустьU, H,G- нормальные алгорифмы и А- объединение их алфавитов. Тогда существует нормальный алгорифмZнад Атакой, что

{ H(P), еслиPесть слово вАиG(P)= L,

Z(P)@{

{ U(P), если Pесть слово АиG(P) ¹L,

и применимый к тем и только к тем словам в А, к которым применимG. АлгорифмZназываетсяразветвлением алгорифмовU иH,управляемым алгорифмомG.

Д о к а з а т е л ь с т в о. ПустьU1,H1,G1- формальные распространенияU,H,Gна Аи букваА. По лемме 3 (1) существует нормальный алгорифмDнадАÈ{a} такой, что

{aP, еслиG (P)=L,

D(P)={

{P, еслиG (P)¹L

для любого слова PвА. По второй части леммы 3 существует нормальный алгорифмW надАÈ{a} такой, чтоW(P)@U(P) иW(aP)@ H(P) для любого словаP А. Тогда искомый алгорифмZесть композиция алгорифмовD иW:Z=W·D. Конец доказательства.

Пусть Uи G- алгорифмы в алфавитеАиP - произвольное слово вА. Применим UкP. Если в результате получится словоP1, применимGкP1. ЕслиG(P1)=L, процесс заканчивается. ЕслиG(P1L, применим UкP1. Если в результате получится некоторое словоP2, то применимGкP2. ЕслиG(P2)=L, процесс заканчивается. ЕслиG(P2L, применим UкP2 и т. Определенный таким образом алгорифмHназываетсяповторением алгорифма U управляемым алгорифмом G. Очевидно, что H(P)=Qтогда и только тогда, когда существует последовательность словP0, P1,..., Pn(n>0) такая, чтоPn=Q,G(Pn)= L,Pi=U(Pi-1) при 0<i£nиG(PiLпри 0<i<n.

П р е д л о ж е н и е 5. Пусть UиG- нормальные алгорифмы иА- объединение их алфавитов иU1иG1- формальные распространения соответственноUиGнаА. Тогда существует нормальный алгорифм HнадА, являющийся повторением алгорифмаU1, управляемым алгорифмомG1.

Д о к а з а т е л ь с т в о. Предложение достаточно доказать для случая, когда алфавиты алгорифмов UиGсовпадают и когда, следовательно,U= U1иG= G1. Пусть букваaне входит вА. По лемме 3(1) существует нормальный алгорифмDнадB=АÈ{a} такой, что для любого словаPвА

{aP, еслиG (P)=L,

D(P)={

{P, еслиG (P)¹L

Пусть F= D·U.F- нормальный алгорифм в некотором расширении С алфавитаB. Пусть букваbне входит вС. Рассмотрим следующую схему:

{xb®bx (xÎC)

{ ba®.a

{ b®L

{ ЛF,

где ЛF- схема, полученная из схемы замыканияFпутем замены в ней всех точек буквойb. Эта схема определяет некоторый нормальный алгорифм Z, причемZ(P)=Qтогда и только тогда, когда существует последовательность словP0, P0,...,Pn(n>0) такая, чтоP= P0,Pn=Q,Pi= F(Pi-1) при 0<i£nиPn- единственное в этой последовательности слово, начинающееся с буквыa. ПустьY- алгорифм, проектирующий алфавит Сна алфавит С\{a}(т.е. стирающий все вхождения буквыa). Теперь очевидно, что композиция алгорифмов YиZдает искомый алгорифм:H= Y·Z.

С л е д с т в и е 6. ПустьUиG- нормальные алгорифмы и А- объединение их алфавитов. Тогда существует нормальный алгорифмXнадА, который всякое словоPв алфавитеАперерабатывает в слово Qтогда и только тогда, когда существует последовательность словP0,...,Pn(n³0) такая, чтоP= P0, Pn=Q,G(Pn)=L,Pi+1= U(Pi) иG(PiLдляi=0,1,...,n-1.

Д о к а з а т е л ь с т в о. Пусть T- тождественный нормальный алгорифм иH- повторениеU, управляемое G. Тогда искомым алгорифмом Xявляется разветвление TиH, управляемое G. Этот алгорифм Xназывается полным повторением алгорифма U, управляемым алгорифмом G.

П р е д л о ж е н и е 7. Каков бы ни был нормальный алгорифм Uв алфавитеА, существует такой нормальный алгорифм Uнад алфавитомB=AÈ{1,*}, что для любого слова Pв Аи для любого натурального числа nUI(~n*P)=Qтогда и только тогда, когда существует последовательность словP0,...,Pn(n³0) такая, чтоP= P0, Pn=Q,Pi= U(Pi-1) дляi=1,2,...,n.

Д о к а з а т е л ь с т в о. Пустьa- буква, не входящая вB, и положимС=BÈ{a}. Рассмотрим нормальные алгорифмы вС, задаваемые следующими схемами:

{ a11®.1 {** (B)

{a1*®a*Z2: {

Z1: {a*x®a* (B) {*®L

{ a*®.L

{ L®a

Легко видеть, что для любого слова Pв алфавитеBполучаемZ1(~0*P)=LиZ1(~n*P) ¹L, еслиn>0.

Если P не содержит букву * то, Z2(P*Q)=P.

{a1®a Z4: { 1®.L

Z3: { a*®.L

{L®aZ5: { 1*®.L

Нетрудно проверить, что Z3(~n*P)=P, любого словаPв алфавитеB.А такжеZ4(~n*P)=~(n-1)*P, еслиn>0, иZ4(~0*P)=*PиZ5(~0*P)=Pдля любогоPв алфавитеB.

Пусть теперь R- такой нормальный алгорифм, что R(P)=(Z2·Z4)(P)*(U·Z3)(P) для любогоPв алфавитеC (см. следствие 2). Тогда для любого словаPв алфавитеАполучаем

{ ~(n-1)* U(P), если n>0,

R(~n*P) = {

{ * U(P), еслиn=0.

Обозначим через Еалфавит алгорифмаR. В силу следствия 6, найдется такой нормальный алгорифмXнадЕ, чтоX(P)=Qтогда и только тогда, когда существует последовательность слов P0,...,Pn(k³0) такая, чтоP= P0, Pk=Q,Z1(Pk)=L,Pi= R(Pi-1) иZ1(PiLдляi=0,1,...,k-1. Теперь легко убедиться, что композиция Z5· Xесть искомый нормальный алгорифмUI.

П р е д л о ж е н и е 8. Всякая рекурсивная функция является вычислимой по Маркову функцией.

Д о к а з а т е л ь с т в о. (1) Докажем для начала, что нуль-функция, функция следования и проектирующие функции являются вычислимыми по Маркову. Для этого приведем схемы нормальных алгорифмов Uz,Us,Ukjнад алфавитомM={1,*}, которые вычисляют соответственно нуль-функциюz, функцию следования sи проектирующую функциюidkj. Схемы алгорифмовUz,Usвыглядят следующим образом (aÏM):

{* ® *{* ® *

{ a11®a1Us: {a1®11

Uz: {a1®.1{ a

{ a

Причем алгорифмы Uz,Usприменимы только к непустым словам в алфавите {1}. Для задания схемы алгорифма Ukjвведем обозначения. Пустьa1,...,ak- буквы, не входящие в алфавитМ, и пусть 1£j£k. Обозначим черезЛi(при 1£i<k) список формул подстановки:

{ a2i-1*®a2i-1*

{ a2i-11®a2i1

{ a2i1®a2i

{ a2i*®a2i+1

В зависимости от значения j алгорифм Ukjзадается одной из следующих трех схем:

если i<j<k, если j=1, если j=k,

то схемой то схемой то схемой

{ Л1 {a1*®a1* {Л1

{ . { a11®a21 { .

{ . { a21®1a2{ .

{ . { a2*®a3 { .

{ Лj-1 {Л2 {Лk-1

{ a2j-1*®a2j-1* { . {a2k-1*®a2k-1*

{ a2j-11®a2j1 { . { a2k-11®a2k1

{ a2j1®1a2j{ . { a2k1®1a2k

{ a2j*®a2j+1{Лk-1{ a2k*®a2k*

{ Лj+1{a2k-1*®a2k-1* {a2k®.L

{ . { a2k-11®a2k1 {a1

{ . { a2k1®a2k

{ . { a2k*®a2k*

{ Лk-1 { a2k®.L

{ a2k-1*®a2k-1* {a1

{ a2k-11®a2k1

{ a2k1®a2k

{ a2k*®a2k*

{ a2k®.L

{ a1

Действительно Ukjприменим к тем и только тем словам, которые имеют вид ~x1*...*~xk, причемUkj(~x1*...*~xk)= ~xjдля любого набора ~x1*...*~xk.( Здесь фрагментЛi “съедает” i-й блок единиц).

(2) Рассмотрим теперь операцию композиции. Пусть h(x1,...,xn)=f(g1(x1,...,xn),...,gm(x1,...,xn)), где f,g1,...,gm - рекурсивные функции. Предположим также, что существуют нормальные алгорифмыUf, Ug1,..., UgmнадМ={1,*}, которые вычисляют соответственно функцииf,g1,...,gm. Согласно следствию 2, существует нормальный алгорифмHнадМ, такой, чтоH(P)@ Ug1(P)* Ug2(P)*...* Ugm(P) для любого словаPв алфавитеM. В частностиH(~x1*...*~xn)@~g1(x1,...,xn)*...*~ gm(x1,...,xn) для любых натуральныхx1,...,xn. ПоложимG= Uf·H. Тогда для любых натуральныхx1,...,xnимеемG(~x1*...*~xn)@Uf(~g1(x1,...,xn)*...*~ gm(x1,...,xn))@

@~f(g1(x1,...,xn),...,gm(x1,...,xn))

(3) Рассмотрим операцию примитивной рекурсии. Пусть h=Pr[f,g]иUf, Ug- нормальные алгорифмы надМ={1,*}, которые вычисляют соответственно функцииfиg. АлгорифмыUz,Us, Ukjнад алфавитомM={1,*} вычисляют соответственно нуль-функциюz, функцию следованияsи проектирующую функциюidkj. С помощью алгорифмов Uk+1jможет быть построен, в силу следствия 2, нормальный алгорифм H1 над Мтакой, чтоH1(~x1*...*~xk*~y)@~x1*...*~xk. Пусть R= Uf·H1. Снова на основании следствия 2 и исходя из алгорифмовUk+1k+1, Uk+11,... Uk+1k,Uz, R, строим нормальный алгорифм H2надМтакой, чтоH2(~x1*...*~xk*~y)@~y*~x1*...*~xk*~0*~f(x1,...,xk).

Нормальный алгорифм H3= Us· Uk+2k+1работает таким образом, чтоH3(~x1*...*~xk*~y*~x)@~(y+1). Применив следствие 2 к алгорифмамUk+21,..., Uk+2k, H3иUg, получим нормальный алгорифмH4надМ такой, что H4(~x1*...*~xk*~y*~x) @~~x1*...*~xk*~(y+1)*~g(x1,...,xk,y,x). В силу предложения 7, существует такой нормальный алгорифмH4I надМ, что при любомn³0 равенствоH4I(~n*P)=Q выполнено тогда и только тогда, когда существует последовательность словP0,..., Pn (n³0) такая, чтоP=P0,Pn=Q,Pi= H4(Pi-1) дляi=1,2,...,n. Тогда алгорифм H= Uk+2k+2·H4I· H2и есть искомый алгорифм, который вычисляет функциюh.

В самом деле, прежде всего, H2(~x1*...*~xk*~y)@~y*~x1*...*~xk*~0*~f(x1,...,xk). Применение затем к слову ~y*~x1*...*~xk*~0*~f(x1,...,xk) алгорифмаH4Iравносильноy-кратному применению алгорифмаH4, начиная со слова ~y*~x1*...*~xk*~0*~f(x1,...,xk). При этом в результате получится слово~x1*...*~xk*~y*~h((x1,...,xk,y). Применив затемUk+2k+2, получим окончательно ~h(x1,...,xk,y).

(4) Покажем теперь, что операция минимизации, примененная к функциям вычислимым по Маркову порождает вычислимую по Маркову функцию. Пусть h(x1,...,xn)=Mn[f]( x1,...,xn) иUf- нормальный алгорифм надМ={1,*}, который вычисляет функциюf(x1,...,xn,y). Исходя из алгорифмов Un+11,...,Un+1nи Us·Un+1n+1в соответствии со следствием 2 построим нормальный алгорифмWтакой, чтоW(~x1*...*~xn*~y) @~x1*...*~xn*~(y+1).

Рассмотрим нормальный алгорифм DнадМ, задаваемый схемой:

{ 11®.11

{ 1 ®L

Если n=0, то D(~n)=L. Еслиn>0, то D(~n)¹L. ПустьG= D·Uf. ТогдаG(~x1*...*~xn*~y)=L, если f(x1,...,xn,y)=0, иG(~x1*...*~xn*~yL, еслиf(x1,...,xn,y)¹0.

Пусть, далее, X- нормальный алгорифм надМтакой, чтоX(~x1*...*~xn)=~x1*...*~xn*~0. Применив к алгорифмам WиG следствие 6, заключаем, что существует нормальный алгорифмZнадМ, для которого равенство Z(P)=Qвыполнено тогда и только тогда, когда существует последовательность словP0,...,Pn (n³0) такая, чтоP= P0, Pn=Q,G(Pn)=L,Pi+1= W(Pi) и G(Pi)¹Lдляi=0,1,...,n-1. Определим теперь нормальный алгорифмHhкак композицию Un+1n+1·Z·X. Нетрудно видеть, чтоHh(~x1*...*~xn)@~Mn[f](x1,...,xn)@~h(x1,...,xn)

Из пунктов (1)-(4) следует, что если hесть рекурсивная функцияnаргументов, то существует такой нормальный алгорифмUh над М, чтоUh(~x1*...*~xn)@~h(x1,...,xn). Построим нормальный алгорифмYнад М, который применим только к словам вида~x1*...*~xn, гдеx1,...,xn- натуральные числа, и который работает таким образом, чтоY(~x1*...*~xn)= ~x1*...*~xn.

Зададим нормальный алгорифм Fh равенствомFh= Hh·Y.

Тогда Fh(~x1*...*~xn)@~h(~x1*...*~xn), причемFhприменим к слову Pтогда и только тогда, когдаP- слово в алфавитеМвида~x1*...*~xnиh(~x1*...*~xn) определено. Следовательно всякая рекурсивная функция есть функция, вычислимая по Маркову. Доказательство закончено.

Определим теперь гёделевы номера для всех букв S1,S2,..., из которых состоят все наши алфавиты:g(Si)=2i+3. Далее, каждому слову P= Sj0... Sjkприпишем гёделев номерg(P)=2j0+332j1+3...p2jk+3k, гдеpk-к-е простое число. Положим, кроме того,g(L)=1. Наконец, гёделев номер последовательности словP0,...,Pkопределим как 2g(P0) 3g((P1) ...pg((Pk)k.

Условимся обозначать буквы S1 иS2соответственно буквами 1 и *. Тогда получаемg(~0)=25,g(~1)= 2535и вообщеg(~n)= 2535...p5n.

Можно доказать, что для всякого алфавита Асуществуют такие нормальные алгорифмыF1иF2надАÈ{1,*}, что F1(P)=~g(P)иF2(~g(P))=Pдля любого, слова PвА. Рассмотрим вопрос о существовании алгорифмаF1.

Во-первых, существует такой нормальный алгорифм H1надАÈ{1,*}, что для любого непустого словаP=am0am1...amrв алфавитеА H1(P)=~g(am0)*~g(am1)*...*~ g(amr)иH1(am0)=~ g(am0)*.

Если А={ Sj0... Sjk}, то такой алгорифм H1задается схемой

{ aSj0® ~(2j0+3)*a

{aSj1® ~(2j1+3)*a

{ .

{ .

{ .

{aSjk® ~(2jk+3)*a

{ a®.L

{ a

Во-вторых, существует такой нормальный алгорифм H2, что H2(~n*Q)=~0*~2n*Q. Функция 2nрекурсивна поэтому, существует вычисляющий ее нормальный алгорифм. Применив следствие 2, к алгорифмам вычисляющим нуль функцию, функцию2nи к алгорифмуZ3 (см. доказательство предложения 7), для которогоZ3(~n*P)=P, получим алгорифмH2. ПоложимH3= H2·H1. Тогда для всякого непустого словаP=Sm0S m1...S mr

H3(P)=~0*~2 g(Sm0)*~g(Sm1)*...*~g(Smr)*.

Пусть Uесть такой нормальный алгорифм, чтоU(~n*~u*~v*Q)=~(n+1)*~(upvn+1)*Q.

Функция f(x,y,n)=x pyn+1рекурсивна, следовательно вычислима с помощью некоторого нормального алгорифма. Нетрудно, применив следствие 3, доказать существование U. Пусть, далее,G- нормальный алгорифм, удовлетворяющий условию:G(P)=Lтогда и только тогда, когдаPсодержит в точности два вхождения буквы *. В силу следствия 6, существует нормальный алгорифмX, являющийся полным повторениемU, управляемымG. Обозначим, наконец, черезY нормальный алгорифм, перерабатывающий всякое слово вида ~x*~y* в

слово ~y, и положимZ= Y·X·H3. Нетрудно видеть, чтоZ(P)=~G(P) для любого непустого словаPвА. Теперь существование алгорифмаF1легко доказывается с помощью предложения 4. АлгорифмF1является разветвлением алгорифма, который перерабатывает пустое слово в ~1, и алгорифмаZ, управляемое тождественным алгорифмом.

Рассмотрим вопрос о существовании алгорифма F2. Построим алгорифмD со схемой

{ ~(2jk+3)®Sjk

{ .

{ .

{ .

{~(2j1+3)®Sj1

{~(2j0+3)®Sj0

Алгорифм D построен таким образом, чтоD(~(2i+3))®Si для любого словаSiиз алфавитаA. Построим нормальный алгорифмRтакой, чтоR(~n)=~0*~n* для любого натурального числаn. Для этого, пользуясь следствием 2, мы воспользуемся алгорифмом, вычисляющим нуль-функцию, и тождественным алгорифмом. Обозначим черезy=(u)n. Построим алгорифмF такой, что для любых натуральныхn иuи для любого словаP

F(~n*~u*P)=~(n+1)*~(u/pny)*P D(~y)

Здесь функция u/pny примитивно рекурсивна и, поэтому в силу предложения 8 существует вычисляющий ее алгорифм.

Пусть G- нормальный алгорифм такой, чтоG(~n*~1*P)=L для любого натуральногоn и для любого словаP. Для слов отличных от вида~n*~1*PалгорифмGопределен и не равенL. В силу предложения 5, существует алгорифмH осуществляющий повторениеF, управляемоеG. ПустьZ- нормальный алгорифм, перерабатывающий всякое слово~n*~1*P в словоP. Зададим следующую композицию алгорифмовL=Z·H·R. Нетрудно видеть, что L(~g(Q))=Qдля любого непустого словаQ. АлгорифмF2 зададим, как разветвление алгорифмов (см. предложение 5).F2(~g(P))=L(~g(P)), если P¹LиF2(~g(L))=L.

Пусть U- произвольный алгорифм (не обязательно нормальный) над алфавитомА. Поставим в соответствие алгорифмуUфункциюYU удовлетворяющую следующему условию: для любых натуральных чиселnиmравенствоYU(n)=m выполнено тогда и только тогда, когда либоnне есть гёделев никакого слова в алфавитеАи m=0, либоn иmсуть гёделевы номера некоторых словPиQв А, причемU(P)=Q.

П р е д л о ж е н и е 9. Если алгорифмUнад алфавитомАтаков, что функцияYUрекурсивна, то существует нормальный алгорифм над алфавитомА, вполне эквивалентный алгорифму UотносительноА.

Доказательство. Предположим, что функция YUрекурсивна (в этом случае назовем Uрекурсивным алгорифмом). В силу предложения 8, тогда существует такой нормальный алгорифмHнад алфавитом {1,*}, чтоH(~n)@~YU(n) для любого натуральногоn, причемH определен только для тех~n, для которых определено значениеYU(n). Пусть U¢=F2·H·F1. Нетрудно видеть, чтоU¢- нормальный алгорифм над алфавитомА, вполне эквивалентный алгорифму UотносительноА.

П р е д л о ж е н и е 10. Если U- нормальный алгорифм над алфавитомА, тоYUесть рекурсивная функция.

Доказательство. Назовем индексом простой формулы подстановки P®Qчисло213g(P)5g(Q)и индексом заключительной формулы подстановки P®.Q- число223 g(P)5g(Q). Назовем, далее индексом схемы алгорифма

{ P0®(.)Q0

{ ..........

{ Pr®(.)Qr

число 2k03 k1...p kr, где ki- индекс формулы подстановкиPi®(.)Qi.

Введем предикаты, истинностные значения которых определяются следующими формулами:

1) Word(u):u=1Ú("z)(z<lh(u)®($y)(y<uÙ(u)z=2y+3))

("uесть гёделев номер некоторого слова");

2) SI(u): lh(u)=3Ù(u)0=1Ù Word((u)1)ÙWord((u) 2)

("uесть индекс простой формулы подстановки");

3) TI(u): lh(u)=3Ù(u)0=2Ù Word((u)1)ÙWord((u)2)

("uесть индекс заключительной формулы подстановки");

4) Ind(u): u>1Ù("z)[z<lh(u)®SI((u)z)ÚTI((u) z)]

("uесть индекс схемы алгорифма");

5) Lsub(x,y,e): Word(x)ÙWord(y)Ù[SI(e)ÚTI(e)]Ù

($uu£x)($vv£x)[x=uà(e)1àv Ùy=uà(e)2àvÙ

______________________________________________________________

($ww£x)($zz£x)(x=wà(e)1àzÙy=uà(e)2àzÙw<u))]

("eесть индекс некоторой формулы подстановкиP®(.)Q, аxиy суть гёделевы номера некоторых словUиVтаких, чтоPвходит вUи Vесть результат подстановкиQна место самого левого вхожденияPвU");

6) Occ(x,y): Word(x)ÙWord(y)Ù($vv£x)($zz£x)(x=vàyàz)

("xиyсуть гёделевы номера соответственно некоторых словUиV

и слово Vвходит в словоU");____________________________

7) End(e,z): Ind(e)ÙWord(z)Ù ("ww<lh(e))Occ(z,((e)w)1)

("zесть гёделев номер некоторого словаP,eесть индекс некоторой схемы, и определяемый этой схемой алгорифм неприменим к словуP");

8)SCons(e,y,x):Ind(e)ÙWord(x)ÙWord(y)Ù _________________

($vv<lh(e))[SI((e)v)ÙLsub(x,y,(e)v)Ù ("zz<v)Occ(x,((e)z)1)

("eесть индекс некоторой схемыЛ,yиxсуть гёделевы номера некоторых словQиPтаких, чтоQможет быть получено применением к Pнекоторой простой формулы подстановки схемыЛ");

9)TCons(e,y,x):Ind(e)ÙWord(x)ÙWord(y)Ù _______________

($vv<lh(e))[TI((e)v)ÙLsub(x,y,(e)v)Ù ("zz<v)Occ(x,((e)z)1)]

("eесть индекс некоторой схемыЛ, yиxсуть гёделевы номера некоторых словVиPтаких, чтоVможет быть получено применением кPнекоторой заключительной формулы подстановки схемыЛ");

10) Der(e,x,y): Ind(e)ÙWord(x)Ù("zz<lh(y))[Word((y)z)Ù(y)0=xÙ

Ù("zz<dif(lh(y),2))(SCons(e,(y)z+1))Ù(lh(y)=1ÙEnd(e,(y)0)Ú

Ú(lh(y)>1Ù(TCons(e,(y)dif(lh(y),1),(y)dif(lh(y),2))Ú

(SCons(e,(y)dif(lh(y),1),(y)dif(lh(y),2))ÙEnd(e,(y)dif(lh(y),1)))))]

("eесть индекс некоторой схемы Л,xесть гёделев номер последовательности словP0, P1,...,Pk(k³0) такой, что если0£i£dif(k,1), то задаваемый схемой ЛалгорифмUпереводитPiвPi+1, и либоU: Pdif(k,1)½¾.Pk, либоU: Pdif(k,1)½¾.PkиU:Pk] (либо, еслиk=0, тоU: Pk])");

11) WA(u): u=1Ú("zz<lh(u))((u)z=2j0+3Ú...Ú(u)z=2jm+3)

("uесть гёделев номер слова в алфавитеА={Sj0..,S jm}").

Характеристические функции всех перечисленных выше условий рекурсивны. Пусть теперь U- произвольный нормальный алгорифм над алфавитомАиe- индекс схемы, которой он задается. Рассмотрим рекурсивную функцию

_________

f(x)=Mn[(WA(x)ÙDer(e,x,y))Ú WA(x)]

Как нетрудно видеть YU=(f(x))dif(lh(f(x)),1), откуда следует, чтоYUрекурсивная функция. Если же при этом алгорифм Uприменим к каждому слову в алфавите А, то функцииfиYUвсюду определенные рекурсивные функции.

С л е д с т в и е 11. Если функция fвычислима по Маркову, то эта функцияfрекурсивна.

Доказательство. ПустьU- нормальный алгорифм над {1,*} такой, чтоf(x1,...,xk)=mтогда и только тогда, когдаU(~x1*...*~xk)=~m. ФункцияYUрекурсивна. Положимt(x)= g(~x).Функцияtрекурсивна, так какg(~n)=p05p15... pn5. Функцияg(x)=lh(x)-1также рекурсивна. Если x= p05p15...pn5, тоn=g (x). Рекурсивна и функцияx( x1,...,xk)=g(~x1*...*~xk). Тогда функцияf=G(YU(x))является частично рекурсивной. Конец доказательства.

Итак, следствие 11 и предложение 8 устанавливает эквивалентность понятий вычислимости по Маркову и рекурсивности. Тезис Чёрча утверждает в свою очередь, что понятие вычислимости эквивалентно понятию рекурсивности. Андрей Андреевич Марков в терминах алгорифмов сформулировал соответствующий принцип, названный им принципом нормализации: всякий алгорифм вАвполне эквивалентен относительноАнекоторому нормальному алгорифму над А.

Оказывается тезис Чёрча и принцип нормализации Маркова эквивалентны. В самом деле, примем сначала тезис Чёрча. Пусть Uесть алгорифм в алфавитеА. Соответствующая функцияYUявляется частичной эффективно вычислимой функцией. Тогда, в силу тезиса Чёрча,YUесть рекурсивная функция и, следовательно, алгорифм U, на основании предложения 9, вполне эквивалентен относительно Анекоторому нормальному алгорифму над А. Таким образом, если верен тезис Чёрча, то верен и принцип нормализации.

Обратно, пусть верен принцип нормализации, и пусть f- произвольная эффективно вычислимая функция иHf- алгорифм в M={1,*} вычисляющий функциюf. Согласно принципу нормализации, Hfвполне эквивалентен относительноMнекоторому нормальному алгорифму над M. Следовательно, функцияfесть вычислимая по Маркову функция. Но тогда, в силу следствия 11,fявляется рекурсивной, и мы вывели из принципа нормализации тезис Чёрча.