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

Материал из Викиконспекты
Перейти к: навигация, поиск
(изменены определения)
Строка 1: Строка 1:
 
{{Определение
 
{{Определение
 
|definition =
 
|definition =
Определим <tex>P=(Q,\Sigma,\Gamma,\delta,q_0,Z_0,F)</tex> как <b>автомат с магазинной (стековой) памятью</b>, где <br>
+
<b> Автоматом с магазинной памятью </b> называется набор <tex> A = \langle\Sigma,Q,s\in Q, \Gamma, Z_0 \in \Gamma, T \subset Q, \delta : Q \times \Sigma \cup \{\varepsilon\} \times \Gamma \rightarrow \cal P</tex><tex>(Q \times \Gamma^*)\rangle </tex>, где <br>
 +
* <tex>\Sigma</tex>: конечное множество входных символов.
 
* <tex>Q</tex>: конечное множество состояний.
 
* <tex>Q</tex>: конечное множество состояний.
* <tex>\Sigma</tex>: конечное множество входных символов.
+
* <tex>s</tex>: начальное состояние.  
 
* <tex>\Gamma</tex>: конечный магазинный алфавит {{---}} множество символов, которые можно помещать в магазин.
 
* <tex>\Gamma</tex>: конечный магазинный алфавит {{---}} множество символов, которые можно помещать в магазин.
 +
* <tex>Z_0</tex>: начальный магазинный символ (маркер дна). Находится в магазине в начале работы автомата.
 +
* <tex>T</tex>: множество допускающих состояний.
 
* <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.
Строка 11: Строка 14:
 
** <tex>p</tex>: новое состояние из Q.
 
** <tex>p</tex>: новое состояние из Q.
 
** <tex>\gamma</tex>: цепочка магазинных символов, <i>замещающих</i> <tex>X</tex> на вершине магазина.
 
** <tex>\gamma</tex>: цепочка магазинных символов, <i>замещающих</i> <tex>X</tex> на вершине магазина.
* <tex>q_0</tex>: начальное состояние.
 
* <tex>Z_0</tex>: начальный магазинный символ (маркер дна). Находится в магазине в начале работы автомата.
 
* <tex>F</tex>: множество допускающих состояний.
 
 
}}
 
}}
 
{{Определение
 
{{Определение
 
|definition =
 
|definition =
Определим <b>детерминированный автомат с магазинной (стековой) памятью</b> как автомат с магазинной памятью, в котором <br>
+
<b>Детерменированным автоматом с магазинной памятью</b> называется автомат с магазинной памятью, для которого выполнены следующие условия:
#<tex>\delta (q,a,X)</tex> имеет не более одного элемента для каждого <tex>q \in Q, a \in \Sigma</tex> или <tex>a=\epsilon, X \in \Gamma</tex>.
+
#<tex>\mathcal8 q \in Q, a \in \Sigma \cup \{ \varepsilon \}, X \in \Gamma \Rightarrow \delta(q, a, X)</tex> имеет не более одного элемента.
 
#Если <tex>\delta (q,a,X)</tex> непусто для некоторого <tex>a \in \Sigma</tex>, то <tex>\delta (q,\epsilon,X)</tex> должно быть пустым.
 
#Если <tex>\delta (q,a,X)</tex> непусто для некоторого <tex>a \in \Sigma</tex>, то <tex>\delta (q,\epsilon,X)</tex> должно быть пустым.
 
}}
 
}}
Строка 24: Строка 24:
  
 
==Пример==
 
==Пример==
Автомат <tex>P=(\{q,p\},\{0,1\},\{Z_0,X\},\delta,q,Z_0,\{p\})</tex> с функией перехода <tex>\delta</tex>:
+
Автомат <tex>A=(\{0,1\},\{q,p\},q, \{Z_0,X\}, Z_0,\{p\}, \delta)</tex> с функией перехода <tex>\delta</tex>:
 
# <tex>\delta(q,0,Z_0)=(q,XZ_0)</tex>
 
# <tex>\delta(q,0,Z_0)=(q,XZ_0)</tex>
 
# <tex>\delta(q,0,X)=(q,XX)</tex>
 
# <tex>\delta(q,0,X)=(q,XX)</tex>

Версия 00:27, 2 декабря 2011

Определение:
Автоматом с магазинной памятью называется набор [math] A = \langle\Sigma,Q,s\in Q, \Gamma, Z_0 \in \Gamma, T \subset Q, \delta : Q \times \Sigma \cup \{\varepsilon\} \times \Gamma \rightarrow \cal P[/math][math](Q \times \Gamma^*)\rangle [/math], где
  • [math]\Sigma[/math]: конечное множество входных символов.
  • [math]Q[/math]: конечное множество состояний.
  • [math]s[/math]: начальное состояние.
  • [math]\Gamma[/math]: конечный магазинный алфавит — множество символов, которые можно помещать в магазин.
  • [math]Z_0[/math]: начальный магазинный символ (маркер дна). Находится в магазине в начале работы автомата.
  • [math]T[/math]: множество допускающих состояний.
  • [math]\delta[/math]: функция переходов. [math]\delta (q,a,X)=(p,\gamma)[/math], где
    • [math]q[/math]: текущее состояние из Q.
    • [math]a[/math]: входной символ или [math]\epsilon[/math].
    • [math]X[/math]: магазинный символ из [math]\Gamma[/math].
    • [math]p[/math]: новое состояние из Q.
    • [math]\gamma[/math]: цепочка магазинных символов, замещающих [math]X[/math] на вершине магазина.


Определение:
Детерменированным автоматом с магазинной памятью называется автомат с магазинной памятью, для которого выполнены следующие условия:
  1. [math]\mathcal8 q \in Q, a \in \Sigma \cup \{ \varepsilon \}, X \in \Gamma \Rightarrow \delta(q, a, X)[/math] имеет не более одного элемента.
  2. Если [math]\delta (q,a,X)[/math] непусто для некоторого [math]a \in \Sigma[/math], то [math]\delta (q,\epsilon,X)[/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]A=(\{0,1\},\{q,p\},q, \{Z_0,X\}, Z_0,\{p\}, \delta)[/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