Оптимальным разбиением графа G называется допу стимое разбиение с минимальной ценой С, размер кото рого k достигает своей нижней границы k*.
Для упрощения изложения принимается, что цены
всех |
ребер графа равны единице, т. е. сц=\(і, |
/ = 1 , q). |
Разбиение целесообразно |
выполнять |
в два |
этапа, |
этап |
разбиения графа G на |
естественные |
части — пол |
ные подграфы и этап композиции блоков из полных под
графов. |
M=G(A) |
|
|
|
Полный подграф |
графа |
G есть семейство |
всевозможных пар |
U=(cti, a,-), |
U<^R |
для любых |
двух |
различных вершин а,- и а,- из подмножества вершин |
Ad |
czl/. Обозначим через я число |
вершин |
подграфа М. |
Для выполнения |
разбиения |
можно |
воспользоваться |
готовым алгоритмом определения совокупности макси
мальных |
классов |
(полных |
подграфов), описанным |
в § 6-4. |
|
|
|
Данный алгоритм должен применяться к матрице |
смежности |
графа |
G, строки |
и столбцы которой соответ |
ствуют номерам вершин.
На пересечении строки і и столбца / ставится едини ца, если вершины и,- и ѵ$ соединены ребром, и нуль
впротивном случае.
Врезультате применения данного алгоритма опреде ляется совокупность полных подграфов {M,}, ( і = 1 , г) графа G.
Обозначим через_Л дополнение множества вершин А
подграфа М, т. е. |
4 — К \ А |
Дополнение |
А |
определяет |
разложение множества ребер графа G на три непересе |
кающихся класса |
(рис. 6-8) : |
|
|
|
1) |
внутренние |
ребра |
U = Ri= (ai, а2), |
щ, |
U2ŒA; |
2) |
соединяющие ребра R2 |
= (а, а), а€=А, |
aŒA; |
3) |
внешние ребра R3 = (äi, |
ä2), ai, ä2<^A. |
|
Число внутренних ребер для множества А подсчиты- |
вается по формуле |
|
|
|
|
|
|
N = |
nin-^)_ |
|
( 6 4 3 ) |
Число соединяющих ребер m для множества А может быть найдено из соотношения
Аналогичные понятия вводится для вершин. Любой
подграф |
M и его дополнение M — G\M |
определяют |
раз |
ложение |
множества |
вершин |
на |
три |
класса: |
|
|
1 ) внутренние вершины подграфа |
М, |
не |
инцидент |
ные никаким ребрам из М; |
|
|
|
|
|
|
|
|
2) соединяющие |
вершины, |
инцидентные |
ребрам |
как |
из М, так и из |
М; |
|
|
|
|
|
|
|
|
|
|
|
3) внешние вершины, т. е. внутренние вершины под |
графа М. |
|
|
|
|
|
С(А)—мно |
|
|
|
|
Введем |
обозначения: |
|
|
|
|
жество |
соединяющих |
вершин |
для |
M |
|
|
|
|
(или |
А). |
Оно |
состоит |
|
из тех |
|
концов |
|
|
|
|
соединяющих |
ребер |
|
(вершин), |
кото |
|
|
|
|
рые принадлежат А. |
|
|
|
|
|
|
|
|
|
|
С (А)—множество |
|
|
|
оставшихся |
|
|
|
|
концов |
соединяющих |
ребер, |
которые |
|
|
|
|
принадлежат Ä, для которых справед |
|
|
|
|
ливы следующие соотношения: |
|
|
|
|
|
|
|
С'(А)Г)С(А)=0. |
|
С(Л) = |
С ' И ) ; |
|
жение6'множества |
т = |
С {A) CZ А, |
C'{A)CZÄ; |
|
?Ка)< |
ребер |
г р а ф а |
G н а |
р{А, Д |
) = |
2j |
Р ( |
# |
) = |
Zj |
|
щ и х с я к л а с с а . |
|
|
|
|
„ |
|
|
|
„ |
|
— |
|
т р и н е п е р е с е к а ю - |
|
|
|
|
п&ЦА) |
|
~ŒC'(A) |
|
|
|
|
|
где |
р(а)—число |
ребер |
R2, |
инцидентных |
вершине |
й £ |
е С ( А ) ; |
р ( а ) — ч и с л о |
ребер R, |
инцидентных |
вершине |
ö e С (Л). |
|
|
|
|
|
|
|
|
|
|
|
|
|
Композиция |
блоков |
из полных |
|
подграфов |
|
|
|
1. Для композиции блока в р вершин в совокупности полных подграфов { M J ( i = l , пм) отыскиваются все под графы, содержащие по п = р вершин.
Если таких подграфов несколько, то выбирается один, у которого число соединяющих ребер R2 минимально.
Вершины выбранного подграфа выделяются в от дельный блок. Они исключаются из подграфов совокуп ности {Mi} (i=l, пм). Из совокупности подграфов так же исключаются подграфы с одной вершиной.
2. Если нет подграфов, содержащих по п — р вершин, тогда в совокупности подграфов отыскиваются подгра фы, содержащие по п>р вершин.
Если таких подграфов несколько, то выбирается один, у которого наименьшее количество избыточных вершин—
(n—P) •
И з подмножества вершин А выбранного подграфа исключается группа в (я—р) вершин, которая макси мально увеличивает число внешних ребер Яз-
Оставшиеся в подграфе вершины выделяются в от дельный блок. Они исключаются из подграфов совокуп ности {МІ} ( . /=1, пм).
Из совокупности подграфов также исключаются под графы с одной вершиной.
3. Если нет подграфов, содержащих по п — р и п > р вершин, тогда в совокупности подграфов остаются под графы, содержащие по п<р вершин.
Если таких подграфов несколько, то выбирается один, у которого наименьшее количество недостающих вер
шин — (р—п).
К подмножеству вершин А выбранного подграфа до бавляется группа в (р—п) вершин из подмножества А, которая максимально увеличивает число внутренних ре бер Ri и минимально уменьшает число внешних ре бер R3.
|
|
|
|
|
|
|
|
|
|
|
Объединенные |
вершины |
выделяются |
в |
отдельный |
блок. Они |
исключаются |
из |
подграфов |
совокупности |
{Mi} |
пм) • |
Из |
совокупности |
подграфов |
также |
исключаются подграфы с одной вершиной. |
|
|
|
Последовательное |
выполнение |
пп. |
1, |
2, 3 |
приводит |
к построению блоков |
по р |
вершин в |
каждом |
и |
только |
в одном блоке число вершин может быть меньше р . |
Номера вершин, входящих в блок, соответствуют |
адресам, включаемым в одну страницу. |
|
|
|
|
Доказательство |
оптимальности |
алгоритма |
|
компози |
ции. Выбор подграфа, содержащего р вершин, у кото рого число соединяющих ребер R2 минимально, обеспе чивает минимизацию количества ребер связей блоков, так как после выбора подграфа его ребра R2 становятся ребрами связи блоков.
При исключении группы из (п—р) |
вершин часть ре |
бер R |
изменяет свое положение и переходит из подмно |
жеств |
Ri в R3, Ri в R2, |
R2 в Rs. На |
величину |
m |
оказыва |
ют влияние переходы |
из Ri в R2 |
и из |
R2 в |
Rz- |
Первые |
увеличивают m, а вторые его уменьшают. Указанные из
менения количественно определяются следующим |
обра |
зом. |
Ru |
|
|
Число ребер |
инцидентных любой вершине |
а е Л , |
равно п—1. Так |
как |
из А исключается п—р вершин, то |
число m может увеличиться на
Nm= (п->1) (п-р) |
(6-45) |
ребер. Однако часть этих ребер является |
внутренними |
по отношению к вершинам группы и поэтому переходя щими из Ri в R3. Их число легко подсчитать по формуле (6-43), если вместо п подставить я — р . Получаем:
N B = ± n - p ) |
« » - ^ - D - , |
(G-46) |
При подсчете ребер по |
формуле (6-45) |
внутренние |
ребра группы подсчитывались дважды, поэтому выра
жение |
(6-46) |
удваивается: |
( п — р ) ( ( п — р ) — 1 ) . |
|
После вычитания полученного выражения из выра |
жения |
(6-45) |
окончательно находится, что число |
ребер, |
на которое может увеличиться Т, равно: |
|
|
) (п-р) |
- (п-р) ( (п-р) |
- 1 ) =р(п-р). |
(6-47) |
Значение р задано, а значение п для определенного подграфа M постоянно, поэтому увеличение m при пере ходе ребер из Ri в Rz происходит на постоянную вели чину независимо от того, какие вершины попали в группу.
Напротив, |
уменьшение |
m при |
исключении |
группы |
вершин |
зависит |
от состава |
вершин |
в группе. |
Например, |
пусть |
5 (Л) — подмножество |
вершин, |
входящих |
в |
группу |
5 (Л) С С (Л) С Л. Тогда количество |
ребер, переходящих |
из R2 в R3, подсчитывается |
по формуле |
|
|
|
|
|
2 P(fl). |
|
(6-48) |
В зависимости от входящих в группу вершин может существовать несколько групп, для которых соотношение (6-48) может иметь различные значения. Очевидно, что с целью максимального уменьшения m необходимо вы брать ту группу, для которой соотношение (6-48) имеет наибольшее значение, что соответствует требованию ма ксимального увеличения числа внешних ребер R3-
При добавлении группы р — п вершин часть ребер R изменяет свое положение и переходит из подмножеств:
# 2 в Ri, R3 в #2 , R3 в Ri. На величину m оказывают
влияние только переходы из R 2 в Ri и из R 3 в R 2 ; пер вые уменьшают m, а вторые увеличивают ее. Указанные
изменения величины |
m количественно выражаются так: |
|
|
Т* = Т - |
|
S |
р ( « ) + S |
p(fl), |
(6-49) |
где |
2 |
p (й) — число |
ребер /?2, инцидентных |
вершинам |
|
~e=s(T) |
|
|
|
|
|
|
|
|
группы, образующих |
подмножество |
5 ( Л ) С С ( Л ) С Я |
до |
включения |
группы в |
Л; |
^ |
р (а) — число |
ребер R 2 |
, ин- |
цидентных |
вершинам |
группы, |
образующих |
подмножество |
S (A) CZ С (A) С А после |
включения группы в |
А. |
|
|
Величина выражения (6-49) изменяется в зависимо сти от набора вершин в группе, та,к как изменение на бора вершин приводит к изменению значений второго и третьего слагаемых. Поэтому для получения наимень шего значения Т* необходимо выбрать такую группу (с таким набором вершин), чтобы второе слагаемое
Р и с . 6-9. Г р а ф Gi.
в (6-49) имело наибольшее значение, а третье — наи меньшее, что соответствует требованию максимального увеличения числа внутренних ребер Ri и минимальному уменьшению числа внешних ребер І?з.
|
Пример. |
П р е д п о л о ж и м , ч т о |
п р о с т р а н с т в о |
а д р е с о в |
с о с т о и т |
из се |
м и |
а д р е с о в |
с н о м е р а м и |
'1, 2 , . . . , |
7. |
|
|
|
|
|
|
|
П р и в ы п о л н е н и и з а д а н н о й п р о г р а м м ы к э т и м а д р е с а м п р о и з в о |
д я т с я |
о б р а щ е н и я в |
с л е д у ю щ е м |
п о р я д к е : 1, '2, 3, |
4, |
5, |
6, 7, |
5, |
2, 4. |
|
Т р е б у е т с я р а з б и т ь п р о с т р а н с т в о д а н н ы х а д р е с о в н а с т р а н и ц ы |
по |
т р и а д р е с а |
(р=3) |
|
т а к и м о б р а з о м , ч т о б ы |
ц е н а |
р а з б и е н и я |
С = |
= |
2 C j j |
д л я |
всех |
ѵ{, |
Vj |
(i, / = ' 1 , |
7 ) , р а с п о л о ж е н н ы х |
в |
р а з н ы х |
б л о к а х , |
б ы л а м и н и м а л ь н о й .
Решение. Для данных |
адресов |
строим соответствующий граф |
G4 .(рис. 6-9). |
|
|
|
|
|
|
|
Для графа ОІ запишем матрицу |
смежности |
|
1 2 |
3 |
4 |
5 |
6 |
7 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
2 |
1 0 |
1 |
0 |
1 0 |
1 |
3 |
0 |
1 0 |
1 |
0 |
0 |
0 |
4 |
0 |
0 |
1 0 |
1 0 |
0 . |
5 |
0 |
1 0 |
1 |
0 |
11 |
6 |
0 |
0 |
0 |
0 |
1 0 |
1 |
7 |
0 |
1 0 |
0 |
|
1 1 0 |
По матрице смежности с помощью алгоритма определения со
вокупности |
максимальных |
классов |
несовместимости |
(см. § 6-4) |
най |
дем совокупность |
полных |
подграфов: |
J W I = { 1 , |
2}, М 2 = {2, 3}, |
М3 |
= |
= {2, 5, |
7}, М 4 = |
{3, |
4}, М5 = |
{4, |
5}, Ме= |
{5, |
6. |
7}. |
|
|
|
|
|
|
|
В данной совокупности находим подграфы М3 |
и Мв, |
содержа |
щие по три вершины. Определяем для |
них количества |
соединяю |
щих ребер |
R2(M3)=4, |
|
R2{Me)=3 |
|
(см. |
рис. |
6-9). Так как |
|
R2(MS)< |
<Rz(M3), |
|
выбираем |
подграф |
Мв. |
|
|
|
|
|
|
|
|
|
|
|
|
Его вершины выделяем в отдельный блок—(5, 6, 7). |
|
|
|
|
Исключаем -их из подграфов |
данной |
совокупности, |
получаем |
МІ={\, |
2}, Mz={2, |
|
3}, М3={2}, |
|
|
M 4 = { 3 , |
4}, |
М 5 = { 4 } . |
|
Исключаем |
также подграфы с одной вершиной. В результате получаем |
новую |
совокупность подграфов: Л1і = |
{1, |
2}, Лт2 = {2, 3}, М 4 = { 3 , |
4}. |
|
|
|
В данной совокупности все подграфы содержат число вершин |
меньше трех и у них одинаковое число недостающих вершин |
(по |
одной). Поэтому выбираем подграф с меньшим номером — Мі. |
|
К вершинам подграфа Мі можно добавить |
либо |
вершину |
3, |
либо 4. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При добавлении вершины 3 количество внешних ребер R3 |
умень |
шается |
на |
одно |
ребро |
г= |
(3, |
4), |
зато |
количество |
внутренних |
ребер |
Ri увеличивается на |
одно ребро |
г= (2, |
3). |
|
|
|
|
|
|
|
|
|
При добавлении вершины 4 количество внешних ребер R3 |
также |
уменьшается на одно ребро /"=(3, 4), но |
количество |
|
внутренних |
ребер Ri |
не увеличивается. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поэтому добавляем вершину 3. Объединенные таким образом |
вершины выделяем |
|
.в |
отдельный |
блок — |
( 1, |
2, |
3). |
|
|
|
|
|
|
Исключаем |
их |
из |
подграфов |
|
данной |
совокупности, |
сокращенной |
на предыдущем |
шаге, получаем |
A f 4 = { 4 } . |
|
|
|
|
|
блок—(4). |
Последнюю |
вершину 4 |
также |
выделяем |
в отдельный |
|
Таким |
образом, |
произведено |
оптимальное |
разбиение |
простран |
ства данных адресов на страницы |
(5, |
6, |
7), |
(1, 2, |
3) и |
(4) с |
ценой |
разбиения |
С=Сп |
+ СгъЛ-сзі, + Сіь = 4, которая |
минимальна. |
Это |
|
легко |
проверить |
по рис. |
6-9. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Г Л А В А С Е Д Ь М А Я
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ ОБЩЕГО НАЗНАЧЕНИЯ
Вычислительные системы общего назначения отно сятся к классу универсальных ВС и предназначены для решения широкого набора задач при одновременной ра боте со многими абонентами. В большинстве случаев они строятся как системы с разделением времени, собст венно вычислительная часть которых включает в свой состав один или несколько процессоров. С целью посте пенного наращивания сложности материала рассмотре ние указанных систем начинается с простейших, в которых распределение времени осуществляется автоматиче ски аппаратными методами, а связь абонентов с процес сорной частью системы организована так, что исключа ется необходимость в использовании специальной ка нальной аппаратуры.
7-1. ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА С АППАРАТНЫМ Р А З Д Е Л Е Н И Е М ВРЕМЕНИ М Е Ж Д У АБОНЕНТАМИ
При выполнении относительно простых расчетных ра бот весьма эффективно используются достаточно про стые вычислительные средства, включая электронные клавишные вычислительные машины. Однако коэффици ент использования электронного оборудования таких вы числительных средств при непосредственном проведении вычислений имеет малые значения, так как скорость ра боты операторов на .клавиатурах соответствующих пуль тов значительно ниже скорости, с которой выполняются арифметические операции. Для повышения коэффициен та использования электронного оборудования оказыва ется целесообразным подключение к процессорной части вычислительного средства пультов многих абонентов при аппаратном разделении рабочего времени между все ми пользователями. В итоге формируется простейшая СРВ, иногда именуемая многопультовой вычислительной машиной [Л. 1].
Общая структура системы. Система с аппаратным разделением времени состоит из индивидуальных средств абонентов и центрального ядра, включающего в свой состав общесистемное запоминающее устройство, про
цессор, а также аппаратуру управления и коммутации.
С помощью индивидуальных средств абоненты могут не зависимо друг от друга проводить подготовку данных для планируемых вычислений, посылать запросы на вы числения и считывать результаты их выполнения. Связь индивидуальных средств абонентов, выполняемых в виде соответствующих пультов, с центральным ядром систе мы осуществляется через общесистемное ЗУ, в котором
для каждого |
абонента |
выделена индивидуальная зона |
с блокировкой |
доступа |
к ней со стороны других абонен |
тов. Связи пультов с соответствующими зонами общеси-
ПЯ, |
Г |
ЗУС Т - ' |
ЯУК |
"1. |
ну |
|
ЗУЯ, |
|
ДОЗУ |
|
|
|
КУ |
|
|
|
|
|
|
ЯУ |
|
|
|
|
|
|
|
|
УО |
ИУ |
|
|
|
У У |
|
|
|
|
КУ |
|
ЗУЯп |
|
|
|
|
|
|
|
|
РгЗп |
АУ |
|
|
|
ЗУСП |
|
|
|
|
ЗУПП |
|
|
|
|
|
|
Процессор |
|
|
ЗУК |
|
|
|
L |
А. |
|
|
Р и с . 7-1. С т р у к т у р а в ы ч и с л и т е л ь н о й с и с т е м ы с а п п а р а т н ы м р а з д е л е
н и е м в р е м е н и .
стемного ЗУ постоянны и фиксируются жестко на все время работы системы; это значительно упрощает систе му, но ограничивает ее возможности по объему возмож ных вычислений, проводимых в интересах одного або нента.
Общая структура рассматриваемой вычислительной системы показана на рис. 7-1, где выделены пульты або нентов ПА, количество которых может достигать значе ния нескольких десятков, а центральное ядро разделено пунктирными линиями на основные функциональные ча сти. Пульт каждого абонента имеет клавиатуру, или кла-
вишное устройство КУ, индикационное устройство ИУ и. схему управления, обеспечивающую связь пульта с со ответствующей зоной общего запоминающего устройствасистемы ЗУС. Поскольку такие зоны являются жесткое связанными с пультами абонентов, они обычно рассма триваются как индивидуальные запоминающие устрой
ства |
абонента ЗУА; |
так, |
ПАІ отвечает ЗУАі, |
ПАП — |
ЗУАП |
и т. д. Следует отметить, что в процессе подготов |
ки задачи к решению и в |
процессе считывания |
резуль |
татов |
все абоненты |
могут |
параллельно работать |
со сво |
ими ЗУА без затрат рабочего времени процессора; при этом возможно произвольное обращение абонента к лю бой ячейке своего ЗУА.
Общесистемная память выполнена в виде запомина ющего устройства на магнитном барабане. Выбор такого ЗУ для рассматриваемой системы объясняется тем, что магнитный барабан имеет большое количество дорожек— групп ячеек, для которых весьма просто организовать автономное управление. Это в свою очередь позволяет выделить ряд независимых запоминающих устройств, имеющих общую синхронизацию и одинаковую циклич ность работы, что, в конечном итоге, значительно упро щает согласование работы таких ЗУ с пультами абонен тов и процессором. Помимо ЗУА в ЗУС выделяются как автономные запоминающее устройство для размещения,
стандартных программ вычислений ЗУСП, запоминаю |
щее устройство |
для размещения подпрограмм ЗУПП,, |
которые могут |
использоваться при реализации стандарт |
ных и нестандартных программ вычислений, запоминаю
щее |
устройство констант ЗУК, а также |
регистр запро |
сов |
РгЗп, в который через коммутатор |
запросов КЗ п. |
записываются соответствующие кодовые посылки с пуль тов абонентов. Общесистемная память может рассма триваться в данном случае как объединение индивиду альных оперативных ЗУ абонентов и общего постоянного.' ЗУ системы.
Все числа, над которыми производятся действия, в рассматриваемой вычислительной системе, представ ляются в виде двоично-десятичных кодов; общее коли чество десятичных разрядов для чисел — 12. На одной до рожке магнитного барабана, представляющей одно ЗУА, размещается до восьми чисел или до 32 команд програм мы при четырехкратной записи каждого кода (неодно кратная запись каждого кода позволяет существенно
сократить |
время ожидания кода при циклической рабо |
те ЗУ) . |
|
|
|
и контроля АУК со |
Основу |
аппаратуры |
управления |
ставляет |
диспетчерское |
устройство |
ДУ, которое |
осуще |
ствляет |
непрерывный контроль за |
состоянием |
пультов, |
воспринимает запросы на вычисления, устанавливает и поддерживает режим работы процессора путем посылки необходимых сигналов в его устройство управления УУ. Диспетчерское устройство обеспечивает также передачу в УУ команд стандартных программ через группу вен
тилей Ві, |
команд подпрограмм |
через группу вентилей В2, |
а также |
команд |
из |
ЗУА. Оно |
же организует пересылку |
констант |
из ЗУК |
в |
арифметическое устройство АУ про |
цессора. В состав аппаратуры управления и контроля входит коммутатор чисел КЧ, с помощью которого ДУ подключает к процессору то или иное запоминающее устройство абонента; основу этого коммутатора состав ляют группы вентилей.
Основу процессора системы составляют арифметиче ское устройство АУ и устройство управления УУ. Ариф
|
|
|
|
|
метическое |
устройство оперирует с числами, представ |
ленными в |
двоично-десятичном |
коде. Кроме АУ и УУ, |
в состав процессора |
входят: дополнительное |
оператив |
ное запоминающее |
устройство |
ДОЗУ малой |
емкости, |
используемое при реализации стандартных программ, и устройство обмена УО, обеспечивающее обмен информа цией между процессором и общесистемной памятью, а также между отдельными устройствами процессора. Включение процессора в работу осуществляется диспет черским устройством после приема с того или иного ПА кодированного запроса на выполнение вычислений. В хо де вычислений процессор использует ЗУА соответствую щего абонента в качестве основного оперативного запо минающего устройства.
Пульт абонента. Любой пульт абонента является су губо автономным по отношению к другим ПА и обес печивает непосредственную связь оператора с централь ными устройствами системы. С помощью устройств пульта производятся ввод данных в ЗУА, набор типа выполняемых действий с посылкой запроса на их реали зацию и индикация результатов выполнения операции или решения задачи. Набор всей информации, посылае мой в общесистемную память, т. е. ЗУА и РгЗп, осуще ствляется с помощью клавишного устройства, состоящего