![Page 1: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/1.jpg)
AULA 22 – Coloracao em grafos
Prof. Daniel Kikuti
Universidade Estadual de Maringa
30 de maio de 2014
![Page 2: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/2.jpg)
Uma aplicacao inicial
Problema de escalonamento de horarios
I Voce e o responsavel por agendar horarios de aulas nauniversidade.
I Seu objetivo e evitar conflitos, isto e, garantir que duas aulasquaisquer com alunos em comum ocorram em horariosdiferentes.
I Para representar esta informacao, voce resolveu usar umgrafo, onde os vertices representam as disciplinas e uma arestaentre duas disciplinas representa um conflito.
![Page 3: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/3.jpg)
Exemplo1
Quantos horarios distintos sao necessarios?
S H P C
I L G A
M
Legenda:
A Astronomy
C Chemistry
G Greek
H History
I Italian
L Latin
M Music
P Philosophy
S Spanish
1Copiado de http://web.math.princeton.edu/math alive/5/Notes2.pdf
![Page 4: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/4.jpg)
Solucao?
Coloracao
Podemos atribuir uma cor (rotulo) para cada horario (por exemplo,o horario 19:30 – 21:10 pode receber a cor azul), de forma quedois vertices adjacentes nao possuam a mesma cor.
Uma coloracao possıvel
S H P C
I L G A
M
![Page 5: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/5.jpg)
Solucao?
Coloracao
Podemos atribuir uma cor (rotulo) para cada horario (por exemplo,o horario 19:30 – 21:10 pode receber a cor azul), de forma quedois vertices adjacentes nao possuam a mesma cor.
Uma coloracao possıvel
S H P C
I L G A
M
![Page 6: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/6.jpg)
Definicoes
Conjunto independente
Um conjunto independente em um grafo G = (V ,E ) e qualquersubconjunto V ′ ⊆ V , tal que u, v ∈ V ′ ⇒ (u, v) 6∈ E .
Coloracao, k-coloracao, k-colorıvel
Uma coloracao (propria) dos vertices de G = (V ,E ) e umafuncao c : V → N que dado dois vertices adjacentes u, v ∈ Vquaisquer, associa-os a cores diferentes, isto e,(u, v) ∈ E ⇒ c(u) 6= c(v). Uma k-coloracao de um grafo e umacoloracao que usa um total de k cores. Um grafo que possui umak-coloracao e dito k-colorıvel.
Particao em conjuntos independentes
A funcao de coloracao c induz uma particao no grafo G emsubconjuntos independentes V1,V2, . . . ,Vk , na qual Vi ∩ Vj = ∅ eV1 ∪ V2 ∪ . . . ∪ Vk = V .
![Page 7: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/7.jpg)
Definicoes
Conjunto independente
Um conjunto independente em um grafo G = (V ,E ) e qualquersubconjunto V ′ ⊆ V , tal que u, v ∈ V ′ ⇒ (u, v) 6∈ E .
Coloracao, k-coloracao, k-colorıvel
Uma coloracao (propria) dos vertices de G = (V ,E ) e umafuncao c : V → N que dado dois vertices adjacentes u, v ∈ Vquaisquer, associa-os a cores diferentes, isto e,(u, v) ∈ E ⇒ c(u) 6= c(v). Uma k-coloracao de um grafo e umacoloracao que usa um total de k cores. Um grafo que possui umak-coloracao e dito k-colorıvel.
Particao em conjuntos independentes
A funcao de coloracao c induz uma particao no grafo G emsubconjuntos independentes V1,V2, . . . ,Vk , na qual Vi ∩ Vj = ∅ eV1 ∪ V2 ∪ . . . ∪ Vk = V .
![Page 8: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/8.jpg)
Definicoes
Conjunto independente
Um conjunto independente em um grafo G = (V ,E ) e qualquersubconjunto V ′ ⊆ V , tal que u, v ∈ V ′ ⇒ (u, v) 6∈ E .
Coloracao, k-coloracao, k-colorıvel
Uma coloracao (propria) dos vertices de G = (V ,E ) e umafuncao c : V → N que dado dois vertices adjacentes u, v ∈ Vquaisquer, associa-os a cores diferentes, isto e,(u, v) ∈ E ⇒ c(u) 6= c(v). Uma k-coloracao de um grafo e umacoloracao que usa um total de k cores. Um grafo que possui umak-coloracao e dito k-colorıvel.
Particao em conjuntos independentes
A funcao de coloracao c induz uma particao no grafo G emsubconjuntos independentes V1,V2, . . . ,Vk , na qual Vi ∩ Vj = ∅ eV1 ∪ V2 ∪ . . . ∪ Vk = V .
![Page 9: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/9.jpg)
Definicoes
Numero cromaticoO numero cromatico de um grafo G (representado por χ(G )) e onumero mınimo de cores necessario para se colorir o grafo.
Complexidade do problema
Encontrar uma coloracao de vertices otima e um problemaNP-difıcil2 (caso geral).
2Karp, Richard M. Reducibility Among Combinatorial Problems. In R. E.Miller and J. W. Thatcher (editors). Complexity of Computer Computations.New York: Plenum. pp. 85–103, 1972.
![Page 10: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/10.jpg)
Limites do numero cromatico
1. 1 ≤ χ(G ) ≤ |V |.2. Para um grafo completo Kn, χ(Kn) = n.
3. Se G contem um clique de tamanho k, entao χ(G ) ≥ k.
4. Grafos bipartidos (incluindo florestas e arvores) sao2-colorıveis.
5. Todo grafo planar pode ser colorido com 4 cores (Appel eHaken, 1976).
6. Uma coloracao gulosa mostra que todo grafo pode sercolorido com uma cor a mais que o grau maximo de umvertice, χ(G ) ≤ ∆(G ) + 1.
![Page 11: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/11.jpg)
Algoritmo sequencial
Entrada: Um grafo G e uma lista de vertices (ordem)v1, v2, . . . , vn.Saıda: Uma coloracao de vertices c : VG → N.
1 Para i = 1 ate n faca
2 Seja c(vi ) = o menor numero de cor n~ao usado nos
vizinhos de menor ındice de vi3 Devolva a colorac~ao de vertices c.
![Page 12: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/12.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:
![Page 13: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/13.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1
![Page 14: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/14.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1cor 2
![Page 15: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/15.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1cor 2cor 3
![Page 16: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/16.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1cor 2cor 3
![Page 17: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/17.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1cor 2cor 3
![Page 18: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/18.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1cor 2cor 3
![Page 19: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/19.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1cor 2cor 3
![Page 20: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/20.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1cor 2cor 3cor 4
![Page 21: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/21.jpg)
Exemplo
Execucao do algoritmo sequencial considerando a ordemG , L,H ,P ,M ,A, I , S ,C .
S H P C
I L G A
M
Cores:cor 1cor 2cor 3cor 4
![Page 22: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/22.jpg)
Analise do algoritmo sequencial
I O algoritmo produz uma coloracao propria porque evitaconflitos toda vez que vai colorir um vertice.
I O tempo de execucao e O(V + E ).
I Quantas cores serao usadas? Depende da ordem escolhidapara colorir os vertices.
I Produz uma coloracao otima se for dada uma ordenacaootima. O problema e que achar esta ordenacao otima eNP-Difıcil tambem.
I Uma propriedade interessante e que, uma vez colorido o grafo,e possıvel gerar a ordem dos vertices que gera esta coloracao(simplesmente listando os vertices de acordo com sua cor).
I E um algoritmo eficiente, mas nao eficaz.
ExercıcioMostre que o Algoritmo Sequencial nem sempre produz umacoloracao que usa o numero cromatico de cores.
![Page 23: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/23.jpg)
Analise do algoritmo sequencial
I O algoritmo produz uma coloracao propria porque evitaconflitos toda vez que vai colorir um vertice.
I O tempo de execucao e O(V + E ).
I Quantas cores serao usadas? Depende da ordem escolhidapara colorir os vertices.
I Produz uma coloracao otima se for dada uma ordenacaootima. O problema e que achar esta ordenacao otima eNP-Difıcil tambem.
I Uma propriedade interessante e que, uma vez colorido o grafo,e possıvel gerar a ordem dos vertices que gera esta coloracao(simplesmente listando os vertices de acordo com sua cor).
I E um algoritmo eficiente, mas nao eficaz.
ExercıcioMostre que o Algoritmo Sequencial nem sempre produz umacoloracao que usa o numero cromatico de cores.
![Page 24: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/24.jpg)
Algoritmo heurıstico Maior Grau Primeiro
Entrada: um grafo G com n vertices.Saıda: Uma coloracao de vertices c : VG → N.
1 Enquanto existir vertices n~ao coloridos em G faca
2 Entre os vertices sem cor de maior grau,
escolha o vertice v com o maior grau
de colorac~ao;
3 Atribua a menor cor k possıvel para o
vertice v : c(v) = k;4 Devolva a colorac~ao de vertices c.
Grau de coloracao
E o numero de cores diferentes usadas para os vertices coloridosadjacentes de v.
![Page 25: AULA 22 { Colorac~ao em grafos - malbarbo...2.Para um grafo completo K n, ˜(K n) = n. 3.Se G cont em um clique de tamanho k, ent~ao ˜(G) k. 4.Grafos bipartidos (incluindo orestas](https://reader035.vdocuments.com.br/reader035/viewer/2022071216/60475a69559d8e17b661e6bb/html5/thumbnails/25.jpg)
Outras aplicacoes
Coloracao de vertices
I Alocacao de faixas de frequencia (radio ou TV).
I Colorir mapas.
I Separacao de produtos explosivos.
I Otimizacao em compiladores (alocacao de registradores).
Outros problemas de coloracao
I Coloracao de arestas.
I Coloracao de faces.