Coloração Carolina Moraes e Lucas Glir
Introdução Os primeiros questionamentos sobre o assunto surgiram por volta de 1800, com o problema das 4 cores. Os primeiros resultados sobre coloração de grafos lidam quase que exclusivamente com grafos planares na forma da coloração de mapas. No entanto, coloração de grafos em geral vem sendo estudado computacionalmente desde o início dos anos 70. A coloração de grafos tem sido estudada como um problema algorítmico desde o início da década de 1970: o problema número cromático é um dos 21 problemas NP-completos de Karp, de 1972
Introdução O trabalho será apresentado com os seguintes tópicos: - Definição do problema Coloração; - Otimização; - Decisão; - 3-coloração é NP-completo?; - K-coloração é NP-completo?; - Coloração é NP-Difícil?; - Aplicações; - Referências;
Coloração Otimização: Problema de otimização. Coloração Instância: Um grafo G. Resposta: O mínimo de cores necessárias para colorir G.
Coloração Decisão: Problema de decisão. K-Coloração Instância: Um grafo G e um inteiro K. Pergunta: É possível colorir G com K cores?
Coloração Para provar que coloração de grafos é NP-Difícil, devemos provar que a versão de decisão K-coloração é NP-Completo. Mas, para isso vamos iniciar a prova, mostrando primeiramente que 3-Coloração é NP-Completo.
Problema de decisão. 3-Coloração Instância: Um grafo G. Pergunta: É possível colorir G com 3 cores?
Para provar que um dado problema X é NP-Completo precisamos mostrar que existe uma redução em tempo polinomial de um problema Y para X, onde já sabemos que Y é NP-Completo. Além disso, precisamos provar que X pertence a classe NP.
Para provar que um dado problema X é NP-Completo precisamos mostrar que existe uma redução em tempo polinomial de um problema Y para X, onde já sabemos que Y é NP-Completo. Além disso, precisamos provar que X pertence a classe NP. Para provar que 3-Coloração é NP-Completo precisamos mostrar que existe uma redução em tempo polinomial do problema 3-SAT para 3-Coloração, onde já sabemos que 3-SAT é NP-Completo. Além disso, precisamos provar que 3-Coloração pertence a classe NP.
Teorema. 3-coloração é NP-Completo (Garey and Johnson, 1974) Prova: para provar que 3-coloração está em NP, basta usar como certificado uma coloração c. Dado um grafo G(V, E) e um certificado c, um verificador checa em tempo O(n²) se c é uma coloração adequada a G olhando se as pontas de cada aresta tem cores diferentes, para toda aresta em E.
Para provar que 3-sat é redutível a 3-coloração, é necessário mostrar um algoritmo R que: 1) dada uma instância 3-sat X compute um grafo G, tal que X 3-sat G 3-coloração. 2) rode em tempo polinomial.
Para fazer a redução de 3-sat para 3-coloração, serão necessárias 3 construções. Primeiro, uma construção chamada de paleta:
Para cada variável, será criado um 2 nós de literais:
Para cada cláusula, são construídos 6 nós de cláusulas.
Para cada variável x, deve-se conectar:
Para cada cláusula da forma (a v b v c), deve-se conectar:
Observação: A ideia é que a cor de T represente verdadeiro e a cor de F represente falso.
Supondo um problema 3-sat que seja satisfatível, temos que: o que ocorre se pintarmos de vermelho a, b e c?
Como foi demonstrado, não é possível valorar todas as variáveis como falsas, pois não há como gerar uma coloração para o grafo. Se não há coloração para G, X é insatisfatível. Caso uma ou mais variáveis sejam verdadeiras, é possível pintar os grafos das seguintes maneiras:
Portanto, se uma instância X de 3-sat for satisfatível há uma coloração para o G correspondente em 3-coloração. Supondo que o grafo G seja 3-colorível, deve-se pintar todos os nós de variáveis de verdadeiro ou de falso, por causa da observação. Se houver 3-coloração, então uma das variáveis da cláusula foi valorada como verdadeira, como mostrado anteriormente. Portanto, se G possui 3-coloração, X é satisfatível.
R roda em tempo polinomial, pois: 1) para adicionar os nós de variável e suas arestas, leva-se v, sendo v o número de variáveis. E v X. 2) para adicionar os nós de cláusula e suas arestas, leva-se c, sendo c o número de cláusulas. E c X. Então R roda em tempo X + X, que é polinomial no tamanho da entrada X. Portanto, R é redução de 3-sat para 3-coloração. Logo, 3-sat é redutível a 3-coloração.
K-coloração é NP-completo? Provar que 3-coloração é NP-Completo implica em provar que sua generalização K-coloração também é NP-Completo. Isso pode ser dito devido ao fato de que, se pudéssemos resolver o problema em tempo polinomial para um K arbitrário, então poderíamos resolver em tempo polinomial para K igual a 3. Agora que sabemos que K-coloração é um problema NP-Completo, podemos concluir que Coloração, na sua versão de otimização, é NP-Difícil.
Coloração é NP-Difícil? Pode-se usar a solução, ou seja, a coloração dada por um algoritmo para encontrar o número cromático de um grafo como certificado do problema de decisão K-coloração. Portanto, resolver coloração resolve K-coloração. Isso significa que se reduzirmos K-coloração a coloração, conseguimos uma solução e podemos comprovar se ela responde a instância de K-coloração em tempo polinomial. Portanto, coloração é NP-difícil.
Referências - M.R. Garey, D.S. Johnson, Computers and Intractability: a Guide to the Theory of NP-Completeness, W.H. Freeman, 1979. - http://www.ccs.neu.edu/home/viola/