книги из ГПНТБ / Алферова, З. В. Математическое обеспечение экономических расчетов с использованием теории графов
.pdfЛ2 . Таким образом, (Mi)a будет обозначать |
|
булево выражение, |
да |
|||||||||||
ющее условие, при котором х3- следует за xt |
|
в Л;. |
|
|
||||||||||
|
0 |
1 |
0 |
0 |
0 |
\ |
|
|
// Р2- |
1 |
0 |
0 |
|
|
|
0 |
pi |
0 |
Pi |
0 \ |
|
|
0 |
Р2 0 |
|
||||
|
0 0 0 |
1 |
0 |
|
; М 2 = |
0 |
|
0 |
0 0 |
|
||||
|
0 |
0 |
Рз |
0 |
Рз |
/ |
|
|
0 |
|
0 |
0 |
0 |
|
|
0 0 |
0 0 |
о / |
|
|
\ 0 |
|
0 |
0 0 |
|
||||
2. Строим матрицу М, такую, что |
|
|
|
|
|
|
|
|||||||
|
|
|
{M)ij=p{Ml)ii+J{M2)ii |
|
|
; |
|
|
|
|||||
|
|
|
0 |
р + р |
|
0 |
|
0 |
|
0 |
|
|
|
|
|
М = |
|
РР2 |
РР\ |
|
РР2 |
ppl |
|
0 |
|
|
|
||
|
|
0 |
|
0 |
|
0 |
|
р |
|
р |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
0 |
|
0 |
РРз |
|
0 |
|
РРз |
|
|
|
|
|
|
|
0 |
|
0 |
|
0 |
0 |
0 |
|
|
|
||
Строим матрицу М* из М следующим образом: |
|
|
||||||||||||
а) |
если |
(М)ц |
= р+~р, то |
|
(М*)и=1; |
|
|
|
|
|
|
|||
б) |
если р или р не встречается |
в |
некоторой |
строке М, то |
уда |
|||||||||
ляем все появления р или р в этой строке. |
|
|
|
|
|
|||||||||
|
|
|
|
0 |
1 |
|
0 |
|
0 |
|
|
0 |
|
|
|
|
|
РР2 |
РР1 |
РР2 |
РР1 |
|
|
0 |
|
|
|||
|
|
|
|
0 |
0 |
|
0 |
|
р |
|
~р |
|
|
|
|
|
|
|
0 |
0 |
Рз |
0 |
|
|
Рз |
|
|
||
|
|
|
|
0 |
0 |
|
0 |
|
0 |
|
|
0 |
|
|
Эта матрица является полным представлением составного ал горитма, показанного на рис. 20. Можно обобщить эту процедуру на случай композиции алгоритмов, содержащей более одной за данной двоичной переменной, но это не совсем тривиально.
Был рассмотрен синтез составного алгоритма. Рассмотрим об ратную задачу — получение алгоритма для отдельного случая из составного алгоритма. Предположим, что дан алгоритм, приведен ный на рис. 20, и что нужно получить подходящий алгоритм для случая р = 1. Это может быть сделано просто выделением правиль
ных путей и правильных циклов составного |
алгоритма удалением |
||
тех из них, в которых появляется р, и построением |
алгоритма, со |
||
держащего только оставшиеся правильные |
пути |
и правильные |
|
циклы. |
|
|
|
Правильным путем называется такой путь, в котором |
каждое |
||
число появляется не более одного раза в качестве |
номера |
строки |
|
по |
|
|
|
и не более одного раза в качестве номера столбца. Правильным циклом называется правильный путь, являющийся циклом.
В алгоритме, приведенном на рис. 20, единственный правиль ный путь, который не содержит р , — это
XiX2ppiXiP3Xi ».
х,
Рис. 20. Составной алгоритм
Правильные циклы, которые не содержат р , — это
PPix2 ;•
рхАрзХг .
Удаляя символ р из этих путей и строя единственный приемле мый алгоритм, содержащий правильный путь и правильные циклы, получаем алгоритм, изображенный на рис. 19,а.
§ 4. 3. АЛГОРИТМ СИНТЕЗА, ОСНОВАННЫЙ
НА ИСПОЛЬЗОВАНИИ ГРАФОВ
Алгоритм синтеза Карпа предусматривает наличие в синтези руемых алгоритмах различных решающих элементов. Практичес ки при синтезе алгоритмов в качестве решающих элементов вы ступает операция сравнения. Кроме того, при построении матрицы рассматриваются не все операционные элементы, а лишь началь ный, конечный и точки встречи стрелок.
На наш взгляд, более целесообразным является рассмотрение таких схем, в которые включаются все операционные и решающие элементы. С этой целью предлагается использовать теорию графов.
Алгоритмы задач представляются в виде ориентированных гра фов. Вершинам графа соответствуют отдельные операции, а дуги указывают на связь этих операций.
Вариант выполнения алгоритма может быть указан как один из путей, ведущих из начальной вершины графа в конечную. Мно жество всевозможных реализаций алгоритма представляется в ви-
Ш
де логической функции. В этой функции последовательному про хождению дуг пути соответствует их конъюнктивная связь, а па раллельному— дизъюнктивная связь.
Рассмотрим задачу |
составления сводки о |
реализации фондов |
в отделе оборудования |
и транспортном отделе |
Главмоспромстрой- |
материалов. |
|
|
Назначением задачи является ежемесячное наблюдение за свое временным и полным получением предприятиями управления со ответствующего оборудования.
При составлении текущей сводки о реализации фондов (CP') в любом из отделов в качестве одного из исходных документов ис пользуется книга фондов (КФ).
Вторым исходным до кументом является свод ка о реализации фондов за прошлый период (CP). При этом состав рекви зитов, участвующих в об разовании сводки о реа лизации фондов за теку щий период, постоянен и не зависит от состава и структуры сводки о реа лизации за прошлый пе риод, отражающей специ фику того или иного от дела. К числу этих рек визитов относятся: дата, наименование материала, единица измерения, реа лизация с начала года, реализация с начала квар тала.
Третьим исходным до кументом служит отчет о реализации фондов. Для транспортного отдела это форма ОРт, а для отдела оборудования — Ф-2. Не зависимо от формы отче та и его содержания при составлении сводки о реа лизации за текущий пе риод используются сле дующие его реквизиты: дата, наименование мате
риала, количество за от
Рис. 21. Граф алгоритма отдела обору- четный период. дования
112
Форма и структура документов, используемых при решении задачи, приведены ниже.
[ _ J Наименование материала |
|
|
|
|
|
|
Книга «Фонды и их реализация» |
(КФ) |
|
|
|
|
|
|
||||||||||||
|
1967 |
г. |
| |
1968 |
г. |
|
|
Изменение |
фонда |
Реализация |
фондов по кварталам |
|
|||||||||||||
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
I |
| |
|
II |
j III |
| IV |
|
|
|||
|
|
|
|
|
|
|
в том |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
||
|
|
|
Фактически реализовано |
|
|
|
числе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Единица измерения |
Остаток на 1/1 |
Выделенный фонд |
Остаток на 1/1 |
Выделенный фонд |
Горплан | |
Главмосстрой 1 |
Министерства и ведомства |
|
|
|
|
|
|
|
фонд |
реализация |
фонд |
реализация |
фонд |
реализация |
фонд |
реализация |
фонд |
реализация |
|
|
|
|
|
| |
|
|
| |
|
|
|
|
|
|
|
|
|
|
[ |
|
|
|
|
|
|
|
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
Сводка о реализации фондов на материалы, топливо, оборудование (CP)
|
Наименование мате риала и оборудо вания |
Единица измерения |
|
За |
|
М Р Г И П |
Зя |
|
квяотал |
Дата |
Фонд на год |
фонд |
реализация с начала года |
|
фонд |
реализация с начала квартала |
|
||
|
|
|
|
! |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
Отчет о реализации транспортного оборудования |
(ОРт) |
|
|||
|
Наимено |
|
Наименование материала |
Единица |
Количе |
С тоимость |
Дата |
вание |
Номер счета |
ство за |
получае |
||
постав |
и оборудования |
измере |
отчетный |
мых мате |
||
|
щика |
|
|
ния |
период |
риалов |
|
2 |
3 |
4 |
5 |
6 |
7 |
S. Заказ 4230. |
113 |
|
Отчет о реализации фондов на сырье, материалы |
|
|||||
|
|
и оборудование от поставщиков |
(Ф-2) |
|
|
||
|
|
Номер |
Наимено |
|
Количество |
Стоимость |
|
|
Наимено |
|
|
|
|||
|
вание |
Единица |
|
с начала |
получен |
||
Дата |
вание |
i аряда |
сырья, |
за от |
ного сырья, |
||
'поставщи |
или фон |
материала, |
измерения |
года по |
материала, |
||
|
ка |
дового |
оборудо |
|
четный |
данному |
оборудо |
|
|
извещения |
вания |
|
месяц |
наряду |
вания |
|
2 |
3 |
4 |
5 |
6 |
7 |
8 |
114
Отчет о реализации в транспортном отделе составляется с раз
бивкой |
по группам оборудования. Порядок расположения групп |
в отчете |
произвольный. Внутри каждой группы оборудования от |
чет составляется в разрезе поставщиков. По каждому поставщику перечисляется соответствующая номенклатура оборудования с указанием количества и стоимости. По каждой группе оборудова ния подводится общий итог.
Отчет о реализации в отделе оборудования составляется в раз резе предприятий и номенклатуры оборудования. Графы алгорит мов этих задач представлены на рис. 21 и 22.
• Множество реализаций алгоритма в отделе оборудования пред
ставляется логической функцией вида: |
|
|
|||
Фо=ВСрХ |
(СрПхПСр |
+ СрСрХ |
{СрПхПСр |
+ |
СрСрХ |
(СрПX |
ПСр + СрПх |
ПСр))) |
X (СрПрХПрСр |
+ \)Х |
|
СрСрХ |
{СрСр + СрСхССхССрх |
(1 |
+СрПрХПрСрХ |
||
СрСр)) |
XСрУХУСХССрХ{\ |
+ (СрСрХ(\ + |
СрСрх |
||
(1 + СрС) хСрПрхПрСр)ХСрПрХПрВсХВсСр) |
|
х |
|||
СрС)хСДхДУХУУхУСхСДХДУХУПчХПчСрХ |
|
|
|||
(СрОВ + СрПр X ПрПр X ПрВс |
ХВсВсХВсВсХ |
|
ВсСр). |
Множество реализаций алгоритма в транспортном отделе пред ставляется логической функцией вида:
Фр = ВСрХ |
{СрПхПСр |
+ СрСрХ |
{СрПхПСр |
+ |
СрСрХ |
|||
(СрПхПСр^СрПхПСр)))х |
|
|
|
{СрПрХПрСр+\)Х |
||||
СрСрХ(СрСр |
+ СрСХССХССрX |
|
(1 + |
СрПрхПрСрХ |
||||
СрСр))ХСрУХУСХССрХ |
|
{СрС+ {СрСрХ |
{СрПрХ |
|||||
ПрСр |
+ СрСр |
X СрПр Х.ПрВсХ |
ВсСр)Х |
СрС + СрСр X |
||||
СрС))ХСДхДУхУУХУСхСДхДУХУПнХПчСрХ |
|
|
||||||
(СрОВ |
+ СрПр X ПрПр |
X ПрПр |
X ПрВс |
X ВсВс X ВсСр). |
||||
В логических |
формулах |
знак |
+ соответствует операции дизъ |
юнкции, а знак X — операции конъюнкции.
Для описания процесса синтеза алгоритмов введем несколько понятий. Некоторую конечную упорядоченную последовательность дуг, представляющих собой часть данного пути, назовем подпутем. Под начальным подпутем будем понимать подпуть, представляю щий собой начальную часть пути. Под конечным подпутем будем понимать подпуть, представляющий собой конечную часть пути.
Подпути считаются равными, если соответствующие им конеч ные упорядоченные последовательности дуг совпадают. В случае представления множества путей в виде логической функции под пути считаются равными, если совпадают соответствующие им ко нечные упорядоченные последовательности дуг, скобок и знаков логических операций.
Введение этих понятий позволяет свести процесс синтеза ал горитмов к процессу поиска равных подпутей на графах, что рав-
носильно нахождению подобных членов в соответствующих им ло гических функциях.
Вкачестве примера рассмотрим поиск равных подпутей среди множества путей, представляющих алгоритм решения задачи в транспортном отделе и отделе оборудования.
Вних можно выделить пять равных подпутей. Это начальный подпуть Я ь представляющий собой следующую совокупность дуг:
П^=ВСрХ |
(СрПхПСр |
+ CpCpX |
(СрПхПСр |
+ СрСрХ |
||
(СрПXПСр |
+ СрПXПСр))) |
X |
|
(СрПрхПрСр+\)Х |
||
СрСрХ(СрСр |
+ СрСхССхССрХ(1 |
+ |
СрПрХ |
|||
|
ПрСрхСрСр))хСрУхУСхССр |
|
|
; |
подпуть |
Я 2 , представляющий |
собой последовательность дуг: |
||||
|
П2 = СДХДУХУУ |
X УСХСДХДУХ |
УПч |
ХПчСр; |
||
подпуть |
единичной длины — СрОВ, |
лодпути |
Я 3 и |
Я 4 , представля |
||
ющие каждый последовательность двух дуг: |
|
|
||||
|
Я 3 = СрОВ |
+ |
СрПрХПрПр; |
|
||
|
П^ВсВсхВсСр |
• |
|
|
При поиске равных подпутей последовательности дуг, заклю ченные в многократные круглые скобки, рассматриваются как не делимый подпуть.
Процесс определения равных подпутей осуществляется в определенном порядке. Выделение равных подпутей начинается с начальных вершин графов и производится последовательно в на правлении их конечной вершины без возвращения к ранее прой денным путям.
Установив наличие в алгоритмах одинаковых частей, можно
приступить к разработке составного |
алгоритма, |
которая |
состоит |
в последовательном присоединении |
алгоритмов |
отдельных |
задач |
и образований единого алгоритма. Процесс присоединения алго ритмов может быть выполнен либо на базе графов, либо на основе логических функций.
Впроцессе присоединения на базе графов равные подпути сов мещаются, а неравные присоединяются введением дополнительных вершин графа, т. е. путем расширения графа. Назначение этих вершин — разветвление алгоритма в соответствии со спецификой решения задач. Поскольку вершинами графа, представляющего алгоритм, являются операции, очевидно, дополнительной вершине графа будет соответствовать операция сравнения.
Впроцессе присоединения могут иметь место следующие три случая:
1)присоединяются равные подпути;
2) |
к неравным подпутям |
присоединяется равный подпуть; |
3) |
к равному подпути присоединяются неравные подпути. |
|
Порядок присоединения |
в каждом из этих случаев различный. |
116
Вслучае присоединения равных подпутей конец уже присоеди ненного подпути и начало присоединяемого подпути должны сов падать. Другими словами, их общая вершина изображается одно кратно.
Вслучае присоединения равного подпути к неравным могут быть два варианта.
Первый вариант — когда длина каждого из неравных подпутей больше нуля. В этом случае начальная величина присоединяемого равного подпути совмещается с концами уже изображенных не равных подпутей. Таким образом, равный подпуть и два неравных подпути соединяются в одной общей вершине.
Второй вариант — когда |
длина одного из неравных подпутей |
равна нулю. В этом случае |
начальная вершина присоединяемого |
равного подпути совмещается с конечной вершиной неравного подпути, длина которого отлична от нуля. Совмещенная вершина соединяется дугой с дополнительной вершиной, введенной в про цессе присоединения неравных подпутей. Таким образом, вторая ветвь от дополнительной вершины идет непосредственно в началь ную вершину последующего равного подпути.
В случае присоединения |
к равному подпути |
неравных |
подпу |
тей существуют также два варианта. |
|
|
|
Первый вариант — когда |
изображенная часть |
алгоритма |
закан |
чивается вершиной, представляющей операцию сравнения. Эта вершина принимается за дополнительную, отображающую развет вление алгоритма. После разветвления на каждой из ветвей алго ритма изображаются вершины, соответствующие операциям срав нения алгоритмов. Таким образом, конечная вершина присоеди няемой части алгоритма дублируется на двух различных ветвях алгоритма. Эти вершины и являются началом неравных подпутей.
Второй вариант — когда изображенная часть алгоритма закан чивается вершиной, представляющей любую из операций, кроме сравнения. После этой вершины вводится дополнительная верши на, обеспечивающая разветвление алгоритма. Непосредственно с этой вершиной соединяются конечные вершины начальных дуг присоединяемых неравных подпутей. Общий вид графа, представ ляющего составной алгоритм задачи составления сводки о реали зации фондов в отделе оборудования и транспортном отделе, изоб ражен на рис. 23.
В процессе присоединения, выполняемом на основе логических функций, осуществляется приведение подобных членов, соответст вующих равным подпутям. Неравные подпути, оставшиеся после выделения равных подпутей, соединяются между собой дизъюнк тивной связью и заключаются в круглые скобки. При этом рассматриваются лишь те подпути, которые заключены между со ответствующими равными подпутями. Соединение равных и объ единенных неравных подпутей в единый алгоритм осуществляется конъюнктивной связью с добавлением дополнительных членов, со ответствующих операциям сравнения.
117
В процессе присоединения с использованием логических функ ций могут встречаться те же три случая, что и при использовании графов:
1) |
к равному подпути присоединяется равный подпуть; |
|||
2) |
к |
равному |
подпути присоединяются неравные |
подпути; |
3) |
к |
неравным |
подпутям присоединяется равный |
подпуть. |
Порядок присоединения в каждом из этих случаев различный. В случае присоединения равных подпутей они соединяются конъ юнктивной связью. В случае присоединения к равному подпути неравных подпутей могут быть два варианта.
Первый вариант — когда равный подпуть заканчивается вер шиной, представляющей операцию сравнения. Тогда эта операция принимается за дополнительную вершину. К каждому из нерав ных подпутей в конъюнктивной связи прибавляется начальный подпуть единичной длины, отражающий связь этой дополнитель ной вершины и конечной вершины равного подпути. Иными сло вами, в качестве начальной дуги неравных подпутей вводится дуга
СрСр.
Второй вариант — когда равный подпуть заканчивается опе рацией, отличной "от операции сравнения. В этом случае после конечной вершины равного подпути предполагается наличие до полнительной вершины, отражающей операцию сравнения.
В логической функции этому будет соответствовать продление с помощью конъюнктивной связи равного подпути на дугу единич ной длины, связывающей конечную вершину с дополнительной. Кроме того, в каждом из неравных подпутей начальный подпуть единичной длины видоизменяется. Конечная вершина в них оста
ется неизменной, а в качестве начальной служит |
дополнительная |
вершина. |
|
В случае присоединения к неравным подпутям |
равного подпу |
ти также могут быть два варианта. |
|
Первый вариант — когда длина каждого из неравных подпутей больше нуля. В этом случае равный подпуть присоединяется с по мощью конъюнктивной связи.
Второй вариант — когда |
длина |
одного |
из неравных подпутей |
равна нулю. В этом случае |
после |
конечной |
вершины равного под |
пути предполагается наличие дополнительной вершины, отражаю щей операцию сравнения.
В логической функции этому будет соответствовать продление равного подпути на дугу единичной длины, связывающую конеч ную вершину с дополнительной. Кроме того, каждый неравный подпуть удлиняется на одну дугу за счет укорочения последующе го равного подпути. Подпуть, длина которого не равна нулю, до полняется непосредственным добавлением в конъюнктивной связи первой дуги последующего равного подпути. Подпуть, длина ко торого равна нулю, дополняется видоизмененной первой дугой последующего равного подпути таким образом, что конечная вер-
119