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, o p t ) ser uma optimização de problemas . X é o conjunto de entradas ou instâncias adequadas codificadas como seqüências de caracteres. eu é uma função que mapeia cada instância x ∈ X 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) y∈ L ( x ) da instância e solução de seucustoouvalor. o p t diz-nos se estamos a maximizar ou minimizar.
Isto permite-nos definir o que uma solução óptima é: Deixe- yo p t∈ L ( x ) ser a solução ideal de uma instância x ∈ X de uma optimização de problemas O = ( X, L , f, o p t ) com
f( x , yo p t) = o p t { f( x , y′) | Y′∈ L ( x ) } .
A solução ideal é frequentemente indicada por
y∗ .
Agora, podemos definir a classe NPO : Let NPO ser o conjunto de todos os problemas de optimização- O = ( X, L , f, o p t ) com:
- X∈ P
- Há um polinômio p com | y| ≤p( | x | ) para todas as instâncias x ∈ X e todas as soluções viáveis y∈ L ( x ) . Além disso, existe um algoritmo determinístico que decide em tempo polinomial se y∈ L ( x ) .
- f pode ser avaliado em tempo polinomial.
A intuição por trás disso é:
- Podemos verificar com eficiência se x é realmente uma instância válida do nosso problema de otimização.
- O tamanho das soluções viáveis é delimitado polinomialmente no tamanho das entradas. E podemos verificar com eficiência se y∈ L ( x ) é uma solução viável da instância x .
- O valor de uma solução y∈ L ( 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, o p t )y∈ L ( x )x ∈ X
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 = (y∈ L ( x )x ∈ X é | f ( x , y ) - f ( x , y ∗ ) | .O = ( X, L , f, o p t )| 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 .UMAOkUMAx ∈ Xk
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 .M i n i m u m - E d g e C o l o r i n g1
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, L , f, o p t )f( x , y) > 0x ∈ Xy∈ L ( x )
ϵUMA( x ) : = { 0| f( x , A ( x ) ) - f( x , y∗) |max { f( x , A ( x ) ) , f( x , y∗) }f(x,A(x))=f(x,y∗)f(x,A(x))≠f(x,y∗)
onde é a solução viável calculado pela aproximação algoritmo- A .A ( x ) = y∈ L ( 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, L ,f, o p t )δOϵUMA( X )δ≥ 0x ∈ X
ϵUMA( x ) ≤ δ∀ x ∈ X.
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 )no máximo {f( x , A ( x ) ) , f( x , y∗) }ϵUMA( x ) ∈ [ 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/2Minimal−VertexCoverMinimal−VertexCover1/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 |Minimum−SetCovere, assim,Hinimum-SetCoverserialn(n)
|C||C∗|≤Hn≤1+ln(n)
Minimum−SetCover 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)>0x∈Xy∈L(x)AO rA(x) da instância x ∈ X é
r A ( x ) = {A(x)=y∈L(x)x∈X
rA(x)={1max{f(x,A(x))f(x,y∗),f(x,y∗)f(x,A(x))}f(x,A(x))=f(x,y∗)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 )r ≥ 1x ∈ X
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 ) = 1M i n i m u m - S e T C o v e r( 1 + ln( N ) )Minimum−VertexCover2rA(x)=11−ϵA(x)ϵA(x)=1−1rA(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/2r≥2
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.NPOrr≥1
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:O1≤APO2ghc
- para todos x 1 ∈ X 1 e r racional > 1g(x1,r)∈X2x1∈X1r>1
- se L 1 ( x 1 ) ≠ ∅ para todos x 1L2(g(x,r1))≠∅L1(x1)≠∅ e racional r > 1x1∈X1r>1
- para todos x 1 ∈ X 1 e racional r > 1 e para todos y 2 ∈ L 2 (h(x1,y2,r)∈L1(x1)x1∈X1r>1y2∈L2(g(x1,r))
- Para fixo ambas as funções g e h podem ser calculadas por dois algoritmos em tempo polinomial no comprimento de suas entradas.rgh
- Temos para todos x 1 ∈ X 1 e racional r > 1 e para todos y 2
f2(g(x1,r),y2)≤r⇒f1(x1,h(x1,y2,r))≤1+c⋅(r−1)
x1∈X1r>1y2∈L2(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 1 ∈ A P X também.O2∈APXO1≤APO2O1∈APX
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 OONPOCNPOOC≤APO′∈C prende .O′≤APO
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 SNPOAPXNPOSATWeighted−SatisfiabilityNPO-completo. Com a ajuda do PCP-Teorema um pode mesmo mostrar que é A P X -completo.Maximum−3SATAPX