Aula 26 - Coloração de Grafos
Universidade Federal do Rio Grande do Sul
Instituto de Informática
Departamento de Informática Teórica
Estes slides utilizam conteúdo adaptado da bibliografia da disciplina e também de notas de aula e slides prévios dos professores Bruno Grisci, Rodrigo Machado e André Grahl.








Vamos colorir os países da América do Sul de modo que países vizinhos tenham cores diferentes.

Como no dual planar (aula passada), o grafo de um mapa é planar.
Foram necessárias 4 cores para colorir a América do Sul.
Nesta aula: todo grafo planar (e.g., mapas) pode ser colorido com 4 cores!
| Bob | Alice | João | Maria | |
|---|---|---|---|---|
| Grafos | x | x | ||
| E.D. | x | x | x | |
| Cálculo II | x | |||
| ARQ I | x | |||
| Lógica | x |
Provas que cada aluno precisa realizar.
Nodos: disciplinas. Arestas: disciplinas com algum aluno em comum (Bob faz Grafos e E.D.).
Alice, João e Maria geram as demais arestas.
Dia 1: Grafos, Cálculo II e Lógica.
Dia 2: ARQ I e E.D. Cores: dias. Bastam 2 dias!
Resolver o Sudoku é completar uma 4-coloração parcial do grafo! (No Sudoku 9 \times 9: 81 nodos e 9 cores.)



Definição: Seja G=(V,E) um grafo simples. Uma coloração (de vértices) de G é uma função f: V \to C tal que, para todo u, v \in V,
\{u,v\} \in E \Rightarrow f(u) \neq f(v)
onde C \subseteq \mathbb{N} é o conjunto de cores.
Exemplo:
Definição: |img(f)| é o número de cores da coloração f.
Definição: Um grafo G é k-colorível sss existe uma coloração de G com no máximo k cores.
Exemplo: o grafo do slide anterior é 3-colorível (e também 4-colorível, 5-colorível, …).
Mas ele não é 2-colorível: B, C e D formam um triângulo, e cada um precisa de uma cor diferente.
Importante: pseudografos com laços não são coloríveis: um laço \{v, v\} exigiria f(v) \neq f(v).
Definição: O número cromático \chi(G) de um grafo G é o menor número de cores k tal que G é k-colorível.
G \text{ é } k\text{-cromático} \iff \chi(G) = k
Grafo de Petersen
Exemplo:
\Rightarrow 3-cromático: \chi(G) = 3.
Exercício: Determine o número cromático dos grafos abaixo. (Clique nos vértices para colori-los.)
Seja \chi(G) o número cromático de um grafo simples G = (V, E).
Seja \omega(G) o tamanho do maior clique de G. Então \chi(G) \geq \omega(G).
Teorema: Seja G = (V, E) um grafo simples, onde \Delta(G) é o maior grau de algum vértice em V. Então
\chi(G) \leq \Delta(G) + 1.
Ideia: Se um vértice u possui d vizinhos, então mesmo que cada vizinho tenha uma cor diferente, basta uma cor adicional para u (d + 1 cores). Como d \leq \Delta(G) para todo vértice, \Delta(G) + 1 cores são suficientes.
Nota: O limite é justo: \chi(K_n) = n = \Delta(K_n) + 1. (Teorema de Brooks: grafos completos e ciclos ímpares são os únicos grafos conexos que o atingem.)
Demonstração:
Nota: este procedimento é exatamente o algoritmo guloso, que veremos no final da aula.

