Стековые машины, эквивалентность двухстековой машины МТ — различия между версиями
Воронов (обсуждение | вклад) |
Воронов (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
[[Изображение:PDAk.png|620px|thumb|left|Рис. 1. Стековая машина с k стеками]] | [[Изображение:PDAk.png|620px|thumb|left|Рис. 1. Стековая машина с k стеками]] | ||
Стековая машина является обобщением детерминированных МП-автоматов использованием нескольких стеков вместо одного. <br> | Стековая машина является обобщением детерминированных МП-автоматов использованием нескольких стеков вместо одного. <br> | ||
− | На рис. 1 изображена '''k-стековая машина'''. С ленты последовательно считываются символы входного алфавита (<tex>c_i</tex> — текущий считываемый символ). Для каждого стека с вершины снимается символ <tex>x_i</tex> | + | На рис. 1 изображена '''k-стековая машина'''. С ленты последовательно считываются символы входного алфавита (<tex>c_i</tex> — текущий считываемый символ). Для каждого стека с вершины снимается символ <tex>x_i</tex>, вместо него помещается строка <tex>\alpha_i</tex> таким образом, чтобы первый символ строки находился на вершине стека и делается переход в автомате в зависимости от считанного с ленты символа <tex>c_i</tex> и снятых со стеков верхних значений <tex>x_i</tex>. |
{{Определение | {{Определение | ||
|definition= | |definition= | ||
Строка 19: | Строка 19: | ||
|statement=Язык <tex>L</tex> допускается машиной Тьюринга тогда и только тогда, когда он допускается двухстековой машиной. | |statement=Язык <tex>L</tex> допускается машиной Тьюринга тогда и только тогда, когда он допускается двухстековой машиной. | ||
|proof= | |proof= | ||
− | Для упрощения доказательства без умаления общности предположим, что вход для двухстековой машины заканчивается специальным символом <tex>\$</tex>, которого нет в исходном алфавите (аналог пробела в МТ). | + | Для упрощения доказательства без умаления общности предположим, что вход для двухстековой машины заканчивается специальным символом <tex>\$</tex>, которого нет в исходном алфавите (аналог пробела в МТ). <br> |
+ | <tex>\Rightarrow)</tex> | ||
+ | Докажем, что если язык <tex>L</tex> допускается машиной Тьюринга, то он допускается двухстековой машиной. <br> | ||
+ | [[Изображение:SM.png|400px|thumb|left|Рис. 2. Представление ленты МТ двумя стеками]] | ||
+ | Мы будем имитировать ленту МТ двумя стеками (см. Рис. 2). В первом стеке будет хранится кусок ленты слева от положения головки, во втором стеке — справа. Разумеется, куски ленты хранятся без бесконечных цепочек пробелов, окружающих значащие символы ленты. <br> | ||
+ | Исходя из необходимости инициализировать стеки для того, чтобы их содержимое отражало ленту МТ, строящаяся нами двухстековая машина сначала читает весь вход до конца (он помечен маркером <tex>\$</tex>) и кладёт каждый новый поступивший символ на первый стек. | ||
+ | |||
+ | <tex>\Leftarrow)</tex> | ||
}} | }} |
Версия 12:23, 28 декабря 2011
Стековая машина
Стековая машина является обобщением детерминированных МП-автоматов использованием нескольких стеков вместо одного.
На рис. 1 изображена k-стековая машина. С ленты последовательно считываются символы входного алфавита ( — текущий считываемый символ). Для каждого стека с вершины снимается символ , вместо него помещается строка таким образом, чтобы первый символ строки находился на вершине стека и делается переход в автомате в зависимости от считанного с ленты символа и снятых со стеков верхних значений .
Определение: |
| -cтековой машиной называется набор A= , где
Эквивалентность двухстековой машины машине Тьюринга
Теорема: |
Язык допускается машиной Тьюринга тогда и только тогда, когда он допускается двухстековой машиной. |
Доказательство: |
Для упрощения доказательства без умаления общности предположим, что вход для двухстековой машины заканчивается специальным символом Мы будем имитировать ленту МТ двумя стеками (см. Рис. 2). В первом стеке будет хранится кусок ленты слева от положения головки, во втором стеке — справа. Разумеется, куски ленты хранятся без бесконечных цепочек пробелов, окружающих значащие символы ленты. |