Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Машины произвольного доступа и вычислимые функции




 

Опишем другую алгоритмическую модель, представляющую собой идеализированную ЭВМ и предложенную в 70-х годах XX века с целью моделирования реальных вычислительных машин и анализа сложности вычислений.

Машина произвольного доступа (МПД) состоит из бесконечного числа регистров R 1, R 2, …, в каждом из которых может быть записано натуральное число из . Пусть есть число, записанное в регистре , . Состоянием машины или конфигурацией назовем последовательность чисел . Функционирование машины заключается в изменении конфигураций путем выполнения команд в порядке их написания.

Машина имеет следующие типы команд.

Команды обнуления. Для всякого имеется команда . Действие команды заключается в замене содержимого регистра на 0. Содержимое других регистров не меняется. Обозначение действия

:

:= 0.

Команды прибавления единицы. Для всякого имеется команда . Действие команды заключается в увеличении содержимого регистра на 1. Содержимое других регистров не меняется. Обозначение действия :

:= + 1.

Команды переадресации. Для всех имеется команда . Действие команды заключается в замене содержимого регистра числом — хранящимся в регистре . Содержимое других регистров не меняется (включая и ). Обозначение действия :

:= или à .

Команды условного перехода. Для всяких имеется команда . Действие этой команды заключается в:

сравнении содержимого регистров и , затем:

а) если = , то МПД переходит к выполнению команды с номером (идентификатором) q в списке команд;

b) если ¹ , то МПД переходит к выполнению следующей команды в списке команд.

Конечная, упорядоченная последовательность команд данных типов составляет программу МПД.

Пусть зафиксирована начальная конфигурация чисел и программа . Тогда однозначно определена последовательность конфигураций , где есть конфигурация, полученная из конфигурации применением команды . Пусть на некотором шаге выполнена команда и получена конфигурация . Тогда, если не есть команда условного перехода, то следующая конфигурация есть конфигурация, полученная из применением команды . Если есть команда условного перехода, т.е. It = J (m, n, q), то получается из применением команды , если = в конфигурации и команды , если ¹ . Последовательность конфигураций будет обозначаться также P (a 1, a 2, …) или и называться вычислением.

Вычисление (работа машины) останавливается, если:

выполнена последняя команда, т.е. t = s и не есть команда условного перехода;

если It = J (m, n, q), = в конфигурации и q > s;

если It = J (m, n, q), ¹ в конфигурации и t = s.

Если вычисление остановилось, то последовательность содержимого регистров называется заключительной конфигурацией. Если последовательность конечна, то говорим, что МПД применима к начальной конфигурации и пишем P (a 1, a 2, …)¯ или . В противном случае говорим, что МПД неприменима к и пишем P (a 1, a 2, …)­ или .

Будем рассматривать только такие начальные конфигурации, в которых имеется конечное число элементов, отличных от нуля. Будем писать вместо для таких конфигураций. Ясно, что любого t конфигурация будет содержать конечное число отличных от нуля элементов, если этим свойством обладает конфигурация .

Теперь условимся, что понимать под вычислением функций на МПД. Рассмотрим частичные функции f типа . Пусть — фиксированная программа. Пусть . Будем говорить, что вычисление дает результат b, если и в заключительной конфигурации . Обозначение: . Будем говорить, что программа Р вычисляет функцию f, если для любых выполнимо

.

Назовем функцию f вычислимой (на МПД), если существует программа Р, которая вычисляет f. Класс вычислимых (на МПД) функций обозначим Е.

Заметим, что любая программа Р для любого n ³ 1 на начальных конфигурациях вида определяет n -местную частичную функцию , такую, что для всех

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

Распространим понятие алгоритмической вычислимости на предикаты, заданные на множестве . Пусть — произвольный такой предикат. Определим характеристическую функцию предиката p соотношением:

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

Это понятие соответствует вопросу о наличии алгоритма для проверки свойства, определяемого предикатом.

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

