Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia...

74
Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira

Transcript of Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia...

Page 1: 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

Page 2: 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.

Page 3: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 4: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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 ,,

Page 5: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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

Page 6: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Uma hierarquia, portanto é definida como

em que

Para as próximas discussões, serão considerados uma hierarquia própria.

),,,,( nEVG

)...( 21 n

Page 7: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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 ),(

Page 8: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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

Page 9: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 10: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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

Page 11: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Cruzamentos = 3

Page 12: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Cruzamentos = 3 + 0

Page 13: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Cruzamentos = 3 + 0 + 0 = 3

Page 14: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

O número de cruzamentos em uma matriz M(i) é:

Page 15: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 16: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

O número de cruzamentos em uma mapa g é dado pela soma dos cruzamentos de cada matriz de interconexões:

Page 17: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 18: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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

Page 19: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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

Page 20: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Baricentros

A definição de baricentro será importante para as heurísticas apresentadas posteriormente.

Page 21: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

;3

;1

;2

;3

2,2

2,2

1,2

2,2

L

U

C

R

B

B

B

B

Page 22: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

PM Method

Penalty Minimization Method

Page 23: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 24: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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

Page 25: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 26: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 27: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Exemplo

Page 28: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

O número de cruzamentos K(g) é 69

Page 29: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 30: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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}

Page 31: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Passo 3

Encontrando todos os ciclos existentes no grafo.

Page 32: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Permanent Expansion?

Page 33: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 34: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Pela expressão anterior, obtemos ordens ótimas se invertemos as arestas:(5,1) ou(8,5)

de H.

Page 35: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Invertendo (5,1):

Page 36: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Invertendo (8,5):

Page 37: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

69 48

Page 38: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

BC method

Barycentric Method

Page 39: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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

Page 40: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 41: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 42: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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).

Page 43: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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*

Page 44: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Fase 1:

Page 45: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Fase 2:

Page 46: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Exemplo

Page 47: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 48: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 49: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 50: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Algoritmos para hierarquias n-níveis

Page 51: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

O método pode ser utilizado em qualquer um dos dois algoritmos apresentados

Page 52: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Tempo de parada:A mesma matriz de realização aparece várias

vezes;Atinge limite de iterações.

Page 53: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Exemplo

Page 54: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 55: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 56: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 57: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

QP Method

Quadratic Programming Layout Method

Page 58: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 59: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Modelo Matemático

Page 60: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 61: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Exemplo

Page 62: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 63: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 64: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

PL Method

Priority Layout Method

Page 65: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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

Page 66: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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;

Page 67: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 68: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 69: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

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.

Page 70: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Exemplo

Page 71: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 72: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.

Dúvidas?

Page 73: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.
Page 74: Algoritmo de Sugiyama Métodos para representação de estruturas hierárquicas Christiano Gouveia de Oliveira.