Estou um pouco confuso com alguma terminologia que encontrei em relação à complexidade dos problemas de otimização. Em uma classe de algoritmos, tive o grande problema de parcimônia descrito como NP-complete. No entanto, não sei exatamente o que o termo NP-completo significa no contexto de um problema de otimização. Isso significa apenas que o problema de decisão correspondente é NP-completo? E isso significa que o problema de otimização pode de fato ser mais difícil (talvez fora do NP)?
Em particular, estou preocupado com o fato de que, embora um problema de decisão completo de NP seja verificável em tempo polinomial, uma solução para um problema de otimização correspondente não parece ser verificável em tempo polinomial. Isso significa que o problema não está realmente em NP ou a verificação do tempo polinomial é apenas uma característica dos problemas de decisão de NP?
fonte
Respostas:
Uma tentativa de resposta parcial:
Os problemas de decisão já foram investigados por algum tempo antes que os problemas de otimização aparecessem, no sentido em que são tratados da perspectiva dos algoritmos de aproximação.
Você deve ter cuidado ao transmitir os conceitos dos problemas de decisão. Isso pode ser feito e pode ser fornecida uma noção precisa da integridade do NP para problemas de otimização. Veja esta resposta . É claro que é diferente da completude do NP para problemas de decisão, mas é baseado nas mesmas idéias (reduções).
Se você se deparar com um problema de otimização que não permita uma verificação com uma solução viável, não há muito o que fazer. É por isso que geralmente se assume que:
Caso contrário, não há muito que possamos esperar alcançar.
A classe de complexidadeN P contém apenas problemas de decisão por definição. Portanto, não há problemas de otimização. E a definição baseada em Verificador de N P você menciona é específico para N P . Não o encontrei com problemas de otimização.
Se você quiser verificar se uma solução não é apenas viável, mas também ideal, eu diria que isso é tão difícil quanto solucionar o problema de otimização original porque, para refutar uma solução viável e possivelmente ótima como não ideal, você precisa fornecer uma solução melhor, o que pode exigir que você encontre a verdadeira solução ideal.
Mas isso não significa que o problema de otimização seja mais difícil. Veja esta resposta , que depende, é claro, das definições precisas.
fonte
A razão pela qual a maioria dos problemas de otimização pode ser classificada como P, NP, NP-completa etc. são as condições de Kuhn-Tucker. Vou falar em termos de problemas de programação linear, mas o KTC se aplica a muitos outros problemas de otimização. Para cada problema de otimização, há um duplo. Se o objetivo no problema original é maximizar alguma função, a dupla (geralmente) tem uma função a ser minimizada. * Soluções viáveis, mas não ideais para o problema original serão inviáveis / inválidas para o problema duplo e vice-versa. -versa. Se, e somente se, uma solução for viável para o primário e o duplo, é uma solução ideal para ambos. (Tecnicamente, pode ser uma das muitas soluções ideais que oferecem o mesmo resultado.)
Portanto, encontrar uma solução ideal para um problema de otimização é equivalente a encontrar uma solução válida para o primário e o dual. Você pode usar algoritmos de otimização para encontrar essa solução, mas o processo geral é uma prova de existência.
fonte