Введение в схемы, автоматы и алгоритмы



             

Основные определения


Рассматриваемая в этом разделе модель алгоритмов была предложена английским математиком Тьюрингом в 1937г. еще до создания современных компьютеров компьютеров1)

Он исходил из общей идеи моделирования работы вычислителя, оперирующего в соответствии с некоторым строгим предписанием. В машине Тьюринга расчленение процесса вычисления на элементарные шаги доведено в известном смысле до предела. Элементарным действием является замена одного символа в ячейке на другой и перемещение к соседней ячейке. При таком подходе процесс вычисления значительно удлиняется, но зато логическая структура процесса сильно упрощается и приобретает удобный для теоретического исследования вид.

Машина Тьюринга (м.Т.) состоит из неограниченной в обе стороны ленты, разбитой на ячейки, по которой передвигается головка машины. Такая "бесконечность" ленты является математической абстракцией, отражающей потенциальную неограниченность памяти вычислителя. Разумеется, в каждом завершающемся вычислении используется только конечная часть этой памяти - конечное число ячеек. В каждой ячейке ленты записан один символ из конечного внешнего алфавита машины ? = {a0, a1, … ,am }. Головка машины представляет конечный автомат, который в каждый момент времени находится в одном из внутренних состояний Q ={q0,q1,… , qn }. На каждом шаге головка в зависимости от своего внутреннего состояния и символа в ячейке, которую она наблюдает, изменяет свое внутреннее состояние и содержимое наблюдаемой ячейки и может сдвинуться на одну ячейку вправо или влево либо остаться на месте.

Дадим более формальное определение.

Определение 9.1. Машина Тьюринга - это система вида

{\cal M} = < Q, \Sigma, P,q_0, q_f >,

включающая следующие компоненты:

  • Q ={q0,q1,… ,qn } - внутренний алфавит (алфавит состояний);
  • ? = {a0, a1, … , a{m-1} } - внешний алфавит (алфавит ленты);
  • P - программа машины, в которой для каждой пары qi

    Q \ { qf }, aj
    ? имеется (одна!) команда вида

     q_i a_j \rightarrow q_k a_l C,\ q_k \in Q, a_l \in \Sigma,

    C

    {Л, П, Н} задает сдвиг головки вправо, влево или на месте;

  • q0
    Q - начальное состояние;
  • qf
    Q - заключительное состояние.




Содержание    Вперед