
- •Оглавление
- •1 Интуитивное понятие алгоритма. Необходимость его уточнения. 7
- •1.4 Вычислительные алгоритмы 16
- •1.1 Свойства, характерные для интуитивного понятия алгоритма
- •1.2 История развития понятия алгоритма
- •1.3 Алгоритмические модели и их представление
- •1.4 Вычислительные алгоритмы
- •1.5 Алгоритмы для исполнителей
- •1.6 Символьные алгоритмы
- •2 Машины тьюринга (одноленточные детерминированные)
- •2.1 Неформальное описание машины Тьюринга
- •2.2 Формальное определение машины Тьюринга
- •2.3 Операции над машинами Тьюринга
- •2.4 Варианты машины Тьюринга
- •2.5 Вычислимость по Тьюрингу и разрешимость
- •3 Проблема самоприменимости
- •3.1. Нумерация алгоритмов
- •3.2 Нумерация наборов чисел
- •3.3 Нумерация слов и словарные функции
- •3.4 Нумерация машин Тьюринга
- •Заключение
- •Список использованных источников
- •Контрольные вопросы
- •Глоссарий
- •Если аргумент и значения принадлежат к натуральным числам
3.3 Нумерация слов и словарные функции
По
аналогии с числовыми можно рассмотреть
функции над словами — словарные функции.
Пусть задан алфавит A={a1,a2...,
ap},
где ai
( i=1,2,...,p
) — буквы. Несколько букв, записанных
рядом (конкатенация) образуют слово в
алфавите A. Слово, не содержащее ни одной
буквы называется пустым(∅.)
Пусть wi(i=1,2,...)
— слова в алфавите A. В качестве простейших
(элементарных) функций можно выбрать
такие: 1) аналог функции обнуления o(w)=
∅;
2) аналог функции следования si(w)=wai;
3) аналог функции проектирования
где
( 1≤m≤n;n=1,2,...).
По аналогии вводятся операции подстановки,
рекурсии и минимизации.
Вместо
этого можно ввести алфавитную нумерацию
следующим образом. Пустое слово ∅
имеет номер
0. Однобуквенное слово ai,
то есть символ алфавита, имеет номер i
для =1,2,...,p.
Номер слова
по
определению
то есть слову соответствует натуральное
число, записанное в p-ичной системе
счисления. Таким образом, все результаты,
полученные для числовых функций могут
быть перенесены на словарные.
Другими словами, это можно определить так. Пусть дан алфавит А = {a1, a2, …, ar}, где r – число букв или символов алфавита. Например, для латиницы это - r=26. На множестве букв алфавита согласно правилам соответствующей грамматики можно сформировать множество слов конечной длины A*={α1, α2, …, β1, β2,…, ε}, где ε -пустое слово. Согласно правилам алгоритма Маркова это могут быть слова αi и βi. Тогда алфавитная нумерация определяется как: h(ε)=0 и h(ai1 ,ai2 ,...,ais )=is+is-1 r+is-2+r2+.. i1+rs-1 . Поскольку при фиксированном r каждое положительное число n однозначно представимо в виде:
n= is+is-1 ⋅r+is-2⋅r2+.. i1⋅rs-1, где 1 ≤ i ≤ r – порядковый номер символа в алфавите А, нижний индекс которого указывает его место в слове αi или βi. Например, для нормального алгоритма Маркова произведения двух чисел алфавит содержит пять символов Vт={| , ⋅, #, (, )}, а протокол правила α1:= ⋅| | → β1:= (⋅|, α2:= ⋅|# → β2:= (#, α3:= |( → β3:= (|), α4:= )( → β4:= ( ), α5:= )| → β5:= |), α6:= (| → β6:= (, α7:= ( ) → β7:= ), α8:= ) → β8:= |, α9:= |# → β9:= •|#.
Номера некоторых слов: α1:= ⋅| | : n = 1+1⋅5+2⋅52 = 56, β1:= (⋅| : n = 1+2⋅5+4⋅52 =111, α2:= ⋅|# : n = 3+1⋅5+2⋅52 = 58, β2:= (# : n = 3+4⋅5 = 23, α3:= |( : n = 4+1⋅5 = 9, β3:= (|): n = 5+1⋅5+4⋅52 = 110, α4:= )( : n = 4+5⋅5 = 29.
β4:= ( ) : n = 5+4⋅5 =25 и т.д.
β4:= ( ) : n = 5+4*5 =25 и т.д.
Следовательно, цифровой код протокола есть (56→111, 58→23, 9→110, 29→25, 26→10, 21→4, 25→5, 5→1, 8→8). Далее нужно найти номер для набора двух чисел команды. Так может быть сформирована упорядоченная последовательность номеров команд, моделирующая заданный алгоритм.