Problemas de decisão versus problemas "reais" que não são sim ou não


36

Li em muitos lugares que alguns problemas são difíceis de abordar (é difícil para os aproximar ). Mas a aproximação não é um problema de decisão: a resposta é um número real e não Sim ou Não. Também para cada fator de aproximação desejado, existem muitas respostas corretas e erradas, e isso muda com o fator de aproximação desejado!

Então, como se pode dizer que esse problema é difícil de NP?

(inspirado no segundo marcador em Quão difícil é contar o número de caminhos simples entre dois nós em um gráfico direcionado? )

Respostas:


27

Como você disse, não há decisão a ser tomada, portanto novas classes de complexidade e novos tipos de redução são necessários para chegar a uma definição adequada de dureza NP para problemas de otimização .

Uma maneira de fazer isso é ter duas novas classes NPO e PO que contenham problemas de otimização e elas imitam, é claro, as classes NP e P para problemas de decisão. Novas reduções também são necessárias. Em seguida, podemos recriar uma versão da dureza NP para problemas de otimização ao longo das linhas que foram bem-sucedidas para problemas de decisão. Mas primeiro temos que concordar com o que é um problema de otimização .

Definição: Let O=(X,L,f,opt) ser uma optimização de problemas . X é o conjunto de entradas ou instâncias adequadas codificadas como seqüências de caracteres. L é uma função que mapeia cada instância xX em um conjunto de cadeias, as soluções viáveis da instância x . É um conjunto porque existem muitas soluções para um problema de otimização. Assim, temos uma função objetiva f que nos diz para cada par (x,y) yL(x) da instância e solução de seucustoouvalor. opt diz-nos se estamos a maximizar ou minimizar.

Isto permite-nos definir o que uma solução óptima é: Deixe- yoptL(x) ser a solução ideal de uma instância xX de uma optimização de problemas O=(X,L,f,opt) com

f(x,yopt)=opt{f(x,y)yL(x)}.
A solução ideal é frequentemente indicada pory .

Agora, podemos definir a classe NPO : Let NPO ser o conjunto de todos os problemas de optimização- O=(X,L,f,opt) com:

  1. XP
  2. Há um polinômio p com |y|p(|x|) para todas as instâncias xX e todas as soluções viáveis yL(x) . Além disso, existe um algoritmo determinístico que decide em tempo polinomial se yL(x) .
  3. f pode ser avaliado em tempo polinomial.

A intuição por trás disso é:

  1. Podemos verificar com eficiência se x é realmente uma instância válida do nosso problema de otimização.
  2. O tamanho das soluções viáveis ​​é delimitado polinomialmente no tamanho das entradas. E podemos verificar com eficiência se yL(x) é uma solução viável da instância x .
  3. O valor de uma solução yL(x) pode ser determinado com eficiência.

Isto espelha como NP é definido, agora para PO : Deixe- PO ser o conjunto de todos os problemas de NPO que podem ser resolvidos por um algoritmo determinista em tempo polinomial.

Agora somos capazes de definir o que queremos chamar uma aproximação algoritmo : Uma aproximação algoritmo de otimização de problemas é um algoritmo que calcula uma solução viável y L ( x ) para uma instância x X .O=(X,L,f,opt)yL(x)xX

Nota: Que não pedimos uma solução ótima , apenas o que ter uma viável .

