15
War Story: Getting the Graph Universidade Federal de Goiás Instituto de Informática Mestrado em Ciência da Computação Projeto e Análise de Algoritmos Profª Diane Castonguay Rafael Velozo de Andrade Gomes Goiânia, Novembro de 2005

War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Universidade Federal de GoiásInstituto de InformáticaMestrado em Ciência da ComputaçãoProjeto e Análise de AlgoritmosProfª Diane CastonguayRafael Velozo de Andrade Gomes

Goiânia, Novembro de 2005

Page 2: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Recordando...

n Como visto em StrippingTriangulations:

¡ O tipo o mais comum de modelo geométrico usado na computação gráfica descreve a geometria do objeto como uma superfície triangulada.

Page 3: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Triangulação...

Page 4: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Triangulação...

Page 5: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Recordando...

n Dispositivos especializados de alta performance possui hardware especial para realizar a renderização(rendering) e sombreamento (shading) das triangulações.

Page 6: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Renderização e Sombreamento

Page 7: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Recordando...

n Dessa forma, o gargalo dessa atividade de triangulação e renderização está em alimentar uma estrutura de triangulação.

Page 8: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Recordando...

n A tarefa de achar o menor número de faixas que cubra todos os triângulos de uma malha pode ser modelado em um problema como um grafo.

n A representação em grafo dual de uma triangulação captura todas as informações necessárias para o particionamento dos triângulos em faixas.

Page 9: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Grafo dual

Page 10: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Grafo dual

Page 11: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Trabalhando o problema...

n O primeiro passo para se construir um programa que constrói bons grupos de faixas é construir o grafo dual da triangulação...

VERTICES 40.000 240.000 0.000

204.000 240.000 0.000204.000 0.000 0.000

0.000 0.000 0.000TRIANGLES 20 1 31 2 3

Page 12: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

A primeira tentativa...

n Ignorou-se as informações sobre a posição dos vértices dos triângulos

n A quantidade de vértices do grafo foi definida pela quantidade de triângulos.

n Definiu-se uma lista de adjacências para os vértices.

n Ao se ler cada triângulo, este era comparado com os outros para achar a aresta em comum.

n Para poucos milhares de triângulos o tempo de processamento foi inaceitável!

Page 13: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

A segunda tentativa...

n Foi utilizada uma estrutura de dados que consiste em um arranjo com um elemento para cada vértice da série de dados de original.

n Associado a esse elemento está uma lista de todos os triângulos que passam por esse vértice.

n A cada novo triângulo, apenas as três listas relevantes da arranjo eram comparadas aos novos vértices. Sendo realmente, somente duas das três listas já que todo triângulo adjacente compartilha de dois pontos em comum.

Page 14: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

A segunda tentativa...

n Para qualquer dois vértices compartilhados era adicionaremos uma adjacência ao grafo construído.

n Finalmente, era adicionado o nosso novo triângulo novo a cada uma das três listas afetadas, que assim estariam atualizadas para o triângulo seguinte.

n Seguindo esses passos o novo programa foi bem sucedido. E os grafos podiam ser construídos em segundos!

n Esse programa foi utilizado com sucesso para criar os grafos duais como pode ser visto em StrippingTriangulations.

Page 15: War Story - Getting the Graphdiane/PAA/2005/Seminarios/Getting the Graph.pdf · War Story: Getting the Graph A segunda tentativa... n Foi utilizada uma estrutura de dados que consiste

War Story: Getting the Graph

Moral da história...

n É que mesmo os problemas elementares como a definição e atribuição inicial de estruturas podem ser o gargalo no desenvolvimento de algoritmo.

n E que a maioria de programas que trabalham com quantidades grandes de dados têm que funcionar no tempo linear ou quase linear. Com tais demandas apertadas de desempenho, não hánenhum margem para espaço para desperdício.

n Uma vez que você foca a necessidade para o desempenho em tempo linear, um algoritmo apropriado ou uma heurística adequada podem geralmente ser encontrados para fazer tal trabalho.