IMPLEMENTAÇÃO E ANÁLISE DE ALGORITMOS PARA COLORAÇÃO DE ARESTAS

Tamanho: px
Começar a partir da página:

Download "IMPLEMENTAÇÃO E ANÁLISE DE ALGORITMOS PARA COLORAÇÃO DE ARESTAS"

Transcrição

1 IMPLEMENTAÇÃO E ANÁLISE DE ALGORITMOS PARA COLORAÇÃO DE ARESTAS

2

3 TIAGO DE OLIVEIRA JANUARIO IMPLEMENTAÇÃO E ANÁLISE DE ALGORITMOS PARA COLORAÇÃO DE ARESTAS Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Computação do Instituto de Ciências Exatas da Universidade Federal de Minas Gerais como requisito parcial para a obtenção do grau de Mestre em Ciência da Computação. Orientador: Sebastián Alberto Urrutia Belo Horizonte Março de 2011

4 c 2011, Tiago de Oliveira Januario. Todos os direitos reservados. J35i Januario, Tiago de Oliveira Implementação e Análise de Algoritmos para Coloração de Arestas / Tiago de Oliveira Januario. Belo Horizonte, 2011 xx, 47 f. : il. ; 29cm Dissertação (mestrado) Universidade Federal de Minas Gerais Orientador: Sebastián Alberto Urrutia 1. Computação. 2. Teoria dos Grafos-Teses. I. Orientador. II. Título. CDU 519.6*62 (043)

5

6

7 Agradecimentos Agradeço a Deus pela vida. Agradeço a meus pais por cuidarem de mim mesmo de longe e por estarem sempre presentes e acompanhando meus passos. Agradeço por ter duas irmãs tão lindas que sempre estão disponíveis quando eu preciso de uma orelha para puxar. Agradeço ao meu orientador Sebastián, pela amizade, confiança, paciência, incentivos, compreenção nos momentos difíceis, ensinamentos e pela oportunidade de desenvolver este trabalho. Ao Zilton, pelas noites em claro jogando conversa fora e tomando tereré, por todas as vezes em que saímos juntos e gastei todo o meu dinheiro, pelo show do a-ha que eu não vi, e pela honra de ter morado com um baiano tão gente fina. Ao Mayron, que foi uma das pessoas que me motivou a estar aqui, com quem passei boa parte da graduação trabalhando, que sempre foi para mim um exemplo de dedicação e disciplina. Aos professores do Departamento de Informática da Universidade Federal de Viçosa, que me forneceram uma forte base de conhecimento que me ajudou a chegar até aqui, em especial, aos professores André Gustavo e José Elias, pela amizade, companherismo e confiança em mim depositada. Aos meus companheiros do LaPO, com quem passei maior parte do meu tempo ao longo desses dois anos de estrada. A todos os amigos que fiz em Belo Horizonte, por todos os momentos de alegria e também a todos os amigos que fiz nos eventos dos quais participei durante o mestrado. Ao Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), à Universidade Federal de Minas Gerais e ao Departamento de Ciência da Computação, pelo apoio financeiro, por terem me acolhido e me proporcionado uma excelente infraestrutura de estudo e pesquisa. A todos vocês, muito obrigado. T.O.J. vii

8

9 Resumo O problema de Coloração de Arestas, extensivamente estudado em Teoria dos Grafos, consiste em colorir as arestas de um grafo de tal forma que arestas incidentes em um mesmo vértice tenham cores distintas e que o número de cores utilizadas seja o menor possível. O resultado mais importante a respeito do problema de coloração de arestas surgiu em 1964 com o Teorema de Vizing, que definiu que o número mínimo de cores necessárias para colorir um grafo, denominado de índice cromático χ, está limitado entre os valores e + 1, onde é o grau máximo do grafo. Neste trabalho são apresentados duas implementações eficientes para coloração de arestas de grafos simples, baseados no Teorema de Vizing, utilizando não mais que + 1 cores. Várias adaptações em estruturas de dados e na ordem de processamento das arestas e cores foram propostas com o intuito de reduzir o tempo de execução das operações realizadas com maior frequência. Também foram desenvolvidas duas estratégias de pré-processamento que fornecem um grafo parcialmente colorido como entrada para o algoritmo de coloração de arestas. Os resultados experimentais mostram que as estratégias desenvolvidas permitem uma redução de 63,92% no tempo de execução das implementações dos algoritmos de coloração de arestas aqui estudados. Palavras-chave: Teoria dos Grafos, Coloração de Arestas, Teorema de Vizing, Implementações eficientes. ix

10

11 Abstract The Edge Coloring Problem, extensively studied in Graph Theory, concerns coloring the edges of a graph such that edges incident on the same vertex have distinct colors and the number of used colors is minimized. The most important result on the edge coloring problem was proposed in 1964 with Vizing s Theorem, which established that the minimum number of colors needed to color a graph, the chromatic index χ, is limited between the values and + 1, where is the maximum degree of the graph. This work presents two efficient edge coloring implementations for simple graphs based on Vizing s Theorem using no more than + 1 colors. Several adaptations in data structures and in the processing order of edges and colors have been proposed in order to reduce the runtime of the operations more frequently performed. We also developed two preprocessing strategies that provide a partially colored graph as input to the edge coloring algorithm. Experimental results show that the proposed strategies allow gains up to 63.92% in terms of performance in the edge coloring algorithms studied here. Keywords: Graph theory, Edge coloring, Vizing s Theorem, Efficient implementations. xi

12

13 Lista de Figuras 1.1 Solução ótima para o exemplo do problema de agendamento de reuniões modelado através de coloração de arestas Critérios de parada na construção do fan maximal Exemplo de rotação do fan em n = k passos Figura à esquerda: o fan maximal é encontrado, visto que, uma cor α k, disponível em v k, também está disponível em w. Figura à direita: resultado após a rotação do fan em k passos Figura à esquerda: P termina em um vértice diferente de vj ou w. Figura à direita: resultado após alternar o caminho P e rotacionar o fan em k passos Figura à esquerda: caso no qual P termina no vértice vj. Figura à direita: resultado após alternar o caminho P e rotacionar o fan em j passos Figura à esquerda: caso no qual P termina no vértice w. Figura à direita: resultado após alternar o caminho P e rotacionar o fan em j + 1 passos Diferentes cenários para a construção do caminho alternado α/β path partindo do vértice v Obtendo uma cor disponível em um vértice utilizando estruturas de dados em bits Exemplo da obtenção de uma cor disponível para a coloração da aresta e(v 2, v 7 ) com a representação em bits. As cores disponíveis para a coloração, obtidas através da operação AND, são F ree(v 2 ) F ree(v 7 ) = {2, 4, 7} Grafos DENSOS: razão de coloração e tempos de execução Grafos GRANDES: razão de coloração e tempos de execução Grafos REGULARES: razão de coloração e tempos de execução Grafos DENSOS: comparando as estruturas de dados que representam o conjunto F ree(v), para analisar a razão de coloração e tempos de execução. 33 xiii

14 4.5 Grafos GRANDES: comparando as estruturas de dados que representam o conjunto F ree(v), para analisar a razão de coloração e tempos de execução Grafos REGULARES: comparando as estruturas de dados que representam o conjunto F ree(v), para analisar a razão de coloração e tempos de execução Grafos DENSOS: comparação com os algoritmos disponíveis na literatura Grafos GRANDES: comparação com os algoritmos disponíveis na literatura Grafos REGULARES: comparação com os algoritmos disponíveis na literatura Grafos DENSOS: comparação entre as implementações básicas dos algoritmos estudados Grafos GRANDES: comparação entre as implementações básicas dos algoritmos estudados Grafos REGULARES: comparação entre as implementações básicas dos algoritmos estudados Grafos DENSOS: novos resultados obtidos com o auxílio da estratégia de pré-processamento a priori Grafos GRANDES: novos resultados obtidos com o auxílio da estratégia de pré-processamento a priori Grafos REGULARES: novos resultados obtidos com o auxílio da estratégia de pré-processamento a priori Grafos DENSOS: novos resultados obtidos com o auxílio do préprocessamento embutido Grafos GRANDES: novos resultados obtidos com o auxílio do préprocessamento embutido Grafos REGULARES: novos resultados obtidos com o auxílio do préprocessamento embutido xiv

15 Lista de Tabelas 2.1 Principais contribuições de algoritmos para coloração de arestas disponíveis na literatura Valores das médias de redução no tempo de execução obtidos pelas estratégias de pré-processamento para os algoritmos estudados xv

16

17 Lista de Algoritmos 1 Algoritmo de Coloração de Arestas Tradicional Algoritmo de Coloração de Arestas Proposto Utilizando o pré-processamento a priori Utilizando o pré-processamento embutido xvii

18

19 Sumário Agradecimentos Resumo Abstract Lista de Figuras Lista de Tabelas Lista de Algoritmos vii ix xi xiii xv xvii 1 Introdução Objetivos e Resultados desta Dissertação Organização do Texto Coloração de Arestas e o Teorema de Vizing Definições em Teoria dos Grafos Trabalhos Relacionados O Teorema de Vizing Algoritmo para Coloração de Arestas Algoritmo de Coloração de Arestas Proposto Estruturas de Dados Implementação e Atualização das Estruturas de Dados Estratégias de Execução Pré-processamento Outras Implementações para o Problema de Coloração de Arestas Análises Experimentais 29 xix

