St corte mínimo em gráficos acíclicos direcionados ponderados com pesos possivelmente negativos

9

Encontrei o seguinte problema:

Dado um gráfico acíclico direcionado com pesos de borda com valor real e dois vértices s e t, calcule o corte mínimo.

Para gráficos gerais, isso é difícil para NP, já que é possível reduzir trivialmente o corte máximo simplesmente revertendo os pesos das arestas (me corrija se eu estiver errado).

Qual é a situação com os DAGs? O min-cut (ou max-cut) pode ser resolvido em tempo polinomial? É NP-difícil e, em caso afirmativo, existem algoritmos de aproximação conhecidos?

Tentei encontrar trabalho sobre isso, mas não consegui (talvez esteja apenas usando palavras-chave erradas em minhas pesquisas), então esperava que alguém soubesse (ou encontrasse) algo sobre isso.

George
fonte
2
Onde a formulação de min-cut de programação linear falha aqui?
Peter Shor
(usando a notação de en.wikipedia.org/wiki/… ): Para arestas com pesos negativos, d_ {ij} pode ser arbitrariamente grande. Mesmo que se limite d_ {ij} a partir de cima, sempre será utilizado o valor máximo possível para arestas com pesos negativos. Portanto, a solução para esse programa nem sempre produz um corte válido. Posso estar errado, pois não tenho muita experiência com esses problemas; se assim for, me corrija. Basicamente, gostaria de saber se o corte máximo (com pesos arbitrários) pode ser resolvido com eficiência para DAGs ou não.
5134 George
11
Para fazer isso funcionar, você deve alterar a primeira desigualdade para uma igualdade: . Ainda não vejo por que falha, mas talvez esteja perdendo alguma coisa. Não pensei muito nisso. dEuj=pj-pEu
Peter Shor
Provavelmente sou eu quem está perdendo alguma coisa aqui. Isso garante que todos os tenham valores integrais? Pode-se ligar p i de cima com 1, mas não tenho certeza se isso funciona ou não. O problema parece ser que, se isso puder ser resolvido, é possível reduzir o corte máximo revertendo os pesos das bordas, o que não deve ser possível, pois o corte máximo é difícil para o NP. No entanto, eu posso estar errado aqui. pEupEu
5134 George
11
O NP de corte máximo é duro para DAGs? Se o gráfico não for um DAG, não será possível alterar essa desigualdade para uma igualdade, porque você precisará da desigualdade se houver ciclos. Portanto, no caso geral, o LP não funciona com pesos negativos.
Peter Shor

Respostas:

10

Você refinou o seu problema um pouco mais nos comentários. Para ser mais específico, você tem um DAG com todas as arestas que flui para longe da fonte e para a pia t (isto é, todas as bordas estão em um caminho de s para t ). Você deseja encontrar o corte mínimo entre duas peças do DAG, onde a primeira peça está conectada a s e a segunda conectada a t . Para esse problema, uma variação do algoritmo de programação linear padrão para MIN-CUT funciona, mesmo com pesos de borda negativos.ststst

Usamos a mesma notação que na Wikipedia . O custo da aresta é c i j . Colocamos uma função potencial p i em cada nó e deixamos d i j = p i - p j . O LP é m(i,j)cijpidij=pipj

mEunEumEuze (Eu,j)EcEujdEujsvocêbject to    dEuj=pEu-pj  (Eu,j)E   dEuj0 0           (Eu,j)E   ps=1 1   pt=0 0

Essas equações garantem que , pois todo vértice está em algum caminho s - t . Da mesma forma, como d i j = p i - p j não é negativo, os potenciais em qualquer caminho de s a t estão diminuindo. Nós ainda precisa mostrar que não é uma solução óptima para o LP com todos p i seja 0 ou 1 . Isso decorre do fato de que o valor para uma solução do LP acima é o valor esperado do corte C w , onde0 0pEu1 1stdEuj=pEu-pjstpEu0 01 1CW é escolhido aleatoriamente em [ 0 , 1 ] , e onde corte C wW[0 0,1 1]CWé obtido colocando todos os vértices com p iw no primeiro conjunto de vértices e todos os vértices com p iEupEuW no segundo conjunto.pEu<W

Peter Shor
fonte
Obrigado pela sua excelente resposta, Peter. Não era óbvio à primeira vista que , mas acho que entendi. No entanto, tenho alguns problemas para entender o argumento sobre a solução integral. 0pileq1 1
George
@ George: é o mesmo argumento que mostra que o LP Min-Cut regular tem soluções integrais. Deve haver uma explicação mais longa (e mais compreensível) em algum lugar online.
Peter Shor
Ok, vou procurá-lo. Muito obrigado novamente por sua ajuda!
George