Детерминированные автоматы с магазинной памятью — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «{{Определение |definition = Определим <tex>P=(Q,\Sigma,\Gamma,\delta,q_0,Z_0,F)</tex> как <b>детерминированный автомат…»)
 
Строка 7: Строка 7:
 
* <tex>\delta</tex>: функция переходов. <tex>\delta (q,a,X)=(p,\gamma)</tex>, где
 
* <tex>\delta</tex>: функция переходов. <tex>\delta (q,a,X)=(p,\gamma)</tex>, где
 
** <tex>q</tex>: текущее состояние из Q.
 
** <tex>q</tex>: текущее состояние из Q.
** <tex>a</tex>: либо входной символ, либо пустая цепочка <tex>\epsilon</tex>.
+
** <tex>a</tex>: входной символ.
 
** <tex>X</tex>: магазинный символ из <tex>\Gamma</tex>.
 
** <tex>X</tex>: магазинный символ из <tex>\Gamma</tex>.
 
** <tex>p</tex>: новое состояние из Q.
 
** <tex>p</tex>: новое состояние из Q.
Строка 15: Строка 15:
 
* <tex>F</tex>: множество допускающих состояний.
 
* <tex>F</tex>: множество допускающих состояний.
 
}}
 
}}
 +
 +
Будем обозначать переход автомата из состояния <tex>(q_1,a_1,X_1)</tex> в состояние <tex>(q_2,a_2,X_2)</tex> как <tex>(q_1,a_1,X_1)\vdash(q_2,a_2,X_2)</tex>. Переход автомата из состояния <tex>(q_1,a_1,X_1)</tex> в состояние <tex>(q_{p+1},a_{p+1},X_{p+1})</tex> через <tex>P</tex> промежуточных состояний обозначаем <tex>(q_1,a_1,X_1)\vdash^*_P(q_{p+1},a_{p+1},X_{p+1})</tex>.
 +
 +
==Пример==
 +
Автомат <tex>P=(\{q,p\},\{0,1\},\{Z_0,X\},\delta,q,Z_0,\{p\})</tex> с функией перехода <tex>\delta</tex>:
 +
# <tex>\delta(q,0,Z_0)=(q,XZ_0)</tex>
 +
# <tex>\delta(q,0,X)=(q,XX)</tex>
 +
# <tex>\delta(q,1,X)=(q,X)</tex>
 +
# <tex>\delta(q,0,Z_0)=(p,Z_0)</tex>
 +
# <tex>\delta(p,0,Z_0)=(p,XZ_0)</tex>
 +
# <tex>\delta(p,0,X)=(p,XX)</tex>
 +
# <tex>\delta(p,1,X)=(p,X)</tex>
 +
[[Файл:МП-автомат.png]]

Версия 06:41, 15 января 2011

Определение:
Определим [math]P=(Q,\Sigma,\Gamma,\delta,q_0,Z_0,F)[/math] как детерминированный автомат с магазинной (стековой) памятью, где
  • [math]Q[/math]: конечное множество состояний.
  • [math]\Sigma[/math]: конечное множество входных символов.
  • [math]\Gamma[/math]: конечный магазинный алфавит — множество символов, которые можно помещать в магазин.
  • [math]\delta[/math]: функция переходов. [math]\delta (q,a,X)=(p,\gamma)[/math], где
    • [math]q[/math]: текущее состояние из Q.
    • [math]a[/math]: входной символ.
    • [math]X[/math]: магазинный символ из [math]\Gamma[/math].
    • [math]p[/math]: новое состояние из Q.
    • [math]\gamma[/math]: цепочка магазинных символов, замещающих [math]X[/math] на вершине магазина.
  • [math]q_0[/math]: начальное состояние.
  • [math]Z_0[/math]: начальный магазинный символ (маркер дна). Находится в магазине в начале работы автомата.
  • [math]F[/math]: множество допускающих состояний.


Будем обозначать переход автомата из состояния [math](q_1,a_1,X_1)[/math] в состояние [math](q_2,a_2,X_2)[/math] как [math](q_1,a_1,X_1)\vdash(q_2,a_2,X_2)[/math]. Переход автомата из состояния [math](q_1,a_1,X_1)[/math] в состояние [math](q_{p+1},a_{p+1},X_{p+1})[/math] через [math]P[/math] промежуточных состояний обозначаем [math](q_1,a_1,X_1)\vdash^*_P(q_{p+1},a_{p+1},X_{p+1})[/math].

Пример

Автомат [math]P=(\{q,p\},\{0,1\},\{Z_0,X\},\delta,q,Z_0,\{p\})[/math] с функией перехода [math]\delta[/math]:

  1. [math]\delta(q,0,Z_0)=(q,XZ_0)[/math]
  2. [math]\delta(q,0,X)=(q,XX)[/math]
  3. [math]\delta(q,1,X)=(q,X)[/math]
  4. [math]\delta(q,0,Z_0)=(p,Z_0)[/math]
  5. [math]\delta(p,0,Z_0)=(p,XZ_0)[/math]
  6. [math]\delta(p,0,X)=(p,XX)[/math]
  7. [math]\delta(p,1,X)=(p,X)[/math]

МП-автомат.png