20 4.1 Descrição do Ambiente Computacional e Instâncias de Teste Resultados Conclusão 43 Referências Bibliográficas 45 xx

21 Capítulo 1 Introdução O problema de Coloração de Arestas, extensivamente estudado em Teoria do Grafos, consiste em colorir as arestas de um grafo de tal forma que arestas incidentes em um mesmo vértice tenham cores distintas e que o número de cores utilizadas seja o menor possível. Soluções para problemas reais podem ser obtidas com o auxílio da coloração de arestas, de tal forma que os vértices podem representar: processadores, professores e alunos, sensores, equipes esportivas, etc., enquanto as cores das arestas podem representar: processos a serem executados, salas de aula, proximidades, estádios, etc. O seguinte exemplo, ilustrado pela Figura 1.1, pode ser modelado através de coloração de arestas: suponha que seja necessário organizar uma série de pequenas reuniões, entre duas pessoas, em um grupo com dez pessoas. Com o objetivo de eliminar qualquer conflito de horários, todas as entrevistas poderiam ser agendadas em momentos distintos, no entanto, menos recursos serão desperdiçados (salas de reuniões, Figura 1.1. Solução ótima para o exemplo do problema de agendamento de reuniões modelado através de coloração de arestas. 1

22 2 Capítulo 1. Introdução horários, etc.) se várias entrevistas forem realizadas ao mesmo tempo. Neste caso, seja um grafo cujos vértices são as pessoas e cujas arestas representam as reuniões a serem agendadas. Uma coloração de arestas deste grafo define a agenda de reuniões, tal que as diferentes cores representam diferentes horários no cronograma, com todas as reuniões da mesma cor acontecendo simultaneamente. A Figura 1.1 apresenta uma solução ótima para o problema, onde nesse resultado, são necessários quatro horários, representados pelos números de 1 a 4, para agendar as reuniões entre as dez pessoas em questão, tomadas duas a duas. O resultado mais importante a respeito do problema de coloração de arestas surgiu em 1964 com o Teorema de Vizing, que definiu que o número mínimo de cores necessárias para colorir um grafo, denominado de índice cromático χ, está limitado entre os valores e + 1, onde é o grau máximo do grafo. A partir do Teorema de Vizing é possível classificar os grafos em Classe 1 ou Classe 2. Um grafo é dito Classe 1 se χ =, e dito Classe 2 se χ = + 1. O Teorema de Vizing impõe claramente que não existe outra possibilidade. Decidir a qual classe um grafo pertence é um problema de classificação. Para determinar se o grafo G pertence à Classe 1, primeiro procura-se uma coloração que utilize apenas cores para G. Se esta coloração é encontrada, então G pertence à Classe 1. No entanto, encontrar uma coloração que utilize + 1 cores não garante que o grafo G pertença à Classe 2, uma vez que qualquer grafo que pertence à Classe 1 também pode utilizar uma cor extra em sua coloração e assim ser colorido com + 1 cores. Portanto, para provar que um grafo pertence à Classe 2, é preciso provar que este grafo não pertence à Classe 1. Holyer [1981] demonstra que o problema de classificação é N P-Completo, o que torna a busca por algoritmos polinomiais cada vez mais eficientes na obtenção de uma coloração com + 1 cores, um tema de interesse para a comunidade acadêmica. A demonstração construtiva do Teorema de Vizing utiliza indução na coloração das arestas do grafo. Essa demonstração serviu como base para vários algoritmos polinomiais de coloração de arestas que utilizam no máximo + 1 cores. Gabow et al. [1985] apresentam uma revisão da bibliografia sobre o tema, com os melhores algoritmos de coloração de arestas, suas evoluções e um estudo teórico quanto à análise de suas complexidades assintóticas. Porém, mesmo após vários anos de pesquisa a respeito desse tema, até o momento não se conhecem resultados experimentais expressivos para o problema de coloração de arestas de grafos simples que utilize no máximo + 1 cores, ilustrando os reais desempenhos dos algoritmos encontrados na literatura. Tão pouco se tem conhecimento a respeito de publicações de estratégias de execução ou heurísticas que poderiam ser utilizadas para se obter melhores resultados com relação aos tempos de execução de suas implementações. Além disso, não há sinais de que

23 1.1. Objetivos e Resultados desta Dissertação 3 os algoritmos propostos na literatura tenham sido testados para grafos com grandes valores de número de vértices ou arestas. Este trabalho apresenta propostas de adaptações em estruturas de dados utilizadas para o armazenamento de informações sobre as cores, vértices e arestas dos grafos. Diversas análises experimentais realizadas consideraram a ordem de escolha das arestas e das cores para investigar a influência destas variáveis no tempo de execução dos algoritmos. Também foram desenvolvidas duas estratégias de pré-processamento que fornecem um grafo parcialmente colorido como entrada para o algoritmo de coloração de arestas. 1.1 Objetivos e Resultados desta Dissertação Nesta dissertação, o problema de coloração de arestas com + 1 cores para grafos simples é estudado e tem-se como objetivo propor uma implementação mais eficiente de algoritmo de coloração de arestas para resolver este problema. Foram propostas várias versões de um algoritmo de coloração de arestas baseadas no Teorema de Vizing. Com o objetivo de executar as operações mais frequentes com maior eficiência, foram projetadas estruturas de dados adaptadas para o problema a fim de reduzir o tempo de execução dessas operações em várias etapas do algoritmo implementado. Também foram desenvolvidas duas estratégias de pré-processamento para obter um grafo parcialmente colorido como passo inicial do algoritmo de coloração. Os resultados obtidos pelas implementações apresentadas neste trabalho foram experimentalmente comparadas com os resultados das implementações disponíveis na literatura e obtiveram um desempenho expressivo em termos de tempo de execução. Os resultados experimentais mostram que a combinação das estratégias de préprocessamento e o projeto das estruturas de dados para resolver o problema em questão permitem uma redução de 63,92% no tempo de execução das implementações dos algoritmos de coloração de arestas aqui estudados. 1.2 Organização do Texto Neste capítulo foi apresentada uma breve introdução do assunto a ser tratado no restante desta dissertação. O Capítulo 2 apresenta as principais definições necessárias para o bom entendimento do texto, uma revisão bibliográfica atualizada do problema de coloração de arestas com diversas variações da formulação do problema e, finalmente, a demonstração tradicional do Teorema de Vizing.

24 4 Capítulo 1. Introdução O Capítulo 3 apresenta todos os detalhes do algoritmo de coloração de arestas proposto, a implementação das estruturas de dados e seus métodos de atualização, as estratégias de execução e de pré-processamento e, por fim, um comentário a respeito das implementações disponíveis na literatura. Resultados computacionais, descrição das instâncias de teste e análises experimentais do algoritmo proposto são apresentadas no Capítulo 4. Conclusões a respeito das principais contribuições deste trabalho, juntamente com propostas para atividades futuras, são apresentadas no Capítulo 5.

25 Capítulo 2 Coloração de Arestas e o Teorema de Vizing Este capítulo apresenta os principais conceitos em Teoria dos Grafos, necessários para o entendimento do trabalho apresentado nesta dissertação, relacionados ao problema de coloração de arestas, incluindo a demonstração do Teorema de Vizing que, além do principal resultado para os limites de coloração, foi utilizada como base para o desenvolvimento dos algoritmos aqui estudados. Este capítulo também expõe uma revisão dos trabalhos mais importantes relacionados ao problema clássico de coloração de arestas e suas diversas variações. 2.1 Definições em Teoria dos Grafos As definições apresentadas abaixo, que serão utilizadas ao longo do texto, podem ser encontradas em West [2001] e Diestel [2005]. Definição 1 G(V, E), ou simplesmente G, denota um grafo simples, sem laço, sem múltiplas arestas, não direcionado e finito. V (G) e E(G) representam os conjuntos de vértices e arestas de G, respectivamente. Dois vértices são ditos adjacentes quando existe uma aresta que os conecta. Para fins de simplicidade, serão utilizados os termos V e E quando o grafo em questão estiver implícito. Será utilizada a letra n para representar a cardinalidade do conjunto de vértices V e a letra m para representar a cardinalidade do conjunto de arestas E. Definição 2 Um multigrafo é um grafo que pode possuir até µ arestas conectando cada par de vértices, onde a letra µ é denominada multiplicidade do grafo. Em um grafo simples, µ = 1. 5

