- •1.Перечислите и поясните основные этапы полного построения алгоритмов.
- •6. Программная реализация алгоритма.
- •4.Сформулируйте основные определения абстрактного алфавита (алфавит, слово алфавита, расширение алфавита, алфавитный оператор).
- •7.Дайте определение алгоритма, его особенности.
- •13.Свойства и виды алгоритмов и соотношение между ними.
- •14.Интерпретации и модели.
- •15.Семантическая и формальная непротиворечивость.
- •1) «Условие – действие», т.Е. Если построенные объекты удовлетворяют некоторым условиям, то для построений нового объекта нужно выполнить такое-то действие;
- •Первая теорема о неполноте
- •22. Интуитивное понятие алгоритма. Требования к алгоритмам.
- •23. Формализация понятия алгоритма и универсальные алгоритмические модели.
- •24.Машина Тьюринга - основные определения. Понятие вычислимости на машине Тьюринга.
- •25.Операции над машинами Тьюринга. Универсальная машина Тьюринга.
- •26.Понятие алгоритмической неразрешимости. Теорема Райса.
- •27.Проблема остановки - формулировка теоремы и ее доказательство.
- •28.Понятие рекурсии. Примитивно-рекурсивные функции. Примеры.
- •29.Неограниченный оператор минимизации. Примеры. Определение частично-рекурсивной функции.
- •30.Разрешимые и перечислимые множества и предикаты.
- •31.Конечные автоматы. Основные определения. Способы задания автоматов.
- •32.Алгоритмические возможности: что могут и что не могут вычислять автоматы. Примеры.
- •33.Эквивалентность автоматов. Алгоритм минимизации автоматов.
- •34.Автоматы и логические схемы. Программная реализация автоматов.
- •35.Интуитивное определение понятия «алгоритм». Свойства алгоритма.
- •37. Приметивно рекурсивные функции
- •Глава 4. Алгоритмы
- •40 Частично рекурсивные функции
- •41 Рекурсивные функции
- •Проблемы, касающиеся абстрактных машин
- •Другие проблемы
- •Проблемы, алгоритмическая неразрешимость которых не доказана
- •42 Формулировка и доказательство критерия Поста
- •Описание
- •Примеры Пример 1
- •Пример 2
- •Ветвление (условный оператор)
- •Повторение (цикл)
- •Устройство машины Тьюринга
- •Проблемы, касающиеся абстрактных машин
- •Другие проблемы
- •Проблемы, алгоритмическая неразрешимость которых не доказана
- •48) Машина Поста
- •Принцип работы
- •Устройство машины Тьюринга
- •Описание машины Тьюринга
- •Полнота по Тьюрингу
- •Варианты машины Тьюринга
- •Машина Тьюринга, работающая на полубесконечной ленте
Другие проблемы
Проблема разрешения (Entscheidungsproblem)
Выводимость формулы в арифметике Пеано
Проблема соответствий Поста (англ.)
Вычисление колмогоровской сложности произвольной строки
Идеальный архиватор, создающий для любого входного файла программу наименьшего возможного размера, печатающую этот файл [3]
Идеальный оптимизирующий по размеру компилятор [4]
Десятая проблема Гильберта
Определить, можно ли замостить плоскость данным набором плиток Ванга (англ.)
Определить, можно ли замостить плоскость данным набором полимино
Проблема унификации (англ.) второго и высшего порядков
Проблема вывода типов в модели Хиндли — Милнера с rank-N полиморфизмом
Проблемы, алгоритмическая неразрешимость которых не доказана
Для некоторых задач неизвестен алгоритм, решающий их, и по своей природе они похожи на известные алгоритмически неразрешимые задачи. Вопросы об алгоритмической разрешимости таких задач являются открытыми проблемами. Вот некоторые из таких задач:
Аналог десятой проблемы Гильберта для уравнений степени 3
Аналог десятой проблемы Гильберта для уравнений в рациональных числах
Проблема умирающей матрицы для матриц порядка 2
48) Машина Поста
Машина Поста (МП) — абстрактная вычислительная машина, предложенная Эмилем Леоном Постом (Emil L. Post), которая отличается от машины Тьюринга большей простотой. Обе машины «эквивалентны» и были созданы для уточнения понятия «алгоритм».
Принцип работы
Машина Поста состоит из каретки (или считывающей и записывающей головки) и разбитой на секции бесконечной в обе стороны ленты (см. пример ниже). Каждая секция ленты может быть либо пустой — 0, либо помеченной меткой 1. За один шаг каретка может сдвинуться на одну позицию влево или вправо, считать, поставить или стереть символ в том месте, где она стоит. Работа машины Поста определяется программой, состоящей из конечного числа строк. Для работы машины нужно задать программу и ее начальное состояние (т. е. состояние ленты и позицию каретки). Кареткой управляет программа, состоящая из строк команд. Каждая команда имеет следующий синтаксис:
i K j,
где i - номер команды, K – действие каретки, j - номер следующей команды (отсылка).
Всего для машины Поста существует шесть типов команд:
V j - поставить метку, перейти к j-й строке программы.
X j - стереть метку, перейти к j-й строке программы.
<- j - сдвинуться влево, перейти к j-й строке программы.
-> j - сдвинуться вправо, перейти к j-й строке программы.
? j1; j2 - если в ячейке нет метки, то перейти к j1-й строке программы, иначе перейти к j2-й строке программы.
! – конец программы (стоп).
У команды «стоп» отсылки нет. После запуска возможны варианты:
работа может закончиться невыполнимой командой (стирание несуществующей метки или запись в помеченное поле);
работа может закончиться командой Stop;
работа никогда не закончится.
Пример: вычитание натуральных чисел P — Q
Будем представлять натуральное (целое неотрицательное) число P набором из P+1 единиц и разделять числа нулём. Исходное положение каретки помечено символом «v»
v
00111110111000
P Q
Сложение двух чисел тривиально — достаточно поставить 1 между ними и стереть крайний правый символ у Q. Программа вычитания состоит из последовательного затирания крайних левых меток у Q и правых у P:
1. 0 - стираем левый символ у Q
2. →
3. ? 5, 4
4. Stop - стоп если затерли Q=0
5. ←
6. ? 7, 5 - цикл поиска P
7. 0 - стираем правый символ у P
8. →
9. ? 1, 8 - ищем Q
Отметим, что номер команды перехода не указывается, если переход происходит на следующую по порядку строку (для наглядности текста). В 6-ой строке возможно зацикливание, если Q > P (вы можете добавить проверку сами)
49
Машины с неограниченными регистрами (МНР)
Выбранный нами гипотетический компьютер называется машиной с неограниченными регистрами (МНР) [Катленд,1983,16-29]; он является легким видоизменением машин, впервые рассмотренных Дж.Шепердсоном и Х.Стерджисом (1963) и получивших название РАМ (равнодоступная адресная машина) и РАСП (равнодоступная адресная машина с хранимой программой). Эти модели в большей степени, чем машина Тьюринга отражают структуру современных вычислительных устройств.
МНР содержит бесконечное число регистров, обозначаемых через R1,R2,R3,..., каждый из которых в любой момент времени содержит некоторое натуральное число, причём число, содержащееся в Rn, будем обозначать через rn. Это можно изобразить следующим образом:
МНР может изменять содержимое регистров с помощью некоторой команды. Каждая команда может быть одного из следующих четырех видов: команда обнуления, команда прибавления единицы, команда переадресации и команда условного перехода (см.таблицу 1).
Таблица 1. Команды МНР и их операционная семантика
Арифметическими командами назовём команды обнуления, прибавления единицы и переадресации, причём команды Z(n) и S(n) соответствуют простейшим операциям над натуральными числами в формальной арифметике.
Программа МНР - это конечная последовательность команд. Начальной конфигурацией называется последовательность a1,a2,...
натуральных чисел, содержащихся в регистрах R1,R2,....
Чтобы МНР приступила к вычислениям (работе), она должна быть снабжена программой P и начальной конфигурацией.
Пусть P«(I1,I2,...Is), где I1,I2,...Is - последовательность команд. Вначале МНР выполняет команду I1.
Определим индуктивно понятие "следующая команда в вычислении".
Определение.
(1) I1 - следующая команда в вычислении.
(2) Если Ik (k=1,2,...,s-1) не является командой условного
перехода, то команда Ik+1 является следующей командой в вычислении.
(3) Если Ik (k=1,2,...,s-1) является командой J(m,n,q), а rm и rn - текущее содержимое регистров Rm и Rn соответственно, то следующей командой в вычислении является команда Iq, q=1,2,...,s, если rm=rn, и команда Ik+1 - в противном случае.
(4) Если Is является командой J(m,n,q), а rm и rn - текущее содержимое регистров Rm и Rn соответственно, то следующей командой в вычислении является команда Iq, если rm=rn и q£s.
(5) Никаких других следующих команд в вычислении нет.
Определение.
Будем говорить, что следующая команда отсутствует, если:
(1) Is является арифметической командой;
(2) Is является командой J(m,n,q), причём rm=rn и q>s;
(3) Is является командой J(m,n,q), причём rm¹rn. В этом случае говорят, что вычисление остановилось после выполнения команды Is, а заключительной конфигурацией будем называть последовательность r1,r2,r3,... содержимых регистров на этом шаге.
Определение.
Будем говорить, что вычисление останавливается, если следующая команда отсутствует.
МНР работает, пока вычисление не остановится.
Предложение.
Для каждой команды переадресации T(m,n) существует программа, не содержащая команд переадресации, которая на всякой конфигурации МНР дает тот же результат, что и T(m,n).
Доказательство. Упражняйтесь!
Таким образом, команда переадресации в определении МНР является избыточной; тем не менее, представляется естественным и удобным иметь такие команды, т.к. они облегчают построение программ.
Замечание.
Сравните МНР с машиной с регистрами общего назначения (см.[Уокерли,1984,с.184-192]
Маши́на Тью́ринга (МТ) — абстрактный исполнитель (абстрактная вычислительная машина). Была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма.
Машина Тьюринга является расширением конечного автомата и, согласно тезису Чёрча — Тьюринга, способна имитировать все другие исполнители (с помощью задания правил перехода), каким-либо образом реализующие процесс пошагового вычисления, в котором каждый шаг вычисления достаточно элементарен
|