Решение уравнений в регулярных выражениях — различия между версиями
Genyaz (обсуждение | вклад) (→Решение уравнений в регулярных выражениях: Изменение доказательства) |
|||
Строка 7: | Строка 7: | ||
если <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> 1) </tex> Пусть <tex>\varepsilon \notin \alpha </tex>. Тогда <tex>\forall i \geqslant 0: </tex> выражение <tex>\alpha^{i} \beta \subset X </tex>, следовательно <tex> \alpha^{*} \beta \subset X </tex>. Докажем это индукцией по <tex>i</tex>: при <tex>i = 0</tex> из начального равенства <tex>\beta \subset X</tex>, и если <tex>\alpha^{i} \beta \subset X</tex>, то <tex>\alpha^{i+1} \beta = \alpha \alpha^{i} \beta \subset \alpha X \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 \in X,\, z\notin \alpha^{*} \beta</tex> такой, что <tex> z </tex> — самое короткое; тогда <tex>z \notin \beta \subset \alpha^{*} \beta \Rightarrow z \in \alpha X, z=z_\alpha z', </tex> где <tex>z_\alpha \in \alpha, z' \in X </tex>. |
− | Тогда <tex> z_\alpha \ | + | Тогда <tex> z_\alpha \ne \varepsilon \Rightarrow z'</tex> короче <tex>z</tex>, противоречие, тогда не существует самого короткого <tex>z</tex>, значит не существует никакого. |
− | |||
− | + | <tex> 2)</tex> Пусть <tex> \varepsilon \in \alpha</tex>. Тогда можно представить этот язык в виде <tex>\alpha = \varepsilon + \alpha_{1}, \varepsilon \notin \alpha_{1}</tex>, а исходное равенство преобразуется в <tex>\varepsilon X + \alpha_{1} X + \beta = X</tex>. Теперь мы можем взять в качестве базы индукции не просто <tex>\beta</tex>, а любой язык <tex>L \supset \beta</tex>, или, что то же самое, любой <tex>\beta + L</tex>, и дальше показать <tex>\forall i \geqslant 0: {\alpha_{1}}^{i} (\beta + L) \subset X \Rightarrow {\alpha_{1}}^{*} (\beta + L) \subset X</tex>, а потом отсутствие самого короткого <tex>z \in X, z \notin {\alpha_{1}}^{*}(\beta + L)</tex>. Заметим, что <tex>\alpha^{*}={\alpha_{1}}^{*}</tex>, тогда <tex>X = {\alpha_{1}}^{*}(\beta + L) = \alpha^{*}(\beta + L)</tex>. | |
− | <tex> 2)</tex> Пусть <tex> \varepsilon \in \alpha</tex>. | ||
− | |||
− | |||
− | |||
− | |||
}} | }} |
Версия 14:26, 9 января 2015
Решение уравнений в регулярных выражениях
Пусть
— некий язык, для которого выполняется равенство , где — некие регулярные выражения над неким алфавитом .Утверждение: |
Пусть уравнение имеет вид
если , тогда — единственное решение если , тогда — решение для |
Пусть . Тогда выражение , следовательно . Докажем это индукцией по : при из начального равенства , и если , то . Пусть существует такой, что — самое короткое; тогда где .Тогда короче , противоречие, тогда не существует самого короткого , значит не существует никакого.
|
Решение системы уравнений в регулярных выражениях
Пусть система уравнений имеет вид
Метод решения
Выразим
из первого уравнения и подставим во второе уравнение: .Пусть
, , тогда уравнение примет вид . Его решением будет . Подставим в следующее уравнение выраженный .Далее выполняя схожие итерации получим уравнение
, где , тогда .Далее подставляя в полученные в ходе итераций уравнения найденный
, обратной прогонкой найдем .