В качестве примера такого списка может служить приведенная ниже таблица 1 с несколькими столбцами, составленная по графу информационной зависимости, приведенному на рисунке 2.10а.
Индекс имени i |
Имя вершины |
Ярус j |
Новый индекс k |
||
T(1) |
T(2) |
T(3) |
T(4) |
T(5) |
T(6) |
1 |
a |
{b, e, c} = {2, 3, 5} |
{Æ} |
1 |
1 |
2 |
b |
{f, s} = {6, 8} |
{a} = {1} |
2 |
3 |
3 |
c |
{f} = {6} |
{a} = {1} |
2 |
4 |
4 |
d |
{e, g} = {5, 7} |
{Æ} |
1 |
2 |
5 |
e |
{h} = {9} |
{a, d} = {1, 4} |
2 |
5 |
6 |
f |
{v} = {11} |
{b, c} = {2, 3} |
3 |
6 |
7 |
g |
{v} = {11} |
{d, h} = {4, 9} |
5 |
9 |
8 |
s |
{h, v} = {9, 11} |
{b} = {2} |
3 |
7 |
9 |
h |
{g, w} = {7, 10} |
{e, s} = {5,8} |
4 |
8 |
10 |
w |
{v} = {11} |
{h} = {9} |
5 |
10 |
11 |
v |
{Æ} |
{f, g, s, w} = {6, 7, 8, 10} |
6 |
11 |
Для лексикографического упорядочения орграфа удобно использовать колонку таблицы 1. В таблицу введены два дополнительных столбца: один предназначен для закрепления за вершиной порядкового номера яруса j , а второй – для записи нового упорядочивающего индекса .
Алгоритм, показанный на рисунке 2.11, размещает вершины по ярусам и присваивает им новые индексы. В результате множество вершин будет упорядочено так, что между его элементами будет иметь место отношение порядка: , если , где . В операторах схемы рис. 2.11 использованы такие выражения и обозначения: Рисунок 2.11.
число вершин орграфа;
исходный индекс, ярус и новый индекс вершины орграфа;
множество вершин от которых входят дуги;
рабочее множество вершин, исключаемых из .
Матрица смежности для графа, представленного рисунком 2.10, до и после лексикографического упорядочения приведена на рисунке 2.12.
Рисунок 2.12.
Смысл лексикографического упорядочения удобно описать, используя визуальное или табличное представление орграфа следующим образом:
По именам {a, b, c,...} или по их первоначальным индексам {1, 2, 3,...} в списке (колонки Т(2), Т(1) в таблице 1) последовательно просматриваются отрицательные полустепени вершин (колонка Т(4)). Вершины, удовлетворяющие условиям (новый индекс имени еще не присвоен) и Æ (нет входящих дуг), помещаются в рабочее множество М с присвоением им одного и того же номера яруса ( ) и очередного индекса вершины () . В конце очередного цикла индексная переменная принимает значение , которое запускает процесс исключения из всех множеств тех вершин, которые были занесены в рабочее множество (М) . При этом исключении появятся новые вершины, у которых отсутствуют входящие дуги. Вершины, которым ранее уже был присвоен новый индекс и для них , в очередном цикле пропускаются, а вершины с отрицательной полустепенью равной нулю, помещаются в рабочее множество вершин нового яруса. Циклы просмотра продолжают до тех пор, пока всем вершинам не присвоят новые индексы.
Расположив вершины по своим ярусам по возрастанию нового индекса слева направо и сверху вниз, получим граф, показанный на рисунке 2.10б, и его верхнетреугольную упорядоченную матрицу смежности (Рис. 2.12б).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.