Dado um novo problema em cuja verdadeira complexidade está em algum lugar entre e sendo NP-complete, existem dois métodos que eu conheço que podem ser usados para provar que resolver isso é difícil:P
- Mostre que o problema é GI-completo (GI = Isomorfismo do gráfico)
- Mostre que o problema está em . Pelos resultados conhecidos, esse resultado implica que, se o problema for NP-completo, o PH entrará em colapso para o segundo nível. Por exemplo, o famoso protocolo para Nonisomorphism Graph faz exatamente isso.
Existem outros métodos (talvez com diferentes "pontos fortes da crença") que foram usados? Para qualquer resposta, é necessário um exemplo de onde ele realmente foi usado: obviamente existem muitas maneiras de tentar mostrar isso, mas os exemplos tornam o argumento mais convincente.
cc.complexity-theory
np-hardness
graph-isomorphism
np-intermediate
Suresh Venkat
fonte
fonte
Respostas:
Mostrar que seu problema está no coAM (ou SZK) é realmente uma das principais maneiras de gerar evidências para o "limbo da dureza". Mas além disso, existem vários outros:
Tenho certeza de que há outras que estou esquecendo.
fonte
Pelo comentário acima: se um problema parecer difícil o suficiente, mas você não conseguir provar que é NP-completo, uma verificação rápida é para contar o número de cadeias de comprimento no idioma: se o conjunto for escasso, é improvável que seja NPC, caso contrário P = NP pelo teorema de Mahaney ... então é melhor direcionar esforços para provar que ele está em P :-) :-)n
Um exemplo é o problema de particionar números em k-boxes (do blog da Fortnow & Gasarch, fonte original: Cyberpuzzles do Doctor Ecco ):
{ 1 , . . . , n } em no máximo k caixas para que nenhuma caixa tenha x , y , z com x + y = z }{ ( N , k ) | existe uma maneira de partição { 1 , . . . , n } em no máximo k caixas para que nenhuma caixa tenha x , y, z com x + y= z}
fonte
Aqui estão três adições à lista de Scott:
fonte