• Nenhum resultado encontrado

Desenho de grafos: uma abordagem utilizando programação linear inteira

N/A
N/A
Protected

Academic year: 2017

Share "Desenho de grafos: uma abordagem utilizando programação linear inteira"

Copied!
100
0
0

Texto

(1)

Universidade Federal de Minas Gerais

Escola de Engenharia

Programa de P´

os-Gradua¸c˜

ao em Engenharia El´etrica

Disserta¸c˜ao de Mestrado

Desenho de Grafos: Uma Abordagem

utilizando Programa¸c˜

ao Linear Inteira

Felipe Marques Terra

Disserta¸c˜ao de mestrado submetida `a Banca Examinadora designada pelo Colegiado do Programa de P´os-Gradua¸c˜ao em Engenharia El´etrica da Universidade Federal de Minas Gerais, como requisito parcial para obten¸c˜ao do t´ıtulo de Mestre em Engenharia El´etrica.

Orientador: Prof. Renato Cardoso Mesquita

(2)
(3)

Resumo

Um problema importante em visualiza¸c˜ao de dados ´e como organizar a informa¸c˜ao a ser mostrada em estruturas que mostram entidades e as rela¸c˜oes entre elas. Quando se tem um n´umero extenso de entidades e de rela¸c˜oes este problema pode ser muito complexo. Para um n´umero grande de dados ou quando v´arios requisitos est´eticos tem que ser obedecidos, o desenho autom´atico de grafos se torna um problema relevante.

Este trabalho tem como objetivo o estudo de metodologias e o desenvolvimento de uma ferramenta computacional capaz de gerar desenhos de grafos de maneira autom´atica, otimi-zando fatores como complexidade visual da informa¸c˜ao representada no grafo, legibilidade, e diversos crit´erios est´eticos. Para isso foram aplicadas t´ecnicas de Programa¸c˜ao Linear Inteira (PLI) em etapas de algoritmos de desenho de grafos, para que restri¸c˜oes espec´ıficas de desenhos de circuitos alimentadores de energia el´etrica fossem contempladas de maneira mais eficiente.

Duas abordagens s˜ao apresentadas. A topologia-forma-m´etrica, que consiste em tratar o desenho em trˆes etapas: planariza¸c˜ao, respons´avel por definir um embutimento planar para o grafo; ortogonaliza¸c˜ao, respons´avel por definir ˆangulos de v´ertices e arestas; e com-pacta¸c˜ao, respons´avel por obter coordenadas de um desenho o mais compacto poss´ıvel. Outra abordagem, a hier´arquica, visa dispor v´ertices em camadas, ou n´ıveis, e possui resul-tados interessantes quando aplicada a determinados problemas de desenho de grafos, tais como esquemas que precisam real¸car informa¸c˜oes de dire¸c˜ao de fluxos, como ´e o caso de alguns diagramas de sistemas de energia el´etrica.

Desenhos de grafos gerados pelas diferentes abordagens s˜ao discutidos e comparados. Os resultados obtidos indicam que a abordagem PLI permite a inclus˜ao de restri¸c˜oes de forma mais simples, possibilitando a inser¸c˜ao de mais requisitos est´eticos nos desenhos autom´aticos.

(4)
(5)

Abstract

An important problem in data visualization is the information organization into struc-tures that show entities and their relationships. This problem can be more complex as the number of entities increases. The way a graph is drawn can directly impact on the information quality and reliability. For large amount of data, or, when large number of aesthetic requirements had to be defined, the automatic graph drawing problem becomes a very relevant problem. The methodology study and the development of a computational tool designed to build automatic graph drawing are the objectives of this work, optimizing the graph data visual complexity, readability and many kinds of aesthetic requirements. To achieve these goals, the Integer Linear Programming (ILP) approach was used in al-gorithm steps, just for treating electric circuits drawing requirements in an efficient way. Two approaches are presented: the topology-metric-shape deals the drawing in three steps: planarization, responsible for the definition of a planar embedding; orthogonalization, re-sponsible for vertices and edges angles definition; and the compaction, which defines the compact drawing coordinates. Another approach, the hierarchical one, targets a draw-ing in levels, and achieves better results in some kinds of graph drawdraw-ing problems, like flow schemas in electric power systems diagrams. Graph drawings built with the different approaches are largely discussed and compared. The obtained results show that the ILP approach allows the insertion of requirements in the system in a simple way. This enables the insertion of many aesthetic requirements.

(6)
(7)

Agradecimentos

Primeiramente a Deus por simplesmente permitir que tudo isto esteja acontecendo e que eu tivesse sa´ude para conseguir trabalhar neste projeto.

`

A toda minha fam´ılia por sempre me apoiar.

Ao meu orientador Renato Cardoso Mesquita e pela oportunidade que me foi dada e pelo aux´ılio valioso.

Aos amigos do GOPAC (Grupo de Otimiza¸c˜ao e Projeto Assistido por Computador) pela grande amizade e pelas ajudas freq¨uentes. Em especial: Adriano Lisboa, Alexandre Ramos, Dalmy J´unior, Diogo Batista, Douglas Vieira, Leonardo Mozelli, Luciano Pimenta, Marcelo Guedes, Marcos Fl´avio, Miguel Lima e Ricardo Adriano.

Aos alunos de inicia¸c˜ao cient´ıfica Christiano Gouveia, Raphael Duarte, Thiago Campos e Vitor Baracho pela preciosa ajuda e dedica¸c˜ao.

Ao Vin´ıcius Magalh˜aes (Light/RJ), Daniel, Esdras, Arthur e Gisele (Concert Technolo-gies) pela coopera¸c˜ao no projeto P&D.

`

A Ana Fl´avia pela compreens˜ao, carinho e amor.

Aos meus amigos por entenderem meus longos per´ıodos de ausˆencia.

A todos que direta ou indiretamente contribu´ıram para a realiza¸c˜ao desse trabalho. A todos vocˆes, muito obrigado.

(8)

Sum´ario viii

Lista de Figuras x

Lista de Tabelas xii

Lista de S´ımbolos xiii

1 Introdu¸c˜ao 1

1.1 Motiva¸c˜ao . . . 1

1.2 Trabalhos relacionados . . . 2

1.3 Objetivos . . . 3

1.4 Organiza¸c˜ao do texto . . . 3

2 Desenho de Grafos 5 2.1 Grafos . . . 5

2.2 Paradigmas em Desenho de Grafos . . . 7

2.2.1 Conven¸c˜oes de Desenho . . . 8

2.2.2 Crit´erios Est´eticos . . . 10

2.2.3 Restri¸c˜oes . . . 13

2.2.4 Eficiˆencia dos algoritmos . . . 14

2.2.5 Precedˆencia entre Crit´erios Est´eticos . . . 14

2.3 Topologia-Forma-M´etrica . . . 15

2.3.1 Planariza¸c˜ao . . . 16

2.3.2 Ortogonaliza¸c˜ao . . . 17

2.3.3 Compacta¸c˜ao . . . 20

2.4 Metodologia Hier´arquica . . . 23

3 Desenhos de Grafos baseados em PLI 25 3.1 Modelagem por Programa¸c˜ao Linear Inteira . . . 25

3.2 Ortogonaliza¸c˜ao em Programa¸c˜ao Linear Inteira . . . 26

(9)

SUM ´ARIO ix

3.2.2 Restri¸c˜oes Especiais em Ortogonaliza¸c˜ao . . . 29

3.3 Compacta¸c˜ao com V´ertices de Tamanho Pr´e-Determinado . . . 36

3.3.1 Compacta¸c˜ao ´Otima . . . 37

3.3.2 Compacta¸c˜ao R´apida . . . 40

3.3.3 Sistema PLI da Compacta¸c˜ao . . . 42

4 Desenho Hier´arquico 45 4.1 Defini¸c˜oes B´asicas . . . 45

4.2 Algoritmo Sugiyama . . . 46

4.2.1 Normaliza¸c˜ao e Atribui¸c˜ao de N´ıveis . . . 48

4.2.2 Redu¸c˜ao de Cruzamentos . . . 48

4.2.3 Atribui¸c˜ao de Coordenadas Horizontais . . . 50

4.2.4 Desempenho do Algoritmo de Sugiyama . . . 51

5 Biblioteca de Gera¸c˜ao de Esquem´aticos Ortogonais 53 5.1 Sistema de Gera¸c˜ao de Diagramas Ortogonais . . . 53

5.1.1 Requisitos Para o Desenho de Circuitos de Redes de Transmiss˜ao 54 5.1.2 Componentes da Solu¸c˜ao Computacional . . . 56

6 Resultados 63 6.1 Testes Simples Pontuais . . . 63

6.2 Testes Preliminares com Circuitos Alimentadores da Light . . . 64

6.2.1 Desempenho dos Testes Preliminares . . . 64

6.2.2 Resultados dos Testes Preliminares . . . 64

6.3 Resultados Para Compara¸c˜ao entre Abordagens . . . 71

6.4 Resultados dos Testes Definitivos . . . 76

7 Conclus˜oes 79

(10)

2.1 Um grafo com 13 v´ertices e 13 arestas. . . 6

2.2 Exemplo de um d´ıgrafo. . . 6

2.3 Dois desenhos de um mesmo grafo . . . 7

2.4 Grafo desenhado utilizando a conven¸c˜ao linhas-retas. . . 9

2.5 Grafo desenhado utilizando as conven¸c˜oes ortogonal, planar e grid. . . 9

2.6 Grafo utilizando a conven¸c˜ao de desenho direcionado (downward). . . 9

2.7 Minimiza¸c˜ao de ´area . . . 11

2.8 Minimiza¸c˜ao de dobras . . . 12

2.9 Raz˜ao de Aspecto . . . 12

2.10 Exemplo de uso de restri¸c˜oes de forma no desenho. . . 13

2.11 Dois desenhos ortogonais do mesmo grafo . . . 14

2.12 ˆAngulos-v´ertice e ˆangulos-aresta . . . 18

2.13 ˆAngulos-v´ertice e ˆangulos-aresta . . . 20

2.14 Desenho: exemplo de ˆangulos de arestas . . . 21

2.15 Montagem da rede de fluxo na ortogonaliza¸c˜ao . . . 22

2.16 Redes ηver eηhor . . . 23

3.1 Defini¸c˜ao de faces . . . 26

3.2 Defini¸c˜ao der(u,v) e l(u,v) . . . 27

3.3 Um exemplo para um desenho com base em Kandinsky. . . 29

3.4 Trecho de desenho upward mostrando o eixo de balanceamento. . . 30

3.5 Caracteriza¸c˜ao dos elementos especiais . . . 33

3.6 Exemplo de controle de tamanho m´ınimo de v´ertice . . . 34

3.7 Resultados de 4 m´etodos diferentes de Compacta¸c˜ao . . . 37

3.8 Grafo Simples. . . 38

3.9 Caracteriza¸c˜ao dos segmentos em um desenho de grafo. . . 39

3.10 Decomposi¸c˜ao de uma face. . . 40

3.11 Exemplo de caracteriza¸c˜ao do explos˜ao de v´ertices. . . 42

3.12 Exemplo de uma chave seccionadora de 3 posi¸c˜oes. . . 42

(11)

LISTA DE FIGURAS xi

4.1 Exemplo de diagrama hier´arquico. . . 46

5.1 Diagrama ortogonal da LSA - Cavado da Light. . . 55

5.2 Diagrama ortogonal da LSA-Cavado da Light, gerado por desenhista. . . . 56

5.3 Arquitetura da Plataforma. . . 57

5.4 Chaves de 3 posi¸c˜oes. . . 59

5.5 Chaves `a g´as. . . 59

