Решение уравнений в регулярных выражениях
НЕТ ВОЙНЕ |
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. Антивоенный комитет России |
Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. |
meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки. |
Уравнения в регулярных выражениях
Поскольку алгебра регулярных выражений является частным случаем алгебры Клини, то и соответствующие уравнения можно рассматривать как уравнения алгебры Клини. Сама эта алгебра классически используется в теории формальных языков, но также была применена к алгоритмам поиска пути в графах[1], нахождения выпуклой оболочки[2]. В компиляторах она может быть использована для доказательства корректности методик оптимизации циклов[3].
Решение уравнений в регулярных выражениях
Пусть язык, для которого выполняется равенство , где — некие регулярные выражения над неким алфавитом .
— некийУтверждение: |
Пусть уравнение имеет вид
если , тогда — единственное решение если , тогда — решение для |
Пусть . Тогда выражение , следовательно . Докажем это индукцией по : при из начального равенства , и если , то . Пусть существует такой, что — самое короткое; тогда где .Тогда короче , противоречие, тогда не существует самого короткого , значит не существует никакого.
|
Решение системы уравнений в регулярных выражениях
Пусть система уравнений имеет вид:
Метод решения
Выразим
из первого уравнения и подставим во второе уравнение: .Пусть
, , тогда уравнение примет вид . Его решением будет . Подставим в следующее уравнение выраженный .Далее выполняя схожие итерации получим уравнение
, где , тогда .Далее подставляя в полученные в ходе итераций уравнения найденный
, обратной прогонкой найдем .Пример решения системы уравнений в регулярных выражениях
Пусть нам нужно найти регулярное выражение, соответствующее языку
, слова которого интерпретируются как последовательности чисел , а языку удовлетворяют слова, сумма чисел в которых делится на 3. Тогда доопределив языки , сумма чисел в словах из равна по модулю , получим систему уравнений в регулярных выражениях:
Поскольку нам нужно найти только
, чтобы избежать обратной прогонки, начнём выражать языки с .
Примечания
- ↑ R.C. Backhouse, B.A. Carre: Regular algebra applied to path-finding problems. J. Institute of Mathematics and its applications 15, 161-186 (1975)
- ↑ K. Clenaghan: Calculational graph algorithmics: reconciling two approaches with dynamic algebra. CWI Amsterdam, Report CS-R9518, 1995
- ↑ M.C. Patron, D. Kozen: Certification of compiler optimizations using Kleene algebra with tests, Report 99-1779, Computer Science Department, Cornell University, Dec. 1999.