A negligência complementar é essencial para o design de algoritmos primal-duplo. A ideia básica é:
- Comece com uma solução dupla viável .y
- Tente encontrar primário viável, de modo que satisfaçam folga complementar.x( x , y)
- Se o passo 2. for bem-sucedido, estamos concluídos. Caso contrário, uma obstrução para encontrar permite modificar modo que o valor da função objetiva dupla aumente. Repetir.xy
Um exemplo clássico é o algoritmo húngaro. O algoritmo Ford-Fulkerson pode ser visto como outro exemplo. Observe que a etapa 2. é um problema de viabilidade que geralmente é mais fácil do que o problema de otimização original e também pode ser resolvido combinatoriamente. Esse é o poder da negligência complementar. Por exemplo, no caso de correspondência bipartida de custo mínimo, a etapa 2 equivale a verificar se existe uma correspondência perfeita usando apenas arestas apertadas. No caso de vazão máxima - , a etapa 2 equivale a verificar se as arestas saturadas separam e .stst
Os algoritmos primal-duplos são bons por vários motivos. Filosoficamente, eles fornecem mais informações do que um algoritmo genérico. Eles geralmente fornecem algoritmos de tempo fortemente polinomiais, enquanto ainda não temos solucionadores de LP fortemente polinomiais. Eles geralmente são mais práticos do que algoritmos genéricos. Isso é especialmente verdadeiro se não podemos escrever o LP explicitamente e nossa única outra opção é o algoritmo elipsóide, que é o caso da correspondência não bipartida e do algoritmo primal-dual de Edmonds.
Primal-dual também é uma estrutura muito útil para algoritmos de aproximação, usando versões descontraídas de folga complementar. Isso tem sido útil no projeto de algoritmos de aproximação para problemas difíceis de NP (veja, por exemplo, o Capítulo 7 do livro Williamson-Shmoys ) e no design de algoritmos on-line com boa relação competitiva (veja o livro de Buchbinder e Naor ). O ponto aqui é que o algoritmo mantém uma solução ao duplo do relaxamento de LP de um problema difícil e, a cada passo, encontra um viável primal integral modo que a folga complementar aproximada é satisfeita ou melhora a solução duplayxy. A preguiça complementar aproximada é uma condição da seguinte forma: se , a restrição dupla correspondente é estanque e, se , a restrição primal correspondente seria estanque se for escalonado por . Isso fornece um fator de aproximação . Está tudo muito bem explicado nas duas fontes acima.xEu> 0yj> 0xαα