5.6 Diagrama de Classes da biblioteca OGDF. . . 62

6.1 Resultados dos testes programados . . . 66

6.2 Teste para v´ertice com controle de sa´ıda de aresta. . . 67

6.3 Teste para v´ertice com controle de sa´ıda de aresta, v´arias arestas. . . 67

6.4 Teste com alimentador 1. . . 68

6.5 Teste com alimentador 2. . . 69

6.6 Teste com alimentador 3. . . 69

6.7 Sin´otico gerado pelo antigo sistema da Light. . . 70

6.8 Compara¸c˜ao de grau de compacta¸c˜ao. . . 70

6.9 Teste para alimentador 4. . . 71

6.10 Teste para alimentador 5. . . 72

6.11 Teste para alimentador 6. . . 73

6.12 Teste para alimentador 6 definitivo. . . 74

6.13 Teste para alimentador 4 definitivo. . . 74

6.14 Compara¸c˜ao de grau de compacta¸c˜ao. alimentador 4. . . 74

6.15 Teste alimentador 7 definitivo. . . 75

6.16 Teste definitivo. . . 76

6.17 Teste definitivo. . . 76

6.18 Teste definitivo. . . 76

6.19 Teste definitivo. . . 77

(12)

6.1 M´edia de tempos de execu¸c˜ao . . . 65

(13)

Lista de S´ımbolos

α(u, v) Parˆametro utilizado na designa¸c˜ao do ˆangulo entre duas arestas de H.

β(u, v) Parˆametro que indica o n´umero de dobras de uma aresta em H.

η Rede de fluxos de um grafo ortogonal planar.

ηhor Rede de fluxo horizontal para compacta¸c˜ao

ηver Rede de fluxo vertical para compacta¸c˜ao

Γ O desenho de um grafo.

λ, µ, χ Limite inferior, a capacidade e o custo de um arco (u, v) emη.

σ(x) Fluxo de uma entidade x (face, v´ertice).

θ Custo de fluxo em uma rede.

ε Ordem c´ıclica que define um embutimento planar.

Ah Conjunto de arcos horizontais para um grafo restrito.

Av Conjunto de arcos verticais para um grafo restrito.

c(v,w) Angulo entre a extremidade esquerda do eixo de balan¸co horizontal deˆ v e a extremidade w da aresta (v, w) incidente a v.

D(v) O conjunto de arestas com origem em um v´ertice V.

Dh Grafo restrito com arcos horizontais.

Dh Grafo restrito com arcos verticais.

E Conjunto de arestas de um grafo.

E Uma aresta qualquer de um grafo.

Eh Conjunto de arestas horizontais do grafo.

Ev Conjunto de arestas verticais do grafo.

(14)

G Um grafo.

H Representa¸c˜ao ortogonal de um grafo.

m(v,w) c(v,w) mod 4.

Sd(v) O conjunto de arestas a serem anexadas a um lado d do v´ertice v.

Sh Conjunto de segmentos horizontais do grafo.

Sv Conjunto de segmentos verticais do grafo.

V Conjunto de v´ertices de um grafo.

f Face de um grafo

p Total de ˆangulos-v´ertice em um v´ertice

(15)

Cap´ıtulo 1

Introdu¸c˜

ao

1.1

Motiva¸c˜

ao

Desenho de grafos endere¸ca o problema de construir representa¸c˜oes gr´aficas de grafos, redes e estruturas combinatoriais relacionadas. As representa¸c˜oes geom´etricas dos grafos vˆem sendo investigadas pela matem´atica h´a s´eculos, tanto para a visualiza¸c˜ao das estruturas quanto para desenvolver a intui¸c˜ao sobre as estruturas tratadas. A organiza¸c˜ao e visualiza-¸c˜ao de informavisualiza-¸c˜ao atrav´es de estruturas que demonstram entidades e rela¸c˜oes de adjacˆencia ´e uma problema importante quando tais informa¸c˜oes forem complexas ou numerosas. A forma como um grafo ´e visualizado pode ser extremamente importante (Battista et al., 1999), se analisarmos que a qualidade do entendimento, confiabilidade e eficiˆencia em termos de quantidade de informa¸c˜ao s˜ao dependentes do resultado da visualiza¸c˜ao.

