Corte máximo com arestas com peso negativo


35

G=(V,E,w)w:ERargmaxSV(u,v)E:uS,vSw(u,v)

argmaxSV(u,v)E:uS,vSw(u,v)
w(e)0w(e)0eEeE
  1. Escolher um subconjunto aleatório de vértices .SS
  2. Escolha uma ordem nos vértices e coloque avidamente cada vértice em ou para maximizar as arestas cortadas até o momentovvSSˉSS¯
  3. Faça melhorias locais: se houver algum vértice em que possa ser movido para para aumentar o corte (ou vice-versa), faça a mudança.SSˉSS¯

A análise padrão de todos esses algoritmos realmente mostra que o corte resultante é pelo menos tão grande quanto , que é um limite superior em o peso do corte máximo se não for negativo - mas se algumas arestas tiverem peso negativo, não será!12eEw(e)1 12e Ew ( e )1/21 / 2wW

Por exemplo, o algoritmo 1 (escolha um subconjunto aleatório de vértices) pode falhar claramente em gráficos com pesos de borda negativos.

Minha pergunta é:

Existe um algoritmo combinatório simples que obtém uma aproximação O (1) para o problema de corte máximo em gráficos que podem ter pesos de borda negativos?

Para evitar o possível problema do valor máximo de corte , permitirei que e / ou fique satisfeito com algoritmos que resultam em pequeno erro aditivo, além de uma aproximação de fator multiplicativo.0 e E w ( e ) > 00 0e Ew ( e ) > 0


11
A condição "combinatória simples" é essencial aqui?
Hsien-Chih Chang # 20/10/10

Estou mais interessado em um algoritmo combinatório simples, como as 2 aproximações para o caso de peso positivo. Observe que estou perguntando sobre qualquer aproximação O (1), portanto, esperaria que, se algum algoritmo pudesse conseguir isso, isso seria possível com uma simples. Mas eu também estaria interessado em que garantias de desempenho são para algoritmos SDP em grafos com pesos borda negativa, ou evidência de que nenhum algoritmo de aproximação de fator constante existe se P N P . PNP
Aaron Roth

Respostas:


28

Aqui foi minha primeira tentativa de discussão. Estava errado, mas eu o corrigi após o "EDIT:"

Se você pudesse resolver de maneira eficiente o problema de corte máximo com pesos negativos nas bordas, não poderia usá-lo para resolver o problema de corte máximo com pesos positivos nas bordas? Comece com um problema de corte máximo que você deseja resolver cuja solução ideal é b . Agora, coloque uma grande margem de peso negativo (com peso - a ) entre u e v . A solução ideal do novo problema é b - a , portanto, nosso hipotético algoritmo de aproximação fornecerá uma solução com corte máximo cujo valor é no máximo ( b - a ) / 2 pior que o ideal. No gráfico original, o corte máximo ainda é no máximobauvba(ba)/2( b - a ) / 2 pior que o ideal. Se você escolher um perto de b , isso viola o resultado inapproximability que, se P NP, você não pode aproximada max-corte para melhor do que um 16 / 17 de fator. (ba)/2ab16/17

EDITAR:

O algoritmo acima não funciona porque você não pode garantir que u e v estejam em lados opostos do corte no novo gráfico, mesmo se eles estivessem originalmente. Eu posso corrigir isso da seguinte maneira, no entanto.uv

Vamos supor que temos um algoritmo de aproximação que nos dará um corte dentro de um fator de 2 de OPT, desde que a soma de todos os pesos das arestas seja positiva.

Como acima, comece com um gráfico G com todos os pesos não negativos nas arestas. Encontraremos um gráfico modificado G com alguns pesos negativos, de modo que, se pudermos aproximar o corte máximo de G dentro de um fator de 2, podemos aproximar muito bem o corte máximo de G ..GGGG

Escolha dois vértices u e v , e espero que eles estão em lados opostos do corte máx. (Você pode repetir isso para todo o possível v para garantir que uma tentativa funcione.) Agora, coloque um grande peso negativo - d em todas as arestas ( u , x ) e ( v , x ) para x u , ve um grande peso positivo a na borda ( u , v ) . Assume-se que a óptima corte tem peso S P T .vocêvv- d( u , x )( v , x )x u , vuma( u , v )O PT

Um corte com valor c em G , onde os vértices u e v estão do mesmo lado do corte, agora tem valor em c - 2 d m, em que m é o número de vértices do outro lado do corte. Um corte com ( u , v ) em lados opostos com o valor original c agora tem o valor c + a - ( n - 2 ) d . Assim, se escolhermos d grande o suficiente, poderemos forçar todos os cortes com u e vcGvocêvc2dmm(u,v)cc+a(n2)dduvno mesmo lado para ter valor negativo, por isso, se existe qualquer corte com valor positivo, em seguida, o corte óptima em L * terá u e v em lados opostos. Observe que estamos adicionando um peso fixo ( a - ( n - 2 ) d ) a qualquer corte com u e v em lados opostos.Guv(a(n2)d)uv

Seja f = ( a - ( n - 2 ) d ) . Escolha a para que f - 0,98 O P T (justificaremos isso mais tarde). Um corte com peso c em L possuindo u e v em lados opostos torna-se agora um corte com peso c - 0,98 S P T . Isso significa que o corte ideal em G tem peso 0,02 O P Tf=(a(n2)d)af0.98OPTcGuvc0.98OPTG0.02OPT. O nosso novo algoritmo encontra um corte em L * com o peso, pelo menos, 0,01 S P T . Isso se traduz em um corte no gráfico original G com peso de pelo menos 0,99 O P T (uma vez que todos os cortes em G com peso positivo separam u e v ), o que é melhor que o resultado da inadequação.G0.01OPTG0.99OPTGuv