26 6 Capítulo 2. Coloração de Arestas e o Teorema de Vizing Definição 3 Um subgrafo de G é um grafo G com V (G ) V (G) e E(G ) E(G). Definição 4 Para cada vértice v V, Adj(v) denota o conjunto de vértices que são adjacentes a v. Definição 5 O grau de um vértice v é δ(v) = Adj(v). O grau máximo de um vértice é (G) = max v V (G) {d(v)}, ou simplesmente quando o grafo em questão estiver implícito. Um vértice é dito universal se este vértice está conectado a todos os demais vértices do grafo. Definição 6 Uma atribuição de cores às arestas de um grafo G, ou simplesmente coloração, é uma função de coloração λ : E C. Os elementos do conjunto C são chamados de cores. Definição 7 Uma cor c C incide em um vértice v se existe um vértice w Adj(v) tal que a aresta e(v, w) é colorida com a cor c, ou seja, λ(e(v, w)) = c, caso contrário a cor encontra-se disponível no vértice v. Um conflito em uma atribuição de cores ocorre quando duas cores incidem em um vértice comum. Definição 8 Um vértice u é dito ser satisfeito quando λ(uv) = λ(uw) implica em v = w, para todas as arestas em Adj(u). Uma coloração de arestas é uma atribuição de cores de forma que todo vértice é satisfeito, ou de forma equivalente, que não existam conflitos. Definição 9 Uma coloração válida de G é um atribuição de cores a todas as arestas, sem conflitos. Uma coloração parcial é uma coloração válida onde algumas arestas de G se encontrarão descoloridas. Um grafo é dito parcialmente colorido se esse possui uma coloração parcial. Definição 10 O número mínimo de cores necessárias para produzir uma coloração de arestas válida para G é chamado de índice cromático, definido por χ (G). Definição 11 H G é um subgrafo induzido pelo conjunto de arestas E(H) E(G), se o seu conjunto de vértices é dado pelos vértices que são extremidades das arestas em E(H), e o seu conjunto de arestas é dado por E(H). O grafo H(α, β) G é um subgrafo induzido pelas arestas coloridas com as cores α e β. Definição 12 Um α/β path H(α, β) é um caminho simples ou um ciclo de tamanho par formado pelas arestas de cores α e β. A troca das cores ao longo desse caminho (β por α e α por β) é chamada de inversão. Se a coloração inicial de G é válida, a mesma continua válida após a inversão de um α/β path Misra & Gries [1992].

27 2.2. Trabalhos Relacionados 7 Tabela 2.1. Principais contribuições de algoritmos para coloração de arestas disponíveis na literatura. Autores Classes de Grafos Número de Cores Complexidade Skulrattanakulchai [2002] Planares O(n) Gabow et al. [1985] Planares + 1 4, 5, 6, 7 O(n log n) Cole & Kowalik [2008] Planares + 2 4, 5, 6, 7 O(n) Gabow et al. [1985] Planares 8 O(n 2 ) Cole & Kowalik [2008] Planares O(n) Cole & Kowalik [2008] Planares 9 O(n) Chrobak & Yung [1989] Planares 19 O(n) Gabow et al. [1985] Simples O(m n log n) Takabatake [2005] Bipartidos - O(m log + ( m )log( m )) Kirkman [1847] K n, n é par n 1 O(m) Kirkman [1847] Januario [2011] K n, n é ímpar + 1 n 1 O(m) Com nó universal + 1 n 1 O(m) 2.2 Trabalhos Relacionados Como provado por Holyer [1981], determinar o índice cromático de um grafo é um problema N P-Completo, e assim é incerto dizer se existe um algoritmo em tempo polinomial que o computa. Portanto, um algoritmo polinomial que dê um bom limite superior para χ pode ser muito útil, uma vez que a busca por algoritmos computacionais eficientes e de baixa complexidade para problemas em grafos é muito importantes e tem sido tema de pesquisa há vários anos. De acordo com Scheide & Stiebitz [2010], a grande maioria dos limites superiores 1 para o índice cromático, são dados pelos próprios algoritmos de coloração de arestas. Em geral, esses algoritmos são projetados para classes específicas de grafos. Shannon 1 O limite inferior para a coloração de arestas de um grafo G é dado por. A prova deste limite inferior é trivial, pois são necessárias diferentes cores para colorir as arestas incidentes nos vértices de maior grau do grafo.

28 8 Capítulo 2. Coloração de Arestas e o Teorema de Vizing [1949] provou que as arestas de qualquer grafo, incluindo multigrafos, podem ser coloridas com no máximo 3 2, ou seja χ 3 2. Vizing [1964] provou que χ + µ para qualquer grafo. Neste trabalho, os grafos estudados são todos simples, ou seja, um caso particular de multigrafos onde µ = 1. Um grafo simples é dito da Classe 1 se χ = e da Classe 2 se χ = + 1. O Teorema de Vizing define que não existe outra possibilidade: todo grafo pertence ou à Classe 1, ou à Classe 2. A Tabela 2.1 apresenta os trabalhos mais importantes e suas contribuições quanto aos valores do número de cores utilizadas na coloração para várias classes de grafos e as complexidades assintóticas dos seus algoritmos de coloração de arestas. Como pode ser visto pela Tabela 2.1, a coloração de arestas em grafos planares tem sido alvo de estudo por muitos pesquisadores. Vários investigações já foram desenvolvidas para esses grafos, com o objetivo de classificá-los quanto à sua classe de coloração. É sabido que existem grafos planares com {2, 3, 4, 5}, que pertencem à Classe 2. Sanders & Zhao [2001] provaram que todos os grafos planares com = 7 pertencem à Classe 1. Determinar a existência de um grafo planar com = 6 que pertença à Classe 2 é um problema que permanece em aberto. A classificação desses grafos permite guiar as pesquisas em direção à busca de algoritmos mais eficientes, considerando os novos valores de limites inferiores e superiores para χ. Por outro lado, em certas aplicações, é necessário escolher entre eficiência ou qualidade da solução. Para grafos planares com = 8, Gabow et al. [1985] propuseram um algoritmo de coloração de arestas utilizando cores, enquanto Cole & Kowalik [2008] propuseram, para o mesmo tipo de grafo, um algoritmo de coloração de arestas mais eficiente mas que utiliza no máximo + 1 cores. Para um caso particular de grafos planares, grafos Teia, Sharebaf [2009] apresenta um algoritmo de coloração de arestas que utiliza cores, sem verificar as cores das arestas incidentes em qualquer vértice do grafo. Este algoritmo tem como base a soma dos índices associados aos vértices conectados por uma aresta que será colorida. Esta soma é calculada em módulo k, onde k é o número de pernas do grafo Teia 2. Para grafos bipartidos, Takabatake [2005] propôs um algoritmo de coloração de arestas com complexidade O(m log +( m)log( m )), a menor complexidade conhecida. Gabow et al. [1985] apresentaram um algoritmo para coloração de arestas de grafos 2 Uma árvore T = (V, E) é uma Teia Base quando existe no máximo um vértice de grau maior do que dois, denominado raiz. Uma perna da Teia Base é um caminho da raiz a um vértice de grau 1. Um Grafo Teia, T k, com k 3, é uma teia base T com k pernas p 1,..., p k, sendo que cada perna p i, i = 1,..., k, tem tamanho pelo menos igual a dois. Além disso, dois vértices em pernas distintas, v p i e u p j, com i = j, são adjacentes quando i j {1, k 1} e a distância d(v, c) = d(u, c), onde c é a raiz do grafo T.

29 2.2. Trabalhos Relacionados 9 simples com no máximo + 1 cores de complexidade O(m n log n), no entanto até o momento nenhuma implementação desse algoritmo é relatada na literatura. De acordo com Froncek [2010], o Método do Polígono, descoberto por Kirkman [1847], é o método mais conhecido e amplamente aplicado no planejamento de tabelas de jogos esportivos (ainda que não tenha sido desenvolvido para esse fim). Com esse método é possível obter uma coloração de arestas para grafos completos, K n, onde n representa o número de vértices do grafo, utilizando cores, quando n é par, bem como obter uma coloração de arestas para grafos K n, utilizando + 1 cores, quando n é ímpar. Nesta dissertação é apresentado um método capaz de colorir as arestas de qualquer grafo, que possua um vértice universal, em tempo O(m). Esse método utiliza uma estratégia semelhante àquela apresentada por Sharebaf [2009], fazendo uso das informações dos índices associados vértices adjacentes para determinar a cor da aresta que os conecta. Maiores detalhes podem ser encontrados na Seção 3.4. Também é importante ressaltar a vasta literatura sobre as generalizações do problema de coloração de arestas. O problema de Coloração de Arestas Generalizado em multigrafos, ou f-coloração, proposto por Hakimi & Kariv [1986], é similar ao tradicional problema de Coloração de Arestas apresentado nesta dissertação, com a diferença de que uma cor pode incidir em um vértice até f vezes. No trabalho de Hsu et al. [2006], alguns novos limites inferiores para o número de cores utilizadas neste problema são definidos. Uma Coloração Generaliza das arestas de G necessita de no mínimo f cores. Assim também tem-se o número mínimo de cores necessárias para colorir as arestas incidentes em um vértice, dado por δ(v). A discrepância global é a diferença f entre o número de cores utilizadas pela coloração de G e o limite inferior, ou seja f C. Da mesma forma é definido o conceito de discrepância local de um nó v f como a diferença entre o número de cores incidentes no vértice e o limite inferior δ(v), f ou seja C(v) δ(v), onde C(v) é o número de cores incidentes no vértice v. Um f algoritmo, que utiliza no máximo +µ cores, de complexidade O(m m log n) foi f proposto por Shin-ichi et al. [1993]. Esse limite superior é naturalmente obtido do resultado do Teorema de Vizing para grafos de multiplicidade µ. Na Coloração de Arestas Acíclica, onde não é permitida a existência de ciclos de duas cores em um grafo G, α (G) representa o número mínimo de cores utilizadas para a coloração e para qualquer grafo, α (G) (G) + 2. Dong & Xu [2010] provam que qualquer grafo planar que atenda a determinados valores do grau máximo e do comprimento do menor ciclo g(g) G possui α (G) = (G) Em Liang et al. [1996] são estudados dois problemas de coloração de arestas: concluir a coloração das arestas de um grafo parcialmente colorido após a adição de