A gera¸c˜ao autom´atica de desenhos de grafos tem v´arias aplica¸c˜oes. Exemplos incluem a Engenharia de Software (diagramas de fluxos de dados, grafos de chamadas de sub-rotinas, hierarquias de classes e diagramas de objetos em programas orientados a objeto), Bancos de Dados (diagramas entidade/relacionamento), Sistemas de Informa¸c˜ao (diagramas orga-nizacionais), Sistemas de Tempo Real (redes de Paterson (1977), diagramas de transi¸c˜ao de estado), Sistemas de Suporte `a Decis˜ao (redes PERT, ´arvores de atividade), Projeto de circuitos integrados (diagramas de circuitos), Sistemas de Energia (diagramas das redes de transmiss˜ao e distribui¸c˜ao), Inteligˆencia Artificial (diagramas de representa¸c˜ao do conheci-mento), etc. Devido `a natureza combinatorial e geom´etrica dos problemas investigados e `a ampla faixa de dom´ınios de aplica¸c˜ao, a pesquisa em Desenho de Grafos tem sido condu-zida em diversas ´areas, incluindo a Matem´atica Discreta (teoria topol´ogica de grafos, teoria geom´etrica de grafos), Algoritmos (algoritmos em grafos, estruturas de dados, geometria computacional, VLSI), Computa¸c˜ao Gr´afica (linguagens visuais, interfaces gr´aficas, visuali-za¸c˜ao de software) e Engenharia (nas diversas aplica¸c˜oes do desenho de grafos, como, por exemplo, em sistemas de energia e no projeto de circuitos). Por este motivo, um grande n´umero de publica¸c˜oes na ´area est´a dispon´ıvel. Um tutorial de Battista et al. (1994) indica mais de 300 artigos sobre o assunto e, certamente, este n´umero ´e atualmente muitas vezes

(16)

maior.

Especificamente, o problema proposto a ser resolvido por este trabalho se refere aos circuitos alimentadores da Light/RJ. Tais circuitos representam as informa¸c˜oes de conec-tividade entre os elementos el´etricos que comp˜oem a transmiss˜ao de energia, desde o ali-mentador, at´e o receptor. Al´em disso, foi visto que para gerar os esquem´aticos de circuitos alimentadores, uma s´erie de regras, ou crit´erios de desenho deveriam ser seguidos.

Este trabalho procura focar em uma metodologia que trata de maneira mais intuitiva os fatores que definem o problema da visualiza¸c˜ao de grafos. Um estudo foi feito para se implementar um sistema que pudesse ser moldado conforme o problema a ser resolvido (tratando crit´erios espec´ıficos do problema). A capacidade de especializa¸c˜ao da solu¸c˜ao, amparada por uma metodologia gen´erica que oferece esta especializa¸c˜ao de maneira mais intuitiva foi o objetivo principal deste trabalho.

1.2

Trabalhos relacionados

Um desenho de um grafo pode ser gerado por diferentes abordagens, as quais estabele-cem rela¸c˜oes de precedˆencia variadas entre crit´erios est´eticos. Cada contexto de aplica¸c˜ao dita quais s˜ao as caracter´ısticas desejadas para o desenho. Diagramas ortogonais, por exem-plo, s˜ao utilizados em uma ampla gama de aplica¸c˜oes. Usualmente, desenhos de grafos que correspondem a este tipo de diagrama tamb´em adotam a conven¸c˜ao grid, na qual as coor-denadas de v´ertices e dobras de arestas s˜ao n´umeros inteiros. Muitos algoritmos de desenho que seguem esse modelo s˜ao conhecidos (Battista et al., 1994).

O Giotto ´e um algoritmo para desenho de grafos em grid mais eficiente em termos de v´arios crit´erios est´eticos (Battista et al., 1994). Este algoritmo segue a metodologia

topologia-forma-m´etrica(Tamassia, 1987) composta pelas etapas de planariza¸c˜ao, respon-s´avel por definir um embutimento planar para o grafo; ortogonaliza¸c˜ao, responrespon-s´avel por definir ˆangulos de v´ertices e arestas; e compacta¸c˜ao, respons´avel por obter coordenadas de um desenho o mais compacto poss´ıvel. A vertente do algoritmo Giotto, utilizada em grafos com v´ertices que possuem n arestas de entrada e/ou sa´ıda (com n podendo ser maior que 4) ´e chamada Kandinsky (F¨oßmeier and Kaufmann, 1996, 1997). O algoritmo

Column(T.Biedl and Kant, 1998) trabalha sob premissas de ser independente do processo de planariza¸c˜ao, que pode gerar v´arios v´ertices fict´ıcios ao grafo, os quais contribuem para o aumento de complexidade e dificuldade de implementa¸c˜ao do desenho. A primeira fase do algoritmo ´e respons´avel por ordenar os v´ertices de um grafo biconectado a partir de uma fonte e um sumidouro. Em seguida, os v´ertices do grafo s˜ao adicionados em linhas conse-cutivas do grid e colunas s˜ao alocadas para suas arestas, em uma combina¸c˜ao ´otima. O algoritmoPair (Papakostas and Tollis, 1994) segue as mesmas premissas do Column com modifica¸c˜oes de implementa¸c˜ao que o torna mais simples embora menos eficiente. Melo (2007) desenvolveu uma biblioteca gen´erica para manipula¸c˜ao de grafos, contendo rotinas para desenho de grafos baseadas nestas abordagens.

(17)

1.3. OBJETIVOS 3

compacta¸c˜ao ´e poder ter simplicidade em se modelar as restri¸c˜oes de desenho. Como dito antes, isso ´e vital quando o contexto da aplica¸c˜ao dita quais crit´erios est´eticos devem ser obedecidos em desenhos de grafos.

Desenhos de circuitos el´etricos possuem caracter´ısticas bem determinadas, como por exemplo, a id´eia de fluxo de potˆencia transferida entre os elementos do circuito. Algumas abordagens foram criadas para se evidenciar desenho de diagramas unifilares.

Rao and Deekshit (2003) apresentam, em seu trabalho, uma maneira de gerar diagramas unifilares com um m´etodo iterativo. Tal trabalho foi desenvolvido sob m´etricas de sistemas de circuitos alimentadores el´etricos. Este trabalho concentra-se em estudar m´etodos de desenhos unifilares que privilegiam os crit´erios est´eticos de agradabilidade e legibilidade. Entretanto, a preocupa¸c˜ao com compacta¸c˜ao do desenho (que poderia ser adquirida com um roteamento, resultado da ortogonaliza¸c˜ao no Giotto) ´e minimizada. Ong et al. (2000) mostram uma vertente do algoritmo de recoloca¸c˜ao para gerar diagramas el´etricos unifilares automaticamente em modo grid, n˜ao ortogonais. Neste trabalho, os autores mostram ganhos em eficiˆencia ao utilizar estruturas especiais na abordagem de recoloca¸c˜ao. Mas por se tratar de um algoritmo para desenho de diagramas unifilares, possui uma carˆencia evidente, em termos de crit´erios est´eticos mais abrangentes. Estes trabalhos mostram resultados para o problema de desenhos de circuitos el´etricos, sob forma de diagramas unifilares. Al´em da necessidade da legibilidade, e da compacta¸c˜ao do desenho, outros crit´erios est´eticos fazem parte da gama necess´aria para se gerar bons esquem´aticos de circuitos el´etricos.

Sugiyama et al. (1981) mostram em seu trabalho uma abordagem eficiente, para dese-nho de hierarquias. Tal abordagem incorpora crit´erios importantes para desedese-nho de circuitos el´etricos e se mostra vantajosa, por simplicidade e eficiˆencia, em compara¸c˜ao com outras similares.

1.3

Objetivos

Este trabalho tem como objetivo o desenvolvimento de uma ferramenta computacio-nal capaz de gerar desenhos de grafos de maneira autom´atica, otimizando fatores como complexidade visual da informa¸c˜ao representada no grafo, legibilidade, e diversos crit´erios est´eticos. Para isso foi proposto que seriam aplicadas t´ecnicas de Programa¸c˜ao Linear In-teira (PLI) em etapas de desenho dos grafos, para que restri¸c˜oes espec´ıficas em desenhos de grafos de circuitos alimentadores de energia el´etrica fossem contempladas de maneira mais eficiente.

(18)

1.4

Organiza¸c˜

ao do texto

O cap´ıtulo 2 apresenta diversos conceitos relacionados ao desenho de grafos, frisando as metodologias para desenho.

O cap´ıtulo 3 apresenta a metodologia de desenhos de grafos baseada em Programa¸c˜ao Linear Inteira. Na etapa de ortogonaliza¸c˜ao, s˜ao definidos os ˆangulos entre arestas e dobras de arestas. Dada uma topologia, o passo de ortogonaliza¸c˜ao determina a forma de um de-senho. Em uma representa¸c˜ao ortogonal, v´ertices n˜ao possuem coordenadas e cada aresta (u,v) ´e equipada com uma lista de ˆangulos. Tal lista descreve as dobras que a representa-¸c˜ao ortogonal da aresta (u,v) ter´a no desenho final. Esta etapa faz parte da metodologia

Topologia-Forma-M´etricadetalhada na se¸c˜ao 2.3. Em se¸c˜ao espec´ıfica, a ortogonaliza¸c˜ao ser´a descrita em sua abordagem baseada em PLI. O cap´ıtulo ainda apresenta a etapa onde s˜ao geradas as coordenadas dos desenhos de grafos, definindo uma m´etrica para o esquem´a-tico. Esta etapa, a compacta¸c˜ao, tem como entrada a sa´ıda da etapa de ortogonaliza¸c˜ao. Uma se¸c˜ao detalha a compacta¸c˜ao em uma abordagem PLI onde s˜ao definidos tamanhos pr´e-determinados para os v´ertices, atrav´es de restri¸c˜oes inseridas no sistema.

O cap´ıtulo 4 apresenta a metodologia hier´arquica para desenho de grafos. Tal metodo-logia disp˜oe os v´ertices e arestas em n´ıveis e possui outros crit´erios est´eticos e restri¸c˜oes para constru¸c˜ao do esquem´atico. Nesta metodologia ´e destacado o processo de otimiza¸c˜ao do posicionamento de v´ertices que busca a minimiza¸c˜ao do n´umero de cruzamentos de arestas num desenho.

O cap´ıtulo 5 mostra as implementa¸c˜oes desenvolvidas para a solu¸c˜ao de Gera¸c˜ao Au-tom´atica de Esquem´aticos Ortogonais da empresa Light. Nesse cap´ıtulo s˜ao detalhados os componentes que configuram o sistema, sob o ponto de vista da obten¸c˜ao dos dados atra-v´es de informa¸c˜oes dos circuitos alimentadores e da gera¸c˜ao dos desenhos de tais circuitos. Os resultados das implementa¸c˜oes s˜ao mostrados no cap´ıtulo 6.

(19)

Cap´ıtulo 2

Desenho de Grafos

Nas diversas ´areas onde se empregam rotinas de gera¸c˜ao de desenho de grafos, existem requisitos que devem ser observados para que seja poss´ıvel gerar bons desenhos, e, em cada ´area, tais requisitos podem ser bastante diferentes. Um desenho pode ser considerado ´otimo em determinado contexto, mas pode n˜ao atender aos requisitos de alguma outra aplica¸c˜ao. O elemento essencial para uma metodologia de desenho de grafos ´e o ambi-ente particular no qual o desenho ser´a utilizado. Na realidade, palavras como dom´ınio de aplica¸c˜ao ou ambiente onde ser´a utilizado s˜ao muito abstratas para serem utilizadas em algoritmos computacionais. Existem conceitos mais espec´ıficos para se descrever os requisi-tos de um desenho, a saber, as conven¸c˜oes de desenho, os crit´erios est´eticos e as restri¸c˜oes (Battista et al., 1999). As pr´oximas se¸c˜oes abordam, separadamente, cada um deles. Para entender os conceitos discutidos na seq¨uˆencia, ´e importante estabelecer uma terminologia b´asica (Gross and Yellen, 1999; Harary, 2009; Bondy and Murty, 1976; Biggs et al., 1976; West, 2006; Wilson, 1996).

2.1

Grafos

Grafos s˜ao estruturas combinatoriais formadas por elementos simples que consistem em um conjunto de v´ertices e um conjunto de arestas. V´ertices representam objetos concretos ou n˜ao, que possuem entendimento pr´oprio e podem possuir propriedades adicionais como peso, cor, ou qualquer outro atributo que seja ´util dentro do contexto da aplica¸c˜ao. As arestas representam as rela¸c˜oes entre os v´ertices. Grafos podem representar modelos f´ısicos como um circuito el´etrico ou uma rede de computadores (Gross and Yellen, 1999; Harary, 2009; Bondy and Murty, 1976).

Defini¸c˜ao 1 Um grafo G= (V;E) consiste na composi¸c˜ao dos conjuntos finitos V con-tendo nv v´ertices e E, contendo ne arestas. O conjunto E ´e formado por pares

n˜ao-ordenados de v´ertices (u;w), onde u, w ∈ V.

(20)

Figura 2.1: Um grafo com 13 v´ertices e 13 arestas.

Uma aresta (u;w) com u=w´e chamada de auto-ciclo (self-loop). Se a aresta ocorre mais de uma vez em E, ela ´e uma aresta paralela. Um grafo simples ´e um grafo que n˜ao possui auto-ciclos ou arestas m´ultiplas. O grafo da figura 2.1 ´e simples. Os v´ertices finais ou extremidades de uma arestae= (u;w)s˜ao os v´erticesuew. O v´ertice u´e chamado de adjacente ao v´erticewe a aresta e´e chamada de incidente aos v´erticesuew. No grafo da figura 2.1, os v´ertices 1 e 3 s˜ao adjacentes, por´em os v´ertices 1 e 5 n˜ao s˜ao. O(s) vizinho(s) de um v´ertice w s˜ao os v´ertices adjacentes a w. No grafo da figura 2.1, os vizinhos de 1 s˜ao os v´ertices 2, 3, 4 e 7. O grau de um v´ertice w´e o n´umero de vizinhos que ele possui. No grafo da figura 2.1, o grau do v´ertice 1 ´e igual a 4.

Um grafo direcionado ou d´ıgrafo ´e aquele onde as arestas s˜ao direcionadas, criando-se uma ordem para os v´ertices. No desenho de grafos direcionados, geralmente as arestas s˜ao representadas por setas, como na figura 2.2.

Figura 2.2: Exemplo de um d´ıgrafo.

Um caminho (direcionado) em um grafo (direcionado) G = (V;E) ´e uma seq¨uˆencia (v1;v2;...;vh) de v´ertices distintos de G, tal que (vi; vi+1) ∈ E para 1 ≤ i ≤ h−1.

(21)

2.1. GRAFOS 7

a seq¨uˆencia (1, 7, 6, 5) ´e um caminho direcionado. Um caminho (direcionado) ´e um ciclo (direcionado) se (vh; v1) ∈ E. Um grafo (direcionado) ´e ac´ıclico se n˜ao possui

ciclos (direcionados). No grafo da figura 2.1 o caminho (1, 4, 6, 7, 1) ´e um ciclo. O grafo direcionado da figura 2.2 n˜ao possui ciclos direcionados. Um desenho Γde um grafo (d´ıgrafo)G´e uma fun¸c˜ao que mapeia cada v´erticev a um ponto distintoΓ(v)e cada aresta (u, v)a uma curva simples aberta Γ(u, v), com pontos finais emΓ(u)eΓ(v). Um desenho de G´e planar, se n˜ao houver interse¸c˜ao de arestas distintas. O grafo G ´e dito planar, se ele admite pelo menos um desenho planar. O grafo da figura 2.2 ´e planar.

Um desenho planar particiona o plano em regi˜oes conectadas chamadas de faces. Uma face f ´e um la¸co de arestas, ou, uma seq¨uencia fechada de arestas. A face ilimitada ´e chamada de face externa, enquanto que as outras s˜ao chamadas de faces internas. Um embutimento planar de um grafo, ´e uma classe de equivalˆencia de desenhos que se diferem pela ordem circular no sentido hor´ario dos vizinhos de cada v´ertice. A figura 2.3 mostra um mesmo grafo apresentado com embutimentos planares diferentes.

Figura 2.3: Dois desenhos de um mesmo grafo. Ambos embutimentos representam um mesmo grafo.

(22)

2.2

Paradigmas em Desenho de Grafos

Para desenhar um grafo G ´e importante levar em considera¸c˜ao as suas propriedades combinatoriais. O conhecimento sobre algumas propriedades predominantes de G (se ´e ac´ıclico, direcionado, planar) pode direcionar qual tipo de algoritmo para desenho deve ser aplicado. Geralmente conhecemos a classe de grafos a qual Gpertence. Essa classifica¸c˜ao permite que determinados algoritmos pr´oprios a determinadas classes de grafos destaquem melhor as propriedades combinatoriais do mesmo. Por exemplo, seG´e um d´ıgrafo ac´ıclico, ent˜ao pode ser importante desenhar todas as arestas seguindo a mesma dire¸c˜ao, para enfatizar a inexistˆencia de ciclos.

Assim, define-se que a classe do grafo em quest˜ao ´e um parˆametro de entrada para uma metodologia de desenho. Outros pontos de decis˜ao tamb´em devem ser levados em considera¸c˜ao no desenho. ´Itens como a percep¸c˜ao humana sobre as informa¸c˜oes do dese-nho, ou mesmo, o ambiente em que ser´a apresentado o desenho do grafo exercem grande dependˆencia sobre os requisitos envolvidos na gera¸c˜ao do desenho.

Nas se¸c˜oes que seguem, ser˜ao mostrados conceitos sobre conven¸c˜ao de desenhos, cri-t´erios est´eticos e restri¸c˜oes, entre outros. Tais conceitos modelam a lista de requisitos necess´arios para que uma determinada classe de grafo (em conjunto com determinadas decis˜oes de visualiza¸c˜ao) seja mais adequadamente descrita num desenho.

2.2.1

Conven¸c˜

oes de Desenho

Uma conven¸c˜ao de desenho corresponde a uma regra b´asica que deve ser satisfeita pelo desenho. Por exemplo, para um desenho de diagrama de fluxo de dados relativo a uma aplica¸c˜ao de engenharia de software, podemos adotar a conven¸c˜ao de representar todos os v´ertices como caixas e todas as arestas como cadeias poligonais consistindo de segmentos horizontais e verticais. Uma conven¸c˜ao de desenho de um aplicativo real pode ser extremamente complexa e envolver v´arios detalhes do desenho. Algumas conven¸c˜oes bastante utilizadas est˜ao descritas em seguida (Battista et al., 1999).

• Poligonal - Cada aresta do grafo ´e desenhada como uma cadeia poligonal. • Linhas-retas - Cada aresta do grafo ´e desenhada com segmentos retos.

• Ortogonal - Cada aresta do grafo ´e desenhada como uma cadeia poligonal de seg-mentos horizontais e verticais. Curvas (de ˆangulo reto) entre segseg-mentos de arestas s˜ao chamadas dobras.

• Grid - V´ertices, cruzamentos de arestas e dobras de arestas possuem coordenadas inteiras.

• Planar - Conven¸c˜ao onde n˜ao h´a cruzamento de arestas no desenho.

• Desenhos direcionados - Um desenho de um grafo direcionado ´e chamado de

(23)

2.2. PARADIGMAS EM DESENHO DE GRAFOS 9

para cima e nenhum voltado para baixo. Para o contr´ario (arestas direcionadas para baixo) ´e chamado de downward.

Figura 2.4: Grafo desenhado utilizando a conven¸c˜ao linhas-retas.

Figura 2.5: Grafo desenhado utilizando as conven¸c˜oes ortogonal, planar e grid.

Figura 2.6: Grafo utilizando a conven¸c˜ao de desenho direcionado (downward).

(24)

orto-gonais s˜ao amplamente utilizados em circuitos esquem´aticos e diagramas da engenharia de software. Desenhos planares s˜ao esteticamente atraentes, embora nem todos os grafos admitam tal desenho. D´ıgrafos ac´ıclicos representando estruturas hier´arquicas (ex.: diagra-mas de PERT, diagradiagra-mas de heran¸ca de classes) s˜ao exemplos de desenhos direcionados ascendentes. Tamb´em ´e poss´ıvel que um desenho adote mais de uma conven¸c˜ao. Desenhos de circuitos el´etricos s˜ao normalmente executados utilizando as conven¸c˜oes Ortogonal, Grid e Planar.

2.2.2

Crit´

erios Est´

eticos

Os Crit´erios est´eticos especificam propriedades do desenho que devem ser aplicadas ao m´aximo poss´ıvel, de maneira a se alcan¸car a facilidade de compreens˜ao do desenho como um todo. Os seguintes crit´erios s˜ao comumente utilizados (Batine et al., 1985; Purchase and Cohen, 1995; Sugiyama et al., 1981):

• Cruzamentos - Minimiza¸c˜ao do n´umero de cruzamentos entre arestas do grafo. O cen´ario ideal seria desenhos sempre planares, entretanto, nem todo grafo admite uma representa¸c˜ao planar.

• Area´ - Minimiza¸c˜ao da ´area. Talvez um dos crit´erios mais importantes, pela neces-sidade de todo desenho caber em um local limitado. Este crit´erio ´e especialmente importante na conven¸c˜ao grid, onde o tamanho das arestas ´e no m´ınimo uma unidade do grid (o desenho n˜ao pode ser reduzido ilimitadamente). H´a duas formas de definir a ´area de um desenho: pelo fecho convexo (menor pol´ıgono convexo que engloba o desenho) ou pelo menor retˆangulo com lados horizontais e verticais cobrindo o desenho.

• Comprimento total das arestas - Minimiza¸c˜ao da soma do comprimento total das arestas. ´E um crit´erio complementar `a busca da minimiza¸c˜ao da ´area, assim como os outros crit´erios sobre comprimento de aresta.

