Стековые машины, эквивалентность двухстековой машины МТ — различия между версиями
Воронов (обсуждение | вклад) |
Воронов (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | <tex>k</tex>-cтековой машиной называется набор A=<tex>\langle\Sigma, \Gamma, Q, s\in Q, T \subset Q, z_0 \in \Gamma, \delta : Q \times \Sigma \cup \{\varepsilon\} \times \Gamma^k \rightarrow Q \times (\Gamma^*)^k\rangle</tex>, где | + | <tex>k</tex>-cтековой машиной называется набор A=<tex>\langle\Sigma, \Gamma, Q, s\in Q, T \subset Q, z_0 \in \Gamma, \delta : Q \times \Sigma \cup \{\varepsilon\} \times \Gamma^k \rightarrow \cal P </tex> <tex> (Q \times (\Gamma^*)^k)\rangle</tex>, где |
*<tex>\Sigma</tex> — входной алфавит на ленте; | *<tex>\Sigma</tex> — входной алфавит на ленте; | ||
*<tex>\Gamma</tex> — стековый алфавит; | *<tex>\Gamma</tex> — стековый алфавит; | ||
Строка 32: | Строка 32: | ||
<tex>\Leftarrow)</tex> Этот пункт доказательства аналогичен предыдущему. Содержимое двух стеков отображается лентой МТ также, как и в предыдущем пункте (рис. 2). Снятие, например, с первого стека символа соответствует сдвигу куска ленты, соответствующего второму стеку, влево на одну позицию, что прекрасно умеет делать МТ. Положить символ на этот стек соответствует сдвигу куска ленты, соответствующего второму стеку, вправо на одну позицию, записи этого символа на место начального положения головки и сдвигу головки вправо на одну позицию (действие "положить цепочку на стек" аналогично последовательности действий "положить на стек один символ"). Операции со вторым стеком имитируются аналогично. | <tex>\Leftarrow)</tex> Этот пункт доказательства аналогичен предыдущему. Содержимое двух стеков отображается лентой МТ также, как и в предыдущем пункте (рис. 2). Снятие, например, с первого стека символа соответствует сдвигу куска ленты, соответствующего второму стеку, влево на одну позицию, что прекрасно умеет делать МТ. Положить символ на этот стек соответствует сдвигу куска ленты, соответствующего второму стеку, вправо на одну позицию, записи этого символа на место начального положения головки и сдвигу головки вправо на одну позицию (действие "положить цепочку на стек" аналогично последовательности действий "положить на стек один символ"). Операции со вторым стеком имитируются аналогично. | ||
}} | }} | ||
+ | |||
+ | ==Источники== | ||
+ | *Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений, 2-е изд.. : Пер. с англ. — М. : Издательский дом "Вильямс", 2002. |
Версия 21:38, 28 декабря 2011
Стековая машина
Стековая машина является обобщением детерминированных МП-автоматов использованием нескольких стеков вместо одного.
На рис. 1 изображена k-стековая машина. С ленты последовательно считываются символы входного алфавита ( — текущий считываемый символ). В каждом стеке с вершины снимается символ , вместо него помещается строка таким образом, чтобы первый символ строки находился на вершине стека и делается переход в автомате в зависимости от считанного с ленты символа и снятых со стеков верхних значений . Возможен также и -переход.
Определение: |
| -cтековой машиной называется набор A= , где
Эквивалентность двухстековой машины машине Тьюринга
Теорема: |
Язык допускается машиной Тьюринга тогда и только тогда, когда он допускается двухстековой машиной. |
Доказательство: |
Для упрощения доказательства без умаления общности предположим, что вход для двухстековой машины заканчивается специальным символом
|
Источники
- Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений, 2-е изд.. : Пер. с англ. — М. : Издательский дом "Вильямс", 2002.