30 10 Capítulo 2. Coloração de Arestas e o Teorema de Vizing um novo vértice a este grafo; e colorir as arestas de um grafo utilizando no máximo +1 cores. Os autores propuseram algoritmos paralelos para a resolução deste problema, mas sem qualquer análise experimental. Até o momento, poucos trabalhos deram ênfase a uma análise profunda das implementações dos algoritmos baseados na prova do Teorema de Vizing. Tem-se conhecimento de três implementações disponíveis. Uma delas Dong s [2010] não é competitiva com as outras duas. O código disponível em UTA [2010a] é baseado no algoritmo apresentado em Hu & Blake [1997] enquanto UTA [2010b] é inspirado em Misra & Gries [1992]. Estas implementações estão disponíveis online e foram desenvolvidos por alunos da University of Texas at Arlington. 2.3 O Teorema de Vizing O principal resultado sobre o estudo de coloração de arestas surgiu com o Teorema de Vizing [1964]. Este teorema mostra que todo grafo G pode ser colorido com no máximo + 1 cores. A demonstração deste teorema, encontrado em Nakano et al. [1995], é baseada no aumento da coloração do grafo G, colorindo uma nova aresta a cada iteração. Esta prova mostra como colorir uma aresta de um grafo parcialmente colorido (o que pode exigir a recoloração de algumas arestas para garantir que todos os vértices sejam mantidos satisfeitos ao longo do processo de coloração) nunca utilizando mais que + 1 cores diferentes. Esse procedimento é repetido até que todas as arestas do grafo sejam coloridas. Dentre as diversas provas disponíveis na literatura, escolheuse a demonstração a seguir devido à sua clareza e simplicidade 3. Teorema 1 Para todo grafo G simples, tem-se que: (G) χ (G) (G) + 1 (2.1) Prova. A inequação da esquerda é facilmente provada, uma vez que qualquer vértice de grau precisa de uma cor diferente para cada uma de suas arestas incidentes. O restante da prova depende da estrutura de dados chamada fan. Seja e 0 (w, v 0 ) uma aresta não colorida de um grafo parcialmente colorido. Um f an F é uma sequência de arestas distintas e 0 (w, v 0 ), e 1 (w, v 1 ),..., e k (w, v k ), onde o vértice w é considerado o 3 Misra & Gries [1992] apresentam uma interessante discussão a respeito da evolução da prova do Teorema de Vizing. O estudo da atual versão do teorema iniciou com Edsger Wybe Dijkstra e ATAC (Austin Tuesday Afternoon Club) a pedido de Robert Tarjan, que considerava a prova deste teorema confusa e complexa. A demonstração do teorema tornou-se mais clara somente após a introdução dos elementos: f an, inversão e rotação.

31 2.3. O Teorema de Vizing 11 centro do fan e os vértices v i são suas folhas, tal que dada uma sequência de cores distintas α 0, α 1,..., α k 1, as seguintes condições são satisfeitas: 1. A cor α i encontra-se disponível no vértice v i, 0 i k 1; e 2. Toda aresta e i, 1 i k, encontra-se colorida com a cor α i 1. A construção do fan inicia-se pela aresta descolorida e 0 (w, v 0 ), onde w é chamado de vértice central do fan. A seguir, adiciona-se a aresta e 1 (w, v 1 ), colorida com a cor α 0 disponível no vértice v 0. Este procedimento repete-se para as arestas e i (w, v i ), coloridas com as cores α i 1, até a construção do fan maximal, ou seja, até que não se possa mais adicionar uma aresta no fan de modo que as condições apresentadas anteriormente mantenham-se satisfeitas. 1) α k disponível em v k e w. 2) α k = α j, incide no vértice w. Figura 2.1. Critérios de parada na construção do f an maximal. Um fan é dito maximal quando uma das seguintes condições for satisfeita (ver Figura 2.1): a cor α k, disponível no vértice v k, é uma cor disponível no vértice w; ou, a cor α k = α j, 0 j < k, onde α j é uma cor disponível em um vértice v j e colore a aresta e j+1 (w, v j+1 ). Rotacionar o fan em n passos é um procedimento onde cada aresta e i F é colorida com a cor α i, para todo i, 0 i n k, e a cor α n 1 é removida da aresta e n, fazendo com que esta aresta fique descolorida. Com a rotação de F em n passos, é possível obter uma outra coloração de arestas para G em que a aresta e n, ao invés da aresta e 0, aparece descolorida (ver Figura 2.2). Considere um grafo G parcialmente colorido com, no máximo, + 1 cores. Dada uma aresta descolorida e(w, v 0 ) E(G), esta prova mostra como aumentar a coloração de G colorindo essa aresta, sem ultrapassar o limite de +1 cores diferentes, o que pode

32 12 Capítulo 2. Coloração de Arestas e o Teorema de Vizing exigir a troca das cores de algumas arestas já coloridas para garantir que a coloração permaneça válida. 1) fan antes da rotação. 2) fan após a rotação em n = k passos. Figura 2.2. Exemplo de rotação do fan em n = k passos. Inicialmente, busca-se uma cor que esteja disponível tanto no vértice w quanto no vértice v 0, ou seja, busca-se uma cor β F ree(w), e uma cor α 0 F ree(v 0 ), tal que α 0 = β, onde F ree(v) representa o conjunto de cores disponíveis em um vértice v. Se essa cor existe, então ela será usada para colorir a aresta e 0 (w, v 0 ) e aumentar a coloração do grafo G. Porém, suponha α 0 β. Seja o fan maximal F de tamanho k, tendo w como vértice central, começando pela aresta descolorida e 0 (w, v 0 ) até a aresta e k (w, v k ), e seja também a cor α k disponível no vértice v k. Se a cor α k também é uma cor disponível em w, basta rotacionar F em k passos, fazendo com que α k seja uma cor disponível em ambas as extremidades da aresta descolorida e k (w, v k ). Consequentemente, colorir e k com α k aumentaria a coloração do grafo G, como ilustrado pela Figura 2.3. Porém, suponha que a cor α k não é uma cor disponível no vértice w. Neste caso, α k = α j, tal que 0 j < k, uma vez que sabemos que F é maximal. Seja β uma cor disponível no vértice w, e seja P o caminho maximal (α k, β)-path que parte do vértice v k. Se P termina em qualquer vértice diferente de w ou v j, inverte-se o caminho P, fazendo com que a cor β torne-se uma cor disponível nas extremidades da aresta e k (w, v k ). Então, rotaciona-se F em k passos, tornando a aresta e k (w, v k ) descolorida, bem como permitindo que e k seja recolorida com a cor β, e assim aumentando a coloração de G, como ilustrado pela Figura 2.4.

33 2.3. O Teorema de Vizing 13 Figura 2.3. Figura à esquerda: o fan maximal é encontrado, visto que, uma cor α k, disponível em v k, também está disponível em w. Figura à direita: resultado após a rotação do fan em k passos. Figura 2.4. Figura à esquerda: P termina em um vértice diferente de vj ou w. Figura à direita: resultado após alternar o caminho P e rotacionar o fan em k passos. Se P termina no vértice v j, por uma aresta de cor β, inverte-se o caminho P, fazendo com que a cor β torne-se uma cor disponível nas extremidades da aresta e j (w, v j ). Então, rotaciona-se F em j passos, tornando a aresta e j (w, v j ) descolorida, bem como permitindo que e j seja recolorida com a cor β, aumentando a coloração de G, como ilustrado pela Figura 2.5. Se P termina no vértice w, por uma aresta de cor α k = α j, inverte-se P, fazendo com que a cor α k = α j torne-se uma cor disponível nas extremidades da aresta e j+1 (w, v j+1 ). Então, rotaciona-se F em j + 1 passos, tornando a aresta e j+1 (w, v j+1 ) descolorida, bem como permitindo que e j+1 seja recolorida com a cor α k, aumentando a coloração de G, como ilustrado pela Figura 2.6.

