Опубликован: 26.09.2006 | Уровень: специалист | Доступ: платный
Лекция 13:

Формальные языки

Решение уравнений в словах

Рассмотрим уравнение вида X  = \al \cdot X  + \beta, где \al и \beta — формальные языки над некоторым алфавитом A.

Теорема. Если \lm \not \in \al, то уравнение X = \al X + \beta имеет единственное решение X= \al^\ast \bt. Если \lm \in \al, то X = \al^\ast (\beta+ \gamma) будет решением уравнения X = \al X + \beta при любом \gamma
\in A^\ast.

Доказательство. Пусть \lm \not \in \al и X_0 — решение, тогда, подставляя его в уравнение, получим

\eq*{
X_0 = \al X_0 + \beta = \al(\al X_0 + \beta) + \beta = \al(\al(\al X_0 +
\beta) + \beta) + \beta = \al^3X_0 + \al^2 \beta + \al \beta + \beta.
}

Продолжая выполнять подстановки, видим, что при любом k = 0,
1, 2,\ldots выполняется равенство

\eq{
X_0 = \al_{k+1}X_0 + (\al^k\beta + \al^{k-1}\cdot \beta + \ldots + \al \beta
+ \beta).
} ( 1)

Покажем сначала, что \al^\ast \cdot \beta \subseteq X_0. Действительно, пусть u \in \al^\ast \cdot \beta, тогда при некотором значении k получим u \in (\al^k \beta
+\al^{k-1}\beta
+ \ldots + \al \beta + \beta) и из (1) при таком значении k получаем u \in X_0.

Осталось показать, что X_0 \subseteq \al^\ast\beta. Действительно, пусть u \in X_0, тогда при любом k

\eq*{
u \in \al^{k+1} \cdot X_0 + (\al^{k}\beta +\al^{k-1}\beta + \ldots +
\al \beta + \beta).
}

Но так как \lm \not \in \al, то при достаточно больших значениях k каждое слово в множестве \al^{k+1}\cdot X_0 будет длиннее слова u и, следовательно, {u \not \in \al^{k+1} \cdot X_0}, но тогда при таких k

\eq*{
u \in (\al^k \beta +\al^{k-1}\beta + \ldots + \al \beta + \beta) \subseteq
\al^\ast\beta.
}

Следовательно, u \in \al^\ast\beta. Итак, мы показали, что если X_0 — решение, то оно задается формулой X_0
= \al^\ast \beta, то есть является единственным. Тот факт, что \al ^\ast \beta на самом деле — решение, проверяется простой подстановкой. Второе утверждение теоремы предоставляем доказать читателю.

Замечание. Если в уравнении X = \al X + \beta под \al и \beta понимать регулярные выражения, то в случае \lm \not \in L(\al) его единственным решением будет регулярное выражение \al^\ast
\beta.

В случае, когда L(\al) содержит \lm, уравнение имеет бесконечно много решений вида X = \al^\ast(\beta + \gamma), но здесь под \gamma можно понимать не только регулярные выражения, но и выражения в каком-либо формализме, задающие произвольный язык. Часто в таком случае интересуются наименьшим по включению решением, так называемой "наименьшей неподвижной точкой".

Системы линейных уравнений с регулярными коэффициентми. Под стандартной системой понимают систему вида

\eq*{
\left\{\begin{aligned} & X_{1}  =\alpha_{11} X_{1} +\alpha_{12} X_{2}
+\ldots +\alpha_{1n} X_{n}
+\beta_{1}, \\ & X_{2} =\alpha_{21} X_{1} +\alpha_{22} X_{2} +\ldots
+\alpha_{2n} X_{n}
+\beta_{2}, \\ & \mdots{6cm} \\ & X_{n} =\alpha_{1n} X_{1}
+\alpha_{1n} X_{2} +\ldots +\alpha_{nn} X_{n}
+\beta_{n},
\end{aligned}\right.
}

где \al_{ij}, \beta_i — регулярные выражения, X_i — переменные ( i, j = 1, 2\dts n ).

Решением системы называется набор (L(X_1), L(X_2)\dts
L(X_n)) формальных языков, которые при подстановке вместо соответствующих переменных в уравнения обращают их в равенства. Удобно на решение смотреть как на отображение L, которое каждой переменной X_i ставит в соответствие язык L(X_i). Решение L^1 называется наименьшей неподвижной точкой системы, если для любого другого решения L выполняются соотношения L^1(X_i) \subseteq L(X_i) при i = 1, 2\dts n.

Теорема. Каждая стандартная система уравнений имеет единственную неподвижную точку.

Доказательство. Действительно, нетрудно видеть, что отображение L^1, определяемое по формулам L^{1}
(X_{i})=\bigcap\limits_{L} L(X_{i}), где пересечение берется по всем решениям L ( i = 1, 2\dts
n), является искомой неподвижной точкой системы.

Решаются такие системы уравнений методом исключения неизвестных. Если, например, \al_{11} \ne \varnothing, то первое уравнение можно представить в виде X_1 = \al_{11}X_1 +
\beta, где \beta = \al_{12}X_2 + \ldots +\al_{1n}X_n + \beta_1, записать его решение описанным выше способом в виде (\al_{11})^\ast
\beta и подставить в остальные уравнения. Получим систему с меньшим числом неизвестных и так далее.

Антон Сиротинкин
Антон Сиротинкин

на стр 6, лекции 3, Очевидно "Ck <= модуль(Gk(е))*b(k+1)" (1) - , подскажите что значит "модуль" и почему это очевидно...
 

Дмитрий Степаненко
Дмитрий Степаненко
Россия
Эдуард Санин
Эдуард Санин
Украина, Харьков, ХАИ