Dureza e direções das reduções

9

Digamos que sabemos que o problema A é difícil, depois reduzimos A ao problema desconhecido B para provar que B também é difícil.

Como exemplo: sabemos que 3 cores são difíceis. Em seguida, reduzimos 3 cores para 4 cores. Ao confundir uma das cores da 3-coloração, você tem 4-coloração, portanto, a 4-coloração é difícil.

É assim que. Mas por que isso prova que a coloração 4 é difícil? Você pode usar a solução para o problema das 4 cores para resolver o problema das 3 cores? Se sim, como? Caso contrário, por que é uma prova válida?

Bônus q: As reduções polinomiais devem ser capazes de ocorrer nos dois sentidos?

Edit: se você pudesse explicar por que isso acontece, por exemplo, você faria um favor à Internet. Não consegui encontrar isso explicado de maneira concreta em nenhum lugar.

The Unfun Cat
fonte
Se você estiver lidando com dois problemas de NP-completos, sim, deve haver reduções polinomiais que ocorrem nos dois sentidos. Em muitos casos, as reduções de A para B e de B para A podem parecer muito diferentes umas das outras.
31312 Joe
Se os problemas não estiverem na mesma classe de complexidade, pode não haver redução nos dois sentidos.
31312 Joe

Respostas:

7

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

xA    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 Lf ( x ) Gf(G)=Gx3COL , mas você não tem f ( x ) 4 C O Lx 3 C O L, é claro. A conclusão é que a equivalência (f(x)4COLf(x)4COL x3COL 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 .f4COL3COLnCOLmCOLnm3COLnCOL

jmad
fonte
Por que essa redução significa que B não é mais fácil que A? UV por esforço, mas muito abstrato para o meu cérebro insignificante.
The Unfun Cat
Será que a resposta será a mesma para B e para A depois de reduzir A para B? Acho que entendi: se a instância original tiver três cores, a instância transformada terá quatro cores. Portanto, se a resposta for "sim, tem quatro cores", a resposta também será "sim, uma coloração de três "? Mas ainda não é possível que a instância transformada B tenha quatro cores, sem A ter três cores? Eu imagino que é mais fácil de colorir um gráfico com quatro cores ...
The Cat Unfun
@TheUnfunCat (actualizada com 3 e 4-coloração exemplo)
Jmad