Алгоритм подготовки, обработки и преобразования данных для потоковых задач

 

Представлением сети называется набор констант, списков и матриц для отображения сети и всех ее параметров. Имеется два способа представления сети:

1)  на основании списка дуг

2)   на основании списка узлов

 Первый

О=[Ok], T=[tk]-два множества. Легко определить начальные и конечные узлы как к- элементы  в списках  O и T, а параметры определяются  как fk и Ck.

Рисунок 19. Пример сети

 

Для списка дуг составляют таблицу

Дуга (к)

1 2 3 4 5 6 7

Ок

2 5 1 1 3 2 5

tk

4 2 3 2 4 3 1

fk

2 1 3 1 3 0 1

Ck

2 1 3 3 5 1 2

hk

-1-11 5 3 2 1

 

Вводится дополнительный список длиной n, который является списком начальных указателей. Элементы будут нумероваться так- R0=[p0[i]].

Элемент p0[0] содержит индекс дуги, обладающей наименьшим номером среди дуг исходящих из вершины i. Если из вершины i ничего не выходит, то p0[i]=p0[i+1]. Таким образом список дуг будет упорядочен следующим образом: если О(k1)<O(k2), то k1<k2, если О(к1)=О(к2), то порядок следования дуг произволен.

p0[i]=1, p0(n+1)=m+1

p0(i)={k/O(k)>_i,O(k-1)<i},1<i<n

MOi={k/p0[i]<k<p0[i+1]}-массив MOi, p0(i)=p0(i+1)

узел 1 2 3 4 5 6

r0   1 3 5 6 6 8 Дуги выходят из узлов.

Изменение сети( 2 дополнительных массива) для определения конечных дуг, кончающихся в данном узле.

1) список Mti  m и n. Lt={lt(i)} содержит номера дуг упорядоченных по возрастанию их конечных узлов. Если kw- индекс дуги kw в списке Lt, то следование элементов в списке определяется по правилу: если t(kw)<t(ky),то kw<ky. Если t(kw)=t(ky), то порядок kw и ky произволен.

2) список Pt={pt(i)} указывает индекс первой дуги из списка Lt,  оканчивающейся в вершине i. Для массива Pt справедливы формулы:

Pt(1)=1

Pt(n+1)=m+1

Pt(i)={k/t(lt(k)>=,t(lt(k-1)<i}  ,1<i<n

Тогда множество Мt(i) имеет следующий вид:

Mti={lt(k)/Pt(i)<=k<=Pt(i+1)}

k 1 2 3 4 5 6 7    узел 1 2 3 4 5 6

Lt7 1 6 2 3 4 5     Pt  1 2 4 6 8 8