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

Upload: internet

Post on 17-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

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