книги из ГПНТБ / Алферова, З. В. Математическое обеспечение экономических расчетов с использованием теории графов
.pdfРаспознаватель |
с логическим |
условием |
pAq |
обозначается на |
||||||
схеме просто |
pq. |
|
|
|
|
|
|
|
|
|
Определим понятие эквивалентности операторных схем Янова. |
||||||||||
Пусть дана схема G(AU |
Л„, |
ри |
рк). Будем |
обозначать |
бук |
|||||
вой Д с индексом или без |
него |
упорядоченный |
двоичный |
набор |
||||||
значений переменных рх, |
рк. |
|
понятие |
конфигурации, |
||||||
Для операторной схемы G определим |
||||||||||
строящейся с |
помощью процесса |
«блуждения», |
задаваемого по |
|||||||
индукции. Сама конфигурация будет получаться |
в |
виде двойной |
||||||||
последовательности |
наборов значений |
логических |
переменных |
|||||||
Pi, •••> Рк и символов операторов |
А\, |
Ап, |
записываемых |
в виде |
||||||
двух строк: верхней — для |
наборов |
и нижней — для |
операторов. |
|||||||
При построении |
конфигурации |
основываемся |
|
на некотором |
||||||
базисе индукции, от которого осуществляются последующие шаги индукции. Построение базиса и шагов следующее.
Базис |
индукции. В |
верхнюю строку записывается |
произволь |
||||
ный набор А, нижняя |
строка пуста. Движение |
по |
схеме |
G начи |
|||
нается в направлении, указанном входной стрелкой. |
|
|
|||||
Шаг |
индукции. |
Пусть происходит движение по схеме с набором |
|||||
Д. Если |
стрелка |
приводит к распознавателю R(a), |
то |
вычисляется |
|||
а ( Д ) . Если а(Д) = 1, то с тем же набором движение |
продолжается |
||||||
по плюс-стрелке, |
выходящей из распознавателя |
R. |
Если |
а ( Д ) = 0 , |
|||
то движемся по минус-стрелке. Если стрелка приводит к операто ру А(р), то выписываем символ оператора Л в нижнюю строку конфигурации и преобразуем набор А в набор Д' с таким услови ем, что набор Д' может отличаться от набора Д значениями тех пе
ременных из р\, |
рк, которые входят |
в сдвиг р оператора Л. |
Набор Д' выписывается в верхнюю |
строку, конфигурации, и |
|
движение продолжается по стрелке, выходящей из Л. |
||
Если стрелка |
приводит к конечному |
оператору, то его символ |
выписывается в нижнюю строку и построение конфигурации обры вается.
При движении по распознавателям возможен случай, когда, не попав ни на один из операторов, мы придем снова к недавно пройденному распознавателю. В этом случае движение по распоз
навателю |
станет бесконечным. |
При |
обнаружении |
такого |
цикла |
|
движения |
искусственно прерывается и в нижнюю строку ставится |
|||||
символ пустого периода |
( |
) . |
|
|
|
|
Таким |
образом, любая |
конкретная |
конфигурация |
имеет |
вид: |
|
При этом она либо является бесконечной, либо обрывается (на ниж-
(
Любая пара соседних наборов Ат, Am+i может отличаться значениями только тех переменных, которые входят в сдвиг опера тора Ajm.
90
Верхняя последовательность |
наборов |
называется |
допустимой |
||
последовательностью 5 наборов для схемы G, нижняя |
последова |
||||
тельность операторов называется значением Z схемы G, определяе |
|||||
мым допустимой |
последовательностью 5. |
|
|
|
|
Поскольку при |
построении конфигурации возможен |
произвол |
|||
(в выборе Ai при |
переходе от Д т |
к Am+i), |
очевидно, |
что |
правило |
ставит в |
соответствие каждой схеме G некоторое множество конфи |
|||
гураций |
K(G), |
являющееся в общем |
случае |
бесконечным. |
Выпишем пример конфигурации для приведенной схемы Янова. |
||||
Пусть Д = 10 |
(где первая переменная |
р = \, |
а вторая <7 = 0), тогда |
|
пример |
конфигурации имеет вид: |
|
|
|
Конфигурацию, в которой при ее построении символы распоз навателей выписываются в нижней строке так же, как и операто ры, называют точной конфигурацией. Таким образом, точная кон фигурация регистрирует прохождение всех вершин при блуждениях по схеме. Очевидно, что между конфигурациями и точными конфигурациями одной схемы существует взаимно однозначное соответствие.
Точная конфигурация для приведенного примера имеет вид:
|
10 |
_ |
10 |
10 |
|
|
10 |
10 |
|
10 |
|
|
|
|
р |
|
pq |
Аг{ |
) |
|
р |
q |
|
|
|
Отношение |
эквивалентности |
определяется |
для |
любой пары |
||||||||
операторных схем G{ и G2 |
с одними |
и теми же логическими пере |
||||||||||
менными |
Pi, |
рк- |
Схемы |
Gi |
и |
G2 |
|
являются |
эквивалентными |
|||
( G i ^ G 2 ) , |
если |
K{Gi) |
=K(G2), |
т. е. если совпадают |
их |
множества |
||||||
конфигураций. |
|
|
|
|
|
|
|
|
|
|
|
|
Эквивалентность |
|
схем |
обладает |
свойствами рефлексивности |
||||||||
и транзитивности. |
|
|
|
|
|
|
|
|
|
|
||
Как указывалось, |
система |
правил |
преобразований |
оператор |
||||||||
ных схем Янова построена в виде логического исчисления, т. е. со вокупности аксиом и правил вывода. Аксиомы в этом исчислении постулируют безусловную возможность замены некоторого фраг мента операторной схемы другим фрагментом, предписываемым данной аксиомой. Правила вывода постулируют возможность за мены одного фрагмента другим при выполнении некоторых усло вий, содержащихся в посылке данного правила вывода.
Фрагментом операторной схемы G называется некоторая часть
(подграф) |
схемы |
G, для |
которой |
указана |
ее связь с остальными |
|
вершинами |
схемы |
G. Эта |
связь указывается |
в виде выходов и вхо |
||
дов фрагмента. |
Выходы |
фрагмента — это |
различные |
стрелки, |
||
которые |
показывают, |
какие |
вершины |
фрагмента |
соединены |
|
91
|
с остальными |
вершинами |
схе |
|||||
|
мы. |
|
|
|
|
|
|
|
|
Входы |
фрагмента |
— это |
|||||
|
различные стрелки, показываю |
|||||||
|
щие, к каким вершинам фраг |
|||||||
|
мента ведут стрелки от осталь |
|||||||
|
ных |
вершин |
схемы. |
Входы |
||||
|
фрагмента могут быть |
указаны |
||||||
|
также в виде обобщенного вхо |
|||||||
|
да, |
который |
указывает, |
к ка |
||||
|
кой вершине может вести про |
|||||||
|
извольная |
совокупность |
стре |
|||||
|
лок, выходящих либо от ос |
|||||||
|
тальных |
вершин |
схемы, |
либо |
||||
|
(если это не запрещается спе |
|||||||
|
циальной |
оговоркой) |
от |
выхо |
||||
|
дов этого же фрагмента. Обоб |
|||||||
|
щенные |
выходы |
указываются |
|||||
Рис. 15. Пример фрагмента операторной |
ж и р |
н ы м |
и |
стрелками. |
Входы |
|||
с х е м ы |
метятся |
римскими |
цифрами, |
|||||
|
выходы — арабскими цифрами. |
|||||||
Поясним сделанные определения на примере фрагмента, пред ставленного на рис. 15. В нем указывается, что к верхнему распоз навателю обязательно подходит некоторая стрелка. В оператор А извне могут входить любые стрелки. В нижний распознаватель могут вести извне любые стрелки, но среди них не может быть ни одной из выходных стрелок фрагмента, помеченных цифрой 2.
Пометка двух выходных стрелок одной и той же цифрой |
означа |
ет, что обе эти стрелки должны вести к одной и той же |
вершине |
схемы. |
|
Сами аксиомы и утверждения правил вывода имеют вид соот ношений равносильности, т. е. двух фрагментов, разделенных зна ками равносильности ~ . Аксиомы и. правила вывода представле ны на рис. 16. Исследуем содержание этой аксиоматики. Логиче ские аксиомы постулируют связь базисных логических функций (нуль, отрицание и дизъюнкция) с правилами выбора стрелок при выполнении распознавателей. Их справедливость очевидна. Топо логические аксиомы постулируют возможность определенных топологических изменений схемы (т. е. изменения соединений между вершинами схемы и устранения вершин). Аксиома 4 ут верждает, что оператор без входа может быть устранен, аксиома 5 постулирует эквивалентность пустых периодов, аксиома 6 посту лирует сохранение значений логических переменных при движении по распознавателям схемы. Аксиомы распределения наборов фор мализуют понятие допустимости набора для распознавателя или преобразователя схемы. Будем трактовать логические функции ф(Д) как множества тех наборов А, на которых 0 ( Д ) = 1. Аксио мы группы 3 задают правила пометки стрелок операторной схемы
92
/ Логические аясиомы
|
|
I |
- / |
|
О у / |
ос |
) ~ |
|
|
7 |
|
|
||
|
|
|
|
|
/ |
г |
г |
г |
Р |
|
? Текнопогичесние аксиомь/
I I!
51
~Л
/ |
2 |
|
|
3. Яка/омы распределения |
наборов |
|
|
|
|
|
/ |
// / |
// |
I |
I |
? 9 |
9) |
|
Ю) |
|
|
|
|||
V |
|
8) |
|
|
|
я |
pvmax№) |
|
p |
Правило
'fir*
Рис. 16. Аксиомы и правила вывода
93
некоторыми |
логическими функциями, представляющими те набо |
|||
ры, которые |
могут «проходить» |
вдоль |
стрелок при |
построении |
конфигураций схемы. Аксиома |
7 носит |
служебный |
характер, |
|
задавая «начальное значение» метящих функций в виде пустого множества наборов. Аксиома 8 постулирует тот факт, что на вход ную стрелку операторной схемы может быть подан любой набор. Аксиома 9 утверждает, что если на вход распознавателя с услови ем а попадает некоторое множество наборов ф, то оно полностью
переносится на выходы распознавателя; при этом |
те наборы из ср, |
|
на которых а = 1 , переносятся на плюс-стрелку, а |
остальные — на |
|
минус-стрелку. Аксиома 10 утверждает, что если |
на вход |
опера |
тора А со сдвигом Р попадает множество наборов ср, то оно |
порож |
|
дает на выходе А множество всех наборов, отличающихся от набо
ров из |
ф только, |
может |
быть, |
значениями |
переменных, |
входящих |
|||||||
в сдвиг |
Р. |
|
|
|
|
|
|
|
|
|
|
|
|
Из |
аксиом |
распределения |
наборов |
видно, что |
при |
пометке |
|||||||
стрелок |
схемы |
единственным |
безусловным |
источником |
наборов |
||||||||
значений |
логических переменных является |
входная |
стрелка. Ак |
||||||||||
сиома 9 переносит на выходные стрелки лишь |
те наборы, которые |
||||||||||||
поступают на вход распознавателя. Аксиома |
10 порождает |
лишь |
|||||||||||
те наборы, которые могут получиться |
из |
наборов, |
поступающих |
||||||||||
на вход оператора, применением операции |
взятия максимума |
|
(за |
||||||||||
метим, |
что max |
(0)=0 |
для любого Р). |
Таким |
образом, если |
в |
ре- |
||||||
|
|
р |
|
|
|
|
|
|
|
|
|
|
|
зультате применения аксиом 7—10 на |
стрелке 5, |
ведущей |
к |
не |
|||||||||
которой вершине V операторной схемы, появилось множество набо |
|||||||||||||
ров ф, то это значит, что каждый из этих |
наборов |
мог |
появиться |
||||||||||
на стрелке 5 лишь в результате применения аксиом 7—10 |
к цепоч |
||||||||||||
ке фрагментов |
схемы, образующих путь от входной стрелки до вер |
||||||||||||
шины |
V. |
|
|
|
|
|
|
|
|
|
|
|
|
Поскольку операторная схема в целом является частным слу |
|||||||||||||
чаем понятия |
фрагмента, рассмотренная |
аксиоматика |
позволяет |
||||||||||
выводить |
соотношения |
равносильности |
для |
операторных |
схем. |
||||||||
Свойства равносильности как некоторого бинарного соотношения выражает следующая лемма: отношение равносильности является
рефлексивным, симметричным и транзитивным. |
|
||||
Доказательство. |
Рефлексивность |
следует |
из правила |
1 при |
|
одинаковых а и р . |
Симметричность |
следует |
из правила 2, |
если в |
|
качестве посылки |
взять |
следующие |
соотношения: |
|
|
|
F\ |
~ F2 > |
F\ ~ F\ • |
|
|
Доказательство транзитивности требует в качестве посылки соот ношения:
Fi~F2> F2~F3 •
По симметричности эту посылку можно переписать в виде
F2~F\> |
F2~F3 |
. |
откуда по правилу 2 вытекает, что F |
i ~ F \ . |
|
94
Формальную возможность трактовать рассмотренную аксио матику как правила преобразования операторных схем представ
ляет |
следующая |
лемма (правило подстановки): если |
Fi~F2, |
то |
||||||
|
|
|
|
F(Fl)~F(Fa) |
|
• |
|
|
|
|
Доказательство. |
Взяв в правиле 2 в качестве |
посылки |
|
|||||||
|
|
|
|
f , ~ f a , |
F(Fl)~F(F1) |
. |
|
|
|
|
получим, что F(F2) |
~ FIF^), |
откуда |
в |
силу симметричности |
выте |
|||||
кает |
утверждение |
леммы. |
|
|
|
|
|
|
||
Таким образом, справедлива следующая теорема: любые две |
||||||||||
равносильные операторные схемы Янова эквивалентны. |
|
|||||||||
До сих |
пор |
мы |
рассматривали |
эквивалентность |
операторных |
|||||
схем |
Янова |
как |
совпадение |
множества |
всех |
конфигураций |
этих |
|||
систем. Представляет интерес рассмотрение более слабых эквивалентностей, основанных на совпадении более узких множеств кон фигураций.
Э. Л. Горель вводит следующее понятие конечной эквивалент
ности |
схем Янова |
[19]. Операторные схемы |
Янова G\ и |
G2 |
конеч- |
|
|
|
k |
|
|
|
|
но эквивалентны |
(Gi~G2), |
если множества |
их конечных |
конфигу |
||
раций |
совпадают. |
|
|
|
|
|
Для получения полной системы конечно |
эквивалентных |
преоб |
||||
разований к полной системе эквивалентных |
преобразований до |
|||||
бавляются одна аксиома и два правила вывода. Алгоритм распо
знавания конечной |
эквивалентности |
операторных |
схем |
может |
|||
быть получен |
из алгоритма |
преобразования любой |
операторной |
||||
схемы Янова |
некоторой |
его |
модификацией. |
|
|
||
§ |
3. 5. |
ЭКВИВАЛЕНТНЫЕ |
ПРЕОБРАЗОВАНИЯ |
ПРОГРАММ |
|||
Система эквивалентных преобразований алгоритмов является |
|||||||
теоретической |
основой для |
разработки и совершенствования |
аппа |
||||
рата эквивалентных преобразований программ как одного из част ных случаев представления алгоритмов.
Преобразования программ могут выполняться в двух направ
лениях: |
|
|
|
|
а) |
с |
целью |
экономии |
памяти; |
б) |
с |
целью |
экономии |
времени. |
Задача экономии памяти состоит в том, чтобы, выполняя пре образования над программой, получить программу, использую щую при своей работе возможно наименьший объем памяти вычис лительной машины.
Задача экономии времени состоит в том, чтобы выполнить такие преобразования над программой, которые позволили бы по лучить из нее программу решения той же задачи, но требующую минимального времени решения.
В настоящее время имеется ряд работ, посвященных таким эквивалентным преобразованиям программ. Наибольший интерес
95
среди них представляют работа С. С. Лаврова [48], в которой рассматривается глобальная экономия памяти для операторных схем программ, и работа Т. Мерилл [56], в которой рассматри вается система эквивалентных преобразований в двух указанных аспектах.
Имеются различные варианты решения проблемы экономии памяти. В общем случае экономия памяти будет достигаться толь ко тогда, когда имеется возможность сопоставления одной ячейки
памяти нескольким |
объектам программы — совмещения |
объектов |
в программе. |
|
|
Согласно теории |
глобальной экономии памяти любой |
допусти |
мый вариант совмещения величин получается в результате реше
ния |
известной |
комбинаторной задачи — раскраски |
вершин графа |
||||||||
несовместимостей, который строится по |
операторной |
схеме |
про |
||||||||
граммы. |
Граф |
несовместимостей |
имеет |
R |
вершин, |
где |
R — ~Zrj. |
||||
Каждой величине Xj операторной схемы |
сопоставляется |
г,- — пол |
|||||||||
ный подграф |
графа несовместимостей (где г,- число |
попарно |
смеж |
||||||||
ных друг с другом вершин). |
|
|
|
|
|
|
|
||||
Пусть величинам х и у сопоставлены |
подграфы G(x) и G(y). |
||||||||||
Если |
х и у нельзя совместить друг |
с другом, |
то все |
вершины из |
|||||||
G(x) |
и |
G(y) |
попарно соединяются |
друг |
с другом |
ребрами. Если |
|||||
х и у совместимы, то между вершинами |
подграфов |
G(x) |
и |
G(y) |
|||||||
не проводится ни одного ребра. |
|
|
|
|
|
|
|
||||
Соответствие между раскраской графа несовместимостей и ва |
|||||||||||
риантом |
совмещений величин определяется |
следующим |
образом: |
||||||||
все компоненты величин, соответствующие вершины которых окра
шены одной краской, совмещаются друг с другом, отсюда |
глобаль |
||||||||||||
ная экономия памяти требует решения |
трех |
задач: |
|
|
|
||||||||
|
1. |
Построение |
операторной схемы. |
|
|
|
|
|
|||||
|
2. |
Построение |
графа несовместимостей по операторной схеме. |
||||||||||
|
3. |
Раскраска |
графа |
несовместимостей. |
|
|
|
|
|||||
|
В построении операторной схемы важное место занимает опре |
||||||||||||
деление аргументов и результатов каждого |
оператора |
оператор |
|||||||||||
ной схемы. |
|
|
|
|
|
|
|
|
|
|
|
||
|
Определение аргументов и результатов операторов происходит |
||||||||||||
по |
следующим |
правилам/ |
|
|
|
|
|
|
|
||||
|
1. Величина х является результатом оператора Л, если число |
||||||||||||
вхождений |
х в |
операторную схему |
не |
равно |
числу |
вхождений х |
|||||||
в оператор А и х появляется в Л в качестве результата |
какой-либо |
||||||||||||
команды. |
|
х |
|
|
|
|
оператора А, |
|
|
|
|||
х |
2. |
Вершина |
является |
аргументом |
если |
впервые |
|||||||
появляется |
в |
Л не |
в |
качестве |
результата. |
|
|
|
|||||
|
Важным |
вопросом |
экономии |
памяти |
является |
|
построение |
||||||
графа несовместимостей по заданной операторной схеме. |
|
||||||||||||
|
Согласно теории величины х и у несовместимы, |
если |
имеют |
||||||||||
место |
зацепления |
областей их действия |
D(x) |
и D(y). |
Областью |
||||||||
зацепления |
величины х |
называется |
компонента связанности носи- |
||||||||||
96
теля множества всех маршрутов величины х в операторной схеме. Две области действия D(x) и D(y) зацеплены тогда и только
тогда, когда не пусто множество
|
# ( * ) П (H(y)U |
|
В{у))[}Н{у) |
П |
(//(*) |
U |
В(х)}, |
|
|
||
где Н(х) |
— множество |
операторов, |
являющихся |
началом |
хотя |
бы |
|||||
В(х) |
одного маршрута величины х; |
|
|
|
|
|
|||||
— множество |
операторов, |
являющихся внутренними |
опе |
||||||||
|
раторами хотя бы одного маршрута величины х. |
|
|||||||||
Множество В(х) строится как пересечение |
двух |
множествЕ(х) |
|||||||||
и Ь(х), |
где Е(х) — множество всех операторов, |
достижимых |
при |
||||||||
движении по операторной схеме вдоль |
стрелок, |
|
отправляясь от |
||||||||
любого оператора, вырабатывающего х, a L(x) |
— множество всех |
||||||||||
операторов, достижимых |
при движении |
по схеме |
против |
стрелок, |
|||||||
отправляясь |
от любого |
оператора, |
воспринимающего х |
(движе |
|||||||
ние обрывается при достижении оператора, |
вырабатывающегох). |
||||||||||
Раскраска |
вершин |
графа — сложная |
комбинаторная |
задача. |
|||||||
Задача построения алгоритма раскраски, который давал бы мини
мальные |
раскраски за приемлемое число элементарных действий, |
в общем |
случае считается неразрешимой. |
Наиболее оптимальным подходом к решению задачи раскраски вершин графа несовместимости является следующий.
Массивы разбиваются на небольшие группы так, что веса мас сивов, попавших в одну группу, имеют одинаковые или близкие друг к другу значения. Веса разных групп резко отличаются друг от друга. Необходимо тщательно организовать совмещение вели
чин одинакового веса. Для |
величин же разного |
веса |
экономия |
||||
памяти |
будет |
достигаться |
путем соединения |
массивов |
меньшего |
||
веса в |
массив |
с |
большим |
весом. |
|
|
|
Преобразование |
программ, представленных |
в |
виде |
так назы |
|||
ваемых вычислительных цепей, позволяет минимизировать не толь ко объем требуемой памяти, но и время реализации. Вычислитель ная цепь реализуется линейной программой, не содержащей раз ветвлений, переходов и модификации адресов. Она представляет собой последовательность входных, выходных и вычислительных утверждений. Каждое утверждение имеет номер.
Входное утверждение представляет собой последовательность наименования входной переменной, ориентированной направо стрелки, и наименования ячейки памяти (указатель хранения). Например, входное утверждение
12)х—+М3
имеет номер 12, входную переменную х и указатель хранения М3. Выходное утверждение содержит наименование ячейки памяти (указатель выборки), ориентированную направо стрелку и наиме
нование выходной переменной. Например,
2)М5—>у.
7. Заказ 4230. |
97 |
Вычислительное утверждение образуется из наименования однозначной функции п аргументов ( n ^ l ) , ориентированной на право стрелки, и наименования ячейки памяти (указатель хране ния). Аргументы функции носят название указателей выборки вы числительного утверждения. Пример вычислительного утвержде ния:
3) Умн. (Mi, Mi) — > М 3 .
Два вычислительных утверждения относятся к одному и тому Же типу, если они содержат одну и ту же элементарную функцию и имеют одно и то же число указателей выборки.
Например,
7) |
Дел (Л1ь |
М 2 ) — * М 3 . |
|
|
3) |
Дел (Мг, |
М7) г-+Мх |
• |
|
Утверждения в цепи образуют цикл в том случае, когда указа |
||||
тели выборки данного утверждения являются |
в то же время ука |
|||
зателями хранения предшествующего утверждения цепи. |
||||
Пусть Si — не выходное |
утверждение цепи |
С и 5 j — не входное |
||
утверждение С. Говорят, что S* есть прообраз |
по отношению к 1-шу |
|||
указателю выборки |
Sj |
в том и только |
в том случае, если |
|||||||
а) Si |
встречается |
в |
цепи раньше, чем SJ; |
|
|
|||||
б) |
Mi — /-й указатель |
выборки Sj |
и Sj |
имеет указатель хране |
||||||
ния |
Mi; |
|
|
|
|
|
|
|
SQ |
|
в) |
не |
существует |
такого утверждения |
So, |
что |
встречается |
||||
между Sj и Sj в С и S0 |
имеет указатель хранения |
Mi. |
Если Sj-— |
|||||||
Если |
Si — прообраз |
Sj, то Sj называется образом Si. |
||||||||
прообраз |
Sj, то объект, |
помещаемый |
в |
память |
посредством S,-, |
|||||
есть один из объектов, выбираемых из памяти посредством |
Sj. |
|||
«Предком»- А данного утверждения S цепи С называется |
класс |
|||
утверждений |
С, |
образованных |
следующим образом. |
|
Во-первых, |
S |
есть член А, |
во-вторых, любой прообраз |
члена |
Аесть также член А.
Утверждение в цепи С называется пустым, если оно не содер
жится в множестве предков любого |
выходного |
утверждения С. |
Это дает возможность установить, что |
цепь не |
содержит пустых |
утверждений. Если этого оказывается недостаточно, то удаление всех пустых утверждений достигается путем объединения предков всех выходных утверждений и вычеркивания любого утверждения, не входящего в это объединение.
Если каждое невходное утверждение цепи имеет прообраз по отношению к каждому из указателей выборки, то цепь хорошо ор ганизована.
Если цепь хорошо организована, то каждое непустое и отлич ное от входного утверждение этой цепи имеет прообраз по отноше нию к каждому указателю выборки.
Цепь хорошо организована и не содержит пустых утверждений в том и только в том случае, если каждое невходное утверждение цепи имеет прообраз по отношению к каждому из его указателей
98
выборки и каждое из невходных утверждений цепи |
является про |
|||||
образом |
какого-либо |
утверждения. |
|
|
|
|
В дальнейшем полагается, что цепи |
хорошо |
организованы. Для |
||||
каждой |
цепи |
можно |
построить так |
называемую |
сопряженную |
|
цепь, которая |
получается из первоначальной |
путем |
замены каж |
|||
дого указателя выборки номером соответствующего прообраза и
исключения стрелок и указателей |
хранения |
из всех невыходных |
|
утверждений. |
|
|
|
Исходная цепь |
Сопряженная цепь |
||
1) |
v—t-Mt |
1) |
v |
2) |
w^>M2 |
2) |
w |
3) |
Ф , ( М Ь М2)=+Мх |
3) |
Ф,(1, 2) |
4) |
Л*,—>у |
4) |
3—+у |
5) х=->М2 |
5) |
х |
|
6) Ф2(МиМ2)—>М3 |
6) |
Ф2 (3,5) |
|
7) M3-^z |
7) 6—>2 |
||
Числа, которые в сопряженной |
цепи заменяют соответствующие |
||
указатели, называются числами сопряжения. Например, утвержде ние 6) в приведенном выше примере имеет числа сопряжения 3 и 5.
Поскольку указатели цепи соответствуют ячейкам оперативной памяти вычислительной машины, то существенно важно миними зировать число различных указателей цепи. Для этого необходи мо установить алгоритм перехода от данной цепи к другой, выра жающей ту же функцию, но использующей меньшее число различ ных указателей.
Существуют некоторые ограничения. Число различных указа телей в хорошо организованной цепи не может быть больше числа невыходных утверждений. Это следует из того, что каждое вход ное и каждое вычислительное утверждение включает в себя не бо лее одной ячейки памяти, не входящей в предшествующие утверж
дения, что и определяет верхнюю |
грань числа |
указателей. |
Пусть щ есть число различных |
прообразов |
1-го утверждения |
некоторой цепи. Тогда цепь должна содержать |
по крайней мере |
|
«j различных указателей. Поэтому наибольшее |
из чисел щ опре |
|
деляет нижнюю грань числа различных указателей цепи. |
||
Алгоритм минимизации числа указателей цепи сводится к сле
дующему: |
|
|
|
||
а) |
формируется |
соответствующая |
сопряженная |
цепь; |
|
б) |
рассматриваются поочередно все невыходные |
утверждения, |
|||
начиная |
с первого. |
|
|
|
|
Для |
t'-ro утверждения: |
|
|
||
1. Первая задача |
состоит в выборе |
указателя |
хранения для |
||
i-ro утверждения. Всякий указатель допустим в качестве указателя хранения в утверждении i, если этот указатель не используется уже в качестве указателя выборки в одном из утверждений, распо ложенных ниже L Если указатель, уже входящий в цепь в i или допустим в качестве указателя хранения, он выбирается
99
