Algoritmo de Sugiyama
Métodos para representação de estruturas hierárquicas
Christiano Gouveia de Oliveira
Algoritmo de Sugiyama
Algoritmo criado para a geração automática de representações de estruturas hierárquicas de maneira inteligível.
Os mapas gerados pelo algoritmo de Sugiyama apresentam as seguintes características: Vértices de mesmo nível são posicionados ao longo de uma
mesma linha horizontal; As arestas são representadas por retas e só podem ligar
vértices de níveis adjacentes; O algoritmo procurar gerar mapas compactos, balanceados e
com poucos cruzamentos entre arestas.
O algoritmo pode ser dividido em duas etapas: na primeira, busca-se minimizar o número de cruzamentos entre arestas e na segunda, procura-se representar o mapa de maneira compacta e balanceada.
Nesta apresentação, temos dois métodos para minimizar o número de cruzamentos: Penalty Minimization Method (método exato); Barycentric Method (método heurístico).
Para compactar e balancear o grafo, temos uma formulação matemática de um problema de programação não-linear e uma heurística para resolvê-lo: Quadratic Programming Layout Method; Priority Layout Method.
Definições Básicas
Uma hierarquia n-nível (n ≥ 2) é definida como um grafo direcionado (V,E), em que V é o conjunto de vértices e E o conjunto de arestas, tal que: V é dividido em n subconjuntos
em que Vi é o i-ésimo nível e n o tamanho da hierarquia.
Toda aresta tal que e cada aresta é única.
nVVVV ...21 ),0( jiVV ji
,),( Evve ji jiVvVv jjii ,,
Uma hierarquia é dita própria se satisfaz as seguintes condições:
As arestas são divididas em n-1 subconjuntos E1, E2, ..., E3, tal que a interseção entre os subconjuntos é vazia e cada aresta ei liga vértices do subconjunto Vi e Vi+1.
Uma ordem σi de Vi representa a seqüência de todos os vértices de Vi.
|Vi| é o número de vértices em Vi
||321 ...iVi vvvv
Uma hierarquia, portanto é definida como
em que
Para as próximas discussões, serão considerados uma hierarquia própria.
),,,,( nEVG
)...( 21 n
Matriz de Realização de uma Hierarquia n-nível
Uma matriz , é uma matriz cujas linhas são ordenadas de acordo com σi e σi+1, em que i representa o i-ésimo nível da hierarquia.
Cada elemento da matriz M(i) é definido como:
),( 1)(
iii MM
)(iklm
1,
0, para outros casos
ilk Ewv ),(
M(i) é chamada matriz de interconexões.
Uma matriz de realização g de G é dada pela fórmula:
)1()1(21 ...),...,,( n
n MMg )),,,(( nEVg
Número de Cruzamentos em Hierarquias n-Níveis
O número de cruzamentos com o vértice vk, sucedendo vj na matriz de interconexões:
em q representa o número de colunas da matriz M(i).
1
1 1
)()())(),((q q
ik
ijkj mmvrvrk
Cruzamentos = 3
Cruzamentos = 3 + 0
Cruzamentos = 3 + 0 + 0 = 3
O número de cruzamentos em uma matriz M(i) é:
O número de cruzamentos em uma mapa g é dado pela soma dos cruzamentos de cada matriz de interconexões:
Conectividade
U: conectividade superiori: i-ésima matriz de interconexõesk: vértice representado pela k-ésima linha da matriz M(i)
i = 2 e k = 4
U: conectividade inferiori: i-ésima matriz de interconexõesk: vértice representado pela k-ésima linha da matriz M(i)
i = 2 e k = 4
Baricentros
A definição de baricentro será importante para as heurísticas apresentadas posteriormente.
;3
;1
;2
;3
2,2
2,2
1,2
2,2
L
U
C
R
B
B
B
B
PM Method
Penalty Minimization Method
O PM Method é um método de solução exata utilizado para minimizar o número de cruzamentos entre arestas em um mapa com apenas duas hierarquias.
O método opera quando a ordem de uma linha ou coluna é mantida fixa.
Para aplicar o algoritmo precisamos entender o Penalty Graph.
Penalty Graph
Uma penalidade é representada por:
))(),(())(),((),( vrurkurvrkvup ))(),(())(),(( vrurkurvrk se
O objetivo do algoritmo é achar uma ordem para as linhas ou colunas de uma matriz de interconexões de tal forma que a soma do número de cruzamentos de todos os níveis adjacentes seja minimizada
O algoritmo
Passo 1: Obter o grafo de penalidades H; Passo 2: Encontrar todos os componentes fortemente
conectados de H; Passo 3: Em todos os componentes que possuem mais
de dois vértices, elimina-se os ciclos revertendo a direção das arestas de tal forma que a soma de penalidades seja mínima. “minimum feedback arc set”;
Passo 4: A ordem dos vértices é definida pelo caminho de mínimo custo que liga todos os vértices no novo grafo H obtido no Passo 3.
Exemplo
O número de cruzamentos K(g) é 69
Passo 1: Penalty Digraph
(u,v), se k(r(u),r(v)) < k(r(v),r(u)) Se k(r(u),r(v)) = k(r(v),r(u)) não
se traça arestas no grafo.
Passo 2: Componentes Fortemente Conectados
Aplicando um algoritmo baseado em busca em profundidade, encontramos os componentes fortemente conectado:
{1, 3, 4, 5, 8} {2} {6} {7}
Passo 3
Encontrando todos os ciclos existentes no grafo.
Permanent Expansion?
Substituindo ui por variáveis Booleanas ei e trocando o produto por somas e vice e versa.
Simplificando a expressão acima por meio da lei da absorção.
Pela expressão anterior, obtemos ordens ótimas se invertemos as arestas:(5,1) ou(8,5)
de H.
Invertendo (5,1):
Invertendo (8,5):
69 48
BC method
Barycentric Method
Heurística para minimizar o número de cruzamento entre arestas num mapa com dois níveis.
O algoritmo consistem em ordenar os vértices de uma linha ou coluna de uma matriz M(σ1, σ2) usando como chave o seu baricentro
A operação que transforma uma matriz M(σ1,σ2) em outra reordenada M(σ1’,σ2) é chamada ordenação baricêntrica.
M(σ1’,σ2) = βRM(σ1,σ2)
M(σ1,σ2’) = βCM(σ1,σ2)
Podemos reduzir o número de cruzamentos repetindo a ordenação baricêntrica de linhas e colunas várias vezes.
O algoritmo consiste em duas fases, Fase 1 e Fase 2. A Fase 2 usa a Fase 1 como um subalgoritmo.
Na primeira fase as linhas (ou colunas) são submetidas à ordenação baricêntrica, sendo que as linhas (ou colunas) que apresentarem o mesmo baricentro são preservadas.
Logo em seguida, a segunda fase é executa, trocado a ordem das linhas (ou colunas) que apresentarem o mesmo baricentro. RR(M) (ou RC(M)).
Terminada a segunda fase, repete-se a primeira fase para as colunas (ou linhas).
Algoritmo
Seja M0 uma matriz de realização de uma hierarquia de dois níveis e seja M* uma matriz de solução e K* o número de cruzamentos de M*
Fase 1:
Fase 2:
Exemplo
Algoritmos para hierarquias n-níveis
O método pode ser utilizado em qualquer um dos dois algoritmos apresentados
Tempo de parada:A mesma matriz de realização aparece várias
vezes;Atinge limite de iterações.
Exemplo
QP Method
Quadratic Programming Layout Method
Problema de Programação não-linear (quadrática)Minimizar a distância entre vértices pai e
filhos;Balancear o grafo;
Restrições:Ordem dos vértices em cada nível;Retas verticais ligando vértices falsos.
Modelo Matemático
Exemplo
PL Method
Priority Layout Method
Método heurístico para obter uma representação mais legível de um grafo com menor custo computacional.
Segue o mesmo modelo dos algoritmos anteriores, nos quais a execução era realizada seqüencialmente sobre cada matriz de interconexões de uma matriz de realizações.
Conceito de prioridade
1. Valores iniciais da posição horizontal de cada vértice em um nível i são dados por:
2. A posição de cada vértice é melhorada seqüencialmente de cima para baixou ou de baixo para cima;
3. A posição de cada vértice em um nível é determinada um por uma de acordo com a sua prioridade.
A maior prioridade é dados aos vértices falsos e seu valor é maior que a conectividade de todos os vértices.
As demais prioridades é dada pela conectividade de cada vértice.
4. A principal maneira de melhorar a distribuição dos vértices em cada nível é minimizar a distância entre a posição atual do vértice e os baricentros superiores ou inferiores do mesmo vértice.
Restrições
As posições são representadas por números inteiros;
A ordem dos vértices é preservada; Uma vez determinada a posição de um
vértice, ela deve permanecer fixa. A partir daí somente os vértices de menor prioridade podem se mover, de tal forma que a distância seja mínima.
Exemplo
Dúvidas?