Сделай Сам Свою Работу на 5

Уточнение понятия алгоритма

Машина с неограниченными регистрами является исполнителем, представляющим собой простой "идеализированный компьютер". Идеализация состоит в том, что каждый отдельный реальный компьютер ограничен как величиной чисел, которые поступают на вход, так и размером памяти (необходимой для запоминания промежуточных результатов), МНР лишена этих ограничений. Машина с неограниченными регистрами имеет неограниченно большую память, ячейки которой будем называть регистрами и обозначать R1, R2, R3,…. Каждый регистр в любой момент времени содержит неотрицательное целое число.

...
...

 

 

Рис. 3.1. Регистры МНР

При этом только конечное множество регистров содержит числа, отличные от нуля. Все остальные регистры заполнены нулями. Это допущение предполагает, что каждый алгоритм использует только конечный объем памяти.

В список предписаний МНР входит четыре команды: команда обнуления Z(n); команда прибавления единицы S(n); команда переадресации T(m, n) и команда условного переходам J(m, n, q). Команды обнуления, прибавления единицы и переадресации называются арифметическими.

Обозначение команды Действие, производимое МНР по данной команде
Z(n) Rn: = 0
S(n) Rn: = Rn + 1
T(m, n) Rn: = Rm
J(m, n, q) Если Rm = Rn, то перейти к вычислению команды алгоритма с номером q.

Рис. 3.2. Список предписаний МНР

Алгоритмом называется конечная непустая последовательность команд из списка предписаний МНР, начинающаяся с команды с номером 1.

Производя вычисления по данному алгоритму, МНР изменяет содержимое регистров памяти в точном соответствии с командами алгоритма. Исходное состояние памяти, то есть последовательность чисел в регистрах R1, R2, R3,…. перед началом вычислений, называется начальной конфигурацией.

Предположим, что некоторый алгоритм P состоит из последовательности команд I1, I2, ..., Is. МНР начинает вычисление с команды I1, затем выполняются команды I2, I3 и т. д. до тех пор, пока не встретится команда вида J(m, n, q). В этом случае МНР переходит к выполнению команды, предписанной J(m, n, q) и текущим содержанием регистров Rm и Rn.



МНР выполняет алгоритм P: I1, I2, ..., Is до тех пор, пока это возможно. Вычисление останавливается тогда и только тогда, когда нет следующей команды, то есть когда МНР только что выполнила команду Ik и следующая команда в вычислении есть Iv, где v > s. Это может произойти одним из способов:

I) если Ik = Is (выполнена последняя команда в P) и Ik - арифметическая команда;

2) если Ik = J(m, n, q), Rm = Rn и q > s.

3) если Ik = J(m, n, q), Rm Rn и q = s.

В этом случае будем говорить, что вычисление остановилось после выполнения команды Ik, и заключительная конфигурации есть последовательность r1, r2, r3, ... содержимого регистров на этом шаге.

Результатом применения алгоритма к некоторой начальной конфигурации будем считать число r1 из регистра R1 заключительной конфигурации.

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

Пример 3.1. Рассмотрим алгоритм P1

I1 J(1, 2, 6)
I2 S(2)
I3 S(3)
I4 J(1, 2, 6)
I5 J(1, 1, 2)
I6 T(3, 1)

Применим алгоритм к следующей начальной конфигурации:

R1 R2 R3 R4 R5 ...
5 3 0 0 0 ...

Рис. 3.3. Начальная конфигурация

Ход вычисления на МНР по алгоритму P1 с начальной конфигурацией, изображенной на рисунке 3.3, можно представить, записывая последовательно сверху вниз конфигурации машины вместе со следующей командой, к которой она переходит на данном шаге.

R1 R2 R3 R4 R5 ...   Следующая команда Комментарий
5 3 0 0 0 ...   I1  
5 3 0 0 0 ...   I2 (так как )
5 4 0 0 0 ...   I3  
5 4 1 0 0 ...   I4  
5 4 1 0 0 ...   I5 (так как )
5 4 1 0 0 ...   I2 (так как )
5 5 1 0 0 ...   I3  
5 5 2 0 0 ...   I4  
5 5 2 0 0 ...   I6 (так как R1 = R2)
2 5 2 0 0 ...   I7  

Рис. 3.4. Вычисление по алгоритму P1

 

Определение 3.1. Пусть f - функция от n неотрицательных целыхпеременных со значениями во множестве Z0 неотрицательных целых чисел(функция ). Функция f называется вычислимой на МНР (или МНР-вычислимой), если существует такой алгоритм P, что:

1) вычисление P(a1, a2, ..., an) останавливается тогда и только тогда, когда (a1, a2, ..., an) принадлежит области определения f;

2) если (a1, a2, ..., an) принадлежит области определения f; то в заключительной конфигурации в регистре R1 находится целое число b такое, что f(a1, a2, ..., an) = b.

С этого момента под термином вычислимое будем подразумевать МНР-вычислимое.

Рассмотрим теперь несколько простых примеров вычислимых функций.

Пример 3.2. Докажите МНР-вычислимость функции x + y.

Решение. Получим x + y, прибавляя y раз 1 к числу x. Начальной конфигурацией алгоритма служит x, y, 0, 0, 0, .... Типичной конфигурацией в процессе вычисления является

R1 R2 R3 R4 R5 ...
x + k y k 0 0 ...

Определим алгоритм следующим образом:

I1 J(3, 2, 5)
I2 S(1)
I3 S(3)
I4 J(1, 1, 1)

Заданный алгоритм вычисляет функцию x + y.

Пример 3.3. Докажите МНР-вычислимость функции

Решение. Составим алгоритм для начальной конфигурации x, 0, 0, ... . Типичной конфигурацией в процессе вычисления является:

R1 R2 R3 R4 R5 ...
x k k + 1 0 0 ...

Следующий алгоритм МНР - вычисляет функцию.

I1 J(1, 2, 6)
I2 S(2)
I3 J(1, 2, 6)
I4 S(3)
I5 J(1, 1, 2)
I6 T(3, 1)

 

Вопросы для контроля:



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.