Пусть D — некоторое множество, и — функция от n переменных. Зафиксируем эффективное кодирование множества D натуральными числами , т.е. зададим инъективную функцию . Пусть — ее обратная. Тогда для функции можно однозначно определить функцию , где или

,

для любых .

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

Пример 11.1. Кодирование множества целых чисел Z. Пусть

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

Рассмотрим примеры вычислимых функций (на МПД).

а) Функция f (x, y) = x + y. Эта функция может быть вычислена следующей программой при начальной конфигурации (x, y, 0, 0, …). P = I 1 I 2 I 3 I 4, где I 1 = J (3, 2, 5), I 2 = S (1), I 3 = S (3), I 4 = J (1, 1, 1). Данная программа прибавляет 1 к x до тех пор, пока r 3 не станет равным y.

b) Функция

Эта функция может быть вычислена программой Р = I 1 I 2 I 3 I 4 I 5 I 6, где I 1 = J (1, 2, 6), I 2 = S (3), I 3 = S (2), I 4 = S (2), I 5 = J (1, 1, 1), I 6 = T (3, 1).

Данная программа прибавляет 1 к r 3 и 2 к r 2 до тех пор, пока r 2 не станет равным x, тогда r 3 даст результат.

Поскольку доказательства вычислимости конкретных функций связаны с предъявлением конкретных программ, их вычисляющих, то следует ввести некоторые соглашения о составлении и записи программ. Аналогично композиции машин Тьюринга можно ввести композицию программ МПД.

Пусть . Будем говорить, что Р имеет стандартный вид, если для всякой команды условного перехода J (m, n, q) выполнимо . Две программы Р и назовем эквивалентными, если они определяют одни и те же n -местные функции, т.е. для всех .

Утверждение 11.2. Для всякой программы Р существует эквивалентная ей программа стандартного вида .

Доказательство. Пусть . Тогда определим где для любого

.

Ясно, что удовлетворяет нужным требованиям, что требовалось доказать.

Пусть теперь даны две программы P и Q стандартного вида. Образуем программу (где , ) с учетом нумерации, т.е. команды J (m, n, q) заменены на J (m, n, s + q). Тогда результат действия программы PQ совпадает с результатом вычисления по программе P, к которому применена программа Q.

Заметим, что для всякой программы Р существует минимальное натуральное число r (P) такое, что для всех , входящих в команды из Р, т.е. S (n), Z (n), T (m, n), J (m, n, q) выполнено m, n < r (P). Это число иногда называют ширина, ранг программы Р.

Смысл числа r (P) состоит в том, что регистры с t > r (P) в ходе вычисления по программе Р не будут менять свое содержание и не будут влиять на содержимое регистров , поэтому их можно использовать для других вычислений.

Заметим также, что можно организовывать вычисление, используя программу Р, в случае, когда входы программы находятся в регистрах , а результат заносится в . Далее для простоты положим, что регистры отличны от .

Пусть Р вычисляет f в стандартном понимании вычислимости. Тогда программа

будет вычислять и результат запишет в . Данную программу обозначим .

Пример 11.3. Функция f (x, y) = xy — вычислимая функция. Пусть Н — программа, вычисляющая функцию x + y (пример а)). Тогда вычисляется программой

Программа Р вычисляет xy по правилу

Как следует из изложенного, язык программ МПД содержит основные процедуры языков программирования и позволяет устраивать композицию (соединение) программ и использовать программы в качестве подпрограмм других программ. Это является основанием для предположения о том, что введенный класс вычислимых функций в точности отвечает классу алгоритмически вычислимых функций. Данное предположение называется тезисом Черча (для МПД). Так же как и тезис Тьюринга, данный тезис доказать нельзя, однако принятие его позволяет истолковывать утверждения о несуществовании МПД для решения конкретных задач как утверждения о несуществовании алгоритмов вообще.

 


 

 




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 974; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.