• M´aximo comprimento das arestas - Minimiza¸c˜ao do comprimento m´aximo de qualquer aresta.

• Comprimento uniforme das arestas - Minimiza¸c˜ao da variˆancia no comprimento das arestas.

• N´umero de dobras- Minimiza¸c˜ao do n´umero total de dobras nas arestas. Especi-almente importante quando a conven¸c˜ao Ortogonal ´e utilizada. Por outro lado, n˜ao faz sentido se a conven¸c˜ao Linhas Retas ´e utilizada.

• M´aximo de dobras por aresta - Minimiza¸c˜ao do n´umero m´aximo de dobras em uma aresta.

(25)

2.2. PARADIGMAS EM DESENHO DE GRAFOS 11

• Resolu¸c˜ao Angular- Maximiza¸c˜ao do menor ˆangulo entre duas arestas incidente no mesmo v´ertice. Especialmente importante quando a conven¸c˜ao linhas-retas ´e usada. Crit´erio que atua diretamente na legibilidade das informa¸c˜oes do desenho.

• Raz˜ao de Aspecto - Aproxima¸c˜ao da raz˜ao de aspecto ´otima do desenho. A ra-z˜ao de aspecto ´e definida como uma rela¸c˜ao do comprimento da maior aresta e o comprimento da menor aresta do menor retˆangulo com cobertura (fecho convexo) horizontal e vertical. Importante em sistemas em que o desenho deve se adequar o mais perfeitamente poss´ıvel `as dimens˜oes de um visualizador (ex.: sistemas sin´oticos com visores de grande largura).

• Simetria - Enfatizar as simetrias do grafo. Existem modelos matem´aticos que definem precisamente tais simetrias e seus respectivos desenhos (Melo, 2007; Battista et al., 1999; Lipton et al., 1985).

(a)

(b) (c)

(26)

(a) (b)

Figura 2.8: Exemplo de desenhos com n´umero de dobras de arestas diferentes. A minimiza¸c˜ao de n´umero de dobras de arestas busca oferecer um desenho mais leg´ıvel (menos complexo).

Figura 2.9: Controlar a raz˜ao de aspecto ou, a rela¸c˜ao entre largura e altura de um desenho, permite adequar o grafo a uma tela sem que se tenha perdas de informa¸c˜ao do desenho, por eventual mal posicionamento.

(27)

2.2. PARADIGMAS EM DESENHO DE GRAFOS 13

Entretanto, ´e comum a existˆencia de conflitos entre crit´erios indicando que um sistema de otimiza¸c˜ao que tente contemplar todos simultaneamente pode n˜ao ser fact´ıvel. Con-seq¨uentemente, as metodologias de desenho de grafos estabelecem rela¸c˜oes de precedˆencia e adotam uma abordagem de divis˜ao do processo em subetapas, nas quais cada algoritmo resolve um problema espec´ıfico de forma independente, conforme veremos na subse¸c˜ao 2.2.5.

2.2.3

Restri¸c˜

oes

Enquanto conven¸c˜oes de desenho e est´etica s˜ao regras e crit´erios gerais que se referem ao desenho do grafo como um todo, restri¸c˜oes se referem a subgrafos espec´ıficos e subdesenhos. As restri¸c˜oes mais utilizadas est˜ao listadas abaixo (Kosak et al., 1994; Tamassia et al., 1988):

• Centraliza¸c˜ao - Posicionar um dado v´ertice no centro do desenho.

• Externaliza¸c˜ao - Posicionar um dado v´ertice no limite exterior do desenho. • Agrupamento - Posicionar um conjunto de v´ertices pr´oximos uns dos outros. • Seq¨uˆencia (esquerda/direita e cima/baixo) - Desenhar um dado caminho

hori-zontalmente alinhado da esquerda para direita (verticalmente alinhado de cima para baixo).

• Forma - Desenhar determinado subgrafo em uma forma predefinida.

2.2.4

Eficiˆ

encia dos algoritmos

Este crit´erio ´e extremamente importante quando tem-se que obter respostas em tempo real, por exemplo, em certos sistemas. Nesse caso, ´e comum a utiliza¸c˜ao de heur´ısticas que podem diminuir ordens de grandezas em determinados algoritmos (levando-se em con-sidera¸c˜ao a separa¸c˜ao de metodologias em sub-partes, que resolvem problemas distintos e independentes em desenho de grafos).

As conven¸c˜oes, crit´erios est´eticos, o contexto da aplica¸c˜ao, a eficiˆencia dos algoritmos e as restri¸c˜oes formam os parˆametros fundamentais associados `as metodologias de desenho de grafos (Battista et al., 1999).