34 14 Capítulo 2. Coloração de Arestas e o Teorema de Vizing Figura 2.5. Figura à esquerda: caso no qual P termina no vértice vj. Figura à direita: resultado após alternar o caminho P e rotacionar o fan em j passos. Figura 2.6. Figura à esquerda: caso no qual P termina no vértice w. Figura à direita: resultado após alternar o caminho P e rotacionar o fan em j + 1 passos. Haja visto que não existem outros casos a serem tratados, o aumento da coloração fica provado, sem que se faça necessário utilizar mais que + 1 cores. Os passos dessa demonstração construtiva podem ser aplicados repetidas vezes a partir de um grafo completamente descolorido até que todas as arestas do grafo sejam coloridas. O Algoritmo 1 foi obtido a partir da demonstração apresentada, com base no texto de Nakano et al. [1995]. A partir do passos 1 e 2, nota-se que o algoritmo de coloração de arestas aumenta o número de arestas coloridas no grafo em uma unidade a cada iteração. Nos passos 3 e 4, procura-se uma cor α 0 disponível tanto no vértice w quanto no vér-

35 2.3. O Teorema de Vizing 15 Algoritmo 1: Algoritmo de Coloração de Arestas Tradicional 1 enquanto e Edge(G) e.color = faça 2 e 0 (v 0, w) {e 0 Edge(G) e 0.color = } 3 se α 0 F ree(v 0 ) F ree(w) então 4 Colorir a aresta e 0 utilizando a cor α 0 5 senão 6 Construa o fan maximal F = e 0 (w, v 0 ), e 1 (w, v 1 ),..., e k (w, v k ) 7 Seja α k F ree(v k ) 8 se α k F ree(w) então 9 Rotacionar(F, k) 10 Colorir a aresta e k utilizando a cor α k 11 senão 12 Seja β F ree(w) e j, tal que α j = α k 13 Construa o caminho maximal P = (α k, β) path partindo de v k 14 se P termina em v j então 15 Inverter as cores no caminho P 16 Rotacionar(F, j) 17 Colorir a aresta e j utilizando a cor β 18 senão se P termina em w então 19 Inverter as cores no caminho P 20 Rotacionar(F, j + 1) 21 Colorir a aresta e j+1 utilizando a cor α k 22 senão /* P não termina nem em w ou em v j */ 23 Inverter as cores no caminho P 24 Rotacionar(F, k) 25 Colorir a aresta e k utilizando a cor β tice v 0. Se essa cor existe, a mesma é atribuída à aresta e 0 (w, v 0 ). Se não existe uma cor na interseção F ree(w) F ree(v 0 ) (passo 5), no passo 6 o fan maximal F = e 0 (w, v 0 ), e 1 (w, v 1 ),..., e k (w, v k ) é construído. No passo 7, se a cor α k encontra-se disponível no vértice v k, e se α k também é uma cor disponível no vértice w, rotaciona-se o fan F e então utiliza-se a cor α k para colorir a aresta e k (w, v k ), de acordo com os passos de 8 a 10. Caso a cor α k, disponível no vértice v k, seja igual a uma cor α j atribuída a uma aresta pertencente ao fan, ou seja α k = α j, para 0 j < k (passo 11), no passo 12 uma cor β é escolhida dentre as cores disponíveis no vértice w. No passo 13 é construído o caminho maximal P = α k /β path começando pelo vértice v k. As próximas operações do algoritmo seguem as operações apresentadas nos três casos do Teorema de Vizing. Os passos 14 a 17 correspondem ao Caso 1, onde o caminho P termina no vértice v j.

36 16 Capítulo 2. Coloração de Arestas e o Teorema de Vizing Os passos 18 a 21 correspondem ao Caso 2, onde o caminho P termina no vértice w e os passos 22 a 25 correspondem ao caso 3, onde o caminho P termina em qualquer vértice diferente de w ou v j. A corretude do algoritmo é omitida uma vez que segue a prova do Teorema de Vizing. A complexidade assintótica do algoritmo é facilmente demonstrada. Uma vez que o algoritmo aumenta a coloração do grafo, colorindo uma nova aresta a cada iteração, sua complexidade é dada por Θ(m), pois é necessário percorrer todas as arestas do grafo para obter uma coloração. O Teorema de Vizing garante que no máximo arestas são selecionadas para a construção e rotação do fan, adicionando o custo para construir a alternar as cores no caminho P = α/β path, que é O(n). Em consequência, a complexidade assintótica do algoritmo é dada por O(m ( + n)) que é equivalente a O(m n). No próximo capítulo, será apresentado um algoritmo de coloração de arestas baseado na demonstração do Teorema de Vizing disponível em Gould [1988]. Este algoritmo difere do algoritmo apresentado neste capítulo em algumas características que serão detalhadas no Capítulo 3.

37 Capítulo 3 Algoritmo para Coloração de Arestas Este capítulo descreve o algoritmo de coloração de arestas proposto, que utiliza não mais que + 1 cores, considerando suas estruturas de dados e procedimentos de atualização, estratégias utilizadas na obtenção de ganhos de desempenho, estudo do préprocessamento das arestas e as suas diferentes formas de aplicação no algoritmo. 3.1 Algoritmo de Coloração de Arestas Proposto O Algoritmo 2, que colore um grafo G com não mais que + 1 cores, é baseado na prova do Teorema de Vizing, disponível em Gould [1988]. Para garantir que o algoritmo obtenha uma coloração válida para G, em um número de passos finito, é definida uma variável auxiliar chamada de taboo para representar uma cor que tem o seu uso temporariamente proibido ao longo da coloração do grafo. Inicialmente inicializa-se a cor taboo com o elemento vazio. Esta cor possuirá um valor diferente de vazio em uma iteração i do algoritmo quando, na iteração i 1, para i > 1, o caminho alternado α/β path, partindo de v 0, terminar no vértice w. Uma vez que a cor taboo nunca possui um valor diferente de vazio na primeira iteração do algoritmo, em cada iteração, como pode ser visto através do passo 6, uma aresta e 0 (w, v 0 ) é escolhida dentro do conjunto de arestas não coloridas de G. No passo 7, busca-se uma cor γ F ree(v 0 ) F ree(w). Se essa cor existe, utiliza-se γ para colorir a aresta e 0 (w, v 0 ) (passo 8) e atualiza-se a informação da cor taboo. Nos passos de 10 a 13, Se não existe uma cor disponível na interseção F ree(v 0 ) F ree(w), as cores α F ree(v 0 ) e β F ree(w) são escolhidas para construir o caminho alternado maximal α/β path começando por v 0. Pode-se afirmar que a cor α F ree(v 0 ) incide 17

38 18 Capítulo 3. Algoritmo para Coloração de Arestas Algoritmo 2: Algoritmo de Coloração de Arestas Proposto 1 taboo nill 2 enquanto e Edge(G) e.color = faça 3 se taboo nil então 4 e 0 (v 0, w) e 1 (v 1, w) 5 senão 6 e 0 (v 0, w) {e 0 Edge(G) e 0.cor = } 7 se γ F ree(v 0 ) F ree(w) então 8 Colorir a aresta e 0 utilizando a cor γ 9 taboo nil 10 senão 11 Escolha α F ree(v 0 ) α taboo 12 se taboo nill então 13 Escolha β F ree(w) β taboo 14 se P = (α, β) path começando em v 0 não termina em w então 15 Inverter as cores no caminho P 16 Colorir a aresta e 0 utilizando a cor β 17 taboo nill 18 senão 19 e 1 T able(w, α).e 20 Remover a cor α da a aresta e 1 21 Colorir a aresta e 0 utilizando a cor α 22 taboo α no vértice w, caso contrário seria possível utilizar essa cor para colorir a aresta e 0 (v 0, w). Da mesma forma a cor β F ree(w) incide no vértice v 0, caso contrário seria possível utilizar essa cor para colorir a aresta e 0 (v 0, w). Se, no passo 14, o caminho alternado α/β path partindo do vértice v 0 não termina em w, as cores α e β são invertidas ao longo do caminho (passo 15), e a aresta e 0 (v 0, w) é colorida com β (passo 16), que agora também está livre no vértice v 0 graças à inversão das cores no caminho α/β path (ver Figura 22a). Quando o caminho α/β path termina em w, inverter as cores do caminho apenas irá trocar as posições das cores disponíveis nos vértices terminais de e 0, fazendo com que α fique disponível em w, mas não em v 0 e fazendo com que a cor β fique disponível em v 0, mas não em w (ver Figura 22b). Nesse caso, nos passos 19 e 20, a aresta e(v 1, w), que é uma aresta colorida com a cor α e incide no vértice w, tem a sua cor α removida e, no passo 21, esta mesma cor será utilizada para colorir a aresta e 0 (v 0, w). Na próxima iteração, a aresta e 1 (v 1, w) (passos 3 e 4), será colorida com uma cor ψ diferente de taboo = α. A cor ψ

