Машина Тьюринга

Материал из WikiGrapp
Версия от 14:01, 11 мая 2011; KEV (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Машина Тьюринга(Turing machine) — одна из основных конструкций, которые были предложены для уточнения, или адекватной формализации, общего интуитивного понятия алгоритма.

Недетерминированной машиной Тьюринга (сокращенно НМT или просто МT) [math]\displaystyle{ \,M }[/math] называется семерка [math]\displaystyle{ \,(Q,T,\Sigma,b,q_0,q_f,\delta) }[/math], где

(1) [math]\displaystyle{ \,Q }[/math] — конечное множество состояний управляющего устройства;

(2) [math]\displaystyle{ \,T }[/math] — конечное множество символов на ленте;

(3) [math]\displaystyle{ \,\Sigma }[/math] — множество входных символов, [math]\displaystyle{ \Sigma\subseteq T }[/math];

(4) [math]\displaystyle{ \,b }[/math]пустой символ, [math]\displaystyle{ b\in T \setminus \Sigma }[/math];

(5) [math]\displaystyle{ \,q_0 }[/math]начальное состояние, [math]\displaystyle{ q_0\in Q }[/math];

(6) [math]\displaystyle{ \,q_f }[/math]заключительное (или допускающее) состояние, [math]\displaystyle{ q_f\in Q }[/math];

(7) [math]\displaystyle{ \,\delta }[/math] — так называемая функция перехода — отображение множества [math]\displaystyle{ Q\times T }[/math] в множество подмножеств в [math]\displaystyle{ Q\times T\times \{L, R, S\} }[/math], где [math]\displaystyle{ \,L }[/math] означает сдвиг головки по ленте влево, [math]\displaystyle{ \,R }[/math] — вправо, [math]\displaystyle{ \,S }[/math] — головка остается на месте.

Машина Тьюринга работает на неограниченной с обеих сторон ленте, разделяемой на ячейки, одну из которых обозревает головка. В любой момент времени все ячейки, кроме конечного числа, заняты пустыми символами. Конфигурацией (или мгновенным описанием) машины Тьюринга [math]\displaystyle{ \,M }[/math] называется слово вида [math]\displaystyle{ \,xqy }[/math], где [math]\displaystyle{ \,xy }[/math] — непустая часть ленты, а [math]\displaystyle{ \,q }[/math] — текущее состояние управляющего устройства (головка на ленте обозревает символ, стоящий справа от [math]\displaystyle{ \,q }[/math]).

Начальной конфигурацией [math]\displaystyle{ \,M }[/math] называется конфигурация вида [math]\displaystyle{ \,q_0\omega }[/math], где [math]\displaystyle{ \omega\in\Sigma^* }[/math]. Заключительная конфигурация — это конфигурация вида [math]\displaystyle{ \,xq_f y }[/math].

Tакт работы машины Тьюринга [math]\displaystyle{ \,M }[/math] представляется в виде бинарного отношения [math]\displaystyle{ \vdash_M }[/math], определенного на конфигурациях, для которого [math]\displaystyle{ \alpha \vdash_M\beta }[/math] в одном из трех следующих случаев:

(1) [math]\displaystyle{ \alpha=\gamma qX\omega, \beta=\gamma pY\omega, (p,Y,S) \in \delta(q,X) }[/math] для некоторых [math]\displaystyle{ \gamma, \omega\in T^* }[/math];

(2) [math]\displaystyle{ \alpha=\gamma qX\omega, \beta=\gamma Yp\omega, (p,Y,R) \in \delta(q,X) }[/math] для некоторых [math]\displaystyle{ \gamma,\omega\in T^* }[/math];

(3) [math]\displaystyle{ \alpha=\gamma ZqX\omega, \beta=\gamma pZY\omega, (p,Y,L) \in \delta(q,X) }[/math] для некоторых [math]\displaystyle{ \gamma,\omega\in T^* }[/math] .

[math]\displaystyle{ \,M }[/math] допускает цепочку [math]\displaystyle{ \omega\in\Sigma^* }[/math], если [math]\displaystyle{ \,q_0\omega\vdash^*_M\alpha }[/math], где [math]\displaystyle{ \,\alpha }[/math] - некоторая заключительная конфигурация с пустой лентой, так называемая допускающая конфигурация. Языком, допускаемым [math]\displaystyle{ \,M }[/math] (обозначается [math]\displaystyle{ \,L(M) }[/math]), называют множество всех цепочек, допускаемых [math]\displaystyle{ \,M }[/math].

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

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

Поэтому не случайно, что машины Тьюринга обладают большей вычислительной мощностью, чем МП- автоматы, определяющие класс КС-языков. Известно, что язык порождается грамматикой составляющих тогда и только тогда, когда он допускается машиной Тьюринга.

В дополнение к естественной интерпретации машины Тьюринга как распознавателя, допускающего тот или иной язык, ее можно рассматривать как устройство, которое вычисляет некоторую функцию [math]\displaystyle{ \,f }[/math]. Аргументы этой функции кодируются на ленте в виде слова [math]\displaystyle{ \,X }[/math] со специальным символом (маркером), отделяющим их друг от друга. Если машина Тьюринга останавливается с заключительной конфигурацией [math]\displaystyle{ \,vq_fw }[/math], то слово [math]\displaystyle{ \,Y=vw }[/math] рассматривается как код значения функции [math]\displaystyle{ \,f }[/math], т.е. [math]\displaystyle{ \,f(X)=Y }[/math].

Машина Тьюринга [math]\displaystyle{ \,M }[/math] называется детерминированной (сокращенно ДМT), если для любых [math]\displaystyle{ q\in Q }[/math] и [math]\displaystyle{ X\in T }[/math] множество [math]\displaystyle{ \,\delta(q,X) }[/math] содержит не более одного элемента.

Литература

  • Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. — М.: Мир, 1979.
  • Касьянов В.Н. Лекции по теории формальных языков, автоматов и сложности вычислений. —

Новосибирск: НГУ, 1995.