Изменения

Перейти к: навигация, поиск

Решение уравнений в регулярных выражениях

13 байт добавлено, 23:52, 28 октября 2010
Нет описания правки
|statement=
Пусть уравнение имеет вид <tex> X = \alpha X + \beta \Rightarrow \, 1)</tex>
если <tex>\varepsilon \notin \alpha </tex>, тогда <tex> \alpha^{*} \beta</tex> — единственное решение. <tex>2)</tex> если <tex>\varepsilon \in \alpha </tex>, тогда <tex> \alpha^{*}( \beta + L)</tex> — решение для <tex>\forall L</tex>
|proof=
<tex> 1) </tex> Пусть <tex>\varepsilon \notin \alpha </tex>. тогда Тогда <tex>\forall i: </tex> выражение <tex>\alpha^{i} \beta \subset X </tex> для <tex>\forall X</tex>, тогда <tex> \alpha^{*} \beta \subset X </tex>. Пусть существует<tex> z \in X,\, z\notin \alpha^{*} \beta</tex> такой, что <tex> z </tex> — самое короткое. <tex>z=z_\alpha z', </tex> где <tex>z_\alpha \in \alpha </tex>, тогда <tex> z_\alpha \notin \varepsilon \Rightarrow z'</tex> — короче <tex>z </tex>. Следовательно <tex> z' \in \alpha^{*} \beta \Rightarrow z \in \alpha^{*} \beta \Rightarrow X = \alpha^{*} \beta </tex>.
Пусть существует <tex> z \in X,\, z\notin \alpha^{*} \beta</tex> такой, что <tex> z </tex> — самое короткое; <tex>z=z_\alpha z', </tex> где <tex>z_\alpha \in \alpha </tex>.
Тогда <tex> z_\alpha \notin \varepsilon \Rightarrow z'</tex> — короче <tex>z </tex>.
Следовательно <tex> z' \in \alpha^{*} \beta \Rightarrow z \in \alpha^{*} \beta \Rightarrow X = \alpha^{*} \beta </tex>.    <tex> 2)</tex> Пусть <tex> \varepsilon \in \alpha</tex>. Выберем в качестве <tex>L</tex> любой язык и предположим, что <tex> \alpha^{*}( \beta + L) </tex> — решение, тогда . Тогда <tex> \alpha^{*}( \beta + L) </tex> подходит в <tex>X = \alpha X + \beta</tex>. Тогда для него выполняется: <tex> \alpha^{*} ( \beta + L ) = \alpha \alpha^{*} ( \beta + L ) + \beta \alpha^{*} \beta + \alpha^{*} \alpha </tex> <tex>= \alpha^{+} \beta + \alpha^{*} L + \beta = \alpha^{*} \beta + \alpha^{*} L = \alpha^{*}( \beta + L) </tex>. что Что и требовалось доказать.
}}
'''метод Метод решения'''выразим Выразим <tex>x_1X_1</tex> из первого уравнения и подставим во второе уравнение: <tex> X_2 = ( \alpha_{21} \alpha_{11}^{*} \alpha_{12} +\alpha_{22} ) X_2 + \alpha_{21} \alpha_{11}^{*} \alpha_{13} X_3 + \dots + \alpha_{21} \alpha_{11}^{*} \alpha_{1n} X_n + \beta_2</tex>.  Пусть <tex> a =( \alpha_{21} \alpha_{11}^{*} \alpha_{12} +\alpha_{22} ) </tex>, <tex> b =\alpha_{21} \alpha_{11}^{*} \alpha_{13} X_3 + \dots + \alpha_{21} \alpha_{11}^{*} \alpha_{1n} X_n + \beta_2 </tex>, тогда уравнение примет вид <tex>X_2=a X_2 + b</tex>. его Его решением будет <tex>a^{*} b</tex>. подставим Подставим в следующее уравнение выраженный <tex>X_2</tex>, далее . Далее выполняя схожие итерации получим уравнение <tex>X_n = a' X_n + b'</tex>, где <tex> a'=f( \alpha_{11} \dots \alpha_{1n} \alpha_{2n} \dots \alpha_{nn} ),\, b'=g( \alpha_{11} \dots \alpha_{1n} \alpha_{2n} \dots \alpha_{nn} ) </tex>, тогда <tex>X_n= f^{*}( \alpha_{11} \dots \alpha_{1n} \alpha_{2n} \dots \alpha_{nn} )g( \alpha_{11} \dots \alpha_{1n} \alpha_{2n} \dots \alpha_{nn} )</tex>. далее  Далее подставляя в полученные в ходе итераций уравнения найденный <tex> X_i </tex>, обратной прогонкой найдем <tex>X_1 \dots X_{n-1} </tex>.
Анонимный участник

Навигация