39 3.1. Algoritmo de Coloração de Arestas Proposto 19 a) Caminho alternado α/β path não terminando no vértice w. b) Situação onde o caminho alternado α/β path encontra o vértice w. Figura 3.1. Diferentes cenários para a construção do caminho alternado α/β path partindo do vértice v 0. existe, pois há pelo menos duas cores disponíveis nos vértices v 0 e w, já que em todo vértice incidem, no máximo, arestas de cores diferentes e, além de sempre existirem + 1 cores disponíveis, a aresta e 1 (v 1, w) encontra-se descolorida. Essa última etapa é importante para manter a validade do algoritmo. Note que o algoritmo proposto não constrói a estrutura fan utilizada pelo algoritmo tradicional, no entanto a idéia do fan aparece de forma implícita, onde w é o vértice central. Observe que quando a cor taboo assume um valor diferente de nill na iteração atual, a aresta a ser colorida na próxima iteração incide no vértice fixo w, que anteriormente estava colorida com a cor α. Neste caso, o vértice w e a cor β F ree(w) permanecem inalterados de uma iteração para a próxima até que a aresta incidente no vértice w seja finalmente colorida. A demonstração do Teorema de Vizing, apresentada em Gould [1988], garante que são necessárias, no máximo, iterações de trocas de cores das arestas ao redor do vértice w para encontrar uma coloração válida para todas as suas arestas incidentes já coloridas. Uma vez que o algoritmo apresentado aumenta a coloração de uma aresta a cada vez (em uma ou mais iterações), sua complexidade pode ser dada por Θ(m) vezes a complexidade para colorir uma única aresta para aumentar a coloração parcial do grafo. No algoritmo principal, a operação mais cara a ser executada em cada iteração é a construção e a inversão do caminho alternado maximal α/β path onde

40 20 Capítulo 3. Algoritmo para Coloração de Arestas sua complexidade computacional é dada por O(n) uma vez que esse caminho é simples. Em consequência, o tempo de execução do algoritmo pode ser dado por O(m n). Ainda que a complexidade do algoritmo proposto seja superior à complexidade do algoritmo de coloração de arestas tradicional, espera-se que na prática esses algoritmos apresentem desempenhos similares, ou ainda, que com o uso das estratégias de execução e de pré-processamento apresentadas, o algoritmo proposto apresente desempenho superior. Esse tipo de resultado não é inédito na ciência da computação. De acordo com Matouek & Gärtner [2006], o método de resolução de problemas de programação linear Simplex, que possui complexidade assintótica exponencial, na prática possui um comportamento polinomial para a maioria dos problemas reais em que é aplicado. Além disso o método Simplex é, em geral, mais eficiente que o método dos Pontos Interiores e o método dos Elipsóides, que são algoritmos de complexidades polinomiais, mas que na prática tendem a apresentar comportamentos muito próximos aos resultados de pior caso das suas respectivas análises de complexidade. 3.2 Estruturas de Dados A eficiência de um procedimento está fortemente associada à forma como os dados são organizados e manipulados. A escolha das estruturas de dados para a implementação do algoritmo de coloração de arestas proposto neste trabalho foi baseada nas análises das operações mais caras e realizadas com maior frequência, buscando obter menor complexidade em termos de espaço e tempo computacional. Inicialmente, se faz necessário definir três estruturas de dados desenvolvidas para otimizar as operações realizadas com maior frequência durante a execução do algoritmo: F ree(v), Edge(G) e T able(v, α). A estrutura F ree(v) armazena o conjunto de até + 1 cores disponíveis para colorir as arestas incidentes a um dado vértice v. A estrutura de dados Edge(G) = {e E(G)} é um conjunto de tamanho m onde cada elemento é uma abstração de uma das arestas do grafo G e possui as seguintes variáveis: v, w e cor. As variáveis e.v e e.w representam os vértices conectados pela aresta e e a variável e.cor armazena a informação referente à cor atribuída a esta aresta. T able(v, α) é uma matriz em que cada uma das suas linhas está associada a um vértice v V (G) e cada uma das suas colunas está associada a uma cor α C, C = + 1. Cada elemento de T able(v, α) que associa o vértice v com a cor α possui as seguinte variáveis: status, adj, e, e cindex. A variável booleana T able(v, α).status

41 3.2. Estruturas de Dados 21 assume o valor 1 (verdade) sempre que uma aresta de cor α incide no vértice v, e assume o valor 0 (falso) caso esta cor encontre-se disponível no vértice v. A variável T able(v, α).adj representa o vértice adjacente a v que está conectado pela aresta de cor α, T able(v, α).e é um apontador que referencia a aresta e, que conecta os vértices v e T able(v, α).adj, na estrutura Edge(G). Finalmente, o campo T able(v, α).cindex armazena a informação sobre localização da cor α no conjunto F ree(v) Implementação e Atualização das Estruturas de Dados Neste trabalho, foram propostas duas implementações para a estrutura de dados que representa o conjunto F ree(v). A primeira delas utiliza efetivamente uma lista de números inteiros para a representação das cores. Caso a cor α seja selecionada para colorir uma aresta incidente no vértice v, o inteiro que a representa deve ser removido da lista F ree(v). Neste caso, a variável T able(v, α).cindex indicará a posição desta cor na estrutura F ree(v). Por outro lado, se a cor α está sendo adicionada em F ree(v) (por que essa cor foi removida de alguma aresta incidente em v), basta apenas inseri-la no fim da lista F ree(v). As operações de inserção e remoção são elementares no algoritmo de coloração de arestas e são executadas em tempo O(1). Para determinar uma cor não incidente em um vértice v, basta acessar uma posição válida na lista que representa F ree(v). No entanto, para determinar uma cor α F ree(v) F ree(w) é necessário consultar cada elemento de F ree(v) e verificar se o mesmo está na lista de cores disponíveis de w em tempo O(1) utilizando a variável T able(w, α).status. A operação completa é executada em tempo O(min{ F ree(v), F ree(w) }), que, no pior caso, é O( ). Esta metodologia utilizada para determinar uma cor disponível em um par de vértices foi primeiramente proposta em Cole & Kowalik [2008]. Na segunda implementação de F ree(v), utiliza-se um vetor de tamanho + 1 palavra, onde cada elemento é um número inteiro do tamanho da palavra1 da arquitetura do computador onde o algoritmo está sendo executado. O j-ésimo bit do i-ésimo inteiro do vetor representa a disponibilidade da cor palavra (i 1) + j, onde palavra representa o número de bits em uma palavra. Nesta estrutura, uma cor disponível em um vértice é definida por um bit 1, caso contrário o bit é definido como 0. Neste trabalho, foi utilizada uma arquitetura com palavras com 32 bits. 1 O termo palavra (em inglês: word) é a unidade de informação natural usada por um tipo de computador particular. É um grupo de bits de tamanho fixo que é processado em conjunto numa máquina. O número de bits em uma palavra, ou o tamanho ou comprimento da palavra, é uma característica específica de cada arquitetura de computador.

UM ALGORITMO EFICIENTE PARA COLORAÇÃO DE ARESTAS BASEADO NO TEOREMA DE VIZING

UM ALGORITMO EFICIENTE PARA COLORAÇÃO DE ARESTAS BASEADO NO TEOREMA DE VIZING UM ALGORITMO EFICIENTE PARA COLORAÇÃO DE ARESTAS BASEADO NO TEOREMA DE VIZING Tiago de Oliveira Januario 1, Sebastián Urrutia 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais

Leia mais

Grafo planar: Definição

Grafo planar: Definição Grafo planar Considere o problema de conectar três casas a cada uma de três infraestruturas (gás, água, energia) como mostrado na figura abaixo. É possível fazer essas ligações sem que elas se cruzem?

Leia mais

Noções da Teoria dos Grafos

Noções da Teoria dos Grafos Noções da Teoria dos Grafos André Arbex Hallack Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 7 3 Árvores 11 4 Emparelhamento em grafos 15 5 Grafos planares: Colorindo

Leia mais

2 Definição do Problema

2 Definição do Problema Definição do Problema. Formulação Matemática O problema do Fluxo Máximo entre todos os pares de nós surge no contexto de redes, estas representadas por grafos, e deriva-se do problema singular de fluxo

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 5 3 Árvores 7 4 Emparelhamento em grafos 11 5 Grafos planares:

Leia mais

Coloração total distinta na vizinhança em grafos 4-partidos completos

Coloração total distinta na vizinhança em grafos 4-partidos completos https://eventos.utfpr.edu.br//sicite/sicite2017/index Coloração total distinta na vizinhança em grafos 4-partidos completos RESUMO Matheus Scaketti mts.scaketti@gmail.com Universidade Tecnológica Federal

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 18: Coloração de Arestas Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

3 Extensões dos modelos matemáticos

3 Extensões dos modelos matemáticos 3 Extensões dos modelos matemáticos Os modelos matemáticos definidos por (2-1) (2-6) e (2-7) (2-13), propostos por Achuthan e Caccetta e apresentados no Capítulo 2, são reforçados neste trabalho através

Leia mais

O Problema da 3- Coloração de Grafos

O Problema da 3- Coloração de Grafos Otimização Combinatória O Problema da - Coloração de Grafos Guilherme Zanardo Borduchi Hugo Armando Gualdron Colmenares Tiago Moreira Trocoli da Cunha Prof.ª Marina Andretta Introdução ao Problema Problema

Leia mais

Aula 10: Tratabilidade

Aula 10: Tratabilidade Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas

Leia mais

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47 1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto. 7 - Coloração de Arestas e Emparelhamentos Considere o seguinte problema: Problema - Ao final do ano acadêmico, cada estudante deve fazer um exame oral com seus professores. Suponha que existam 4 estudantes

Leia mais

CI065 CI755 Algoritmos e Teoria dos Grafos

