Upload
nikolay-grebenshikov
View
3.305
Download
1
Embed Size (px)
Citation preview
Хакасский государственный университет им. Н.Ф. Катанова
Теория вычислительных процессов
Лекция: Схемы программ:
алгоритмические проблемы, стандартные
схемы
Николай Гребенщиков, www.grebenshikov.ru
Вычислимость
Вычислимая функция - функция, которой можно задатьспособ ее вычисления. (формула, алгоритм).
Машина Тьюринга - абстрактная математическая машина.
Тезис Тьюринга: для каждой функции, для которой суще-ствует алгоритм нахождения ее значения, может быть по-строена машина Тьюринга.
Эмпирический термин алгоритм ⇒ Тезиз не доказан!
Но опровергающие примеры также отсутствуют.
1
Машина Тьюринга - словарная функция:
• V - алфавит;
• Q— конечное непустое множество символов, называемыхсостояниями машины (Q
⋂V = �);
• q0 — выделенный элемент множества Q, называемый на-чальным состоянием;
• # — специальный «пустой» символ, не принадлежащийни V, ни Q;
• I — программа машины.
2
Программа машины Тьюринга - конечное множество ко-манд.
Команда: qa → q′a′d, где q, q′ ∈ Q, a, a′ ∈ V⋃{#};→ — вспо-
могательный символ-разделитель; d — элемент множества{l, r, }.
Никакие две команды не могут иметь одинаковую пару пер-вых двух символов!
3
Машина Тьюринга
4
Работа машины Тьюринга
1. считывание символа, находящегося против головки;
2. поиск команды qa → q′a′d, в которой q — текущее состо-яние, — считанный символ;
3. выполнение команды
Машина останавливается в том и только в том случае, еслина очередном шаге ни одна из команд не применима.
Результат работы — заключительное слово на ленте оста-новившейся машины.
5
Свойства машины Тьюринга
1. конструктивность —МТ есть конечный объект, постро-енный по определенным правилам из базовых объектов;
2. конечность — нахождение значений для значений аргу-ментов, для которых она определена, состоит из конеч-ного числа шагов;
3. однозначность— результат единственным образом опре-деляется начальным словом;
4. массовость — машина работает с любым начальнымсловом, составленным из символов ее алфавита.
6
Автоматизация программирования - одна из целей изуче-ния теоретического программирования.
Алгоритмические проблемы:
• узнать будет ли программа работать бесконечно;
• дают ли две программы одинаковый результат;
• является ли программа синтаксически правильной;
7
Алгоритмическая проблема, как проблема принадлеж-ности множеству. Разрешимость. Перечислимость.
Пусть V – алфавит, M ⊆ V – множество слов в V .
Характеристическая функция множества M :FM : V ∗ → {0,1}, всюду определенный на V ∗ : FM(a) = 1, еслиa ∈M , и FM(a) = 0, если a /∈M .
Частичная характеристическая функция множества M :HM : V ∗ → {1}, определенная только для слов из M и имею-щая вид HM(a) = 1 для всех a ∈M .
8
Важные теоремы
1. Множество M ⊆ V ∗ разрешимо тогда и только тогда, ко-гда M и его дополнение M ′ = V ∗\M перечислимы.
2. Проблема остановки машины Тьюринга неразрешима.
3. Проблема зацикливания машины Тьюринга не являетсячастично разрешимой.
9
Универсальная машина Тьюринга c© 2003 Jin Wicked, USA.
10
Схема программы - математическая модель программы,описывающая строение программы, или точнее строение мно-жества программ, где конкретные операции и функции заме-нены абстрактными функциональными и предикатными сим-волами.
11
Классы схемы программ
• Стандартные
• Рекурсивные
• Обогащенные
• Структурированные
12
Стандартные схемы программ - характеризуются базисоми структурой.
13
Базис стандартных схем
• Переменные - X = {x, x1, x2, . . . , y, y1, y2, . . . , z, z1, z2, . . .}
• Функциональные символы -F = {f(0), f(1), f(2), . . . , g(0), g(1), g(2), . . . , f(0), h(1), h(2), . . .}.f0, g0, h0, . . . - константы, и обозначаются a, b, c, . . .
• Предикатные символы - P = {p(0), p(1), p(2), . . . , q(0), q(1), q(2)}.p0, q0, . . . - логические константы.
• Специальные символы - {start, stop, . . .}
14
Базис стандартных схем. Термы.Термы (функциональные выражения) - слова, построенныеиз переменных, функциональных и специальных символов последующим правилам:
• односимвольные слова, состоящие из переменных или кон-стант, являются термами;
• слово τ вида f(n)(τ1, τ2, . . . , τn), где τ1, τ2, . . . , τn - термы,является термом;
• те и только те слова, о которых говорится в п.п. 1,2,являются термами.
Примеры термов: , f : (0), , f(1)(), g(2)(x, h(2)(y, a)).15
Базис стандартных схем. Тесты.
Тесты (логические выражения) логические константы и сло-ва вида p(n)(τ1, τ2, . . . , τn).
Примеры: p(0), p(1)(x), q(3)(x, y, z), p(1)(f(2)(x, y)).
Допускается в функциональных и логических выраженияхопускать индексы местности, если это не приводит к дву-смысленности или противоречию.
16
Базис стандартных схем. Операторы.
• начальный оператор - слово вида start(x1, x2, . . . , xk), гдеk ≥ 0, а x1, x2, . . . , xk - переменные, называемые результа-том этого оператора;
• заключительный оператор - слово вида stop(τ1, τ2, . . . , τn),где n ≥ 0, а τ1, τ2, . . . , τn - термы; вхождения переменныхв термы τ называются аргументами этого оператора;
• оператор присваивания - слово вида x := τ , где x – пе-ременная (результат оператора), а τ - терм; вхожденияпеременных в термы называются аргументами этого опе-ратора;
17
• условный оператор (тест) - логическое выражение; вхож-дения переменных в логическое выражение называютсяаргументами этого оператора;
• оператор петли - односимвольное слово loop.
Пример базиса стандартных схем
Подкласс V 1
{x1, x2}, {a, f(1)}, {p(1)}, {start, stop, (, ), :=, , },
{start(x1, x2);x1 := f(x1), x2 := f(x2),
x1 := a, x2 := a, p(1), p(x2), stop(x1, x2)}
18
Структура стандартной схемы. Графовое представление.
Стандартной схемой в базисе В - конечный размеченный ори-ентированный граф без свободных дуг и с вершинами сле-дующих пяти видов:
1. Начальная вершина (ровно одна) помечена начальнымоператором. Из нее выходит ровно одна дуга. Нет дуг,ведущих к начальной вершине.
2. Заключительная вершина (может быть несколько). По-мечена заключительным оператором. Из нее не выходитни одной дуги.
19
3. Вершина-преобразователь. Помечена оператором присва-ивания. Из нее выходит ровно одна дуга.
4. Вершина-распознаватель. Помечена условным операто-ром (называемым условием данной вершины). Из нее вы-ходит ровно две дуги, помеченные 1 (левая) и 0 (правая).
5. Вершина-петля. Помечена оператором петли. Из нее невыходит ни одной дуги.
Структура стандартной схемы. Графовое представление.
20
Структура стандартной схемы. Графовое представление.
21
Структура стандартной схемы. Линейная форма.
Множество операторов необходимо расширить {goto, if, then, else}
0: start(х) goto 1,1: у:=а goto 2,2: if р(х) then 5 else 3,3: у:=g(x,y) goto 4,4: х:=h(x) goto 2,5: stop(у).
22
Структура стандартной схемы. Сокращенная линейная фор-ма.
start(х),у:=а,2: if р(х) then 5 else 3,3: у:=g(x,y),х:=h(x) goto 2,5: stop(у).
23
Интерпретация стандартной схемы c базисом B в областиинтерпретации D называется функция I, которая сопостав-ляет:
1. каждой переменной x из базиса B - некоторый элементd = I(x) из области интерпретации D;
2. каждой константе a из базиса B - некоторый элементd = I(a) из области интерпретации D;
3. каждому функциональному символу f(n) - всюду опреде-ленную функцию F (n) = I(f(n));
24
4. каждой логической константе p(0) - один символ множе-ства {0,1};
5. каждому предикатному символу p(n) - всюду определен-ный предикат P (n) = I(p(n)).
Стандартная программа - пара (S, I), где S - стандартнаясхема, а I ее интерпертация.
Память схемы XS конечное множество переменных схемы S.
Состоянием памяти программы (S, I) называют функциюW :
XS → D, которая каждой переменной x из памяти схемы S
сопоставляет элемент W (x) из области интерпретации D.
Значение терма τ при интерпретации I и состоянии памятиW (обозначим τI(W )) определяется следующим образом:
• если τ = x, x – переменная, то τI(W ) = W (x);
25
• если τ = a, a – константа, то τI(W ) = I(a);
• если τ = f(n)(τ1, τ2, . . . , τn), тоτI(W ) = I(f(n))(τ1I(W ), τ2I(W ), . . . , τnI(W ));
• если p = (n)(τ1, τ2, . . . , τn), тоpI(W ) = I(p(n))(τ1I(W ), τ2I(W ), ...τnI(W )), n ≥ 0
Выполнение стандартной программы
Конфигурация программы - пара U = (L,W ), где L - меткавершины схемы S, а W - состояние ее памяти.
протоколом выполнения программы (ПВП) - конечная илибесконечная последовательность конфигураций(U0, U1, . . . , Ui, Ui+1, . . .) выполнения программы (S, I)
U0 = (0,W0), W0 – начальное состояние памяти схемы S приинтерпретации I.
26
Выполнение стандартной программы Пусть Ui = (ki,Wi)
- i-я конфигурация ПВП, а O - оператор схемы S в вершинес меткой ki, тогда Ui+1 = (ki+1,Wi+1)
• O = start(τ1, . . . , τn) и следующая вершина с меткой L, тоki+1 = L и Wi+1 = Wi;
• O = x := τ и следующая вершина с меткой L, то ki+1 =
L,Wi+1 = Wi,Wi+1(x) = τI(Wi);
• O - условный оператор p и pI(Wi) = ∆, где ∆ ∈ {0,1}иследующая вершина с меткой L, то ki+1 = L и Wi+1 = Wi;
27
• O - оператор петли, то ki+1 = ki и Wi+1 = Wi, так чтопротокол бесконечен.
Результат выполнения стандартной программы val(S, I)
выполнения программы (S, I) - последовательность значенийτ1I(W ), τ2I(W ), . . . , τnI(W ) из последней конфигурации прото-коле, где O = stop(τ1, τ2, . . . τm)
28
Пример интерпретации
I1(x) = 4; I1(y) = 0; I1(a) = 1;
I1(g) = G, где G - функция умножения чисел, т. е. G(d1, d2) =
d1 ∗ d2;
I1(h) = H, где H - функция вычитания единицы, т. е. H(d) =
d− 1;
I1(p) = P1, где P1 - предикат «равно 0», т.е. P1(d) = 1, еслиd = 0.
29
Протокол выполнения стандартной программы
30
Список литературы
• Рабинович Е.В. Теория вычислительных процессов. Раз-дел “Стандартные схемы” .
• Котов В.Е., Сабельфельд В.К. Теория схем программ. -М.: Наука, 1991. - 248 с. сс.1-91.
31