É uma regra que problemas discretos sejam difíceis de NP e problemas contínuos não?

27

Na minha formação em ciência da computação, percebo cada vez mais que a maioria dos problemas discretos é NP-completa (pelo menos), enquanto a otimização de problemas contínuos é quase sempre facilmente alcançável, geralmente através de técnicas de gradiente. Existem exceções para isso?

alekdimi
fonte
14
Certamente existem muitos deles. Correspondência bipartida e geral, e cortes mínimos são três problemas discretos solucionáveis ​​no tempo polinomial clássico. Muitos problemas contínuos de otimização não convexa são NP-difíceis: encontrar o diâmetro de um conjunto convexo ou calcular a norma injetiva de um tensor 3-d.
21715 Sasso Nikolov #
6
Aqui está um problema de otimização contínua simples que é NP-difíceis de resolver: cstheory.stackexchange.com/questions/14630/...
Jukka Suomela
8
Não tenho certeza de quais problemas você tem em mente, mas muitos problemas contínuos que são "resolvidos" por métodos gradientes não são realmente "resolvidos": o método simplesmente encontra algum tipo de ótimo local.
Suresh Venkat
1
Até agora, todas as respostas parecem contra-exemplos, mas seria bom ver alguns casos em que essa regra parece verdadeira. Dois que vêm à mente são programação linear versus programação inteira e otimização convexa versus maximização submodular.
usul
13
Eu acho que toda a coisa discreta versus contínua é um arenque vermelho. Um problema precisa ter uma estrutura muito especial para ser solucionável com eficiência. Eu acho que a diferença real aqui é que, no caso de problemas contínuos fáceis, a estrutura especial tende a ser convexa, enquanto no caso de problemas discretos fáceis as coisas parecem mais complicadas: às vezes a estrutura é submodularidade ou interseção matróide, mas geralmente não é. Provavelmente isso tem mais a ver com o fato de ainda não entendermos muito bem a matemática discreta.
Sasho Nikolov

Respostas:

41

Um exemplo que eu adoro é o problema em que, dados , decidem se:π - π cos ( a 1 z ) cos ( a 2 z ) cos ( a n z )a1,a2,,anN

ππcos(a1z)cos(a2z)cos(anz)dz0

A princípio, isso parece um problema contínuo para avaliar essa integral, no entanto, é fácil mostrar que essa integral não é zero se existir uma partição balanceada do conjunto , portanto esse problema integral é realmente NP-completo.{a1,,an}

É claro, eu encorajo a brincar com algumas ferramentas numéricas para se convencer de que a maioria (se não todos) dos truques numéricos para avaliar essa integral está fadada ao fracasso quando for grande o suficiente.n

Joe Bebel
fonte
4
Como estamos no assunto, a referência mais antiga a esse problema que posso encontrar está em "A natureza da computação", de Moore e Mertens. Eles não fornecem nenhuma referência, então suponho que eles o inventaram ou se trata do folclore. Eu apreciaria se alguém sabe a origem deste problema.
Joe Bebel
Presumivelmente, não apenas a maioria, mas todas as técnicas numéricas serão escalonadas catastroficamente para suficientemente grande ? Como o problema é NP-completo, uma técnica numérica precisa para avaliar essa integral escalada polinomialmente em seria suficiente para mostrar P = NP. nnn
EP
1
Certo, um algoritmo que sempre avalia essa integral corretamente no polinômio no tempo em seria suficiente para mostrar P = NP. Por outro lado, não posso 100% descartar a possibilidade de certas técnicas numéricas que não conheço de alguma forma se saindo bem em instâncias específicas dessa integral, mesmo quando é grande, da mesma forma que os solucionadores SAT são capazes encontrar atribuições satisfatórias para algumas fórmulas com milhares de variáveis, mesmo que o pior desempenho seja ruim. Portanto, mesmo que eu duvide que tais métodos existam, cobri minha resposta um pouco. nnn
21820 Joe
3
Aparentemente, a fonte original desse problema é: David Plaisted, Alguns problemas polinomiais e de divisibilidade de números inteiros são difíceis de NP. SIAM Journal on Computing, 7 (4): 458–464, 1978. A referência está na parte traseira de Moore e Mertens, mas não no corpo do próprio texto.
21415 Joe
26

Existem muitos problemas contínuos na forma "testar se essa entrada combinatória pode ser realizada como uma estrutura geométrica" ​​que são completas para a teoria existencial dos reais , um análogo contínuo de NP. Em particular, isso implica que esses problemas são difíceis de NP e não polinomialmente solucionáveis. Os exemplos incluem testar se um determinado gráfico é um gráfico de distância unitária, se um determinado gráfico pode ser desenhado no plano com arestas de segmento de linha reta e, no máximo, um determinado número de cruzamentos, ou se um determinado arranjo de pseudolina pode ser esticado para formar uma linha arranjo.