CI065 CI755 Algoritmos e Teoria dos Grafos CI065 CI755 Algoritmos e Teoria dos Grafos Exercícios 11 de outubro de 2017 1 Fundamentos 1. Seja S = {S 1,..., S n } uma família de conjuntos. O grafo intercessão de S é o grafo G S cujo conjunto de vértices

Leia mais

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem

Leia mais

x y Grafo Euleriano Figura 1

x y Grafo Euleriano Figura 1 Grafo Euleriano Um caminho simples ou um circuito simples é dito euleriano se ele contém todas as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. Um grafo que não contém

Leia mais

Parte B Teoria dos Grafos

Parte B Teoria dos Grafos 45 Parte B Teoria dos Grafos B. Grafos e Subgrafos Um grafo G é uma tripla ordenada (V(G), E(G), ), constituindo de um conjunto não vazio V(G) de vértices, um conjunto disjunto E(G) das arestas e uma função

Leia mais

GRAFOS Aula 02 Formalização: definições Max Pereira

GRAFOS Aula 02 Formalização: definições Max Pereira Ciência da Computação GRAFOS Aula 02 : definições Max Pereira Um grafo G é um par ordenado G = (V, E) onde V é um conjunto finito e não vazio de elementos e E é um conjunto de subconjuntos de dois elementos

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e implementação de alg. de Dijkstra Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 20: Decomposições de Arestas Preparado a partir da ref.: J.M. Aldous, R. Wilson,

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 16: Grafos Planares Preparado a partir do texto: Rangel, Socorro. Teoria do

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 09: Representação de Grafos Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 1.1 Introdução histórica..................................... 1 1.2 Passeios

Leia mais

Problemas Intratáveis ou computação eficiente X computação ineficiente

Problemas Intratáveis ou computação eficiente X computação ineficiente Problemas Intratáveis ou computação eficiente X computação ineficiente Problemas Tratáveis Os problemas que podem ser resolvidos em tempo polinomial em um computador típico são exatamente os mesmos problemas

Leia mais

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os

Leia mais

Preliminares. Profa. Sheila Morais de Almeida. agosto

Preliminares. Profa. Sheila Morais de Almeida. agosto Preliminares Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2016 Algoritmos Definição - Skiena Algoritmo é a ideia por trás dos programas de computador. É aquilo que permanece igual se o programa

Leia mais

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto. 6 - oloração de restas e Emparelhamentos onsidere o seguinte problema: Problema - o final do ano acadêmico, cada estudante deve fazer um exame oral com seus professores. Suponha que existam 4 estudantes

Leia mais

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Cobertura, Coloração

Leia mais

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36 Grafos Direcionados > Grafos Direcionados Representações Computacionais 1/36 Grafos Direcionados Em muitas aplicações, é importante ter direção nas arestas: Ruas de mão única Grafos modelando páginas da

Leia mais

Trabalho final de Teoria dos Grafos: O problema de coloração de vértices de grafos. Alessander Botti Benevides.

Trabalho final de Teoria dos Grafos: O problema de coloração de vértices de grafos. Alessander Botti Benevides. Trabalho final de Teoria dos Grafos: O problema de coloração de vértices de grafos Alessander Botti Benevides abbenevides@inf.ufes.br 4 de julho de 2011 Sumário 1 2 Coloração de mapas Problemas de agendamento

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais harison@pucpcaldas.br 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter

Leia mais

Teoria dos Grafos Introdu c ao

Teoria dos Grafos Introdu c ao Teoria dos Grafos Introdução Referências P. O. Boaventura Netto, Grafos: Teoria, Modelos e Algoritmos, São Paulo, E. Blucher 001; R. J. Trudeau, Introduction to Graph Theory, New York, Dover Publications,

Leia mais

Introdução a Grafos Letícia Rodrigues Bueno

Introdução a Grafos Letícia Rodrigues Bueno Introdução a Grafos Letícia Rodrigues Bueno UFABC Teoria dos Grafos - Motivação Objetivo: aprender a resolver problemas; Como: usando grafos para modelar os problemas; Grafos: ferramenta fundamental de

Leia mais

Árvores Árvores Geradoras de Custo Mínimo 0/16

Árvores Árvores Geradoras de Custo Mínimo 0/16 Conteúdo 1 Árvores 2 Árvores Geradoras de Custo Mínimo Árvores Árvores Geradoras de Custo Mínimo 0/16 Árvores Definição (Grafo Acíclico) Um grafo acíclico é um grafo que não contém ciclos. Árvores Árvores

Leia mais

Otimização Combinatória - Parte 4

Otimização Combinatória - Parte 4 Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional

Leia mais

CARACTERIZAÇÃO E COLORAÇÃO DE ARESTAS EM GRAFOS SPLIT-CO-COMPARABILIDADE

CARACTERIZAÇÃO E COLORAÇÃO DE ARESTAS EM GRAFOS SPLIT-CO-COMPARABILIDADE UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO LUIS ANGELO LOSS DE CASTRO CARACTERIZAÇÃO E COLORAÇÃO DE ARESTAS EM GRAFOS SPLIT-CO-COMPARABILIDADE

Leia mais

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade Conteúdo 1 Teoria de Grafos Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade > Teoria de Grafos 0/22 Conceitos Básicos Inicialmente, estudaremos os grafos não direcionados.

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Algoritmo de Kruskal O algoritmo de Kruskal permite determinar a spanning tree de custo mínimo. Este custo corresponde à soma dos pesos (distância, tempo, qualidade,...) associados

Leia mais

Uma forma de classificação

Uma forma de classificação Uma forma de classificação L. Não-RE ou f. nãocomputáveis LRE ou MT ou f. comput. L. Indecidíveis ou Procedimentos L. Recursivas ou Decidíveis ou Algoritmos Outra forma de classificação Problemas Indecidíveis

Leia mais

Como saber se um problema está em NP e não está em P?

Como saber se um problema está em NP e não está em P? ? P = NP Uma das principais questões em aberto é se P = NP, isto é, se de fato tudo o que pode ser feito em tempo polinomial por uma MTND poderia ser feito por uma MTD em tempo polinomial, talvez com um

Leia mais

5 VNS com Filtro e Reconexão por Caminhos

5 VNS com Filtro e Reconexão por Caminhos 5 VNS com Filtro e Reconexão por Caminhos A metaheurística VNS (Variable Neighborhood Search) foi proposta por Mladenović e Hansen [40] e possui como idéia básica a mudança de vizinhanças realizada da

Leia mais

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações? 8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações

Leia mais

SOBRE A COMPLEXIDADE DE COLORAÇÃO MISTA

SOBRE A COMPLEXIDADE DE COLORAÇÃO MISTA SOBRE A COMPLEXIDADE DE COLORAÇÃO MISTA Júlio César Araújo Universidade Federal do Ceará - UFC Mestrado e Doutorado em Ciência da Computação ParGO - Paralelismo, Grafos e Otimização juliocesar@lia.ufc.br

Leia mais

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina Grafos: Busca SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo é um problema fundamental Deve-se ter uma forma sistemática

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 19 Paths and circuits Eulerian paths Hamiltonian paths De Bruijn sequences Knight s

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Grafos com pesos, caminhos e distâncias Ideia e algoritmo de Dijkstra Dijkstra o próprio Aula de hoje Corretude de Dijkstra Fila de prioridades e Heap Dijkstra eficiente

Leia mais

ANÁLISE DE ALGORITMOS (INF 1721)

ANÁLISE DE ALGORITMOS (INF 1721) PUC-Rio Departamento de Informática Prof. Marcus Vinicius S. Poggi de Aragão (3WA) Horário: 2as. e 4as. 9-11hs (3WA) 3 de dezembro de 2016 Período: 2016.2 ANÁLISE DE ALGORITMOS (INF 1721) 3 a Lista de

Leia mais

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo PMR2300 Escola Politécnica da Universidade de São Paulo Um grafo é uma estrutura que generaliza árvores, sendo formado por nós e arestas. Cada nó em um grafo pode ser conectado a vários outros nós por

Leia mais

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios 1 Conceitos 1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis pessoas, ou três se conhecem

Leia mais

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns

Leia mais

Árvore Geradora Mínima

Árvore Geradora Mínima GRAFOS ÁRVORE GERADORA MÍNIMA Prof. André Backes Árvore Geradora Mínima Definição Uma árvore geradora (do inglês, spanning tree) é um subgrafo que contenha todos os vértices do grafo original e um conjunto

Leia mais

O Teorema da Amizade

O Teorema da Amizade O Teorema da Amizade Seminário Diagonal David Mesquita Faculdade de Ciências da Universidade do Porto 13 de Maio de 2009 Teorema da Amizade,TA Formulação Original Suponha-se que numa sociedade, cada par

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Referências P. O. Boaventura Netto, Grafos: Teoria, Modelos e Algoritmos, São Paulo, E. Blucher 2001; R. J. Trudeau, Introduction to Graph Theory, New York, Dover Publications, 1993; Kaufmann,

Leia mais

Distinguir e determinar número cromático e índice cromático de grafos; Conceitos elementares da teoria dos grafos (aula 7);