Teorema: (5 Cores) Se G = (V, E) é simples e planar, então \chi(G) \leq 5.
Lema: Seja G = (V, E) um grafo simples e planar. Então existe pelo menos um vértice v com no máximo 5 vizinhos.
Demonstração: Por contradição. Assuma que todo vértice v tem pelo menos 6 vizinhos.
Teorema: (5 Cores) Se G = (V, E) é simples e planar, então \chi(G) \leq 5.
Demonstração: Por indução no número de vértices n.
Proposição P(n): Se G é simples, planar e possui n vértices, então \chi(G) \leq 5.
Caso base: P(n) para n \leq 5. Trivial: cada vértice pode receber uma cor diferente.
Hipótese de indução: P(k) vale para todo k < n, isto é, todo grafo simples e planar com k < n vértices tem \chi \leq 5.
Passo: vamos demonstrar que P(k < n) \to P(n). Seja G simples e planar com n vértices. Pelo lema, existe um vértice v com no máximo 5 vizinhos. Dois casos:
Caso 1: v tem no máximo 4 vizinhos.
1. Ao remover v, G - v tem n - 1 vértices (e continua simples e planar).
2. Pela H.I., P(n-1): G - v é 5-colorível.
3. Ao reintroduzir v: seus (no máximo) 4 vizinhos usam no máximo 4 cores, então sobra uma cor.
4. Colorimos v com a cor restante! Logo, P(n-1) \to P(n).
Caso 2: v tem exatamente 5 vizinhos, e em G - v (colorido pela H.I.) eles usam 5 cores diferentes. (Se usassem 4 ou menos, sobraria uma cor, como no caso 1.)
1. Entre os vizinhos v_1, \ldots, v_5, deve haver dois não-adjacentes (senão teríamos K_5, que não é planar). Sejam v_2 e v_5.
2. Contraímos as arestas \{v, v_2\} e \{v, v_5\}: o grafo resultante é simples, planar e tem n - 2 vértices.
3. Pela H.I., ele é 5-colorível.
4. Desfazendo a contração (ainda sem v), v_2 e v_5 ficam com a mesma cor.
5. Ao reintroduzir v, seus 5 vizinhos usam no máximo 4 cores: sobra uma cor para v! Logo, P(k < n) \to P(n). \blacksquare
Teorema: Se G = (V, E) é simples e planar, então \chi(G) \leq 4.

Augustus De Morgan (1806–1871)
Teorema: Se G = (V, E) é simples e planar, então \chi(G) \leq 4.

Algumas das configurações da prova de Appel & Haken.

Kenneth Appel e Wolfgang Haken.
Disciplina de Teoria da Computação II
Classes de complexidade computacional
Intuitivamente: até onde se sabe, o número de operações para resolver o problema cresce exponencialmente com o tamanho do grafo.

Curiosidade: todo grafo planar tem uma 4-coloração, que pode ser encontrada em tempo O(n^2); mas decidir se um grafo planar é 3-colorível continua NP-Completo!
Entrada: grafo simples G = (V, E) e cores C = \{c_1, c_2, \ldots, c_k\}.
Saída: coloração f: V \to C.
Cores, em ordem: \textcolor{#1565c0}{\mathbf{c_1}}, \textcolor{#c62828}{\mathbf{c_2}}, \textcolor{#2e7d32}{\mathbf{c_3}}, \textcolor{#c17900}{\mathbf{c_4}}. Ordem dos vértices: v_1, v_2, \ldots, v_6.
v_1: nenhum vizinho colorido \to \textcolor{#1565c0}{\mathbf{c_1}}
v_2: vizinho com c_1 \to \textcolor{#c62828}{\mathbf{c_2}}
v_3: vizinho com c_2 \to \textcolor{#1565c0}{\mathbf{c_1}}
v_4: vizinhos com c_1, c_2 \to \textcolor{#2e7d32}{\mathbf{c_3}}
v_5: vizinhos com c_1, c_2, c_3 \to \textcolor{#c17900}{\mathbf{c_4}}
v_6: vizinhos com c_1, c_4 \to \textcolor{#c62828}{\mathbf{c_2}}
O guloso usou 4 cores, mas \chi(G) = 3! Com a ordem v_2, v_6, v_4, v_3, v_1, v_5, ele usa apenas 3.
Sempre existe uma ordem de vértices que produz uma coloração ótima (com \chi(G) cores) usando o método guloso.
Por outro lado, o método pode ser arbitrariamente ruim:
Exemplo: crown graph com n vértices (u_i adjacente a w_j sss i \neq j):
Moral: a ordem dos vértices é crucial.
Os rótulos indicam a ordem em que o guloso visita os vértices.
Exemplo: no grafo anterior, a ordem por grau é v_2, v_5 (grau 4), v_3, v_4 (grau 3), v_1, v_6 (grau 2).
O guloso nessa ordem usa 3 cores: ótimo!
?