24.12.2014 Views

Teoria de Grafos - Unisul

Teoria de Grafos - Unisul

Teoria de Grafos - Unisul

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Teoria</strong> <strong>de</strong> <strong>Grafos</strong><br />

Problemas <strong>de</strong> Coloração<br />

Prof. Max Pereira<br />

http://paginas.unisul.br/max.pereira<br />

1


Problemas <strong>de</strong> Coloração<br />

Problemas nos quais dois vértices<br />

adjacentes não po<strong>de</strong>m ter a mesma cor e<br />

que utilize o número mínimo <strong>de</strong> cores para<br />

colorir os vértices do grafo.<br />

2


Problemas <strong>de</strong> Coloração<br />

Tendo pintado os vértices, é possível<br />

agrupá-los em diferentes conjuntos -<br />

problemas <strong>de</strong> particionamento.<br />

A coloração (particionamento) po<strong>de</strong> ser<br />

executada em arestas, vértices ou faces do<br />

grafo.<br />

3


Problemas <strong>de</strong> Coloração<br />

A coloração clássica po<strong>de</strong> ser utilizada para<br />

resolver uma série <strong>de</strong> problemas <strong>de</strong> otimização<br />

combinatória que envolve o gerenciamento <strong>de</strong><br />

<strong>de</strong>terminado recurso.<br />

Os problemas po<strong>de</strong>m ser mo<strong>de</strong>lados e<br />

solucionados utilizando-se um grafo não<br />

orientado e em seguida <strong>de</strong>terminando sua k-<br />

coloração.<br />

4


Problemas <strong>de</strong> Coloração<br />

Programação <strong>de</strong> horários<br />

Alocação <strong>de</strong> faixas <strong>de</strong> frequências (rádios)<br />

5


Número Cromático<br />

Uma coloração <strong>de</strong> interesse é aquela que<br />

utiliza um número mínimo <strong>de</strong> cores.<br />

Um grafo G, que exige k cores para pintar<br />

seus vértices, e não menos, é chamado um<br />

grafo k-cromático.<br />

O número k é chamado número cromático<br />

<strong>de</strong> G.<br />

6


Número Cromático<br />

Exemplo<br />

7


O Problema da Coloração<br />

Um problema comum que ocorre quando<br />

se trabalha com a representação <strong>de</strong><br />

regiões na forma <strong>de</strong> mapas coloridos é<br />

como representá-las <strong>de</strong> forma que cada<br />

região fique visivelmente clara e distinta<br />

das <strong>de</strong>mais.<br />

8


O Problema da Coloração<br />

9


<strong>Teoria</strong> da Coloração<br />

A teoria da coloração <strong>de</strong> mapas diz ser<br />

possível colorir qualquer mapa planar<br />

utilizando no mímino quatro cores.<br />

10


O Problema da Coloração (<strong>Grafos</strong>)<br />

Uma possível abordagem seria representar<br />

o problema proposto por uma lista <strong>de</strong><br />

adjacências on<strong>de</strong> temos um vetor com as<br />

regiões que <strong>de</strong>vem ser coloridas e uma<br />

lista com os <strong>de</strong>mais elementos que são as<br />

regiões adjacentes a este.<br />

11


O Problema da Coloração (<strong>Grafos</strong>)<br />

<br />

O procedimento para se atribuir as cores certas a cada região é o<br />

seguinte:<br />

<br />

<br />

<br />

Escolhe-se uma região inicial, como por exemplo a região A e<br />

atribui-se uma cor a ela.<br />

para atribuir uma cor para B é verificado se <strong>de</strong>ntre as cores<br />

existentes, existe uma que não esteja colorindo nenhuma<br />

região adjacente a B, então essa cor <strong>de</strong>verá ser escolhida. Se<br />

todas as cores existentes estiverem sendo utilizadas em<br />

regiões vizinhas a B, então uma nova cor é criada.<br />

o raciocínio é repetido analogamente para cada uma das<br />

regiões subsequentes.<br />

12


Representação através <strong>de</strong> <strong>Grafos</strong><br />

Seja G=(V,E) um grafo e C um conjunto <strong>de</strong><br />

cores. Uma coloração <strong>de</strong> G é uma<br />

atribuição <strong>de</strong> alguma cor <strong>de</strong> C para cada<br />

vértice <strong>de</strong> G, tal que dois vértices<br />

adjacentes sempre possuam cores<br />

distintas.<br />

13


Algoritmo <strong>de</strong> Coloração<br />

(Busca em Profundida<strong>de</strong>)<br />

Programa Principal<br />

especificar a lista <strong>de</strong> adjacências;<br />

<strong>de</strong>terminar a estrutura <strong>de</strong> cores;<br />

