Uma redução de um problema para outro problema B é uma transformação f de qualquer instância a de A em uma instância f ( a ) de B , de modo queABfaAf(a)B
x∈A ⇔ f(x)∈B(E)
Se é uma transformação que preserva a complexidade em que você está interessado (por exemplo, f é uma transformação polinomial se considerar a dureza N P ), a existência de um algoritmo A B que resolve B implica na existência de um algoritmo que resolva A : basta executar f , então Um B .ffNPABBAfAB
Por isso, a existência de um tal redução de para B meios que B não é mais fácil do que um . Não é necessário ter uma redução para o outro lado.ABBA
Por exemplo, para colorir gráficos. Você pode reduzir 3 a 4 cores, mas não de maneira imediata. Se você pegar um gráfico e escolher f ( G ) = G, então você terá que x ∈ 3 C O L ⇒ f ( x ) ∈Gf(G)=Gx∈3COL ⇒ , mas você não tem f ( x ) ∈ 4 C O L ⇒ x ∈ 3 C O L, é claro. A conclusão é que a equivalência (f(x)∈4COLf(x)∈4COL ⇒ x∈3COL não é respeitado, então f nãoéuma redução.(E)f
Você pode construir uma redução correta de 3 C O L para 4 C O L, mas é um pouco mais complicado: para qualquer gráfico G , seja f ( G ) o gráfico G estendido com outro nó u que esteja vinculado a uma aresta para todos os outros nós.f3COL4COLGf(G)Gu
- A transformação preserva a complexidade (polinômio, aqui);
- se está em 3 C O L, então f ( G ) está em 4 C O L : basta usar a quarta cor para u ;G3COLf(G)4COLu
- se é de 4 C O L em seguida, poderá provar que todos os nós excepto L tem uma cor que não é u 's, por conseguinte, G é em 3 C O L .f(G)4COLuuG3COL
Isto prova que é uma redução e que 4 C S G é mais difícil do que 3 C O L . Você pode provar da mesma forma que n C O L é mais difícil do que m C O L para qualquer n ≥ m , a prova interessante estar do fato de que 3 C O L é mais difícil do que qualquer n C O L .f4COL3COLnCOLmCOLn≥m3COLnCOL