Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira
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?