Não há problema em escolher d grande o suficiente para fazer qualquer corte com u e v do mesmo lado negativo, pois podemos escolher d tão grande quanto queremos. Mas como escolhemos um modo que f - 0,99 O P T quando não conhecíamos O P T ? Podemos aproximar muito bem O P T ... se deixarmos T ser a soma dos pesos das arestas em G , sabemos 1duvdaf.99OPTOPTOPTTG2 TSPTT. Portanto, temos uma gama bastante estreita de valores def, e podemos iterarftomar todos os valores entre-0,49Te-0,99Tem intervalos de0,005T. Para um desses intervalos, garantimos quef-0,98OPTe, portanto, uma dessas iterações deve retornar um bom corte.12TOPTTff.49T.99T0.005Tf0.98OPT

Finalmente, precisamos verificar se o novo gráfico possui pesos de borda cuja soma é positiva. Começamos com um gráfico cujos pesos das arestas tinham soma T e adicionamos f à soma dos pesos das arestas. Desde - 0,99 T f - 0,49 T , estamos bem Tf.99Tf.49T


11
Mas quais são seus u e v ? A formulação usual do problema de corte máximo não possui nenhum "nó especial" que precise ser separado. uv
Jukka Suomela 19/10/10

3
Oi Ian - Eu não acho que isso funcione. Por que necessariamente tem que existir u e v que são separados pelo corte máximo no gráfico original e permanecem separados pelo corte máximo após a adição de uma aresta negativa pesada entre eles? Considere, por exemplo, o gráfico completo - adicionar uma única aresta arbitrariamente negativa em qualquer lugar não altera o valor do corte. uv
Aaron Roth

2
Uma questão é que, se você adicionar uma aresta negativa entre cada par de vértices, estará modificando o valor de diferentes cortes em diferentes quantidades. (Subtraímos, digamos, | S || ˉ S |a do valor do corte S ). Portanto, temos o problema de que a identidade do corte máximo no gráfico modificado não corresponde necessariamente ao corte máximo no gráfico original. |S||S¯|aS
Aaron Roth

11
@ Pedro: No parágrafo após o citei você escolhe um suficientemente pequeno para fazer f - 0.98 O P T . Você não pode escolher com segurança a ser suficientemente grande em um parágrafo e suficientemente pequena na próxima! Em particular, não há como escolher a e d para garantir que c + a - ( n - 2 ) d > c - d m para todos os 0 m n e simultaneamente tenham a -af0.98OPTaadc+a(n2)d>cdm0mn( N - 2 ) d = f - 0,98 S P T . Isto acontece porque c + um - ( n - 2 ) d > c - d m para todos 0 m n implica que f = um - ( n - 2 ) d > 0 . a(n2)d=f0.98OPTc+a(n2)d>cdm0mnf=a(n2)d>0
Warren Schudy

2
@ Warren, você escolhe d grande o suficiente para que c - d m < 0 para todos os cortes. Isso pode ser feito escolhendo d suficientemente grande. Você , em seguida, escolher um do tamanho certo para que o melhor corte é apenas um pouco acima 0 . Leia os dois últimos parágrafos da minha resposta. dcdm<0da0
quer

11

No artigo " Approximate Max Cut " de S. Har-Peled, a última linha do artigo mencionou que a versão ponderada real do max-cut foi discutida em

Aproximando a norma de corte através da desigualdade de grothendieck , Noga Alon e Assaf Naor, SIAM Journal on Computing, 2006.

Na verdade, é um algoritmo SDP, e parece-me que a taxa de aproximação é de 0,56, embora não tenha certeza se a redução discutida no artigo está preservando a taxa. Talvez uma análise mais profunda do artigo ajude!


o problema em Alon-Naor é semelhante, mas não acho que exista uma razão que preserve a redução. o seu problema é maximizar X T M y em que x , y { ± 1 } n e M é um n × n matriz. para um máximo de corte e seus parentes próximos é crucial que x = yxTMyx,y{±1}nMn×nx=y
Sasho Nikolov

@ SashoNikolov: para a norma de corte é irrelevante, até fatores constantes, independentemente de exigirmos x = y ou não. x=y
david

@ David Eu conheço essa redução, mas a afirmação realmente verdadeira é que max x | x T M x | max x , y x T M y4 max x | x T M x | onde todos os valores máximos são mais de { - 1 , 1 } n , e M é simétrica com diagonal não negativo. No entanto, o problema max x | x T M x |maxx|xTMx|maxx,yxTMy4maxx|xTMx|{1,1}nMmaxx|xTMx| can have very different value from maxxxTMxmaxxxTMx (which is what we need for MaxCut). For example, consider M=IJM=IJ, where JJ is the n×nn×n all ones matrix. You can see maxxxTMxmaxxxTMx is about n/2n/2, while maxx|xTMx|maxx|xTMx| is n2n.
Sasho Nikolov

6

Your problem has a logarithmic approximation by reduction to a quadratic programming problem.

The MaxQP problem is the problem of approximating the quadratic form xTMx for a n×n matrix M, where x ranges over {±1}n. MaxCut can be written in this form by setting M=12n(we)I12A where I is the identity matrix and A is the adjacency matrix. The MaxQP algorithm of Charikar and Wirth gives an O(logn) approximation for MaxQP as long as M has a non-negative diagonal. So as long as we0, MaxCut with negative weights has a logarithmic approximation.

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.