Existem outros problemas contínuos ainda mais difíceis: por exemplo, encontrar um caminho mais curto entre os obstáculos poliédricos em 3d é completo no PSPACE (Canny & Reif, FOCS'87).

David Eppstein
fonte
1
"O caminho mais curto entre os obstáculos poliédricos" é contínuo apenas no nome, não é? Podemos pensar no espaço de configuração como uma união de um número de peças discretas correspondentes a caminhos que 'abraçam' um determinado conjunto de obstáculos; a otimização local em cada peça (ou seja, em qualquer conjunto de obstáculos) é direta, mas decidir qual dos caminhos tem a melhor distância global é a parte mais difícil do problema.
Steven Stadnicki
13

Embora isso não responda exatamente à sua pergunta original, é um exemplo (conjectural) de uma espécie de contraponto filosófico: um problema em que a apresentação é discreta, mas toda a dureza vem do aspecto "contínuo" do problema.

O problema é o problema da soma das raízes quadradas : dados dois conjuntos de números inteiros e , é ? (Existem outras formulações, mas essa é a que eu prefiro.) Embora não se saiba ao certo que sejaB = { b 1 , b 2 , ... , b n } Σ m i = 1A={a1,a2,,am}B={b1,b2,,bn}i=1maij=1nbjdifícil, suspeita-se que possa ser NP-difícil e de fato estar fora dele (existem, como observado nos comentários, excelentes razões para acreditar que não é NP-completo); a única restrição conhecida até o momento é vários níveis acima da hierarquia polinomial. Obviamente, a apresentação desse problema é o mais discreta possível - um conjunto de números inteiros e uma pergunta de sim / não - mas o desafio surge porque, enquanto calcular raízes quadradas com qualquer precisão especificada é um problema fácil, eles podem precisar ser computados precisão alta (potencialmente superpolinomial) para resolver a desigualdade de uma maneira ou de outra. Esse é um problema "discreto" que surge em um número surpreendente de contextos de otimização e ajuda a contribuir para sua própria complexidade.

Steven Stadnicki
fonte
4
Também gosto muito desse exemplo, embora valha a pena ressaltar que existem fortes razões para acreditar que não é um NP completo; Veja ( cstheory.stackexchange.com/a/4010/8985 )
Joe Bebel
@ JoeBebel Muito bom ponto - revi minha linguagem um pouco para refletir isso. Obrigado!
Steven Stadnicki
6

Problemas discretos geralmente tendem a ser mais difíceis (por exemplo, LP vs. ILP), mas não é a discrição em si que é o problema ... é como as restrições afetam como você pode pesquisar em seu domínio. Por exemplo, você pode pensar que otimizar um polinômio é algo que você pode fazer com eficiência, mas decidir a convexidade dos quáticos (polinômios grau 4) é difícil para o NP .

O que significa que, mesmo que você já tenha o melhor de alguma forma, simplesmente provar que está no melhor já é difícil para o NP.

Mehrdad
fonte
Eu acho que a discrição também faz parte do problema. Digamos, por exemplo, que você teria uma variante ILP de LP. Você pode, por exemplo, procurar a solução para a variante LP, mas ainda existem 2^n" vizinhos interessantes " que precisam ser pesquisados.
Willem Van Onsem 08/04/2015
@CommuSoft: Na verdade não ... a discrição não é o problema. Confira o problema do caminho mais curto , que é um problema discreto, mas, no entanto, reduz-se a um caso especial de programação linear integral , que é solucionável no tempo P (não confunda com a programação linear inteira , que é obviamente NP-hard).
Mehrdad
isso não é realmente uma surpresa: como a programação linear inteira é NP-completa, todos os problemas em P (que podem ser resolvidos no tempo da poli), podem ser transformados no tempo da poli em um problema de ILP.
Willem Van Onsem 08/04/2015
@CommuSoft: Você leu o comentário completamente? Eu não estou falando sobre ILP.
Mehrdad
desculpe, leia rápido. Mas ainda assim, porque as restrições são totalmente desimodulares ; portanto, apenas pela "graça" de restrições bem estruturadas, esses problemas são facilmente solucionáveis. Em geral, a discretização é um aspecto problemático dos problemas.
Willem Van Onsem 08/04/2015
5

Embora, para alguns problemas populares, seja de fato verdade, acho que ambas as suposições são - dependendo do que você define como um problema de otimização - não são verdadeiras.

Primeiro, algumas definições: a maioria dos problemas de otimização não faz parte do NP . Por exemplo, para o problema da mochila : não se pode explorar o não-determinismo para construir a bolsa mais valiosa, simples porque os diferentes ramos não-determinísticos não têm memória compartilhada. NP também é definido como "polinomialmente verificável" (verificando um certificado) [1, p. 34]. Nesse caso, o certificado é, por exemplo, uma bolsa : uma cadeia de bits em que, se o i- ésimo bit estiver definido, isso implica que o i- ésimo item faça parte da bolsa. Você pode realmente verificar em tempo polinomial se essa bolsa é mais valiosa do que um determinado limite (essa é a variante de decisão), mas você não pode, tanto quanto sabemos, com base em uma única bolsa (um número polinomial de bolsas), decidir se essa bolsa é a mais valiosa de todas as bolsas possíveis. Essa é uma diferença vital entre, por exemplo, NP e EXP : no EXP , você pode enumerar todas as sacolas possíveis e fazer a contabilidade sobre qual sacola é a melhor.

A variante de decisão dos problemas de otimização é, em alguns casos, parte do NP , é preciso fazer uma distinção clara entre o sabor da maximização e o sabor da decisão . No sabor da decisão, a pergunta é: " Dado um problema de otimização e um limite de utilidade, existe uma solução com um utilitário maior ou igual a esse limite " (ou ligeiramente modificado para um problema de minimização).

Presumo também que por NP você quer dizer a parte (hipotética) de NP que não faz parte do P . Se P = NP , é claro que o NP-completo ainda existe, mas será igual a P (coincide apenas com P para algumas noções de redução, como reduções polinomiais de muitas e uma por @ AndrásSalamon), o que não é tão impressionante ( e reduziria a " lacuna " que você está afirmando na sua pergunta).

Percebo cada vez mais que os problemas mais discretos são NP-completos.

Agora que resolvemos isso: existem muitos problemas de otimização em P : problema de caminho mais curto , problema de fluxo máximo (para capacidades integrais), árvore de abrangência mínima e correspondência máxima . Embora esses problemas possam parecer "triviais para resolver" para você, ainda são problemas de otimização e, em muitos casos, a construção (e a comprovação da correção) não é tão fácil. Portanto, a alegação não contém todos os problemas discretos como NP-completos. Dado que P não é igual a NP , esses problemas não podem ser NP completos .

Além disso, pode-se percorrer a hierarquia polinomial , essa hierarquia fornece uma maneira de construir um problema de decisão que está em , mas, dado um problema de decisão, você pode (quase) sempre construir um problema de otimização que é pelo menos tão difícil ( se a variante de otimização fosse menos difícil, seria possível resolver a variante de decisão chamando a variante de otimização primeiro e depois tomar uma decisão com base no resultado desse algoritmo).ΣiP

Considerando que otimizar problemas contínuos é quase sempre facilmente alcançável.

Um problema contínuo popular que é difícil para NP é a programação quadrática .

Na programação quadrática, procura-se um vetor que:x

xTQx2+cTx
é minimizado:

Axb

Na verdade, a programação linear também tem sido considerada difícil para NP , mas com heurísticas com desempenho muito bom (o método Simplex ). O algoritmo do Karmarkar é no entanto, em P .

A partir do momento em que o problema de otimização lida com objetos não convexos, em geral será difícil - se não impossível - encontrar um algoritmo eficiente.

Bibliografia

[1] Complexidade Computacional, uma abordagem moderna , Sanjeev Arora e Boaz Barak

Willem Van Onsem
fonte
2
O parágrafo das definições é realmente meio confuso. Mochila é um problema de otimização de NP. Não é verdade que "não se sabe" se a versão de otimização está no NP: não é, simplesmente por definição. Além disso, acho que não conhecemos nenhum problema que seja condicional NP-completo em NP diferente de PIe 3-SAT será NP-completo, mesmo que P = NP (na verdade, se P = NP, todo problema em P é NP completo).
Sasho Nikolov 08/04
@ AndrásSalamon: ponto tomado. Eu removi essa parte. Foi realmente um pouco desleixado.
Willem Van Onsem 08/04/2015
@ AndrásSalamon: evidentemente isso é verdade. Por isso, diz: " Dada P não é igual a NP, estes problemas, portanto, não pode ser NP-completo. "
Willem Van Onsem
@ AndrásSalamon: Bem P=NP, se todo problema no NP-complete é por definição parte do NP e, portanto, estende P , agora P significa que existe um algoritmo polinomial. A questão é que acho que a transformação não importa, porque para toda linguagem em P deve existir um algoritmo polinomial. Se você toma a transformação (no máximo polinomial) ou não, é irrelevante. Resta polinomial, assim, em P . Em outras palavras, como o elemento original está em P , você pode realizar todas as transformações de politempo de graça (não resultando em uma classe de complexidade mais alta).
Willem Van Onsem
2
A mochila como um problema de otimização certamente não é NP-completa, porque não é um problema de decisão, portanto não na NP. De qualquer forma, entendo o que você está dizendo, mas esse é o tipo de detalhes de nível de graduação que acho que deve ser dado como garantido em um fórum de nível de pesquisa como o CStheory @ SE, assim como não espero ver uma explicação sobre como convergência em probabilidade não é a mesma coisa que convergência quase certa no Mathoverflow.
Sasho Nikolov 08/04