2.2.5

Precedˆ

encia entre Crit´

erios Est´

eticos

A maior parte das metodologias de desenho est˜ao baseadas nas seguintes observa¸c˜oes: • Os crit´erios est´eticos freq¨uentemente entram em conflito uns com os outros. Desse

(28)

(a) Centraliza¸c˜ao

(b) Seq¨uencia (c) Externaliza¸c˜ao (d) Agrupamento

Figura 2.10: Exemplo de uso de restri¸c˜oes de forma no desenho. O posicionamento de um elemento ou um grupo de elementos pode mudar a forma do desenho, centralizando um dado grupo de elementos, externalizando, ou at´e mesmo colocando elementos em seq¨uencia.

• Ainda que os crit´erios est´eticos n˜ao entrem em conflito, ´e geralmente dif´ıcil levar em conta todos eles ao mesmo tempo.

Por exemplo, na figura 2.11 h´a dois desenhos em conven¸c˜ao grid ortogonal, um mini-mizando o n´umero de dobras e outro minimini-mizando o n´umero de cruzamentos. Para este grafo, n˜ao existe um desenho em grid ortogonal que minimize ambos crit´erios est´eticos simultaneamente.

´

E notado que a precedˆencia de um crit´erio sobre outro ´e diretamente ligado `a adequa¸c˜ao da aplica¸c˜ao. As estrat´egias apresentadas na literatura geralmente dividem o processo de desenho de grafos em uma seq¨uˆencia de passos algor´ıtmicos, cada um adequado para satisfazer uma certa subclasse de crit´erios est´eticos. As metodologias mais populares s˜ao:

• Topologia-Forma-M´etrica: (Tamassia, 1987; Tamassia et al., 1988; Batini et al., 1986). Esta estrat´egia foi projetada para construir desenhos ortogonais em grid, com tratamento homogˆeneo de uma grande variedade de crit´erios est´eticos e restri¸c˜oes. Ser´a melhor detalhada em se¸c˜ao pr´oxima (2.3).

(29)

2.3. TOPOLOGIA-FORMA-M ´ETRICA 15

(a) Minimiza¸c˜ao de Dobras (b) Minimiza¸c˜ao de Cruzamentos

Figura 2.11: Dois desenhos ortogonais do mesmo grafo

• Visibilidade: (Battista and Tamassia, 1988; Battista et al., 1992), ´e uma metodo-logia de prop´osito geral para o desenho de grafos que utilizam a conven¸c˜ao poligonal. • Aumento: ´E outra metodologia de prop´osito geral, para o desenho de grafos na conven¸c˜ao poligonal. Por´em ´e menos apropriada que as anteriores para a adi¸c˜ao de restri¸c˜oes (Battista et al., 1999).

• Direcionada por For¸ca: (Battista et al., 1999). Simula um sistema de for¸cas defi-nido no grafo de entrada e gera um desenho de “m´ınima energia“. Interessante para grafos n˜ao direcionados na conven¸c˜ao linhas-retas.

• Dividir para Conquistar: Bastante aplicada no desenho de grafos que possam ser, recursivamente, divididos em subgrafos. As principais aplica¸c˜oes s˜ao o dese-nho de ´arvores (Reingold and Tilford, 1981; Walker, 1990) e d´ıgrafos s´erie-paralelos (Bertolazzi et al., 1994).

2.3

Topologia-Forma-M´

etrica

Uma caracter´ıstica marcante desta metodologia ´e que ela tem como resultado desenho adequado nas conven¸c˜oes planar, ortogonal e grid. Battista et al. (1994) apresenta alguns de muitos algoritmos que implementam esta metodologia. Um exemplo cl´assico de aplica-¸c˜ao pr´atica ´e a confecaplica-¸c˜ao de circuitos integrados, nos quais o diagrama el´etrico deve ser desenhado sob restri¸c˜oes de uma ´area espec´ıfica (Soukup, 1972).

(30)

• Topologia: est´a relacionada `a natureza do grafo, ou, o esquema (mapa) das liga¸c˜oes v´ertices/arestas. Dois desenhos ortogonais possuem a mesma topologia se um pode ser obtido a partir do outro apenas atrav´es de deforma¸c˜oes cont´ınuas, que n˜ao alteram as seq¨uˆencias das arestas contornando as faces do desenho. Isso significa que a defini¸c˜ao da topologia de um grafo ´e a defini¸c˜ao de um dos seus embutimentos planares.

• Forma: trata-se da obten¸c˜ao de ˆangulos e dire¸c˜oes de dobras entre arestas de um grafo (complementando a topologia). Desenhos ortogonais possuem a mesma forma se eles tˆem a mesma topologia e um pode ser obtido a partir do outro modificando apenas o comprimento dos segmentos que representam as arestas do grafo, sem alterar os ˆangulos formados por elas.

• M´etrica: caracterizada pela obten¸c˜ao de coordenadas (tamanhos, posicionamento) do desenho. Ambos dois grafos possuem mesma m´etrica, se o que diferem entre si ´e somente opera¸c˜oes de rota¸c˜ao e transla¸c˜ao.

´

E poss´ıvel perceber uma rela¸c˜ao incremental, entre as propriedades descritas anterior-mente. Isso significa que existe uma forte tendˆencia de divis˜ao em etapas, para algoritmos que implementam a metodologia (Batini et al., 1986). A saber, as etapas s˜ao:

1. Planariza¸c˜ao: obt´em um embutimento planar;

2. Ortogonaliza¸c˜ao: obt´em informa¸c˜oes de ˆangulos entre arestas e entre segmentos de arestas (dobras);

3. Compacta¸c˜ao: obt´em as coordenadas do desenho;

Cada uma destas etapas implementam os resultados esperados para cada uma das pro-priedades da metodologiaTopologia-Forma-M´etrica. Outros crit´erios est´eticos e restri¸c˜oes podem ser introduzidos. Por exemplo, na etapa de planariza¸c˜ao podemos for¸car que certos v´ertices fiquem na ´area externa do desenho (objetivando um aumento de foco na visua-liza¸c˜ao deste v´ertice, ou, determinando associa¸c˜oes f´ısicas, por exemplo, para o caso de v´ertices que representam entrada e sa´ıda de circuitos). Na etapa de ortogonaliza¸c˜ao po-demos for¸car que certas arestas n˜ao possuam dobras, ou impor seq¨uˆencias espec´ıficas de dobras em algumas arestas. Na etapa de compacta¸c˜ao, podemos for¸car que certos v´ertices tenham coordenadas maiores ou menores que outros v´ertices.

(31)

2.3. TOPOLOGIA-FORMA-M ´ETRICA 17

2.3.1

Planariza¸c˜

ao

Uma das t´ecnicas de planariza¸c˜ao de grafos ´e constru´ıda a partir de sucessivas aplica¸c˜oes de uma opera¸c˜ao de planariza¸c˜ao, a qual possui como princ´ıpio b´asico a substitui¸c˜ao de cruzamentos de arestas por v´ertices falsos. Um teste averiguando o crit´erio de parada deste algoritmo ´e necess´ario: determina se um desenho j´a ´e planar. A f´ormula de Euler (Bondy and Murty, 1976) garante que em um grafo simples planar, com V v´ertices, o n´umero de arestas, E, m´aximo, ´e dado por E ≤3V −6. No entanto, isso n˜ao garante que grafos simples planares com n´umero de arestas menor que 3V −6 sejam planares. Al´em disso, a planariza¸c˜ao n˜ao apenas testa a planaridade do grafo, mas constr´oi um embutimento planar para o mesmo.

De forma sucinta, o objetivo principal da planariza¸c˜ao ´e reduzir ao m´aximo o n´umero de cruzamento de arestas. Este problema ´e equivalente ao problema do m´aximo subgrafo planar, bastante estudado por J¨unger and Mutzel (1997), Jayakumar et al. (1986), Kant (1992) e Nardelli and Talamo (1984). Ambos s˜ao problemas NP-hard, o que leva grande parte dos algoritmos de planariza¸c˜ao a utilizarem heur´ısticas.

Uma heur´ıstica bastante comum para computa¸c˜ao de um m´aximo subgrafo planar ´e apresentada por Battista et al. (1999) e ´e definida por inser¸c˜ao de arestas, uma a uma do grafo original, verificando-se se cada inser¸c˜ao torna o grafo planar ou n˜ao. Nesse processo, para cada aresta (u, v), ´e preciso encontrar um caminho de custo m´ınimo no grafo dual do embutimento atual (que est´a sendo montado incrementalmente), e assim, inserir a aresta ao embutimento.

Dado um grafo planar, G, seu dual (geom´etrico), G∗, pode ser constru´ıdo de acordo com os passos apresentado por Wilson (1996). Existem v´arios algoritmos para c´alculo do caminho de menor custo. Quando todas arestas do grafo possu´ırem o mesmo peso, uma busca em largura (BFS) pode ser utilizada. Para os outros casos, os algoritmos de Dijkstra (Dijkstra, 1959) e Bellman-Ford (Bellman, 1958) e (Ford and Fulkerson, 1962) s˜ao boas op¸c˜oes. O importante ´e que exista alguma forma de navegabilidade entre o grafo dual e o primal, j´a que o caminho m´ınimo ´e encontrado no primeiro, e a adi¸c˜ao de arestas ´e feita no segundo.

O resultado das itera¸c˜oes de inser¸c˜oes das arestas ´e um embutimento planar (quando isto for poss´ıvel).

2.3.2

Ortogonaliza¸c˜

ao

A etapa de ortogonaliza¸c˜ao ´e respons´avel por criar uma representa¸c˜ao ortogonal H, a partir de um embutimento planar resultante da planariza¸c˜ao. O resultado desta etapa ´e a obten¸c˜ao dos ˆangulos entre arestas que partem ou chegam em cada v´ertice, e os ˆangulos das dobras das arestas, que determinam sua dire¸c˜ao.

