Coloração de Grafos e o Número Cromático
Objetivos de Aprendizagem
- Definir o número cromático e provar , com grafos em que cada cota fica longe.
- Enunciar o teorema de Brooks com suas hipóteses e mostrar uma falha quando uma delas é retirada.
- Mostrar que a coloração gulosa depende da ordem dos vértices e testar 2-colorabilidade em tempo linear.
- Esboçar a prova curta das cinco cores e enunciar o teorema das quatro cores com a história precisa da prova.
- Situar a 3-colorabilidade entre os problemas NP-completos.
Contexto e Motivação
Marcar provas de modo que nenhum aluno tenha duas ao mesmo tempo e distribuir frequências de modo que rádios com área sobreposta não coincidam são o mesmo problema: ponha os itens em conflito num grafo e dê a vértices adjacentes rótulos diferentes, chamados cores, usando o mínimo possível.
planar-graphs enunciou o teorema das quatro cores sem prova e deduziu o fato central por trás dele: todo grafo planar simples tem um vértice de grau no máximo 5. Esta lição prova cinco cores a partir desse fato e explica por que quatro foi tão mais difícil.
Teoria Central
Colorações próprias e o número cromático
Uma coloração própria com cores é uma função com para toda aresta . é -colorível se existe uma, e o número cromático é o menor assim. As classes de cor são conjuntos independentes. Laços tornam a coloração impossível e arestas paralelas não mudam nada, então aqui os grafos são simples. Valores básicos: , ciclo par tem , ciclo ímpar tem .
A coloração se divide pela estrutura vista em graph-connectivity-cut-vertices-and-bridges. é o máximo de sobre as componentes, e se é a união de e que só compartilham um ponto de articulação , então : colora-se cada parte de forma ótima e renomeiam-se as cores de para que tenha a mesma cor nas duas. O grafo de trabalho daquela lição tem, assim, , por causa do triângulo.
A cota inferior pelas cliques
Uma clique é um conjunto de vértices dois a dois adjacentes, e é o tamanho da maior. Vértices de uma clique precisam de cores distintas, então . A folga pode ser grande: o grafo de Grötzsch (11 vértices, 20 arestas, sem triângulo) tem e , e Erdős provou em 1959 que para todo existe um grafo sem ciclos de comprimento até e com (Diestel, Teorema 5.2.5).
A cota superior gulosa
Coloração gulosa: fixe uma ordem e dê a cada a menor cor não usada pelos vizinhos já coloridos. Quando se chega a , no máximo vizinhos estão coloridos, então uma das cores está livre:
A igualdade vale para grafos completos e ciclos ímpares. Só os vizinhos anteriores contam, por isso a ordem smallest-last (coloque por último um vértice de grau mínimo, apague-o, repita) ajuda; a Proposição 5.2.2 de Diestel mostra que ela dá . Como todo subgrafo de um grafo planar simples tem um vértice de grau no máximo 5, grafos planares são 6-coloríveis.
O teorema de Brooks
Teorema (Brooks 1941). Seja conexo. Se não é completo nem ciclo ímpar, então .
Assim, entre os grafos conexos, só os completos e os ciclos ímpares atingem a cota gulosa . Cada hipótese conta:
- Completo: tem e .
- Ciclo ímpar: tem e .
- Conexo: a união disjunta de e não é completa nem ciclo ímpar, tem e . Aplique o teorema por componente.
Diestel atribui a Lovász (1973) uma prova que roda a coloração gulosa numa ordem escolhida com cuidado.
A ordem importa
Para todo grafo existe uma ordem em que a gulosa usa exatamente cores: liste os vértices classe por classe de uma coloração ótima. Um vértice da classe não tem vizinho anterior na própria classe, e os vizinhos anteriores das classes têm cores no máximo (por indução), então ele recebe cor no máximo . Achar essa ordem é tão difícil quanto achar a coloração, e uma ordem ruim pode ser arbitrariamente pior (Exemplo 2).
Duas cores: grafos bipartidos
Um grafo com pelo menos uma aresta tem exatamente quando é bipartido, e Lehman, Leighton e Meyer provam que um grafo é 2-colorível se e somente se não tem ciclo ímpar. O teste roda em : em cada componente, pinte cada vértice pela paridade da sua distância BFS a um vértice inicial. Se uma aresta liga dois vértices da mesma cor, os dois caminhos BFS até suas extremidades mais essa aresta formam um passeio fechado de comprimento ímpar, que contém um ciclo ímpar. O Bipartite.java de Princeton faz o mesmo com DFS.
Cinco cores com uma prova curta
Teorema. Todo grafo planar é 5-colorível.
A prova de Lehman, Leighton e Meyer é uma indução forte no número de vértices, usando que apagar um vértice ou fundir dois vértices adjacentes mantém o grafo planar. Tome um vértice de grau no máximo 5, dado pelo lema de planar-graphs.
- Se , colora-se por indução; vê no máximo quatro cores, então sobra uma quinta.
- Se , há dois vizinhos não adjacentes, porque cinco vizinhos dois a dois adjacentes formariam , que não é planar. Funda , e num só vértice, o que mantém o grafo planar e tira dois vértices. Colora-se o grafo menor por indução, e recebem a cor do vértice fundido, e os cinco vizinhos de passam a usar no máximo quatro cores, então fica com a quinta.
Por que não quatro cores? O mesmo truque resolve com quatro cores, mas um grafo planar pode ter todos os graus iguais a 5 (Exemplo 4). Com grau 5, os vizinhos podem usar as quatro cores mesmo depois de uma fusão, e o argumento precisaria de duas fusões ao mesmo tempo, o que nada garante. A tentativa de Kempe de 1879 para quatro cores falhou justamente nesse caso de grau 5, num passo que troca cores ao longo de cadeias de duas cores: trocar uma cadeia pode embaralhar outra, e Kempe não percebeu isso (relato de Gonthier). Heawood achou o erro em 1890 e transformou o argumento numa prova de cinco cores (notas de Diestel).
O teorema das quatro cores
Teorema. Todo grafo planar é 4-colorível. Para mapas: as regiões de um mapa podem ser coloridas com quatro cores de modo que regiões com um trecho de fronteira em comum (não só um ponto) fiquem diferentes, desde que cada região seja uma peça conexa. Regiões em vários pedaços podem exigir mais cores.
A história da prova, pelos relatos abertos listados abaixo:
- Francis Guthrie levantou a questão em 1852. A prova de Kempe de 1879 estava errada (Heawood, 1890).
- Kenneth Appel e Wolfgang Haken anunciaram uma prova em 1976 e a publicaram em 1977, em duas partes no Illinois Journal of Mathematics, a segunda com Koch. O método: exibir um conjunto inevitável de configurações (uma delas tem de aparecer em qualquer contraexemplo mínimo, o que se mostra por "descarga") e provar que cada uma é redutível (não pode aparecer num contraexemplo mínimo). A redutibilidade foi verificada por computador, em mais de mil configurações, e a parte da inevitabilidade, feita à mão, também era grande; Gonthier a descreve como 10.000 casos, difíceis de verificar, em que vários pequenos erros foram encontrados.
- Robertson, Sanders, Seymour e Thomas deram uma prova nova, publicada em 1997 depois de um anúncio em 1996, com 633 configurações redutíveis e 32 regras de descarga. A redutibilidade continua exigindo computador. O método deles também dá um algoritmo de tempo quadrático para 4-colorir um grafo planar.
- Georges Gonthier escreveu uma prova formal verificada pelo assistente de provas Coq, seguindo Robertson et al. e cobrindo tanto a parte matemática quanto a computacional, como descreve o relatório dele linkado abaixo. O que resta confiar é software e hardware de uso geral, não programas escritos para este teorema.
Por que calcular o número cromático é difícil
- 2 cores: tempo linear, pelo teste de bipartição.
- 3 cores: decidir a 3-colorabilidade é NP-completo, e Lehman, Leighton e Meyer observam que isso continua valendo para grafos planares. Uma coloração proposta é conferida aresta por aresta, e por isso
np-completeness-and-cook-levinlista a 3-colorabilidade entre os problemas em NP; a dificuldade vem de uma redução no estilo deproving-np-completeness-via-reduction. - cores: também NP-completo. Acrescentar vértices novos, adjacentes entre si e a todos os vértices antigos, transforma uma pergunta de 3-coloração numa de -coloração.
- Planar, 4 cores: a resposta é sempre sim, e uma coloração é achada em tempo polinomial.
Logo, calcular é NP-difícil; a força bruta sobre atribuições já chega a com .
Exemplos Resolvidos
Exemplo 1: as cotas em nove grafos
foi calculado por backtracking exaustivo e pelas cliques maximais (networkx 3.4.2). A última coluna é a cota de Brooks quando as hipóteses valem.
| grafo | Brooks | |||||
|---|---|---|---|---|---|---|
| 4 | 6 | 4 | 4 | 4 | completo | |
| 5 | 5 | 2 | 3 | 3 | ciclo ímpar | |
| 6 | 6 | 2 | 2 | 3 | ||
| estrela | 7 | 6 | 2 | 2 | 7 | |
| 6 | 9 | 2 | 2 | 4 | ||
| roda (centro + ) | 6 | 10 | 3 | 4 | 6 | |
| Petersen | 10 | 15 | 2 | 3 | 4 | |
| Grötzsch | 11 | 20 | 2 | 4 | 6 | |
| icosaedro | 12 | 30 | 3 | 4 | 6 |
A estrela mostra quão frouxa pode ser (7 contra 2), o grafo de Grötzsch quão frouxa pode ser (2 contra 4). A roda e o icosaedro, planares, precisam de quatro cores, então quatro não pode virar três.
Exemplo 2: a ordem gulosa num caminho e numa coroa
No caminho ---, a ordem dá as cores . A ordem dá cor 1 a e , cor 2 a , e então vê as cores 2 e 1 e fica com a cor 3: três cores num grafo bipartido.
O grafo coroa em tem uma aresta para todo . Ele é bipartido. Com (12 arestas) e a ordem , cada par é não adjacente mas vê todas as cores anteriores, então a gulosa dá a e a cor e usa 4 cores. A ordem usa 2. Nas ordens possíveis, 30.240 dão 2 cores, 7.200 dão 3 e 2.880 dão 4. Com pares a ordem ruim usa cores (um exercício de Diestel). As estratégias largest_first, smallest_last e DSATUR do greedy_color do networkx usaram 2 cores nas coroas com , mas nenhuma regra de ordenação de tempo polinomial é ótima em todo grafo, a menos que P = NP.
Exemplo 3: o teste de 2-coloração em
Rotule o ciclo ----- e rode uma BFS a partir de com cor 0. Os vértices e recebem cor 1; depois (vindo de ) e (vindo de ) recebem cor 0. A aresta - liga dois vértices de cor 0. Os caminhos BFS e mais essa aresta formam o passeio fechado de comprimento 5, um ciclo ímpar, que certifica que não existe 2-coloração.
Exemplo 4: o passo das cinco cores no icosaedro
O icosaedro é planar e todos os seus vértices têm grau exatamente 5, então o lema do grau baixo é justo e a prova precisa do segundo caso. Na rotulação do networkx, o vértice tem vizinhos , que induzem um 5-ciclo; os pares não adjacentes são . Fundir , e dá um grafo com 10 vértices que o check_planarity confirma ser planar e cujo número cromático é 4. Dar a e a cor do vértice fundido deixa o vértice diante de no máximo quatro cores, então sobra uma quinta. (O próprio icosaedro tem ; a gulosa em ordem smallest-last achou uma 4-coloração.)
Equívocos Comuns e Armadilhas
- "A coloração gulosa acha ." Depende da ordem: 3 cores num caminho, 4 numa coroa bipartida (Exemplo 2).
- " para todo grafo." Brooks exige conexo, não completo e não ciclo ímpar; , e quebram a desigualdade.
- "Todo grafo planar precisa de quatro cores." No máximo quatro. Árvores com uma aresta precisam de duas; o teorema limita o máximo.
- "O teorema das quatro cores é só uma busca por computador." O computador verifica a redutibilidade de um conjunto finito de configurações escolhido por um argumento matemático, e a prova inteira já foi verificada formalmente em Coq.
- "Grafos planares são 4-coloríveis, então 3-colori-los é fácil." Decidir a 3-colorabilidade planar é NP-completo.
- "O compilador calcula o do grafo de interferência."
register-allocation-via-graph-coloringcolore com cores, uma por registrador da máquina, usando uma ordem de remoção e despejando (spill) um valor para a memória quando não sobra nó seguro.
Resumo
é o menor número de cores que dá cores diferentes a vértices adjacentes, e ele se divide por componentes e pontos de articulação. Cliques dão , a coloração gulosa dá em qualquer ordem, e as duas cotas podem ficar longe de . Brooks baixa a cota superior para nos grafos conexos que não são completos nem ciclos ímpares. A gulosa depende da ordem: alguma ordem é ótima, e uma ruim usa cores num grafo bipartido. Duas cores bastam exatamente quando não há ciclo ímpar, o que se testa em tempo linear. Grafos planares são 5-coloríveis por uma indução curta; quatro cores exigiram a prova assistida por computador de Appel e Haken, a prova mais curta de Robertson, Sanders, Seymour e Thomas e a verificação formal de Gonthier. Decidir 3-colorabilidade é NP-completo mesmo para grafos planares, então calcular é NP-difícil. register-allocation-via-graph-coloring aplica a coloração com um número fixo de registradores.
Documentation Links
- Lehman, Leighton and Meyer (2015): Mathematics for Computer Science
- Diestel (2025): Graph Theory, 6th ed., Chapter 5 (free preview)
- Robin Thomas: The Four Color Theorem
- Gonthier: A computer-checked proof of the Four Color Theorem
- rocq-community: fourcolor
- Sedgewick and Wayne: Algorithms, 4.1 Undirected Graphs
- NetworkX: greedy_color