Esse problema é difícil de NP por redução do Vertex Cover.
No problema da cobertura de vértices, recebemos um gráfico e um número , e nossa tarefa é determinar se existe algum subconjunto de no máximo vértices de modo que todas as arestas em sejam incidentes. em pelo menos um vértice em . (Equivalentemente: é possível eliminar todas as arestas em excluindo no máximo vértices?)r U r V E U G rG=(V,E)rUrVEUGr
Primeiro, o particionamento em subconjuntos disjuntos é equivalente a atribuição de cada elemento em exatamente uma das possíveis etiquetas. A idéia básica da redução é criar um rótulo para cada vértice em e "permitir" que cada borda seja atribuída apenas a um dos dois rótulos correspondentes aos seus pontos finais, no seguinte sentido: atribuir uma borda a um correspondente A etiqueta não apresenta restrição (genuína) sobre quais outras arestas podem ser atribuídas à mesma etiqueta, enquanto a atribuição de uma borda a uma etiqueta não correspondente impede que qualquer outra borda seja atribuída à mesma etiqueta - o que, obviamente, tem o efeito de aumentar o número de etiquetas distintas necessárias.s A s S j v j VAsAsSjvjV
Para construir uma instância do seu problema a partir de uma instância do Vertex Cover:( G , r )(A,a,s)(G,r)
- Defina comoE criar um elemento de para cada aresta em . (Esses pares podem ser considerados os números inteiros ; qualquer bijeção entre eles serve.)| E | ( i , j ) A v i v j E 1 , … , kk|E|(i,j)AvivjE1,…,k
- Defina comose ou ; caso contrário, defina como 1. | E | d = b d = c a ( b , c ) , da(b,c),d|E|d=bd=ca(b,c),d
- Defina .s=r
Se é uma instância YES do Vertex Cover, é fácil ver que a instância recém- do seu problema também é uma instância YES: basta escolher os rótulos correspondentes aos vértices em qualquer solução e para cada aresta atribua o elemento correspondente que um dos rótulos ou foi selecionado (escolha arbitrariamente se os dois rótulos foram selecionados). Esta solução utiliza subconjuntos, e é válida porque a única em vigor são aqueles para os correspondentesS j v j U v b v c ∈ E ( b , c ) ∈ A S b S c s a i j(G,r)SjvjUvbvc∈E(b,c)∈ASbScsaijrótulos com efeito (não) de impedir mais debordas sendo atribuídas à mesma etiqueta.|E|
Resta mostrar que uma instância YES do seu problema implica que o original é uma instância YES da Vertex Cover. Isso é um pouco mais complicado, uma vez que uma solução válida de a pode, em geral, atribuir uma borda um rótulo não correspondente , ou seja, , o que significa que não podemos necessariamente "lido" a cobertura do vértice válida de uma solução válida .( G , r ) Y X ( i , j )X=(A,a,s)(G,r)YX(i,j) m ∉ { i , j } U YSmm∉{i,j}UY
No entanto, atribuir um rótulo não correspondente tem um alto custo que limita severamente a estrutura da solução: sempre que uma borda recebe esse rótulo , com , o fato que garante que deve ser a única aresta atribuída a esse rótulo. Portanto, em qualquer solução contenha uma borda não correspondentemente rotulada , poderíamos construir uma solução alternativa seguinte maneira:S m m ∉ { i , j } a ( i , j ) , m = 1(i,j)Smm∉{i,j}a(i,j),m=1( i , j ) ↦ S m Y ′Y(i,j)↦SmY′
- Arbitrariamente escolher o novo rótulo para para ser ou .Sz(i,j)SiSj
- Atribua esse novo rótulo. Se isso resultar em uma solução inválida, deve ser porque exatamente uma outra aresta , já recebeu o rótulo . Nesse caso, defina e vá para a etapa 1.(i,j)(i′,j′)z∉{i′,j′}Sz(i,j)=(i′,j′)
O algoritmo acima deve terminar de uma de duas maneiras: seja encontrado um novo rótulo que não introduz contradição ou seja encontrado um ciclo completo de vértices. No primeiro caso, uma nova solução válida com conjuntos é encontrada, enquanto no último caso uma nova solução válida com conjuntos é encontrada; de qualquer maneira, construímos uma nova solução válida com pelo menos mais uma borda atribuída a um rótulo correspondente . Depois de repetir todo esse processo no máximovezes, teremos produzido uma solução válida partir da qual uma solução para o problema original da Vertex Cover pode ser lida.Szs−1s|E|Y′′
Essa construção é claramente um tempo polinomial; portanto, seu problema é difícil para o NP.