(32)

ˆangulo de π/2.

A seguir ´e descrito o m´etodo original de ortogonaliza¸c˜ao de embutimento planar baseado em fluxo de redes que minimiza o n´umero de dobras de arestas. Este algoritmo possui custo quadr´atico e foi primeiramente apresentado por Tamassia (1987) com varia¸c˜oes, refinamentos e extens˜oes dadas em F¨oßmeier and Kaufmann (1996), Tamassia (1985) e Tamassia et al. (1988).

Sendo Γ um desenho ortogonal de um embutimento planar G′, existem dois tipos de ˆangulos em Γ:

• Angulo gerado por duas arestas incidentes em um v´ertice comum, chamado deˆ ˆangulo-v´ertice.

• Angulos formados por dobras de arestas (entre segmentos de aresta consecutivos),ˆ chamados ˆangulos-aresta.

(a) ˆAngulos-v´ertice (b) ˆAngulos-arestas

Figura 2.12: ˆAngulos em torno de um v´ertice e dentro de uma face em um desenho ortogonal planar

Isto nos leva `as seguintes conclus˜oes:

Lema 1 Em um desenho planar ortogonal, a soma dos ˆangulos-v´ertice de cada v´ertice deve ser igual a.

Lema 2 Para cada face interna f de Γ, a soma dos ˆangulos-v´ertice e de dobras ´e igual a

π(p−2), onde p´e o total de ˆangulos. Para a face externa, a soma ´e igual a π(p+ 2).

A prova destes lemas ´e apresentada em Tamassia (1987).

Considere um embutimento planar de um grafo bidirecional G, com v´ertices de grau m´aximo quatro. O n´umero total de ˆangulos-v´ertice dentro de uma face f ´e designado comona(f). ComoG´e bidirecionado, para cada aresta e= (u, v), tamb´em existe a aresta

e = (v, u). A aresta que percorre determinada face f no sentido anti-hor´ario ´e chamada de aresta anti-hor´ario. O conjunto de arestas com origem em um v´erticeV ´e denotado por

(33)

2.3. TOPOLOGIA-FORMA-M ´ETRICA 19

Dado um desenho planar ortogonal deG, s˜ao definidos os seguintes valores para cada uma de suas arestas:

• α(u, v)·π/2´e o ˆangulo em um v´erticeuformado pelos primeiros segmentos da aresta (u, v) e a pr´oxima aresta anti-hor´ario ao redor de u.

• β(u, v)´e o n´umero de dobras ao longo da aresta (u, v)com o ˆangulo deπ/2em seu lado esquerdo.

Os parˆametros α e β s˜ao definidos como os parˆametros que caracterizam uma repre-senta¸c˜ao ortogonal (desenhos com os mesmos valores destes parˆametros s˜ao considerados equivalentes). Portanto, uma representa¸c˜ao ortogonal H ´e definida atrav´es da atribui¸c˜ao de valores inteiros α e β para todas arestas de G, de forma que as seguintes propriedades sejam satisfeitas:

1. 1≤ α(u, v)≤ 4 2. β(u, v)≥ 0

3. Para cada v´erticeu, a soma deα(u, v)para todas as arestas orientadas a partir de u

´e 4, ou:

X

(u,v)∈ D(f)

α(u, v) = 4 (2.1)

4. Para cada face internaf, a soma deα(u, v) +β(v, u) +β(u, v)para todas as arestas anti-hor´ario de f ´e igual a 2na(f)−4.

X

(u,v)∈ D(f)

α(u, v) +β(v, u) +β(u, v) = 2na(f)−4 (2.2)

5. Para a face externa, esta mesma soma ´e igual a 2na(f) + 4, ou:

X

(u,v)∈ D(f)

α(u, v) +β(v, u) +β(u, v) = 2na(f) + 4 (2.3)

Tais ´ıtens definem o sistema que dever´a ser obedecido na minimiza¸c˜ao das dobras de arestas.

Transforma¸c˜ao do problema em fluxo de redes

(34)

A premissa desta metodologia (em associar os ˆangulos ao fluxo) ´e de determinar um fluxo de custo m´ınimo, o que corresponde um desenho com menor n´umero de dobras. A descri¸c˜ao abaixo explica como essa rede deve ser constru´ıda. Os valores deλ(u, v),µ(u, v) e χ(u, v) indicam, respectivamente, o limite inferior, a capacidade e o custo de um arco (u, v), veja a figura 2.13:

(a) arcos de η de nodos-v´ertice

para nodos-face.

(b) arcos deη entre nodos-face.

Figura 2.13: Rede η associada a um embutimento planar do grafo G (mostrado em linhas pontilhadas). Cada nodo-face f de η ´e mostrado com a quantidade de fluxo

σ(f) consumida: (a) arcos deη de nodos-v´ertice para nodos-face; (b) arcos de η entre nodos-face.

Os n´os da redeηs˜ao os v´ertices e faces deG. Um n´o derivado de um v´ertice ´e chamado n´o-v´ertice. Um n´o derivado de uma face ´e chamado n´o-face. Um n´o-v´erticeV deηproduz fluxoσ(v) = 4, e, um n´o-facef deη consome um fluxo σ(v) = 2na(f)−4, sef ´e interna,

ouσ(v) = 2na(f) + 4 para faces externas. Para cada aresta(u, v)de G, com facesf e G

a sua esquerda e direita, respectivamente,η possui dois arcos:

• Arco (u, f): Este arco possuiλ(u;f) = 1,µ(u;f) = 4eχ(u;f) = 0. O arco(u;f) representa a quantidadeα(u, v). O limite inferior e a capacidade s˜ao colocados dessa forma em decorrˆencia da defini¸c˜ao de produ¸c˜ao de fluxo por um v´ertice V. O custo associado a esse arco ´e zero, pois o ˆangulo se trata de um ˆangulo de v´ertice (note que o arco ´e do v´ertice upara face f) e a solu¸c˜ao buscada ´e a de m´ınimo n´umero de dobras (ˆangulos nas arestas).

• Arco (f, g): Este arco possui λ(f, g) = 0, µ(f, g) = ∞ e χ(f, g) = 1. O arco (f;g)representa a quantidade β(u, v). O limite inferior e a capacidade indicam que a aresta pode ou n˜ao conter dobras. A unidade do custo equivale `a unidade de fluxo definida (π/2). Como ele ocorre em uma aresta (note que o arco ´e da face f para a face G), deve ser contabilizado.

(35)

2.3. TOPOLOGIA-FORMA-M ´ETRICA 21

X

v

σ(v)−X

f

σ(f) =X

v

4−X

f

(2na(f)−4)−8 (2.4)

O custo de um fluxoθ em uma rede constru´ıda conforme a descri¸c˜ao acima equivale ao n´umero total de dobras de uma representa¸c˜ao ortogonal H de G. Al´em disso, o fluxo de um arco entre nodos-v´ertices e nodos-faces, θ(u;f), corresponde ao valorα(u, v)da aresta associada em H, enquanto que o fluxo de um arco entre nodos-faces, θ(f;g), corresponde ao valor β(u, v)dessa mesma aresta.

As figuras 2.14 e 2.15 mostram exemplos de montagem de uma rede de fluxo para um exemplo de desenho compactado.

Figura 2.14: Exemplo de ortogonaliza¸c˜ao.

2.3.3

Compacta¸c˜

ao

A compacta¸c˜ao ´e a etapa onde as coordenadas s˜ao atribu´ıdas a uma representa¸c˜ao ortogonal. Na compacta¸c˜ao, os comprimentos das arestas s˜ao determinados seguindo um objetivo de construir um desenho de pequena ´area, utilizando apenas coordenadas inteiras para os pontos, j´a que a conven¸c˜ao grid ´e adotada.

A estrat´egia mostrada neste texto exige que as faces do grafo sejam retangulares. Todas as arestas (u, v) ∈ D(f) devem possuir α(u, v) ≤ 2 e β(v, u) = 0. Na face externa, todas as arestas (u, v) ∈ D(h)devem possuir α(u, v)≥2 e β(u, v) = 0. Casos onde as faces n˜ao s˜ao retangulares, devem ser tratados refinando-se representa¸c˜oes ortogonais com tais faces n˜ao retangulares afim de se obter faces sempre retangulares. Isso ´e conseguido inserindo-se v´ertices, ou arestas falsas.

O problema da compacta¸c˜ao tamb´em pode ser resolvido atrav´es de abordagem de fluxo de redes. Neste caso, duas redes s˜ao criadas (ηhor e ηver) , unindo-se pontos interiores

(36)
(37)

2.4. METODOLOGIA HIER ´ARQUICA 23

tamanhos: horizontal e vertical. A figura 2.16 mostra a distribui¸c˜ao dos pontos para as redes de fluxo citadas.

Figura 2.16: Redesηver eηhorpara configura¸c˜ao do sistema de compacta¸c˜ao das arestas.

Estes sistemas de fluxos de rede horizontal e vertical s˜ao respons´aveis por definir os tamanhos das arestas dispostas nas duas dire¸c˜oes, e possuem como restri¸c˜ao b´asica a dimens˜ao unit´aria para uma aresta sem dobras ligando dois v´ertices. Portanto, o problema ´e encontrar o fluxo de menor custo, em uma rede com limites inferiores nos arcos.

Complexidade da Compacta¸c˜ao e Ortogonaliza¸c˜ao por Fluxo de Redes

A complexidade de tempo das etapas de ortogonaliza¸c˜ao e compacta¸c˜ao da aborda-gem apresentada aqui ´e determinada pelos algoritmos de fluxo em redes. Os algoritmos de fluxo m´aximo por incremento de caminhos e fluxo m´aximo por forma¸c˜ao de pr´e-fluxo pos-suem complexidade de tempo diferentes e fortemente dependentes da densidade do grafo (Sedgewick, 2002). De qualquer forma, nenhum deles garante complexidade de tempo inferior a O(V2). Segundo Foulds (1992) ´e poss´ıvel obter um algoritmo mais elaborado chegando em uma complexidade de O(V7/4logV).

2.4

Metodologia Hier´

arquica

(38)

onde se deve enfatizar a informa¸c˜ao das camadas hier´arquicas do desenho. A metodologia hier´arquica tamb´em ´e tratada em passos:

1. Distribui¸c˜ao em Camada: nesta etapa, primeiramente, s˜ao distribu´ıdas as camadas (atrav´es de crit´erios espec´ıficos de requisitos, ou, automaticamente, via busca por largura). Cada aresta liga uma camada `a sua posterior. Para o caso em que uma aresta liga dois v´ertices de camadas distantes, falsos v´ertices s˜ao criados em n´ıveis das camadas intermedi´arias.

2. Redu¸c˜ao de Cruzamentos: nesta etapa, o resultado da etapa de Distribui¸c˜ao em camadas ´e recebido como entrada. Para reduzir os cruzamentos, a ordem dos v´ertices em cada n´ıvel ´e otimizada, mirando-se um resultado de minimiza¸c˜ao de cruzamentos global. Neste caso, um sistema linear pode ser usado para tal minimiza¸c˜ao.

3. Atribui¸c˜ao de Coordenadas x: nesta metodologia, cada n´ıvel definido na hierarquia possui elementos com mesma coordenada y. Nesta etapa de atribui¸c˜ao de coorde-nadas x s˜ao produzidas coordenadas finais para os v´ertices preservando a ordena¸c˜ao e a redu¸c˜ao de cruzamentos obtidos no passo anterior. No final dos passos, o dese-nho final ´e obtido pela primeira representa¸c˜ao de cada aresta com um segmento de linha reta e ent˜ao ocorre a remo¸c˜ao dos v´ertices ”fict´ıcios”. (Desta maneira, arestas compridas podem ser representadas por linhas poligonais).

(39)

Cap´ıtulo 3

Desenhos de Grafos baseados em PLI

A estrat´egia mais efetiva para tratar desenhos ortogonais ´e a que usa os conceitos apresentados anteriormente, de topologia, forma e m´etrica. A implementa¸c˜ao mais efi-ciente de tal estrat´egia, segundo Eiglsperger et al. (2000) ´e o GIOTTO (Tamassia, 1987; Tamassia et al., 1988; Battista et al., 1995). Nesta estrat´egia, como visto antes, s˜ao efetu-adas trˆes etapas para forma¸c˜ao do desenho, a Planariza¸c˜ao, a Ortogonaliza¸c˜ao e a Compac-ta¸c˜ao. Tidas como cr´ıticas para a abordagem, as etapas de Ortogonaliza¸c˜ao e Compacta¸c˜ao s˜ao problemas resolvidos atrav´es de sistemas de fluxo de redes, como problemas de mini-miza¸c˜ao iterativos.

A vers˜ao original do algoritmo GIOTTO atendia apenas a desenho de grafos de grau m´aximo igual a 4. Na abordagem Kandinsky (F¨oßmeier and Kaufmann, 1996, 1997) o conceito GIOTTO foi estendido de maneira que grafos com grau maior que 4 pudessem ser desenhados sem perda do controle do n´umero final de v´ertices.

Neste cap´ıtulo ´e apresentado um m´etodo para ortogonaliza¸c˜ao considerando uma larga variedade de restri¸c˜oes, onde se tem uma maior flexibilidade no desenho de grafos de acordo com os requisitos dos usu´arios (Eiglsperger et al., 2000). A abordagem aqui mostrada ´e baseada nos algoritmos GIOTTO e Kandinsky.

3.1

Modelagem por Programa¸c˜

ao Linear Inteira

Em um modelo de programa¸c˜ao linear inteira (Papadimitriou and Steiglitz, 1982; Chvatal, 1983), existe a necessidade de se otimizar (maximizar ou minimizar) uma fun-¸c˜ao objetivo da forma:

f(x1, x2, ..., x3) = a1x1 + a2x2 + ... +anxn (3.1)

sujeita a restri¸c˜oes modeladas por equa¸c˜oes e inequa¸c˜oes lineares, tais como:

A[x] ≤ b

x ≥ 0 (3.2)

(40)

Nas equa¸c˜oes 3.1 e 3.2, x ´e o vetor das vari´aveis, a matriz A ´e chamada matriz de coeficientes e o vetor b vetor de restri¸c˜oes. Se as vari´aveis do sistema s˜ao inteiras, diz-se que a programa¸c˜ao linear ´e inteira. O objetivo de um problema de PLI como o mostrado acima ´e minimizar ou maximizar a fun¸c˜ao objetivo, determinando o valor de cada vari´avel. A grande vantagem deste tipo de modelagem no desenho de grafos est´a no fato de que qualquer novo crit´erio est´etico a ser aplicado ao desenho exige apenas a inclus˜ao de novas inequa¸c˜oes ( que modelam uma restri¸c˜ao) na matriz de coeficientes, sem necessidade de altera¸c˜oes no algoritmo em si. Esta caracter´ıstica torna as metodologias baseadas em PLI bastante atraentes tendo em vista a flexibilidade oferecida por estas para a inclus˜ao de novas restri¸c˜oes.

3.2

Ortogonaliza¸c˜

ao em Programa¸c˜

ao Linear Inteira

A etapa de ortogonaliza¸c˜ao PLI (Eiglsperger et al., 2000; Eiglsperger and Kaufmann, 2001), da mesma forma que a baseada em fluxo, recebe como entrada do sistema um embutimento planar, resultante da etapa de Planariza¸c˜ao, de um grafo G = (V, E), com v´ertices V e arestas E, dados pela ordem c´ıclica em sentido hor´ario das arestas incidentes de cada v´ertice v. ε(v) ´e a seq¨uencia c´ıclica de arestas atrelada a cada v´ertice v. Cada aresta e = (v, w) pertencente a E aparece duas vezes em ε: uma vez como (v, w) em

ε(v) e outra como (w, v) em ε(w). Complementando o conjunto de dados apresentado, define-se como F o conjunto de faces do grafo. Seja Fin o conjunto de faces internas, e

Fout o conjunto de faces externas, cada face f ´e armazenada como uma lista de arestas

ordenadas. Cada aresta e em uma facef ´e direcionada tal que a face prescrita f esteja `a direita de e (figura 3.1).

Para modelar um sistema PLI equivalente ao problema de fluxo de redes da ortogona-liza¸c˜ao, a defini¸c˜ao de dobras de arestas deve ser implementada, pois, ´e exatamente este o ponto de minimiza¸c˜ao de todo o sistema de ortogonaliza¸c˜ao. Para cada aresta (u, v) pertencente a ε, h´a uma vari´avel r(u,v), que conta o n´umero de dobras de ˆangulo de π/2

(dobras `a direita, seguindo o sentido definido para ε) e uma vari´avel l(u,v), que conta o

n´umero de dobras de3π/2(dobras `a esquerda), ambas ao longo da aresta na dire¸c˜aou−v. As vari´aveis r(u,v) e l(u,v) contam o n´umero de dobras da dire¸c˜ao contr´aria (v−u) (uma dobra de3π/2em uma dire¸c˜ao ´e uma dobra deπ/2na dire¸c˜ao contr´aria) (figura 3.2). Para se obter um desenho com n´umero m´ınimo de dobras, minimiza-se a soma das vari´aveis de dobras:

X

(u,v)∈ E

(r(u,v) + l(u,v)) (3.3)

Nesta modelagem ´e necess´ario, ainda, que seja modelado um outro tipo de vari´avel, que definir´a as dire¸c˜oes de sa´ıda de arestas em cada v´ertice. A vari´avel a(u,v) define um valor de ˆangulo entre e = (u, v) e seu predecessor c´ıclico em ε(v), no v´ertice v. O valor

(41)

3.2. ORTOGONALIZA ¸C ˜AO EM PROGRAMA ¸C ˜AO LINEAR INTEIRA 27

Figura 3.1: Defini¸c˜ao de faces utilizada em Eiglsperger et al. (2000). Nesta figura h´a duas faces: F1 :{e1, e6, e5, e4, e3, e2} eF2 :{e1, e2, e3, e4, e5, e6}.

Figura 3.2: Percorrendo-se e(1,2), tem-se duas dobras `a direita (r(1,2) = 2 ) e uma `a esquerda (l(1,2) = 1). Na dire¸c˜ao contr´aria,e(2,1), tem-se r(2,1) = 1 e l(2,1) = 2.

Todos os ˆangulos incidentes tˆem que ser m´ultiplos de π/2, de forma que se deve demandar, explicitamente, que as vari´aveis possuam valores inteiros.

Isto leva ao seguinte sistema de minimiza¸c˜ao inteira (Eiglsperger et al., 2000):

min P

(v,w)∈ E(r(v,w) + l(v,w)) sujeito a

(T1) P

(v,w)∈ ε(v)a(v,w) = 4 ∀v ∈ V (T2) P

(v,w)∈ f(a(v,w)+l(v,w)−r(v,w)) =

2k−4 f ∈ Fin, |f|=k

2k+ 4 f ∈ Fout, |f|=k

∀ f ∈ F

(T3) l(v,w) = r(w,v) ∀ (v, w) ∈ ε

l(v,w), r(v,w) ∈ N ∀ (v, w) ∈ ε

a(v,w) ∈ 1, ...,4 ∀ (v, w) ∈ ε

(42)

Em Tamassia (1987), mostra-se que as condi¸c˜oes acima s˜ao suficientes para gerar de-senhos ortogonais.

3.2.1

Kandinsky

O algoritmo Kandinsky pode tratar v´ertices com grau superior a quatro, permitindo ˆangulo zero entre arestas incidentes a um dos quatro lados de um v´ertice. Neste modelo, tem-se um grid de linhas mais espessas, pois atribui-se a cada uma delas um conjunto de linhas mais finas onde as arestas s˜ao roteadas. Isto significa que os v´ertices, neste modelo, tˆem largura e altura.

Para assegurar um desenho correto, a propriedadebend-or-end deve ser mantida, o que implica no controle do tamanho dos v´ertices. Existe tamb´em uma preocupa¸c˜ao com os casos em que arestas sair˜ao num mesmo lado de um v´ertice: nesse caso, h´a uma grande possibilidade destas arestas se cruzarem, caso um controle de sa´ıda n˜ao seja efetuado. Tal controle pode ser efetuado via dobras de v´ertice, um conceito aderido `a modelagem Kandinsky e garante por meio de ˆangulos de sa´ıda de arestas que a interse¸c˜ao para estes casos seja evitada.

Cada aresta pode ter duas dobras de v´ertice, uma para cada v´ertice que nela incide. Para este prop´osito, introduz-se para cada aresta (v, w) pertencente a ε quatro vari´aveis:

lbv

(v,w),rbv(v,w) ,lbw(v,w)erbw(v,w), que representam as dobras de v´ertice nos v´erticesv ew. As vari´aveislb(v,w) erb(v,w) que denotam as dobras de face (como as definidas na modelagem anterior) na aresta (v, w). Para simplificar, escreve-se l(v,w) = lbv(v,w)+lb(v,w)+lbw(v,w) e

r(v,w) =rbv(v,w)+rb(v,w)+rbw(v,w). Comparando a nota¸c˜ao entre as formula¸c˜oes GIOTTO e Kandinsky, observa-se que l(v,w) ´e sempre o n´umero total de dobras `a esquerda de (v, w). A formula¸c˜ao Kandinsky completa ´e dada pelo conjunto de equa¸c˜oes 3.5:

min P

(v,w)∈ E(r(v,w) + l(v,w)) sujeito a

(K1) P

(v,w)∈ ε(v)a(v,w)= 4 ∀ v ∈ V (K2) P

(v,w)∈ f(a(v,w)+l(v,w)−r(v,w)) =

2k−4 f ∈ Fin, |f|=k

2k+ 4 f ∈ Fout, |f|=k

∀f ∈ F

(K3) lbv

(v,w)+rbv(v,w) ≤ 1 ∀ (v, w) ∈ ε

(K4) a(u,v)+lbv(v,w)+rbv(v,w) ≥ 1 ∀ (v, w),(v, u)subseq¨uente em ε(v) (K5)

     lbv

(v,w) = rbv(w,v)

lb(v,w) = rb(w,v)

lbw

(v,w) = rbw(w,v)

∀ (v, w) ∈ ε

lbv

(v,w), rbv(v,w), lbw(v,w), rbw(v,w) ∈ N ∀(v, w) ∈ ε

lb(v,w), rb(v,w) ∈ N ∀ (v, w) ∈ ε

a(v,w) ∈ 0, ...,4 ∀(v, w) ∈ ε

(43)

3.2. ORTOGONALIZA ¸C ˜AO EM PROGRAMA ¸C ˜AO LINEAR INTEIRA 29

Figura 3.3: Um exemplo para um desenho com base em Kandinsky.

redes de fluxo ´e bastante complicada. A configura¸c˜ao da PLI pode ser formulada de uma maneira muito mais elegante e emprega maior facilidade na inser¸c˜ao de restri¸c˜oes variadas de desenho. A se¸c˜ao a seguir detalha a modelagem de algumas restri¸c˜oes para desenhos ortogonais, bastante importantes no ˆambito de desenho de circuitos el´etricos/eletrˆonicos.

3.2.2

Restri¸c˜

oes Especiais em Ortogonaliza¸c˜

ao

Existem alguns tipos de requisitos de desenho de grafos, que permitem o importante ob-jetivo de se ler grandes quantidades de informa¸c˜oes em grandes grafos, numa ´area pequena. Requisitos b´asicos como os que comp˜oem a formula¸c˜ao descrita anteriormente objetivam minimiza¸c˜ao de ´area, de n´umero de cruzamentos, entre outros. Outros tipos de requisitos poderiam ser:

• Defini¸c˜ao das dire¸c˜oes das arestas (upward, rightward).

(44)

• Defini¸c˜ao de tamanho de v´ertices.

Como este trabalho objetiva a implementa¸c˜ao de um sistema de quadros sin´oticos au-tom´atico para os circuitos alimentadores da empresa Light/RJ, alguns crit´erios espec´ıficos deste sistema (listados com detalhes no cap´ıtulo referente ao Sistema Light) tiveram que ser modelados. Tais crit´erios puderam descrever bem alguns elementos especiais dos cir-cuitos alimentadores (tais como algumas chaves seccionadoras utilizadas na representa¸c˜ao da Light).

Como dito anteriormente, a modelagem de crit´erios est´eticos em desenho de grafos dentro da abordagem de programa¸c˜ao linear inteira se d´a atrav´es da inser¸c˜ao de equa¸c˜oes e inequa¸c˜oes ao modelo previamente estabelecido.

Mostra-se, nesta se¸c˜ao, um conjunto de restri¸c˜oes encontradas na literatura (Eiglsperger et al., 2000) para a modelagem de crit´erios est´eticos (restri¸c˜oes). Algumas destas modelagens foram utilizadas no sistema de gera¸c˜ao de sin´oticos implementado neste trabalho de mestrado.

Direcionamento de arestas

Eiglsperger et al. (2000) apresenta um modelo de restri¸c˜oes capaz de direcionar grafos em um desenho. A referˆencia chama tais restri¸c˜oes como restri¸c˜oes de aresta. Como definido anteriormente, um desenho upward ´e um desenho onde todas as arestas ver-ticais sempre apontam para cima. Como requisito para um desenho upward, ´e preciso que o embutimento planar seja um embutimento upward (F¨oßmeier and Kaufmann, 1994; Garg and Tamassia, 1994). Este ´e um embutimento onde as arestas incidentes de um v´er-tice v qualquer s˜ao somente ordenadas em sentido hor´ario, e tamb´em possuem a primeira aresta de chegada (se n˜ao possuir arestas de chegada, a primeira aresta de sa´ıda) marcada como uma aresta ancora(v) (Eiglsperger et al., 2000). Uma aresta ancora ´e uma aresta definida como inicial na seq¨uencia c´ıclicaε.

A id´eia b´asica para este algoritmo ´e introduzir um eixo de balanceamento para cada v´ertice. Tal eixo de balanceamento divide o v´ertice em dois retˆangulos. Para um desenho

upward, por exemplo, o eixo se define horizontalmente, e, todas as arestas de sa´ıda dos v´ertices devem estar conectadas no retˆangulo de cima, e as arestas que chegam nos v´ertices, devem estar conectadas no retˆangulo de baixo. A figura 3.4 mostra a disposi¸c˜ao dos eixos de balanceamento num trecho de desenho upward.

Para complementar esta id´eia, e definindo as regras para este grupo de restri¸c˜oes, ´e preciso ressaltar que todos os eixos de balanceamento dos v´ertices que comp˜oem o grafo devem ser orientados na mesma dire¸c˜ao. Al´em disso, as dobras das arestas n˜ao podem criar segmentos de arestas que ferem o direcionamento do desenho (por exemplo, nos desenhos

upward n˜ao s˜ao permitidos segmentos de arestas apontando para baixo).

Para gerar as restri¸c˜oes que caracterizam as condi¸c˜oes escritas, ´e preciso definir, para cada arestae = (v, w) ∈ ε(v); ce, denotando o ˆangulo entre a extremidade esquerda do

(45)

3.2. ORTOGONALIZA ¸C ˜AO EM PROGRAMA ¸C ˜AO LINEAR INTEIRA 31

e 2, para arestas de sa´ıda. Dessa forma, fica intuitivo perceber que as arestas de sa´ıda se posicionam por cima do eixo. Tamb´em ´e poss´ıvel perceber que, para uma aresta e′ seguindo e em ε(v), ce′ =ce+ae′. Desta equa¸c˜ao, tem-se que ce pode ser expresso como

ce = Pe′ A(e)ae′ + cv, onde A(e) ⊆ ε(v) ´e o conjunto de arestas entre ancora(v)

e e = (v, w) em ε(v), incluindo e, e, a vari´avel cv denota o ˆangulo entre ancora(v) e a

extremidade esquerda do eixo de balan¸co. Para assegurar que todas as arestas incidam no lado correto do v´ertice, as condi¸c˜oes seguintes tˆem que ser inseridas na formula¸c˜ao PLI:

−2 ≤ c(v,w) ≤ 0 ∀ v ∈ V,∀ (v, w) ∈ εi(v)

0 ≤ c(v,w) ≤ 2 ∀v ∈ V,∀ (v, w) ∈ εo(v)

Para estas restri¸c˜oes, εi(v)´e o subconjunto de ε(v) composto das arestas de entrada.

εo(v)´e o subconjunto an´alogo, para arestas de sa´ıda.

Entretanto, ainda s˜ao necess´arias algumas condi¸c˜oes adicionais, que garantir˜ao que os eixos de balanceamento dos v´ertices do grafo estejam em dire¸c˜oes sempre paralelas. Para isso, a restri¸c˜ao seguinte ´e suficiente (Eiglsperger et al., 2000):

c(v,w) − l(v,w) + r(v,w) − c(w,v) = 2 ∀ (v, w) ∈ εo(v) (3.6)

Este crit´erio ´e fundamental para constru¸c˜ao de desenhos que devem mostrar sentido de fluxo (como ´e o caso dos desenhos dos circuitos el´etricos alimentadores da Light). Vere-mos, mais adiante, que a inser¸c˜ao deste tipo de restri¸c˜ao ao sistema impactaria bastante negativamente o n´umero de solu¸c˜oes fact´ıveis para os desenhos. Ap´os v´arios testes con-frontando o resultado visual e legibilidade, foi decidido que uma abordagem hier´arquica, ortogonal, seria mais eficiente e simples de se implementar, sob ponto de vista de controle das poss´ıveis solu¸c˜oes n˜ao fact´ıveis que poderiam surgir ao se inserir outras restri¸c˜oes junto desta.

Imagem

Figura 2.3: Dois desenhos de um mesmo grafo. Ambos embutimentos representam um mesmo grafo.
Figura 2.5: Grafo desenhado utilizando as conven¸c˜oes ortogonal, planar e grid.
Figura 2.7: Exemplo de desenhos com ´areas diferentes. A minimiza¸c˜ao de ´area busca atingir um desenho mais compacto poss´ıvel.
Figura 2.8: Exemplo de desenhos com n´ umero de dobras de arestas diferentes. A minimiza¸c˜ao de n´ umero de dobras de arestas busca oferecer um desenho mais leg´ıvel (menos complexo).
+7

Referências

Documentos relacionados

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

Neste sentido, esse estudo mostra que as famílias das camadas mé- dias cariocas são ao mesmo tempo “relacionais” e “individualistas”, pois na mesma medida em que as trocas

O presente trabalho tem como objetivo geral caracterizar as comunidades de invertebrados terrestres associadas a nove cavidades naturais localizadas no município

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Êste artigo compreende três partes distintas: 1.": a norma geral proibitiva: é vedada a acumulação de quaisquer cargos; 2.’ — a enu- meração taxativa das exceções:

A finalidade do “Documento de Arquitetura de Software - DAS” é definir um modelo arquitetural para ser aplicado ao desenvolvimento dos jogos do Desafio SEBRAE, bem como

a) AHP Priority Calculator: disponível de forma gratuita na web no endereço https://bpmsg.com/ahp/ahp-calc.php. Será utilizado para os cálculos do método AHP

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para