-
Интуитивное понятие алгоритма. Свойства алгоритмов.
Алгоритм это-определенная последовательность действий для решения определенной проблемы.
Такими свойствами являются:
• Дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
• Определенность – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
• Результативность (конечность) – алгоритм должен приводить к решению задачи за конечное число шагов.
• Массовость – алгоритм решения задачи разрабатывается в общем виде, то есть, он должен быть применим для некоторого класса задач, различающихся только исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
-
Машина Поста. Описание, примеры задач. Формулировка l.
Маши́на По́ста (МП) — абстрактная вычислительная машина, предложенная Эмилем Леоном Постом (англ. Emil Leon Post), которая отличается от машины Тьюрингабольшей простотой. Обе машины алгоритмически «эквивалентны» и были придуманы для уточнения понятия «алгоритм». В 1936 г. американский математик Эмиль Пост в статье описал систему, обладающую алгоритмической простотой и способную определять, является ли та или иная задача алгоритмически разрешимой. Если задача имеет алгоритмическое решение, то она представима также в форме последовательности команд для машины Поста.
Сложение двух чисел тривиально — достаточно поставить 1 между ними и стереть два крайних правых «1» у Q. Программа вычитания состоит из последовательного изменения крайних левых «1» у последовательности «1» в изображении Q и правых «1» у последовательности «1» в изображении P. В начале программы каретка установлена на крайнюю левую «1» у Q:
1. ← - шаг влево
2. ? 1, 3 - если в ячейке пусто, перейти к 1 шагу, если нет, к 3
3. 0 - удалить метку
4. → - шаг вправо
5. ? 4, 6 - если в ячейке пусто, перейти к 4 шагу, если нет, к 6
6. 0 - удалить метку
7. → - шаг вправо
8. ? 9, 1 - если в ячейке пусто, перейти к 9 шагу, если нет, к 1
9. ! - конец
Отметим, что номер команды перехода не указывается, если переход происходит на следующую по порядку строку (для наглядности текста). В 6-й строке возможно зацикливание, если Q > P.
-
Определение машины Тьюринга. Применение машин Тьюринга к словам.
Маши́на Тью́ринга (МТ) — aбстрактный исполнитель (абстрактная вычислительная машина). Была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма.
Машина Тьюринга является расширением конечного автомата и, согласно тезису Чёрча — Тьюринга, способна имитировать все исполнители (с помощью задания правил перехода), каким-либо образом реализующие процесс пошагового вычисления, в котором каждый шаг вычисления достаточно элементарен.
Машина Тьюринга обладает внешним алфавитом А = {a0, a1, …, an}, символы которого записываются на ленту машины, и алфавитом внутренних состояний Q = {q0, q1, …, qm}, где q1 – начальное состояние, q0 – заключительное. Работа машины определяется программой (функциональной схемой). Программа состоит из команд. Каждая команда T(i, j) (i = 1, 2, …, m; j = 0, 1, …, n) представляет собой выражение одного из следующих видов: ; ; , где 0 ≤ k ≤ m; 0 ≤ l ≤ n, С – машина продолжает обозревать ту же ячейку, П – машина сдвигается на клетку вправо, Л – на клетку влево. Синтез машин Тьюринга является достаточно сложной задачей, требующей определенного уровня развития алгоритмического мышления. Машина Тьюринга работает со словами своего внешнего алфавита. Пусть ^ А = {0, 1} (здесь 0 – символ пустой ячейки). Полезно ввести следующие обозначения. Для натурального х обозначаем: , . Приведем программы следующих машин Тьюринга: «левый сдвиг» и «правый сдвиг» . Первая из начального стандартного положения перерабатывает слово 01x0 в то же самое слово и останавливается, обозревая самую левую ячейку с нулем. Вторая машина из начального состояния, в котором обозревается левая ячейка с нулем, 01x0 перерабатывает в то же самое слово и останавливается, обозревая самую правую ячейку с нулем.