Como já mencionado nos comentários, isso depende das definições, como de costume. Minha tentativa de responder a isso precisa de algumas definições, portanto esse será outro exemplo de minha incapacidade de fornecer respostas concisas.
Definição: Um problema de otimização é uma tupla com(X,F,Z,⊙)( X, F, Z, ⊙ )
- XX o conjunto de instâncias ou entradas adequadamente codificadas (cadeias) .
- FF é uma função que mapeia cada instância para um conjunto de soluções viáveis de .x∈Xx ∈ XF(x)F( X )xx
- ZZ é a função objetivo que mapeia cada par , onde e , para um número real chamado valor de .(x,y)( x , y)x∈Xx ∈ Xy∈F(x)y∈ F( X )Z(x,y)Z( x , y)yy
- ⊙⊙ é a direção da otimização , ou .minminmaxmax
Definição: Uma solução ideal de uma instância de um problema de otimização é uma solução viável para a qual . O valor de uma solução ótima é indicado com O p t ( x ) e chamado de ideal .x ∈ X P Ox ∈ XPO Y ∈ F ( x ) Z ( x , y ) = ⊙ { Z ( x , y ' ) | y ' ∈ F ( x ) }y∈ F( X )Z( x , y) = ⊙ { Z( x , y′) | Y′∈ F( x ) }O p t ( x )
Definição: O problema de avaliação , denominado P E , correspondente ao problema de otimização P O é o seguinte: Dada uma instância x ∈ X , calcule O p t ( x ) se x tiver uma solução ideal e, caso contrário, não produzir uma solução ótima.PEPOx ∈ XO p t ( x )x
Observe que isso apenas pede o valor da solução ideal, não a solução inteira com todos os seus detalhes.
Definição: O problema de decisão , denominado P D, correspondente ao problema de otimização P O, é o seguinte: Dado um par ( x , k ) , onde x ∈ X e k ∈ Q , decidem se x tem uma solução viável y tal que Z ( x , y ) ≤ k se ⊙ = min e tal que Z ( x , y )PDPO( x , k )x ∈ Xk ∈ QxyZ( x , y) ≤ k⊙ = min≥ k se ⊙ = máx .Z( x , y) ≥ k⊙ = max
Uma primeira observação é agora que P S ∈ N P S ⇒ P D ∈ N P . A prova não é difícil e omitida aqui.PO∈NPO⇒PD∈NP
Agora intuitivamente P E e P D correspondendo a P S não são mais difíceis do que P ó si. Para expressar formalmente esse sentimento (definindo assim o que significa equivalente ), usaremos reduções.PEPDPOPO
Lembre-se de que um idioma L 1 é redutível em tempo polinomial para outro idioma L 2 se houver uma função f , computável em tempo polinomial, tal que para todas as palavras x , x ∈ L 1 ⇔ f ( x ) ∈ L 2 . Esse tipo de redutibilidade é conhecido como Karp ou redutibilidade muitos-para-um , e se L 1 é redutível a L 2 dessa maneira, expressamos isso escrevendo L 1 ≤ m L 2L1L2fxx∈L1⇔f(x)∈L2L1L2L1≤mL2. Este é um conceito central na definição de NP-completude.
Infelizmente, reduções muitos para um variam entre idiomas e não está claro como empregá-los no contexto de problemas de otimização. Portanto, precisamos considerar um tipo diferente de redutibilidade, a redutibilidade de Turing . Primeiro, precisamos disso:
Definição: Um oráculo para um problema P é uma sub-rotina (hipotética) que pode resolver instâncias de P em tempo constante.PP
Definição: Uma problema P 1 é de tempo polinomial Turing-redutível a um problema P 2 , escrita P 1 ≤ T P 2 , se exemplos de P 1 pode ser resolvido no tempo polinomial por um algoritmo com acesso a um Oracle para P 2 .P1P2P1≤TP2P1P2
Informalmente, assim como com ≤ m , a relação P 1 ≤ T P 2 expressa que P 1 não é mais difícil que P 2 . Também é fácil ver que, se P 2 pode ser resolvido em tempo polinomial, P 1 também pode . Novamente ≤ T é uma relação transitiva. O seguinte fato é óbvio:≤mP1≤TP2P1P2P2P1≤T
Vamos P S ∈ N P S , então P D ≤ T P E ≤ T P S .PO∈NPOPD≤TPE≤TPO
Porque, dada a solução completa, calcular seu valor e decidir se atende ao limite k são simples.k
Definição: Se por dois problemas P 1 e P 2 ambas as relações P 1 ≤ T P 2 , P 2 ≤ P 1 se mantiverem, escrevemos P 1 ≡ T P 2 ; nossa noção de equivalência .P1P2P1≤TP2P2≤P1P1≡TP2
Estamos agora pronto para a prova de que P D ≡ T P E dado o problema de optimização correspondente é P S ∈ N P S e Z é um valor inteiro. Temos que mostrar que P E ≤ T P D se mantém. Podemos determinar ⊙ { Z ( x , y ) | y ∈ F ( x ) } com um binário procurar usign o orcale para P D . A definição de NPD≡TPEPO∈NPOZPE≤TPD⊙{Z(x,y)∣y∈F(x)}PDP ONPO assegura que | Z(x,y) | ≤ 2 q ( | x | ) para algum polinômioq, portanto, o número de etapas na pesquisa binária é polinomial em | x | . ◻|Z(x,y)|≤2q(|x|)q|x|□
Para um problema de otimização P O, a relação com P E é menos clara. Em muitos casos concretos, pode-se demonstrar directamente que P D ≡ T P E ≡ T P S . Para provar que isso geralmente ocorre dentro da estrutura apresentada aqui, precisamos de uma suposição adicional.POPEPD≡TPE≡TPO
Primeiro, precisamos estender ≤ m de pares de idiomas para pares dos problemas de decisão correspondentes. Então é fácil ver que ≤ T é mais geral que ≤ m .≤m≤T≤m
Sejam P e P ' problemas de decisão; então P ≤ m P ′ ⇒ P ≤ T P ′ . Isso ocorre porque uma redução muitos-para-um pode ser interpretada como o uso de um oráculo de maneira muito restrita: o oráculo é chamado uma vez, no final, e seu resultado também é retornado como o resultado geral. ◻PP′P≤mP′⇒P≤TP′□
Agora estamos prontos para o final:
Vamos P S ∈ N P O e suponha Z é número inteiro com valor e que P D é NP-completa, em seguida, P D ≡ T P E ≡ T P S . Com as observações anteriores, continua a mostrar P ó ≤ T P E . Para fazer isso, irá apresentar um problema P ' O ∈ N P S tal que P ó ≤ T P ' E . Então nós temosPO∈NPOZPD
PD≡TPE≡TPO.
PO≤TPEP′O∈NPOPO≤TP′EP O ≤ T P ' E ≤ T P ' D ≤ T P D ≤ T P E . O segundo e o terceiro
≤ T valem por causa da equivalência da versão de decisão e avaliação comprovada anteriormente. O terceiro
≤ T decorre da completude NP de
P D e dos dois fatos mencionados anteriormente, a saber,
P O ∈ N P O ⇒ P D ∈ N P e
P ≤ mPO≤TP′E≤TP′D≤TPD≤TPE.
≤T≤TPDPO∈NPO⇒PD∈NPP ' O ⇒ P ≤ T P ' ó .
P≤mP′O⇒P≤TP′O
Agora os detalhes: Assume-se que as soluções viáveis de P ó são codificados usando um alfabeto Σ equipado com uma ordem total. Seja w 0 , w 1 , … as palavras de ∗ Σ listadas em ordem de comprimento não decrescente e ordem lexicográfica dentro dos blocos de palavras com comprimento comum. (Assim, w 0 é a palavra vazia.) Para todo y ∈ Σ ∗, deixe σ ( y ) denotar o inteiro único i tal que y = w i . Ambos σPOΣw0,w1,…Σ∗w0y∈Σ∗σ(y)iy=wiσe σ - 1 pode ser calculado em tempo polinomial. Seja q um polinômio tal que, para todo x ∈ X e todo y ∈ F ( x ) , tenhamos σ ( y ) < 2 q ( | x | ) .σ−1qx∈Xy∈F(x)σ(y)<2q(|x|)
Agora o problema P ' S é idêntico ao P ó excepto para uma função objectivo modificado Z ' . Para x ∈ X e y ∈ F ( x ) , tomamos Z ′ ( x , y ) = 2 q ( | x | ) ⋅ Z ( x , y ) + σ ( y ) . Z ′P′OPOZ′x∈Xy∈F(x)Z′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)Z′é calculável no tempo polinomial assim P ' O ∈ N P S .P′O∈NPO
Para mostrar que P O ≤ T P ' E observamos que x é viável para P O se e somente se é viável para P ' E . Podemos assumir que esse é o caso, pois o caso oposto é trivial de lidar.PO≤TP′ExPOP′E
A substituição de Z ′ por Z é monotônica no sentido de que, para todo y 1 , y 2 ∈ F ( x ) , se Z ( x , y 1 ) < Z ( x , y 2 ) então Z ′ ( x , y 1 ) < Z ′ ( x , y 2 ) . Isso implica que toda solução ideal para xZ′Zy1,y2∈F(x)Z(x,y1)<Z(x,y2)Z′(x,y1)<Z′(x,y2)xem P ' ó é uma solução óptima de X em P ó . Assim, a nossa tarefa reduz para o cálculo de uma solução óptima y de x em P ' ó .P′OxPOyxP′O
Consultando o oráculo para P ′ E , podemos obter o valor de Z ′ ( x , y ) = 2 q ( | x | ) ⋅ Z ( x , y ) + σ ( y ) . Formar o restante deste número, o módulo 2 q ( | x | ) produz σ ( y ) a partir do qual y pode ser calculado em tempo polinomial.P′EZ′(x,y)=2q(|x|)⋅Z(x,y)+σ(y)2q(|x|)σ(y)y