1 / 15

Ronaldo Celso Messias Correia

Coloração de Grafos. Ronaldo Celso Messias Correia. O Problema da Coloração. A teoria da coloração de mapas diz ser possível colorir qualquer mapa planar utilizando no mínimo quatro cores Em 1976, usando grafos, Haken e Appel apresentaram uma solução.

makya
Download Presentation

Ronaldo Celso Messias Correia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Coloração de Grafos Ronaldo Celso Messias Correia Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  2. O Problema da Coloração • A teoria da coloração de mapas diz ser possível colorir qualquer mapa planar utilizando no mínimo quatro cores • Em 1976, usando grafos, Haken e Appel apresentaram uma solução Estruturas de Dados – Listas de Adjacências: Lista de Adjacências para a região A: [B, C, D]Lista de Adjacências para a região B: [A, C, E]Lista de Adjacências para a região C: [A, B, D, E, F]Lista de Adjacências para a região D: [A, C, F]Lista de Adjacências para a região E: [B, C, F]Lista de Adjacências para a região F: [C, D, E] Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  3. O Problema da Coloração • Procedimento para se atribuir as cores certas a cada região é o seguinte: • Escolhe-se uma região inicial, como por exemplo a região A e atribui-se uma cor a ela • Para atribuir uma cor para B é verificado se dentre as cores existentes, existe uma que não esteja colorindo nenhuma região adjacente a B, então essa cor deverá ser escolhida. Se todas as cores existentes estiverem sendo utilizadas em regiões vizinhas a B, então uma nova cor é criada. • O raciocínio é repetido analogamente para cada uma das regiões subsequentes As regiões foram coloridas com a utilização de apenas quatro cores e que essas regiões não possuem nenhuma região vizinha com a mesma cor que ela possui. Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  4. Representação através de grafos • Seja G=(V,E) um grafo e C um conjunto de cores. Uma coloração de G é uma atribuição de alguma cor de C para cada vértice de G, tal que dois vértices adjacentes sempre possuam cores distintas. • Formalmente podemos declarar o problema acima como: • Uma coloração de um grafo G=(V,E) é uma função , onde C é um conjunto de cores, tal que para cada aresta (v,u) de E tem-se . Uma k-coloração de G é uma coloração que utiliza k cores. O número cromático X(G) de um grafo G é o menor número de cores k tal que existe uma k-coloração para G. • Para grafos planares, o problema de coloração está intimamente ligado ao problema das 4 cores em mapas. • Encontrar o número cromático de um grafo é uma tarefa bastante difícil e não é conhecido algoritmo eficiente para realizar esta tarefa. Desta forma tenta-se obter uma aproximação para o problema, objetivando-se encontrar alguma coloração "razoável" para o grafo, i.e., procura-se o número de cores próximo ao número cromático. Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  5. Aplicações da Coloração • Quando uma aplicação é modelada como um problema de coloração de vértices, os vértices em cada classe de cores representam indivíduos ou itens que não competem ou conflitam entre si • Atribuição de freqüências de rádio • Separação de produtos explosivos • Agendamento de cursos na universidade • Alocação de registros para programação Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  6. Atribuição de frequências de rádio: • Os vértices representam os transmissores das estações de rádio • Duas estações são adjacentes quando suas áreas de transmissão se sobrepõem, o que resultaria em interferência se elas usassem a mesma freqüência • Cada cor contém estações que podem receber a mesma frequência Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  7. Separação de produtos explosivos: • Os vértices representam produtos químicos necessários em algum processo de produção • Existe uma aresta ligando cada par de produtos que podem explodir, se combinados • O número cromático representa o número mínimo de compartimentos para guardar estes produtos químicos em segurança Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  8. Agendamento de cursos na universidade: • Os vértices representam os cursos de uma universidade • Dois cursos são adjacentes se um aluno se matricula para ambos os cursos • O número cromático representa o número mínimo de horários necessários para acomodar os cursos Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  9. Alocação de registradores para programação: • Os vértices representam as variáveis a serem alocadas nos registradores de execução rápida • Duas variáveis são adjacentes se elas podem estar ativas ao mesmo tempo • O número cromático representa o número mínimo de registradores necessários para evitar o problema de overswapping Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  10. Algoritmo de Coloração Entrada: um grafo G com lista de vértices v1, v2, ..., vp Saída: uma coloração própria de vértices f: VG {1,2, ...} Algoritmo: Coloração Seqüencial de Vértices para i = 1 até p Seja f(vi) = o menor número de cor não usado nos vizinhos de menor índice de vi retorne coloração de vértices f Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br O algoritmo abaixo produz rapidamente uma coloração própriapara qualquer grafo:

  11. Algoritmo de Coloração utilizando busca em profundidade Programa Principal montar a lista de adjacências inicializar a estrutura de cores escolher o vertice Vi de maior grau para ser colorido primeiro chamar a sub-rotina Colore_Vertice para colorir o vertice Vi escolhido Sub-rotina Colore_Vertice: Vk se o vertice Vk ainda nao foi colorido procurar a cor C apropriada se nao existir cor apropriada para colorir o vertice Vk criar uma nova cor C fim se colorir o vertice Vk com a cor C para todo vertice Vj adjacente a Vk faça chamar a sub-rotina Colore_Vertice para colorir o vertice Vj Fim se Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  12. Algoritmo de Coloração utilizando busca em profundidade Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  13. Algoritmo de Coloração utilizando busca em largura Programa Principal montar a lista de adjacências inicializar a estrutura de cores inicializar a estrutura de fila escolher o vertice Vi de maior grau para ser colorido primeiro chamar a sub-rotina Colore_Vertice para colorir o vertice Vi escolhido inserir o vertice Vi na fila Q enquanto a fila Q nao estiver vazia faca remove o vertice Vk da fila para todo vertice Vj adjacente a Vk faça chamar a sub-rotina Colore_Vertice para colorir o vertice Vj inserir Vj na fila fim para fim enquanto Sub-rotina Colore_Vertice: Vk se o vertice Vk ainda nao foi colorido procurar a cor C apropriada se nao existir cor apropriada para colorir o vertice Vk criar uma nova cor C fim se colorir o vertice Vk com a cor C fim se Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  14. Algoritmo de Coloração utilizando busca em profundidade Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

  15. Exercícios • Implementar os algoritmos de coloração utilizando busca em profundidade • Implementar os algoritmos de coloração utilizando busca em largura Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br

More Related