Distinguir e determinar número cromático e índice cromático de grafos; Conceitos elementares da teoria dos grafos (aula 7); Coloração AULA... META Apresentar problemas de coloração de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Obter o polinômio cromático de um grafo associado a um mapa; Distinguir e determinar

Leia mais

Estruturas de Dados Grafos

Estruturas de Dados Grafos Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:

Leia mais

Questões de Computação Científica no contexto da Otimização

Questões de Computação Científica no contexto da Otimização Questões de Computação Científica no contexto da Otimização Universidade Federal do Espírito Santo Mestrado em Informática Abril de 2009 Sumário Introdução 1 Introdução 2 3 Sumário Introdução 1 Introdução

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Existem três companhias que devem abastecer com gás, eletricidade e água três prédios diferentes através de tubulações subterrâneas. Estas tubulações podem estar à mesma profundidade? Isto

Leia mais

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist.

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist. CAMINHO DE CUSTO MÍNIMO Dados dois pontos A e B, em muitos problemas práticos fazemos 2 perguntas: 1. existe um caminho de A para B? ou 2. se existe mais de um caminho de A para B, qual deles é o mais

Leia mais

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios 1 Conceitos 1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis pessoas, ou três se conhecem

Leia mais

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado. PUC-Rio Departamento de Informática Profs. Marcus Vinicius S. Poggi de Aragão Período: 0. Horário: as-feiras e as-feiras de - horas de maio de 0 ESTRUTURAS DISCRETAS (INF 6) a Lista de Exercícios Procure

Leia mais

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II 01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr. (ICMCUSP) 01

Leia mais

Teorema de Hajós para Coloração Ponderada

Teorema de Hajós para Coloração Ponderada Author manuscript, published in "XXXIX Simpósio Brasileiro de Pesquisa Operacional, SBPO 2007. (2007) 2631-2635" Teorema de Hajós para Coloração Ponderada Júlio César Silva Araújo Universidade Federal

Leia mais

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos Algoritmos e Estruturas de Dados II Introdução a Profa. M. Cristina/ Profa. Rosane (2010) Material de aula original: Profa. Josiane M. Bueno - Motivação : conceito introduzido por Euler, em 1736 Problema

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 13: Árvores Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 11 do livro Fundamentals of

Leia mais

Complexidade e algoritmos para algumas

Complexidade e algoritmos para algumas Complexidade e algoritmos para algumas variações do problema de coloração Flavia Bonomo Guillermo Durán Javier Marenco Departamento de Matemática, FCEyN, Universidad de Buenos Aires, Argentina Departamento

Leia mais

COLORAÇÃO DE ARESTAS DISTINTA NA VIZINHANÇA

COLORAÇÃO DE ARESTAS DISTINTA NA VIZINHANÇA UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO DANIEL FRANCISCO SILVA COLORAÇÃO DE ARESTAS DISTINTA NA VIZINHANÇA TRABALHO DE CONCLUSÃO

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 35 Teoria dos Grafos - Relembrando Árvore Um grafo G é uma árvore se é conexo e não possui ciclos (acíclico).

Leia mais

CONCEITOS BÁSICOS EM GRAFOS

CONCEITOS BÁSICOS EM GRAFOS Um grafo (simples) G é formado por um conjunto de vértices, denotado por V(G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par (não ordenado) de vértices distintos. Se xy é uma aresta,

Leia mais

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II 04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr.

Leia mais

Teoria dos Grafos. Árvores Geradoras

Teoria dos Grafos. Árvores Geradoras Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Preparado a partir

Leia mais

Introdução à classe de problemas NP- Completos

Introdução à classe de problemas NP- Completos Introdução à classe de problemas NP- Completos R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Introdução Considerações Práticas Em alguns casos práticos, alguns

Leia mais

Capítulo 1 Conceitos e Resultados Básicos

Capítulo 1 Conceitos e Resultados Básicos Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 1 Conceitos e Resultados Básicos Um grafo é um par ordenado (V, A), onde V e A são conjuntos disjuntos, e cada elemento

Leia mais

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo: Matemática Discreta ESTiG\IPB Cap4. Elementos da Teoria de Grafos pg 1 CAP4. ELEMENTOS DA TEORIA DE GRAFOS Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E), sendo: Exemplos

Leia mais

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação Aula 06: Teoria dos Grafos Tópico 01: Grafos e suas Representações Nesta aula nós passamos a estudar um outro assunto, mas que também tem muita aplicação na vida prática, a Teoria dos Grafos. Para esta

Leia mais

GRAFOS. Introdução Conceitos Fundamentais

GRAFOS. Introdução Conceitos Fundamentais GRAFOS Introdução Conceitos Fundamentais Uma aplicação do produto de matrizes Agora é a sua vez... Considere o diagrama seguinte Determine, o número de formas diferentes de ir de a 1 até e 2 e de a 2

Leia mais

Redução de Cook-Levin e Considerações Finais

Redução de Cook-Levin e Considerações Finais Redução de Cook-Levin e Considerações Finais André Vignatti DINF- UFPR Fechando o Ciclo de Reduções Nós reduzimos o SAT para diversos problemas de busca, como mostra a figura: Todos problemas NP CIRCUIT

Leia mais

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015.

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015. Instituto de Computação Universidade Federal Fluminense Notas de Aula de Teoria dos Grafos Niterói, agosto de 2015. Conteúdo 1 Conceitos Básicos 5 1.1 Grafos, vértices, arestas..................... 5 1.2

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos e Algoritmos Preparado a partir do texto: Rangel, Socorro.

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A de Oliveira, Socorro Rangel, Silvio A de Araujo Departamento de Matemática Aplicada Capítulo 12: Grafos Hamiltonianos Preparado a partir do texto: Rangel, Socorro Teoria do

Leia mais

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ Suponha que temos um grupo de pessoas (funcionário de uma empresa) que serão submetidos a um treinamento. Queremos identificar os grupos de

Leia mais

Problemas de otimização

Problemas de otimização Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,

Leia mais

Jogos de Anti-Coordenação e Colorações Estáveis em Grafos. Renato Lui Geh NUSP:

Jogos de Anti-Coordenação e Colorações Estáveis em Grafos. Renato Lui Geh NUSP: Jogos de Anti-Coordenação e Colorações Estáveis em Grafos Renato Lui Geh NUSP:8536030 Introdução Jogos de coordenação: Classe de jogos em que jogadores jogam cooperativamente. Jogador i fazer a mesma ação

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

PROVA 2 DE MATEMÁTICA DISCRETA 2O. SEMESTRE DE 2008

PROVA 2 DE MATEMÁTICA DISCRETA 2O. SEMESTRE DE 2008 PROVA 2 DE MATEMÁTICA DISCRETA 2O SEMESTRE DE 2008 Instruções: 1 As soluções a serem entregues devem ser elaboradas individualmente Entretanto, você pode discutir os problemas com colegas e professores

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 11: Introdução aos Grafos Indução Finita Indução Finita é uma técnica para provar teoremas também usada no projecto de algoritmos. Suponha

Leia mais

Sub-grafo. Árvore Geradora Mínima

Sub-grafo. Árvore Geradora Mínima Comentários da aula anterior Componentes Fortemente Conectados (algoritmo) 1. Chama BuscaEmProfundidade (G) para obter os tempos de término (t[u], ou f[u]) para todos os vértices de G, isto é, enquanto

Leia mais

SCC-210 Algoritmos Avançados. Capítulo 9 Grafos. Adaptado por João Luís G. Rosa

SCC-210 Algoritmos Avançados. Capítulo 9 Grafos. Adaptado por João Luís G. Rosa SCC-21 Algoritmos Avançados Capítulo Grafos Adaptado por João Luís G. Rosa Representação (Skiena & Revilla, 2) Vértices rotulados: u Chaves (índices) são associadas aos vértices Arestas sem elementos.

Leia mais

14 Coloração de vértices Considere cada um dos grafos abaixo:

14 Coloração de vértices Considere cada um dos grafos abaixo: 14 Coloração de vértices Considere cada um dos grafos abaixo: a) Quantas cores são necessárias para colorir os vértices de um grafo de maneira que dois vértices adjacentes não recebam a mesma cor? b) Qual

Leia mais

Cálculo Numérico BCC760

Cálculo Numérico BCC760 Cálculo Numérico BCC760 Resolução de Sistemas de Equações Lineares Simultâneas Departamento de Computação Página da disciplina http://www.decom.ufop.br/bcc760/ 1 Introdução! Definição Uma equação é dita

Leia mais

Edsger Wybe Dijkstra

Edsger Wybe Dijkstra Edsger Wybe Dijkstra Maio 90 Agosto 00 Roterdã, Holanda Nuenen, Holanda Cientista da Computação Contribuições: Algoritmos Linguagem de Programação ALGOL 0 Sistema Operacional THE Processamento Distribuído

Leia mais

Capítulo 1. Aula Conectividade Caminhos

Capítulo 1. Aula Conectividade Caminhos Capítulo 1 Aula 7 1.1 Conectividade Muitos problemas podem ser modelados com caminhos formados ao percorrer as arestas dos grafos. Por exemplo, o problema de determinar se uma mensagem pode ser enviada

Leia mais