A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ronaldo Celso Messias Correia –

Apresentações semelhantes


Apresentação em tema: "Ronaldo Celso Messias Correia –"— Transcrição da apresentação:

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

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 –

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 –

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 –

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 –

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 –

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 –

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 –

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 –

10 Algoritmo de Coloração
O algoritmo abaixo produz rapidamente uma coloração própria para qualquer grafo: 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 –

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 –

12 Algoritmo de Coloração utilizando busca em profundidade
Ronaldo Celso Messias Correia –

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 Ronaldo Celso Messias Correia –

14 Algoritmo de Coloração utilizando busca em profundidade
Ronaldo Celso Messias Correia –

15 Ronaldo Celso Messias Correia – ronaldo@fct.unesp.br
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 –


Carregar ppt "Ronaldo Celso Messias Correia –"

Apresentações semelhantes


Anúncios Google