Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ДС.doc
Скачиваний:
14
Добавлен:
03.03.2016
Размер:
1.19 Mб
Скачать
  1. Символьные конструкции

Алфавитом будем называть любое конечное множество попарно различных знаков, называемых буквами ( символами ) этого алфавита. Алфавит будем обозначать заглавными буквами, например :

Символом  будем обозначать пустой символ.

Словом в данном алфавите называется любая конечная ( в том числе и пустая ) последовательность букв этого алфавита. Слова будем обозначать малыми греческими буквами.

Например :

 = алгоритм - слово в алфавите А;

 = 1010100 - слово в алфавите В;

  • = +0 - слово в алфавите С.

Пустое слово будем обозначать .

Длина слова  ( обозначается ) - это количество букв в слове.

Определим некоторые отношения и операции над словами.

Равенство слов в алфавите А определяется индуктивно :

а) пустые слова равны

б) если слово  равно слову , то  b =b , где b - буква в алфавите А.

Если слово  является частью слова , то говорят, что имеет место вхождение слова  в слово  ( слово  называется подсловом слова ). Это можно записать следующим образом :

, где - слова в алфавите А.

Например : в слове 1012011201 два вхождения слова 12, три вхождения слова 01, одиннадцать вхождений пустого слова  - перед первой, после последней букв и между всеми буквами.

Слово  называется началом слова  , если ; концом слова , если .

Слово длины n , составленное из буквы а , повторенной n раз, будем обозначать , например xyxxxyyyy = .

Операция ( и результат ) приписывания слов  и  друг к другу называется конкатенацией (обозначается // ) . Например, если .

  1. Определение, функционирование и способы задания машины Тьюринга

Под машиной Тьюринга понимается некоторая гипотетическая (абстрактная) машина, состоящая из следующих частей ( рис. 3.1.)

  1. бесконечная в обе стороны лента, разбитая на ячейки, в каждой из которых может быть записан только один символ из алфавита , а также пустой символ  ;

  2. управляющее устройство ( рабочей головки ), которое в каждый момент времени может находится в одном из состояний из множества . В каждом из состояний головка размещается напротив ячейки и может считывать ( обозревать ) или записывать в нее букву из алфавита А.

......

......

......

......

Рис. 3.1. Машина Тьюринга

Функционирование МТ состоит из последовательности элементарных шагов ( тактов ). В каждом шаге выполняются следующие действия :

  1. рабочая головка считывает ( обозревает ) символ ;

  2. в зависимости от своего состояния и обозреваемого символа головка вырабатывает символ и записывает его в обозреваемую ячейку (возможно =) ;

  3. головка перемещается на одну ячейку вправо (R) , влево (L) или остается на месте (E);

  4. головка переходит в другое внутреннее состояние . (возможно =).

Состояние называется начальным , - заключительным. При переходе в заключительное состояние машина останавливается.

Полное состояние МТ называется конфигурацией . Это распределение букв по ячейкам ленты, состояние рабочей головки и обозреваемая ячейка. Конфигурация в такте t записывается в виде : , где - подслово слева от обозреваемой ячейки, - буква в обозреваемой ячейке, - подслово справа.

Начальная конфигурация и конечная называются стандартными.

Для описания работы МТ существует 3 способа :

- система команд вида

- функциональная таблица ;

- граф ( диаграмма ) переходов.

Рассмотрим их на примерах.

Пример 1. Построить МТ, реализующую конкатенацию двух слов в алфавите . Слова на ленте разделены знаком * . Начальная конфигурация является стандартной.

Система команд МТ имеет вид :

В состоянии осуществляется движение головки вправо до пустого символа.

Самый правый символ стирается.

Звездочка стирается, если первое слово пустое.

Правое слово посимвольно сдвигается влево на одну позицию.

Переход в стандартную конечную конфигурацию.

Функциональная таблица

a

b

*

-

-

-

-

Прочерки в таблице означают, что символ  не может быть встречен в состояниях .

a/aL

b/bL

Диаграмма переходов имеет вид :

a/aR

b/bR

*/*R

a/aL

*/aL

a/L

a/bL

*/bL

/L

b/aL

/R

b/L

b/bL

*/R

стандартная заключительная конфигурация.

Вычисление на МТ словарной функции будем понимать следующим образом. Пусть в начальной конфигурации на ленте записано слово  . Если значение определено, то конечного числа шагов ( тактов ) машина должна перейти в заключительную конфигурацию, в которой на ленте записано слово . В противном случае МТ должна работать бесконечно.

С помощью МТ можно описывать выполнение арифметических операций над числами. При этом числа представляются на ленте как слова в алфавите, состоящем из цифр какой-нибудь системы счисления, и разделяющихся специальным знаком, не входящем данный алфавит, например, * . Наиболее употребительной системой является унарная , состоящего из одного символа –1. Число Х на ленте записывается словом , ( или сокращенно ) в алфавите А={1}.

Числовая функция правильно вычислима ( или просто вычислима ) по Тьюрингу, если существует МТ, которая переводит конфигурацию в конфигурацию , когда =y , или работает бесконечно, когда не определена.

Пример 2. Операция сложения двух чисел в унарном коде.

Начальная конфигурация :

Конечная конфигурация : т.е. сложение фактически сводится к приписыванию числа b к числу a . Для этого первая 1 стирается, а * заменяется на 1.

Приведем описание МТ в виде функциональной таблицы :

1

*

-

-

-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]