escolher o vertice Vi <strong>de</strong> maior grau;<br />

chamar o método Colorir_Vertice (Vi);<br />

Colorir_Vertice (Vk)<br />

se o vertice Vk ainda nao foi colorido {<br />

procurar a cor C apropriada<br />

se nao existir cor apropriada para colorir o vertice<br />

criar uma nova cor C;<br />

colorir o vertice Vk com a cor C;<br />

para todo vertice Vj adjacente a Vk faça<br />

chamar o método Colorir_Vertice (Vj)<br />

}<br />

14


Representação através <strong>de</strong> Grafo<br />

15


A: [B, F]<br />

B: [A, C, D]<br />

C: [B, D, E]<br />

D: [B, C, E, F]<br />

E: [C, D, F]<br />

F: [A, D, E]<br />

Algoritmo <strong>de</strong> Coloração<br />

(Lista <strong>de</strong> Adjacência)<br />

16


Algoritmo <strong>de</strong> Coloração<br />

(Busca em profundia<strong>de</strong>)<br />

17


Algoritmo <strong>de</strong> Coloração<br />

(Busca em profundia<strong>de</strong>)<br />

18


Algoritmo <strong>de</strong> Coloração<br />

(Busca em profundia<strong>de</strong>)<br />

19


Algoritmo <strong>de</strong> Coloração<br />

(Busca em profundia<strong>de</strong>)<br />

20


Algoritmo <strong>de</strong> Coloração<br />

(Busca em profundia<strong>de</strong>)<br />

21


Algoritmo <strong>de</strong> Coloração<br />

(Busca em profundia<strong>de</strong>)<br />

22


Algoritmo <strong>de</strong> Coloração<br />

(Busca em Largura)<br />

Programa Principal<br />

lista <strong>de</strong> adjacências; estrutura <strong>de</strong> cores; criar a estrutura <strong>de</strong> fila Q;<br />

vertice Vi <strong>de</strong> maior grau e chamar o método Colorir_Vertice (Vi);<br />

marcar Vi como visitado;<br />

inserir o vertice Vi na fila Q;<br />

enquanto a fila Q nao estiver vazia<br />

u=remove o vertice da fila;<br />

para todo vertice Vj adjacente a u<br />

Se Vj não foi visitado<br />

marcar Vj como visitado;<br />

chamar o método Colorir_Vertice (Vj);<br />

inserir Vj na fila Q;<br />

Colorir_Vertice (Vk)<br />

procurar a cor C apropriada<br />

se nao existir cor apropriada para colorir o vertice Vk<br />

criar uma nova cor C;<br />

colorir o vertice Vk com a cor C<br />

23


Algoritmo <strong>de</strong> Coloração<br />

(Busca em Largura)<br />

24


Algoritmo <strong>de</strong> Coloração<br />

(Busca em Largura)<br />

25


Algoritmo <strong>de</strong> Coloração<br />

(Busca em Largura)<br />

26


Algoritmo <strong>de</strong> Coloração<br />

(Busca em Largura)<br />

27


Algoritmo <strong>de</strong> Coloração<br />

(Busca em Largura)<br />

28


Algoritmo <strong>de</strong> Coloração<br />

(Busca em Largura)<br />

29


Problema do Semáforo<br />

Sistema <strong>de</strong> controle das fases <strong>de</strong> semáforo<br />

em um <strong>de</strong>terminado cruzamento.<br />

Definem-se quais fluxos <strong>de</strong> veículos não são<br />

permitidos simultaneamente e o objetivo é<br />

planejar o controle dos semáforos com o menor<br />

número <strong>de</strong> fases possível.<br />

O problema do semáforo consiste em como<br />

programar um sistema <strong>de</strong> semáforos para<br />

controlar o tráfego dos veículos em um<br />

cruzamento entre ruas <strong>de</strong> modo a evitar colisões<br />

30


Problema do Semáforo<br />

As pistas AD e CB admitem tráfego<br />

nas duas direções simultaneamente,<br />

porém, entre as pistas AB e CD existe<br />

uma incompatibilida<strong>de</strong> que não po<strong>de</strong><br />

ocorrer tráfego simultâneo.<br />

31


Problema do Semáforo<br />

Resolvendo esse problema, o número cromático <strong>de</strong> G é<br />

2, sendo uma 2-coloração. Dessa forma são<br />

necessárias apenas duas fases, sendo:<br />

A para B – fase 1 (AB)=1<br />

A para D – fase 2 (AD)=2<br />

C para B – fase 1 (CB)=1<br />

C para D – fase 2 (CD)=2<br />

D para B – fase 1 (DB)=1<br />

32

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!