Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЯП / Лекция 1.doc
Скачиваний:
50
Добавлен:
11.05.2015
Размер:
117.25 Кб
Скачать

2.4.2. Уравнения с регулярными коэффициентами

При работе с языками часто удобно пользоваться уравнениями, коэффициентами и неизвестными которых служат множества. Такие уравнения будем называть уравнениями с регулярными коэффициентами

X = aX + b,

где aиb– регулярные выражения. Можно проверить прямой подстановкой, что решением этого уравнения будетa*b:

aa*b + b = (aa* + e)b = a*b,

т.е. получаем одно и то же множество. Таким же образом можно установить и решение системы уравнений.

Регулярные множества – множества, определенные регулярными выражениями. Регулярные множества являются языками, порождаемыми пра­во­ли­ней­нымиграмматиками.

Определение. Систему уравнений с регулярными коэффициентами назовемстандартной системойс множеством неизвестныхΔ = {X1, X2, …, Xn}, если она имеет вид:

X1 = α10 + α11X1 + α12X2 + … + α1nXn

X2 = α20 + α21X1 + α22X2 + … + α2nXn

………………………………………

Xn = αn0 + αn1X1 + αn2X2 + … + αnnXn

где αij– регулярные выражения в алфавите, не пересекающемся сΔ. Коэффициентами уравнения являются выраженияαij.

Если αij = , то в уравнении дляXiнет члена, содержащегоXj. Аналогично, еслиαij = e, то в уравнении дляXiчлен, содержащийXj– это простоXj. Иными словами,играет роль коэффициента 0, аe– роль коэффициента 1 в обычных системах линейных уравнений.

Алгоритм решения:

Вход. Стандартная системаQуравнений с регулярными коэффициентами в алфавитеΣи множеством неизвестныхΔ = {X1, X2, …, Xn}.

Выход. Решение системыQ.

Метод: Аналог метода решения системы линейных уравнений методом исключения Гаусса.

Шаг 1. Положить i = 1.

Шаг 2. Если i = n, перейти к шагу 4. В противном случае с помощью тождеств леммы записать уравнения дляXiв виде

Xi = αXi + β,

где α– регулярное выражение в алфавитеΣ, аβ– регулярное выражение вида

β0 + βi+1Xi+1 + … + βnXn,

причем все βi– регулярные выражения в алфавитеΣ. Затем в правых частях для уравненийXi+1, …, Xnзаменим Xiрегулярным выражениемα*β.

Шаг 3. Увеличить iна 1 и вернуться к шагу 2.

Шаг 4. Записать уравнение для Xnв видеXn = αXn + β, гдеαиβ– регулярные выражения в алфавитеΣ. Перейти к шагу 5 (при этомi = n).

Шаг 5. Уравнение для Xiимеет видXi = αXi + β, гдеαиβ– регулярные выражения в алфавитеΣ. Записать на выходеXi = α*β, в уравнениях дляXi–1, …, X1подставляяα*βвместоXi.

Шаг 6. Если i = 1, остановиться, в противном случае уменьшитьiна 1 и вернуться к шагу 5.

Однако следует отметить, что не все уравнения с регулярными коэффициентами обладают единственным решением. Например, если

X = αX + β

является уравнением с регулярными коэффициентами и αозначает множество, содержащее пустую цепочку, тоX = α*(β + γ)будет решением этого уравнения для любого γ. Таким образом, уравнение имеет бесконечно много решений. В ситуациях такого рода мы будем брать наименьшее решение, которое назовемнаименьшей неподвижной точкой. В нашем случае наименьшая неподвижная точка –α*β.

Соседние файлы в папке ТЯП