6.1 Новая модель алгоритма вычислений.
Новая модель алгоритма вычислений представляет собой машину с неограниченными регистрами (МНР).
Определение. МНР – машина с бесконечной лентой ячеек, которые пронумерованы от 1 до ∞, причем в каждой ячейке содержится некоторое натуральное число.
Машина работает по программе, написанной на языке МНР. Язык МНР состоит из команд 4 типов
Тип | Команда | Действие МНР |
Обнуление | Z(n) | Xn=0,обнуление n-ой ячейки |
Прибавление 1 | S(n) | Inc(xn) |
Переадресация | T(m,n) | xn:=xm |
Условный переход | J(m,n,q) | If (xn=xm) then goto q?где q – номер строки программы |
В программе на каждой строке находится по одной программе.
Теорема 6.1 Все что можно вычислить, можно вычислить на МНР.
Доказательство. Научимся моделировать на МНР работу машины Тьюринга ( а все что можно вычислить – можно вычислить на машине Тьюринга(тезис Черча)).
Теорема доказана.
Замечание о трудоемкости вычисления на МНР.
С одной стороны на МНР более быстрый доступ к памяти по сравнению с МТ( при работе на МТ мы за один шаг смещаемся только в соседнюю ячейку, а при работе на МНР за один шаг можем переместиться в любую), другой стороны, на МНР значение переменной за одно действие изменяется всего на 1, так что некоторые программы будут быстрее выполнятся на машине Тьюринга, некоторые на МНР.
В данном случае нас интересует не трудоемкость, а только то, разрешима ли данная задача или нет, а классы разрешимых задач у нас совпадают.
Пример. Программа сложения двух чисел:
Вход:
1 2 3 4 5
X | Y | * | * | * | *… |
Выход:
1 2 3 4
* | * | X+Y | * | *… |
Рисунок 6.1 Иллюстрация работы программы
Программа
1: T(1,3)
2: Z(4)
3: S(3)
4: S(4)
5: J(2,4,7)
6: J(1,1,3) – фактический оператор безусловного перехода
7: -------- - пустой оператор (выход), т. е . любой оператор, ничего не меняющий в третьей ячейке
- Основные понятия. Справочный материал
- Основные понятия
- 1.2. Справочный материал. Сравнение скорости роста основных функций
- 2 Новые быстрые версии старых алгоритмов
- 2.1. Сортировки массивов
- 2.1.1 Метод прямого выбора (SelectSort)
- 2.1.2 Быстрая сортировка методом двоичных вставок (MergeSort)
- 2.2. Преобразование Фурье (бпф)
- 2.2.1. Дискретное преобразование Фурье
- 2.2.2. Полубыстрое преобразование Фурье (ппф)
- 2.2.3. Быстрое преобразование Фурье (бпф)
- 2.3. Быстрая свертка
- 2.3.1. Понятие свертки
- 2.3.2. Обычный и быстрый алгоритм свертки
- 2.4. Быстрое умножение
- 2.4.1. Быстрое умножение чисел
- 1 Суммирование
- 4 Произведения чисел вдвое меньшей
- 2.4.2. Быстрое умножение матриц
- 2.4.3. Очень быстрое умножение числе (алгоритм Шенхаге – Штрассена)
- 3. Задачи на графах
- 3.1. Справочный материал
- 3.2. Поиск минимального остова в связном неориентированном взвешенном графе
- 3.3. Нахождение кратчайшего расстояния
- 3.3.1. Алгоритм Форда – Беллмана
- 3.3.2. Алгоритм Дейкстры
- 3.4. Нахождение диаметра, радиуса и центра графа
- 3.5. Задача об изоморфизме графов
- 3.6. Задача коммивояжера. Её решение методом ветвей и границ.
- Задачи динамического программирования
- Задачи динамического программирования. Её решение методом динамического программирования.
- 4.2. Задача об оптимальном наборе самолетом скорости и высоты
- 4.3. Задача грабителя (задача о рюкзаке)
- 4.4. Задача о перемножении матриц
- 5 Классы p и np
- 5.1 Машина Тьюринга
- 5.2 Недетерменированные машины Тьюринга(ндмт)
- 5.3 Сводимость. Np-полнота.
- 5.4 Иерархия по сложности. Труднорешаемые задачи.
- Классы сложности.
- 6 Неразрешимые задачи
- 6.1 Новая модель алгоритма вычислений.
- 6.2 Нумерация программ
- 6.3 Неразрешимые проблемы
- 6.4 Теорема об ускорении
- Лабораторные работы
- Расчетно-графическое задание
- Ответы к домашним заданиям