Стековые машины, эквивалентность двухстековой машины МТ — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Стековая машина)
Строка 1: Строка 1:
 
== Стековая машина ==
 
== Стековая машина ==
<font face="Times" size="3">
+
Стековая машина является обобщением детерминированных МП-автоматов использованием <tex>k</tex> стеков вместо одного. <br>
[[Файл:StackMachine.png]]
+
На рис. 1 изображена '''стековая машина'''. С ленты последовательно считываются символы входного алфавита (<tex>c_i</tex> — текущий считываемый символ). Для каждого стека с вершины снимается символ <tex>x_i</tex>. Вместо него помещается строка <tex>\alpha_i</tex> таким образом, чтобы первый символ строки находился на вершине стека.
 
+
{{Определение
* Каждой конфигурации машины Тьюринга можно сопоставить четыре переменные: номер текущего состояния в автомате, текущий символ на ленте, содержимое ленты слева от головки и содержимое ленты справа от головки. Заметим, что машина Тьюринга обращается с двумя половинками ленты как с двумя стеками. При движении головки направо, из правого стека берется верхний элемент и кладется в левый; при движении налево - наоборот, из левого стека верхний элемент кладется в правый. Но так как стеки конечны, а лента бесконечна, то договоримся добавлять в стек символ конца ввода слова <tex>\$</tex>. Тем самым бесконечно пустой хвост ленты учтен в стековой машине.
+
|definition=
 
+
Стековой машиной с <tex>k</tex> магазинами называется набор 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>\Rightarrow</tex> оно допускается и в стековой машине.   
+
*<tex>\Sigma</tex> — входной алфавит на ленте;
</font>
+
*<tex>\Gamma</tex> — стековый алфавит;
 
+
*<tex>Q</tex> — множество состояний автомата;
== Литература ==
+
*<tex>s</tex> — стартовое состояние автомата;
<font face="Times" size="3">
+
*<tex>T</tex> — множество допускающих состояний автомата;
*Н.К.Верещагин, А.Шень - "Вычислимые функции"
+
*<tex>z_0</tex> — маркер дна стека;
</font>
+
*<tex>\delta</tex> — функция переходов.
 +
}}

Версия 11:01, 28 декабря 2011

Стековая машина

Стековая машина является обобщением детерминированных МП-автоматов использованием [math]k[/math] стеков вместо одного.
На рис. 1 изображена стековая машина. С ленты последовательно считываются символы входного алфавита ([math]c_i[/math] — текущий считываемый символ). Для каждого стека с вершины снимается символ [math]x_i[/math]. Вместо него помещается строка [math]\alpha_i[/math] таким образом, чтобы первый символ строки находился на вершине стека.

Определение:
Стековой машиной с [math]k[/math] магазинами называется набор A=[math]\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[/math], где
  • [math]\Sigma[/math] — входной алфавит на ленте;
  • [math]\Gamma[/math] — стековый алфавит;
  • [math]Q[/math] — множество состояний автомата;
  • [math]s[/math] — стартовое состояние автомата;
  • [math]T[/math] — множество допускающих состояний автомата;
  • [math]z_0[/math] — маркер дна стека;
  • [math]\delta[/math] — функция переходов.