Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕОРИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.36 Mб
Скачать

Логико-термальная эквивалентность

Отношение эквивалентности Е, заданное на парах стандартных схем, называют корректным, если для любой пары схем S1 и S2 из S1 Е S2 следует, что S1 S2, т. е. S1 и S2 функционально эквивалентны.

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

Идея построения таких (корректных и разрешимых) отношений связанна с введением понятия истории цепочки схем. В истории с той или иной степенью детальности фиксируются промежуточные результаты выполнения операторов рассматриваемой цепочки. Эквивалентными объявляются схемы, у которых совпадают множества историй всех конечных цепочек.

Одним из отношений эквивалентности является логико-термальная эквивалентность (ЛТЭ).

Определим термальное значение переменной х для конечного пути w схемы S как терм t(w, x), который строится следующим образом.

1.Если путь w содержит только один оператор А, то: t(w, x) = , если А – оператор присваивания, t(w, x) = х, в остальных случаях.

2.Если w = w’Ае, где А – оператор, е – выходящая из него дуга, w’ – непустой путь, ведущий к А, а x1, …, xn – все переменные терма t(Ае, x), то t(w, x) = t(Ае, x)[t(w’, x1)/x1, …, t(w’, xn)/xn].

Понятие термального значения распространим на произвольные термы :

t(w, x) =  [t(w, x1)/x1, …, t(w, xn)/xn].

Например, пути start(х); y:=x; p1(x); x:=f(x); p0(y); y:=x; p1(x); x:=f(x) в схеме на рисунке 1.5, а соответствует термальное значение f(f(x)) переменной х.

Для пути w в стандартной схеме S определим ее логико-термальную историю (ЛТИ) lt(S, w) как слово, которое строится следующим образом.

1.Если путь w не содержит распознавателей и заключительной вершины, то lt(S, w) – пустое слово.

2.Если w = w’vе, где v – распознаватель с тестом p(1, ..., k), а е – выходящая из него Δ-дуга, Δ 0,1, то

lt(S, w) = lt(S, w’) pΔ(t(w’, 1), …, t(w’, k)).

3.Если w = w’v, где v – заключительная вершина с оператором stop(1, ..., k), то lt(S, w) = lt(S, w) t(w, 1) … t(w, k).

Например, логико-термальной историей пути, упомянутого в приведенном выше примере, будет p1(x) p0(x) p1(f(x)).

Детерминантом (обозначение: det(S)) стандартной схемы S называют множество ЛТИ всех ее цепочек, завершающихся заключительным оператором.

Схемы S1 и S2 называют ЛТЭ (лт - эквивалентными) S1 ЛТ S2, если их детерминанты совпадают.

Приведем без доказательства следующие утверждение:

Логико-терминальная эквивалентность корректна, т. е. из ЛТЭ следует функциональная эквивалентность (S1 ЛТ S2 S1 S2). Обратное утверждение как видно из рисунка 1.5 не верно.

ЛТ – эквивалентность допускает меньше сохраняющих ее преобразований, чем функциональная эквивалентность.

Моделирование стандартных схем программ

Одноленточные автоматы

Конечный одноленточный (детерминированный, односторонний) автомат обнаруживают ряд полезных качеств, используемых в теории схем программ для установления разрешимости свойств ССП.

Одноленточный конечный автомат (ОКА) над алфавитом V задается набором: A = {V, Q, R, q0, #, I} и правилом функционирования, общим для всех таких автоматов. В наборе А:

V - алфавит;

Q - конечное непустое множество состояний (Q V=);

R - множество выделенных заключительных состояний (R Q);

q0 - выделенное начальное состояние;

I - программа автомата;

# - «пустой» символ.

П рограмма автомата I представляет собой множество команд вида qа q', в которой q,q' Q, a V и для любой пары (q, a) существует единственная команда, начинающаяся этими символами.

Неформально ОКА можно представить как абстрактную машину, похожую на машину Тьюринга, но имеющую следующие особенности:

1) выделены заключительные состояния;

2) машина считывает символы с ленты, ничего не записывая на нее;

3) на каждом шаге головка автомата, считав символ с ленты и перейдя согласно программе в новое состояние, обязательно передвигается вправо на одну клетку;

4) автомат останавливается в том и только в том случае, когда головка достигнет конца слова, т.е. символа .

Говорят, что автомат допускает слово  в алфавите V, если, начав работать с лентой, содержащей это слово, он останавливается в заключительном состоянии. Автомат A задает характеристическую функцию множества MA допускаемых им слов в алфавите V, т. е. он распознает, принадлежит ли заданное слово множеству MA если связать с остановкой в заключительном состоянии символ 1, а с остановкой в незаключительном состоянии – 0.

Наглядным способом задания ОКА служат графы автоматов. Автомат А представляется графом, множество вершин которого – множество состояний Q, и из вершины q в вершину q’ ведет дуга, помеченная символом а, тогда и только тогда, когда программа автомата содержит командуqа q'. Работе автомата над заданным словом соответствует путь из начальной вершины q. Последовательность проходимых вершин этого пути – это последовательность принимаемых автоматом состояний, образ пути по дугам – читаемое слово. Любой путь в графе автомата, начинающийся в вершине q0 и заканчивающийся в вершине q R, порождает слово, допустимое автоматом.

Пример 1.2. ОКА A = ({a, b}, {q0, q1, q2, q3}, {q2}, q0, , I), допускающего слова {an bm | n = 1,2, ...; m = 1,2, ...}, задается графом (рисунок 1.6.). Программа I содержит команды:

q0a q1; q0b q3; q1a q1; q1b q2; q2a q3; q2b q2; q3a q3; q3b q3.

Автомат называется пустым, если МА = , Автоматы А1 и А2 эквивалентны, если МА1 = МА2. Для машины Тьюринга проблемы пустоты и эквивалентности неразрешимы, более того, они не являются частично разрешимыми. Ситуация меняется для конечных автоматов.

Для ОКА доказано:

1) Проблема пустоты ОКА разрешима.

Доказательство основано на проверке допустимости конечного множества всех слов, длина которых не превышает числа состояний ОКА - n. Если ни одно слово из этого множества не допускается, то ОКА «пуст».

2) Предположение о том, что минимальная длина допускаемого слова больше n отвергается на том основании, что оно может быть сведено к слову меньшей длины, путем выбрасывания участков между двумя повторяющимися в пути узлами.

3) Проблема эквивалентности ОКА разрешима.

Доказательство основано на использовании отношения эквивалентности двух состояний q и q': если состояния q и q' эквивалентны, то для всех a A состояния (q, a) и '(q', a) также эквивалентны. Формируемые пары не должны входить одновременно заключительное и незаключительное состояния.