Решение уравнений в регулярных выражениях — различия между версиями
(→Решение системы уравнений в регулярных выражениях) |
|||
Строка 1: | Строка 1: | ||
==Решение уравнений в регулярных выражениях== | ==Решение уравнений в регулярных выражениях== | ||
− | Пусть <tex>A</tex> — некий алфавит, <tex>\alpha,\,\beta</tex> — некие регулярные выражения над этим алфавитом. | + | Пусть <tex>A</tex> — некий алфавит, <tex>\alpha,\,\beta</tex> — некие регулярные выражения над этим алфавитом. X - некий язык к которому мы применяем эти регулярные выражения. |
{{Утверждение | {{Утверждение | ||
|statement= | |statement= | ||
− | Пусть уравнение имеет вид <tex>X = \alpha X + \beta \Rightarrow \, 1)</tex> | + | Пусть уравнение имеет вид <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> | если <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= | |proof= | ||
− | <tex> 1) </tex> Пусть <tex>\varepsilon \notin \alpha </tex>. тогда <tex>\forall i: </tex> выражение <tex>\alpha^{i} \beta \subset X </tex> для <tex>\forall | + | <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>. |
Версия 23:14, 15 октября 2010
Решение уравнений в регулярных выражениях
Пусть
— некий алфавит, — некие регулярные выражения над этим алфавитом. X - некий язык к которому мы применяем эти регулярные выражения.Утверждение: |
Пусть уравнение имеет вид
если , тогда — единственное решение. если , тогда — решение для |
Пусть . тогда выражение для , тогда . Пусть существует такой, что — самое короткое. где , тогда — короче . Следовательно .
Пусть . предположим, что — решение, тогда подходит в . Выберем в качестве любой язык.
|
Решение системы уравнений в регулярных выражениях
Пусть система уравнений имеет вид
метод решения
выразим из первого уравнения и подставим во второе уравнение: . Пусть , , тогда уравнение примет вид . его решением будет . подставим в следующее уравнение выраженный , далее выполняя схожие итерации получим уравнение , где , тогда . далее подставляя в полученные в ходе итераций уравнения найденный , обратной прогонкой найдем .