Agora temos dois tipos de erros: O erro absoluto de uma solução viável de uma instância x X do problema de otimização O = (yeu(x)xX é | f ( x , y ) - f ( x , y ) | .O=(X,eu,f,opt)|f(x,y)-f(x,y)|

Chamamos o erro absoluto de um algoritmo de aproximação para o problema de otimização O delimitado por k se o algoritmo A computa para cada instância x X uma solução viável com um erro absoluto delimitado por k .UMAOkUMAxXk

Exemplo: De acordo com o Teorema de Vizing, o índice cromático de um gráfico (o número de cores na aresta colorindo com o menor número de cores usado) é ou Δ +Δ , onde Δ é o grau máximo do nó. A partir da prova do teorema, pode ser elaborado um algoritmo de aproximação que calcula uma coloração de borda com cores Δ + 1 . Conseqüentemente, temos um algoritmo de aproximação para o M i n i m u m - E d g e C o l o r i nΔ+1ΔΔ+1 -Problema onde o erro absoluto é delimitado por 1 .MEunEumvocêm-EdgeCoeuorEung1

Este exemplo é uma excepção, pequenos erros absolutos são raras, assim, nós definimos o erro relativo da aproximação do algoritmo Uma no exemplo X de optimização para o problema O = ( X , L , M , o p t ) com f ( x , y ) > 0 para todos os x X e y L ( x ) a seremϵUMA(x)UMAxO=(X,eu,f,opt)f(x,y)>0 0xXyeu(x)

ϵA(x):={0f(x,A(x))=f(x,y)|f(x,UMA(x))-f(x,y)|max{f(x,UMA(x)),f(x,y)}f(x,UMA(x))f(x,y)

onde é a solução viável calculado pela aproximação algoritmo- A .UMA(x)=yeu(x)UMA

Podemos agora definir aproximação algoritmo- para a optimização de problemas S = ( X , L , M , o p t ) ser um δ -approximation-algoritmo para S se o erro relativo ε A ( x ) é delimitada por δ 0 para cada instância x X , portanto ϵ A ( x ) δUMAO=(X,eu,f,opt)δOϵUMA(x)δ0 0xX

ϵUMA(x)δxX.

A escolha de no denominador da definição do erro relativo foi selecionada para tornar a definição simétrica para maximizar e minimizar. O valor do erro relativo ϵ A ( x ) [ 0 , 1 ] . No caso de um problema de maximização, o valor da solução nunca é menor que ( 1 - ϵ A ( x )max{f(x,UMA(x)),f(x,y)}ϵUMA(x)[0 0,1] e nunca maior que 1 / ( 1 - ϵ A ( x ) ) f ( x , y ) para um problema de minimização.(1ϵA(x))f(x,y)1/(1ϵA(x))f(x,y)

Agora podemos chamar um problema de otimização aproximado se houver um algoritmo de aproximação δ A para O que é executado no tempo polinomial.δδAO

Não queremos examinar o erro para cada instância , apenas o pior caso. Assim, definimos ϵ A ( n ) , o erro relativo máximo do algoritmo de aproximação A para o problema de otimização O ser ϵ A ( n ) = sup { ϵ A ( x ) | x | n } .xϵA(n)AO

ϵA(n)=sup{ϵA(x)|x|n}.

Onde deve ser o tamanho da instância.|x|

Exemplo: Uma correspondência máxima em um gráfico pode ser transformada em uma cobertura mínima de nó adicionando todos os nós incidentes da correspondência à cobertura de vértice. Assim, 1 / 2 | C | bordas são cobertas. À medida que cada cobertura de vértices, incluindo o ideal deve ter um dos nodos de cada borda coberto, caso contrário, poderia ser melhorada, temos 1 / 2 | C | f ( x , y ) . Segue-se que | C | - f ( x , y C1/2|C|1/2|C|f(x,y) Assim, o algoritmo de ávidos de uma correspondência máxima é um1/2-approximatio-algoritmo paraHinimuml-VertexCOver. DaíMinimuml-VertexCOveré1/2-approximable.

|C|f(x,y)|C|12
1/2MinimalVertexCoverMinimalVertexCover1/2

Infelizmente, o erro relativo nem sempre é a melhor noção de qualidade para uma aproximação, como o exemplo a seguir demonstra:

Exemplo: Um algoritmo guloso simples pode aproximar-se . Uma análise mostra que | C |MinimumSetCovere, assim,Hinimum-SetCoverserialn(n)

|C||C|Hn1+ln(n)
MinimumSetCover aproximado.ln(n)1+ln(n)

Se o erro relativo for próximo de a seguinte definição é vantajosa.1

Deixe ser uma optimização de problemas com f ( x , y ) > 0 para todos os x X e Y G ( x ) e A uma aproximação-algoritmo para ó . A razão de aproximação r A ( x ) da solução viável A ( x ) = yO=(X,L,f,opt)f(x,y)>0xXyL(x)AO rA(x) da instância x X é r A ( x ) = {A(x)=yL(x)xX

rA(x)={1f(x,A(x))=f(x,y)max{f(x,A(x))f(x,y),f(x,y)f(x,A(x))}f(x,A(x))f(x,y)

Como antes chamamos uma aproximação-algoritmo um r -approximation-algoritmo para a optimização de problemas ó se a aproximação-rácio r A ( x ) é delimitada por r um para cada entrada x X . r A ( x ) r E mais uma vez se temos um r -approximation-algorithm A para a otimização de problemas O então O é chamado r -approximableUMArOrUMA(x)r1xX

rUMA(x)r
rUMAOOr. Novamente, nos preocupamos apenas com o pior caso e definimos a relação de aproximação máxima como r A ( n ) = sup { r A ( x ) | x | n } . Consequentemente, a razão de aproximação é maior que 1 para soluções abaixo do ideal. Assim, melhores soluções têm proporções menores. Para M i n i m u m - C e t C orUMA(n)
rUMA(n)=sup{rUMA(x)|x|n}.
1 agora podemos escrever que é ( 1 + ln ( n ) ) -approximable. E no caso de M i n i m u m - V e r t e x C O v e r sabemos a partir do exemplo anterior que é 2 -approximable. Entre erro relativo e razão de aproximação, temos relações simples: r A ( x ) = 1MEunEumvocêm-SetCover(1+em(n))MinimumVertexCover2
rA(x)=11ϵA(x)ϵA(x)=11rA(x).

Para pequenos desvios em relação ao óptimo e r < 2 o erro relativo é vantajoso em relação à aproximação de relação, que mostra a sua força de grandes desviosϵ<1/2r<2 e r 2 .ϵ1/2r2

As duas versões de aproximadas não se sobrepõem, pois uma versão sempre tem α α e o outro α 1 . O caso α = 1 não é problemático, pois é alcançado apenas por algoritmos que produzem uma solução exata e, consequentemente, não precisam ser tratados como algoritmos de aproximação.α1α1α=1

Outra classe aparece frequentemente APX . É definido como o conjunto de todos os problemas de otimização deO que refúgio um r -approximation-algoritmo com r 1 que é executado em tempo polinomial.NPOrr1

Estamos quase terminando. Gostaríamos de copiar as idéias bem-sucedidas de reduções e completude da teoria da complexidade. A observação é que muitas variantes de decisão difíceis de NP de problemas de otimização são redutíveis entre si, enquanto suas variantes de otimização têm propriedades diferentes em relação à sua aproximabilidade. Isso ocorre devido à redução de tempo polinomial de Karp usada nas reduções de completude de NP, que não preserva a função objetivo. E mesmo que as funções objetivas sejam preservadas, a redução do tempo polinomial de Karp pode alterar a qualidade da solução.

O que precisamos é de uma versão mais forte da redução, que não apenas mapeie instâncias do problema de otimização para instâncias de O 2O1O2 , mas também boas soluções de volta a boas soluções de O 1 .O2O1

Portanto, definimos a redução de preservação de aproximação para dois problemas de otimização e O 2 = ( X 2 , L 2 , f 2 , o p t 2 ) a partir de N P S . Chamamos O 1 A P -redutível a O 2O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2, escrito como , se houver duas funções g e he uma constante c com:O1APO2ghc

  1. para todos x 1X 1 e r racional > 1g(x1,r)X2x1X1r>1
  2. se L 1 ( x 1 ) para todos x 1L2(g(x,r1))L1(x1) e racional r > 1x1X1r>1
  3. para todos x 1X 1 e racional r > 1 e para todos y 2L 2 (h(x1,y2,r)L1(x1)x1X1r>1y2L2(g(x1,r))
  4. Para fixo ambas as funções g e h podem ser calculadas por dois algoritmos em tempo polinomial no comprimento de suas entradas.rgh
  5. Temos para todos x 1X 1 e racional r > 1 e para todos y 2
    f2(g(x1,r),y2)rf1(x1,h(x1,y2,r))1+c(r1)
    x1X1r>1y2L2(g(x1,r))

Nesta definição, e h dependem da qualidade da solução r . Assim, para diferentes qualidades, as funções podem diferir. Esta generalidade nem sempre é necessário e nós apenas trabalhar com g ( x 1 ) e h (ghrg(x1) .h(x1,y2)

Agora que temos uma noção de redução para problemas de otimização, finalmente podemos transferir muitas coisas que sabemos da teoria da complexidade. Por exemplo, se sabemos que e mostramos que O 1 A P O 2 segue-se que O 1A P X também.O2APXO1APO2O1APX

Finalmente, podemos definir o que queremos dizer com -hard e C- complete para problemas de otimização:CC

Seja um problema de otimização de N P O e C uma classe de problemas de otimização de N P O, então O é chamado C- duro em relação a A P se para todos O C OONPOCNPOOCAPOC prende .OAPO

Assim, mais uma vez, temos a noção de um problema mais difícil da classe. Não é de surpreender que um problema de -hardC seja chamado de complete em relação a C se é um elemento de C .APC

Assim, agora podemos falar sobre -completness e A P X -completness etc. E, claro, estamos agora convidado a apresentar um primeiro N P O problema -completo que assume o papel de S A T . Ela vem quase naturalmente, que W e i g h t e d - S um t i s f i uma b i l i t y pode ser demonstrado ser N P SNPOAPXNPOSATWeightedSatisfiabilityNPO-completo. Com a ajuda do PCP-Teorema um pode mesmo mostrar que é A P X -completo.Maximum3SATAPX


11
Ah, e por favor aceite minhas desculpas por essa postagem relativamente longa, mas não tive tempo de escrever uma mais curta.
21312 uli

1
o ponto principal, é claro, é que, pelo teorema do PCP, você pode vincular MAX3SAT e SAT, mostrando assim que é NP difícil aproximar o MAX 3SAT melhor do que uma constante. Isso é o equivalente ao teorema de Cook-Levin, em certo sentido.
Suresh

1
@Suresh Claro, mas esse resultado que você menciona precisa de uma redução de preservação de lacunas, pelo que me lembro. E como você já escreveu sobre eles em sua postagem, não queria duplicá-los aqui.
219 uli

Ótima resposta, +1! Gostaria de saber se a sua resposta é baseada em algumas referências?
Tim

@ Tim É claro que existem livros, listei alguns nos comentários de outra resposta
uli

19

Normalmente, o que é mostrado é a dureza NP de uma versão "Gap" do problema. Por exemplo, suponha que você queira mostrar que é difícil aproximar SET COVER com um fator 2.

Você define a seguinte instância "promessa" de SET COVER que chamaremos de 2-GAP-SET-COVER:

Corrija algum número . 2-GAP-SET-COVER consiste em todas as instâncias da tampa do conjunto em que o tamanho da tampa ideal do conjunto é:

  • no máximo
  • pelo menos 2

Suponha que mostremos que o problema de decidir em qual dos dois casos um problema se encaixa é NP-completo. Em seguida, mostramos que aproximar SET COVER de um fator 2 é NP-difícil, porque poderíamos usar esse algoritmo para distinguir esses dois casos.


4

As duas respostas existentes são muito informativas, mas acho que nenhuma delas realmente responde à pergunta, que é: "Como um problema que nem sequer é um problema de decisão pode ser difícil para o NP, quando NP é uma classe de problemas de decisão? ? "

A resposta é lembrar o que significa NP-hard. Um problema  é NP-hard sob algum tipo de reduções se todos os problemas em NP pode ser reduzido a  L . (E Leueueu  é NP-completo se for NP-difícil e em NP.) Informalmente, NP-difícil significa "Se eu pudesse resolver esse problema, poderia resolver tudo em NP", mesmo que o problema de que você está falando não seja ' t em NP. A dureza do NP não requer associação ao NP, mas precisa da noção correta de redução.

Alguns exemplos.

  1. eueueueu
  2. #SAT é o problema de calcular o número de atribuições satisfatórias para as fórmulas CNF. Claramente não está no NP porque, como você observa, o NP é uma classe de problemas de decisão e o #SAT não é um deles. No entanto, o #SAT é NP-difícil sob reduções de Turing em tempo polinomial, porque podemos reduzi-lo. Dada uma instância do SAT, perguntamos quantas atribuições satisfatórias existem: se houver pelo menos uma, dizemos "satisfatória"; caso contrário, "insatisfatório".
  3. φφφφ=φ(Z1Z10)ZEuφφφφφ
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.