1610906280-58a805c0f28e2c985192966a2f3bd6d2 (824374), страница 11
Текст из файла (страница 11)
Òîãäàôóíêöèÿ F (x̄), îïðåäåëåííàÿ, êàêf1 (x̄),åñëè P1 (x̄)f2 (x̄),åñëè P2 (x̄)F (x̄) =···fm (x̄), åñëè Pm (x̄),ðåêóðñèâíà.Äîêàçàòåëüñòâî. Ýòî ñëåäóåò èç ðàâåíñòâà:F (x̄) = f1 (x̄)χP1 (x̄) + f2 (x̄)χP2 (x̄) + · · · fm (x̄)χPm (x̄).¤3.3. Êîäèðîâàíèå êîíå÷íûõïîñëåäîâàòåëüíîñòåé613.3 Êîäèðîâàíèå êîíå÷íûõïîñëåäîâàòåëüíîñòåéÂàæíûì ñâîéñòâîì ïðîãðàìì ÿâëÿåòñÿ âîçìîæíîñòü êîäèðîâàòü èõ ïðèïîìîùè íàòóðàëüíûõ ÷èñåë.
Ýòî ñâîéñòâî èìååò îòíîøåíèå ê îäíîé èíòåðåñíîé èäåå, çàêëþ÷àþùåéñÿ â òîì, ÷òî ìåæäó àëãîðèòìàìè è íàòóðàëüíûìè ÷èñëàìè â íåêîòîðîì ñìûñëå íåò ïðèíöèïèàëüíîé ðàçíèöû, è, â áîëåå øèðîêîì ñìûñëå, íåò ïðèíöèïèàëüíîé ðàçíèöû è ìåæäóïðîãðàììîé è äàííûìè. Ýòî ìû ñàìè óñëîâíî ðàçäåëÿåì ÿ÷åéêè êîìïüþòåðà íà ñîäåðæàùèå ïðîãðàììó è ñîäåðæàùèå äàííûå ê íåé. Òàê,íàïðèìåð, ïðîãðàììà, çàãðóæåííàÿ â ïàìÿòü êîìïüþòåðà, ìîæåò â ïðîöåññå âû÷èñëåíèÿ èçìåíèòü ñàìó ñåáÿ, ÷òî íåðåäêî ñëó÷àåòñÿ.
Ïðîãðàììû ìîãóò ñàìè âûñòóïàòü òàêæå è êàê äàííûå äëÿ äðóãèõ ïðîãðàìì.Íàïðèìåð, ïðîãðàììà, íàïèñàííàÿ íà àëãîðèòìè÷åñêîì ÿçûêå âûñòóïàåò â ðîëè äàííûõ äëÿ ïðîãðàììûêîìïèëÿòîðà, ïðåîáðàçóþùåé åå âïðîãðàììû íà ÿçûêå ìàøèííûõ êîìàíä.Ìîæíî óêàçàòü áåñêîíå÷íî ìíîãî ñïîñîáîâ êîäèðîâàíèÿ ïðîãðàììíàòóðàëüíûìè ÷èñëàìè. Âñå, ÷òî íàì òðåáóåòñÿ, ýòî âîçìîæíîñòü ñîïîñòàâëÿòü ïðîãðàììàì íàòóðàëüíûå ÷èñëà (êîäèðîâàòü èõ) è óìåòü ïîêîäàì ïðîãðàìì îäíîçíà÷íî âîññòàíàâëèâàòü ñàìè ïðîãðàììû, ïðè÷åìñîîòâåòñòâóþùèå ïðîöåäóðû äîëæíû áûòü èíòóèòèâíî àëãîðèòìè÷åñêèìè. Ìû óêàæåì îäèí èç âîçìîæíûõ ñïîñîáîâ êîäèðîâêè.
Äëÿ íà÷àëàóêàæåì ñïîñîá êîäèðîâàíèÿ ïîñëåäîâàòåëüíîñòåé íàòóðàëüíûõ ÷èñåë.Îïðåäåëåíèå 3.3.1 Êîäîì ïîñëåäîâàòåëüíîñòè íàòóðàëüíûõ ÷èñåëx0 , . . . , xk−1íàçîâåì íàòóðàëüíîå ÷èñëîxk−1px0 0 +1 · . . . · pk−1+1,êîòîðîå áóäåì îáîçíà÷àòü hx0 , . . . , xk−1 i. Êîäîì ïóñòîé ïîñëåäîâàòåëüíîñòè ïî îïðåäåëåíèþ áóäåì ñ÷èòàòü ÷èñëî 1, ò.å., hi = 1.Ïðèìåð.
h1, 2, 3i = 21+1 · 32+1 · 53+1 = 67500.Î÷åâèäíî, ÷òî äëèíà ïîñëåäîâàòåëüíîñòè x0 , . . . ,xk−1 âû÷èñëÿåòñÿ ïîåå êîäó x = hx0 , . . . ,xk−1 i ñ ïîìîùüþ ðåêóðñèâíîé ôóíêöèèlh (x) = µi (ex (i, x) = 0),62Ãëàâà 3. Ôîðìàëèçàöèè ïîíÿòèÿ àëãîðèòìàà i-ÿ êîîðäèíàòà xi ýòîé ïîñëåäîâàòåëüíîñòè òîæå âû÷èñëÿåòñÿ ñ ïîìîùüþ ðåêóðñèâíîé ôóíêöèè(x)i = ex (i, x)−̇1.Îòíîøåíèå seq (x), âûäåëÿþùåå íîìåðà ïîñëåäîâàòåëüíîñòåé, òàêæå ðåêóðñèâíî. Î÷åâèäíî, ÷òî ÷èñëà, ÿâëÿþùèåñÿ íîìåðàìè ïîñëåäîâàòåëüíîñòè âûäåëÿþòñÿ ñëåäóþùèìè ñâîéñòâîì: åñëè x äåëèòñÿ íà pi , òî îíîäåëèòñÿ è íà âñå pj , j < i. Ýòî ìîæåò áûòü çàïèñàíî â âèäå ñëåäóþùåéýêâèâàëåíòíîñòè:seq (x) ⇔ (x 6= 0) & ∀i < x (div (pi , x) → ∀j < i div (pj , x)).Âèäèìî, çäåñü íåîáõîäèìî îáúÿñíèòü, ïî÷åìó ìû óïîòðåáëÿåì îãðàíè÷åííûé êâàíòîð ∀i < x.
Äåéñòâèòåëüíî, åñëè pi äåëèò x 6= 0, òî i < pi 6x = . . . · pmi · . . ., è äîñòàòî÷íî îãðàíè÷èòüñÿ òîëüêî ðàññìîòðåíèåì i < x.Çàìå÷àíèå 3.3.2 Äëÿ äàëüíåéøåãî âàæíûì áóäåò íåðàâåíñòâî (x)i <x, âåðíîå ïðè x > 0, êîòîðîå ñëåäóåò (ñ ó÷åòîì èçâåñòíîãî íåðàâåíñòâà2x > x, ïðîâåðÿåìîãî ïî èíäóêöèè) èç ñëåäóþùåé öåïî÷êè íåðàâåíñòâ:ex (i,x)(x)i = ex (i, x)−̇1 6 ex (i, x) < 2ex (i,x) 6 pi6 x.Íàì ïîíàäîáèòñÿ òàêæå ñëåäóþùåå òåõíè÷åñêîå óòâåðæäåíèå:Ïðåäëîæåíèå 3.3.3 (Ëåììà î ñîâìåñòíîé ðåêóðñèè) Ïóñòü ôóíêöèè F0 (y, x) è F1 (y, x) îïðåäåëåíû ñõåìîéF0 (0, x̄)= G0 (x̄) F1 (0, x̄)= G1 (x̄) F0 (y + 1, x̄) = H0 (F0 (y, x̄), F1 (y, x̄), y, x̄)F1 (y + 1, x̄) = H1 (F0 (y, x̄), F1 (y, x̄), y, x̄),ïðè÷åì ôóíêöèè Gi (x̄) è Hi (z0 , z1 , y, x̄) ÷àñòè÷íî ðåêóðñèâíû.
Òîãäà èôóíêöèè F0 è F1 ÷àñòè÷íî ðåêóðñèâíû. Åñëè æå Gi (x̄) è Hi (z0 , z1 , y,0 x̄)ðåêóðñèâíû, òî òîãäà è ôóíêöèè F0 è F1 ðåêóðñèâíû.Äîêàçàòåëüñòâî. Äîñòàòî÷íî ðàññìîòðåòü ôóíêöèþF (y, x̄) = hF0 (y, x̄), F1 (y, x̄)i ,äëÿ êîòîðîé ëåãêî âûïèñûâàåòñÿ îïðåäåëåíèå ïî ñõåìå ïðèìèòèâíîé ðåêóðñèè, è ïîëîæèòü F0 (y, x̄) = (F (y, x̄))0 , F1 (y, x̄) = (F (y, x̄))1 . ¤3.4. Êîäèðîâàíèå ìàøèí Ø¼íôèëäà633.4 Êîäèðîâàíèå ìàøèí Ø¼íôèëäàÑåé÷àñ íàì ïðåäñòîèò íå ñîâñåì ïðèÿòíàÿ ðàáîòà ïî êîäèðîâàíèþ íàòóðàëüíûìè ÷èñëàìè ìàøèí, ñîñòîÿíèé ðåãèñòðîâ, âû÷èñëåíèé, à òàêæå ïî äîêàçàòåëüñòâó ðåêóðñèâíîñòè íåêîòîðûõ ôóíêöèé.
Îïðàâäàíèåìãðîìîçäêîñòè ýòîé ðàáîòû ÿâëÿåòñÿ, âèäèìî, òî, ÷òî, âûðàæàÿñü ïðîãðàììèñòñêèì ÿçûêîì, ìû ôàêòè÷åñêè ñåé÷àñ íàïèøåì òðàíñëÿòîð ñÿçûêà ìàøèí Ø¼íôèëäà â ÿçûê ÷àñòè÷íî ðåêóðñèâíûõ ôóíêöèé, à íàïèñàíèå òðàíñëÿòîðîâ, âèäèìî, âñåãäà ÿâëÿëîñü òðóäîåìêèì äåëîì.Ñíà÷àëà îïðåäåëèì êîäû êîìàíä:êîä (INC I) = h0, Iiêîä (DEC I,J) = h1, I, JiÊîäîì ïðîãðàììû: êîìàíäà0···k − 1 : êîìàíäàk−10íàçîâåì ÷èñëîhêîä (êîìàíäà0 ), . . . ,êîä (êîìàíäàk−1 )i .ÎòíîøåíèÿÊîì (x) ⇔ x êîä íåêîòîðîé êîìàíäû⇔ x = h0, (x)1 i ∨ x = h1, (x)1 , (x)2 i èÏðîãð (x) ⇔ x êîä íåêîòîðîé ïðîãðàììû⇔ seq (x) & ∀i < lh (x) Êîì ((x)i )ðåêóðñèâíû. äàëüíåéøåì ìû áóäåì èñïîëüçîâàòü ñâîéñòâî, ÷òî åñëè e êîäïðîãðàììû, è m íîìåð óïîìèíàåìîãî â ïðîãðàììå ðåãèñòðà, òî òîãäàâ ñèëó çàìå÷àíèÿ 3.3.2 ÷èñëî e áîëüøå êîäà ëþáîé êîìàíäû è, ñëåäîâàòåëüíî, áîëüøå m.Ëåììà 3.4.1 Ñóùåñòâóþò ðåêóðñèâíûå ôóíêöèè ct (e, x, n) è rg (e, x, n)òàêèå, ÷òî åñëè x êîä ïîñëåäîâàòåëüíîñòè hx0 , .
. . , xk−1 i, è e êîäïðîãðàììû äëÿ ìàøèíû ؼíôèëäà, òî64Ãëàâà 3. Ôîðìàëèçàöèè ïîíÿòèÿ àëãîðèòìà1. ct (e, x, n) ñîäåðæèìîå ñ÷åò÷èêà êîìàíä ïîñëå n øàãîâ âûïîëíåíèÿ ïðîãðàììû ñ íîìåðîì e, âûïîëíåíèå êîòîðîé íà÷àòî ñ ñîäåðæèìûìè ðåãèñòðîâ 0, x0 , . . . ,xk−1 , 0, . . .
;2. rg (e, x, n) = hr0 , . . . ,re+k i, ãäå êàæäîå ri , i = 0, . . . ,e+k ñîäåðæèìîå iãî ðåãèñòðà ïîñëå n øàãîâ âûïîëíåíèÿ ïðîãðàììû ñ íîìåðîìe, âûïîëíåíèå êîòîðîé íà÷àòî ñ ñîäåðæèìûìè ðåãèñòðîâ0, x0 , . . . ,xk−1 , 0, . . . ;Çàìå÷àíèå. Åñëè e êîä ïðîãðàììû, à x êîä êîíå÷íîé ïîñëåäîâà-òåëüíîñòè hx0 , . . . , xk−1 i, òî ÷èñëî hr0 , . . . ,re+k i = rg (e, x, n), ãäå êàæäîåri åñòü ñîäåðæèìîå iãî ðåãèñòðà ïîñëå èñïîëíåíèÿ n øàãîâ âû÷èñëåíèÿ, íà÷àòîãî ïî ïðîãðàììå ñ íîìåðîì e ñ íà÷àëüíûìè ñîäåðæèìûìèðåãèñòðîâ 0, x0 , .
. . , xk−1 , 0, . . . íàçîâåì êîäîì ñîñòîÿíèÿ ðåãèñòðîâ ïîñëå n øàãîâ âû÷èñëåíèÿ. Íàì äîñòàòî÷íî îòñëåæèâàòü òîëüêî ðåãèñòðûñ íîìåðàìè 0, 1, . . . , e + k , òàê êàê ïî ñäåëàííûì ðàíåå çàìå÷àíèÿì âñåðåãèñòðû, óïîìÿíóòûå â ïðîãðàììå ñ íîìåðîì e, èìåþò íîìåð ìåíüøèé,÷åì e, è ïîýòîìó âñå ñîäåðæèìûå ðåãèñòðîâ ñ íîìåðàìè e+k +1, e+k +2,. . . â õîäå âûïîëíåíèÿ ïðîãðàììû íå èçìåíÿòñÿ è áóäóò âñåãäà ðàâíû 0.Ñåé÷àñ ìû çàïèøåì íåêîòîðîå îïðåäåëåíèå òàêèõ ôóíêöèé â äóõåËåììû î ñîâìåñòíîé ðåêóðñèè 3.3.3, êîòîðîå ïîçâîëèò ñðàçó ñäåëàòü çàêëþ÷åíèå î èõ ðåêóðñèâíîñòè.Ñíà÷àëà çàïèøåì îïðåäåëåíèå ýòèõ ôóíêöèé íåôîðìàëüíî.
Ñíà÷àëàçàïèøåì íåôîðìàëüíî îïðåäåëåíèÿ äëÿ ct (e, x, 0) è rg (e, x, 0).Ñîãëàñíî îïèñàíèþ ïðîöåññà âû÷èñëåíèÿ íà ìàøèíå Ø¼íôèëäà, èìååì(3.1)ct (e, x, 0) = 0.DEÄàëåå, rg (e, x, 0) = 0, (x)0 , . . . , (x)lh (x)−̇1 , 0, 0, . . . , ïðè÷åì ÷èñëî÷ëåíîâ êîíå÷íîé ïîñëåäîâàòåëüíîñòè â ïðàâîé ÷àñòè ðàâíî e + lh (x) + 1,ò.å.,rg (e, x, 0) = µz [seq (z) & lh (z) = e + lh (x) + 1 & (z)0 = 0 &∀j < lh (x) ((z)j+1 = (x)j ) &∀j < lh (z) (j > lh (x) → (z)j = 0)];(3.2)Çíà÷åíèå ct (e, x, n + 1) ðàâíî ñîäåðæèìîìó êîìàíäíîãî ðåãèñòðà ïîñëå èñïîëíåíèÿ êîìàíäû ñ íîìåðîì ct (e, x, n), òî åñòü îíî ðàâíîct (e, x, n) + 1 â ñëó÷àÿõ, êîãäàà) ýòà êîìàíäà èìååò âèä INC I, ëèáî3.4.
Êîäèðîâàíèå ìàøèí Ø¼íôèëäà65á) ýòà êîìàíäà èìååò âèä DEC I,m, è ïðè ýòîì ñîäåðæèìîå I ãîðåãèñòðà ðàâíî 0.m â ñëó÷àå, êîãäà ýòà êîìàíäà èìååò âèä DEC I,m, è ïðè ýòîì ñîäåðæèìîå I ãî ðåãèñòðà áîëüøå 0.×òîáû ïåðåïèñàòü ýòî îïðåäåëåíèå â ÷èñëàõ, çàìåòèì, ÷òî ñîãëàñíî îïðåäåëåíèþ êîäà ïðîãðàììû, êîìàíäà ñ íîìåðîì ct (e, x, n) èìååò êîä (e)ct (e,x,n) .Âñïîìíèì òåïåðü, ÷òî êîä êîìàíäû INC I ðàâåí h0, Ii, à êîä êîìàíäû DECI,m ðàâåí h1, I, mi.
Óñëîâèå, ÷òî êîìàíäàñ íîìåðîìct (e, x, n) èìååò âèä¡¢INCIìîæíîïåðåïèñàòüââèäålh(e)=2. Ïðè ýòîì I ðàâíîct (e,x,n)¡¢(e)ct (e,x,n) 1 . Óñëîâèå æå, ÷òî êîìàíäà ñ íîìåðîì ct (e, x, n) èìååò âèä¡¢DEC I,m ìîæíîïåðåïèñàòüââèäålh(e)= 3. Ïðèct(e,x,n)¡¢¡¢ ýòîì ÷èñëîm ðàâíî (e)ct (e,x,n) 2 , à I îïÿòüòàêè ðàâíî (e)ct (e,x,n) 1 ; ñîäåðæèìîå´ . ÒåïåðüI ãî ðåãèñòðà ðàâíî (rg (e, x, n))I , ò.å., (rg (e, x, n))³(e)ct (e,x,n) 1ìîæíî ïåðåïèñàòü ïðèâåäåííîå âûøå îïðåäåëåíèå äëÿ ct (e, x, n + 1) ââèä墡ct (e, x, n) + 1, håñëè lh ((e)ct (e,x,n) = 2)∨¢¡lh (e)ct (e,x,n) = 3 &ict (e, x, n + 1) =³´ =0(rg(e,x,n))(e)ct (e,x,n)1¢ ¡(e)ct (e,x,n) 2 , â ïðîòèâíîì ñëó÷àå(3.3)Çíà÷åíèå rg (e, x, n+1) ïîëó÷àåòñÿ ñëåäóþùèì îáðàçîì.
Ïóñòü rg (e, x, n) =hr0 , r1 , . . .i, ãäå êàæäîå rj ñîäåðæèìîå j ãî ðåãèñòðà. Åñëè èñïîëíÿåìàÿ êîìàíäà èìååò âèä DEC I,m è ïðè ýòîì ñîäåðæèìîå Iãî ðåãèñòðàðàâíî 0, òî ñîäåðæèìîå ðåãèñòðîâ íå èçìåíèòñÿ, òî åñòü rg (e, x, n + 1) =rg (e, x, n).Åñëè èñïîëíÿåìàÿ êîìàíäà (òî åñòü êîìàíäà ñ íîìåðîì ct (e, x, n))åñòü INC I, òî â ðåçóëüòàòå åå èñïîëíåíèÿ ñîäåðæèìîå Iãî ðåãèñòðà óâåëè÷èòñÿ íà 1, è ëåãêî çàìåòèòü, ÷òî ÷èñëî1+(rI +1)01rg (e, x, n + 1) = hr0 , r1 , . . .
, rI + 1, . . .i = p1+r· p1+r· . . . · pI01ïîëó÷àåòñÿ èç01Irg (e, x, n) = hr0 , r1 , . . . , rI , . . .i = p1+r· p1+r· . . . · p1+r· ...01Ióìíîæåíèåì íà pI , òî åñòürg (e, x, n + 1) = pI · rg (e, x, n).· ...66Ãëàâà 3. Ôîðìàëèçàöèè ïîíÿòèÿ àëãîðèòìà¡¢Êàê è ðàíüøå íàõîäèì, ÷òî I = (e)ct (e,x,n) 1 , òî åñòü´ · rg (e, x, n).rg (e, x, n + 1) = p³(e)ct (e,x,n) 1Åñëè èñïîëíÿåìàÿ êîìàíäà èìååò âèä DEC I,m è ïðè ýòîì ñîäåðæèìîå Iãî ðåãèñòðà áîëüøå 0, òî, ïðèìåíÿÿ àíàëîãè÷íûå ðàññóæäåíèÿ,ïîëó÷èì, ÷òî ñîäåðæèìîå ðåãèñòðîâ áóäåò ðàâíî·¸rg (e, x, n) rg (e, x, n)rg (e, x, n + 1) == ³.´pIp (e)ct (e,x,n) 1Èòàê, èìååì:rg (e, x, n), ³´ × rg (e, x, n),p (e)rg (e, x, n+1) =ct(e,x,n)1 rg (e,x,n) ¶ , pµ(e)ct (e,x,n) 1¡¢åñëè lh (e)ct (e,x,n) = 3 &´ =0(rg (e, x, n))³(e)ct (e,x,n)¢ 1¡åñëè lh (e)ct (e,x,n) = 2â îñòàëüíûõ ñëó÷àÿõ.(3.4)Èç ðàâåíñòâ (3.1), (3.2), (3.3) è (3.4) ñîñòàâëÿåòñÿ îïðåäåëåíèå ôóíêöèé ct è rg êàê â ëåììå 3.3.3 î ñîâìåñòíîé ðåêóðñèè, îòêóäà ñëåäóåòðåêóðñèâíîñòü ýòèõ ôóíêöèé.
Ëåììà äîêàçàíà.Îïðåäåëåíèå 3.4.2 Êîäîì âû÷èñëåíèÿ íà ìàøèíå ñ íîìåðîì e ñ íà-÷àëüíûìè ñîñòîÿíèÿìè ðåãèñòðîâ 0, x1 , . . . ,xk , 0, 0, . . . íàçîâåì êîä ïîñëåäîâàòåëüíîñòèhrg (e, x, 0), . . . ,rg (e, x, m)i ,ãäå x = hx1 , . . . ,xk i, ñîñòîÿùåé èç âñåõ ïîñëåäîâàòåëüíî çàïèñàííûõ êîäîâ ñîñòîÿíèé ðåãèñòðîâ ïî õîäó âû÷èñëåíèÿ, ïðè÷åì â ïðåäïîëîæåíèè,÷òî ïîñëå m øàãîâ âû÷èñëåíèÿ ïðîèçîøëà îñòàíîâêà ìàøèíû.Åñëè y êîä âû÷èñëåíèÿ, òî ðåçóëüòàò ýòîãî âû÷èñëåíèÿ áóäåò ðàâåíñîäåðæèìîìó íóëåâîãî ðåãèñòðà ïîñëå èñïîëíåíèÿ ïîñëåäíåãî øàãà, òîåñòü îí âû÷èñëÿåòñÿ ïî y ðåêóðñèâíîé ôóíêöèåé U (y) = ((y)lh (y)−̇1 )0 .Çàôèêñèðóåì äëÿ äàëüíåéøåãî ýòó ôóíêöèþ U .3.4. Êîäèðîâàíèå ìàøèí Ø¼íôèëäà67Òåïåðü äîêàæåì ðåêóðñèâíîñòü îòíîøåíèÿstop (e, x, n) ⇔ x êîä ïîñëåäîâàòåëüíîñòè x1 , .
. . , xk èâû÷èñëåíèå íà ìàøèíå ñ íîìåðîì eïðè íà÷àëüíûõ çíà÷åíèÿõ ðåãèñòðîâ0, x1 , . . . ,xlh (x) , 0, . . . îñòàíàâëèâàåòñÿïîñëå n-ãî øàãà.Âûïîëíåíèå stop (e, x, n) ýêâèâàëåíòíî òîìó, ÷òî ñèòóàöèÿ, êîãäà ìàøèíà íå íàéäåò êîìàíäó äëÿ èñïîëíåíèÿ, âîçíèêàåò âïåðâûå ïîñëå n-ãîøàãà. Ïîýòîìó stop (e, x, n) ýêâèâàëåíòíîct (e, x, n) > lh (e) & (∀j < n ct (e, x, j) < lh (e)),îòêóäà è ñëåäóåò åãî ðåêóðñèâíîñòü.Íàêîíåö, îïðåäåëèì ñàìîå âàæíîå äëÿ íàñ îòíîøåíèåTk (e, x1 , . . . ,xk , y) ⇔ e êîä ïðîãðàììû, à y êîäâû÷èñëåíèÿ ïî ýòîé ïðîãðàììå ñíà÷àëüíûìè çíà÷åíèÿìè ðåãèñòðîâ0, x1 , .