A Programação Dinâmica nunca é mais fraca que o Greedy?

15

Na complexidade do circuito, temos separações entre potências de vários modelos de circuitos.

Na complexidade da prova, temos separações entre potências de vários sistemas de prova.

Mas no algorítmico, ainda temos poucas separações entre os poderes dos paradigmas algorítmicos .

Minhas perguntas abaixo visam abordar esse último problema por dois paradigmas: ganância e programação dinâmica.

Temos um conjunto de elementos básicos e uma família de subconjuntos é declarada como solução viável. Assumimos que essa família esteja fechada para baixo: subconjuntos de soluções viáveis ​​são viáveis. Dada uma atribuição de pesos não negativos aos elementos fundamentais, o problema é calcular o peso total máximo de uma solução viável.

O algoritmo ganancioso começa com uma solução parcial vazia e, a cada passo, adiciona um elemento ainda não tratado de maior peso, se isso for possível, isto é, se a solução estendida ainda for viável. O conhecido teorema de Rado-Edmonds afirma que esse algoritmo encontrará uma solução ideal para todas as ponderações de entrada se a família de soluções viáveis ​​for um matróide.

Grosso modo, um algoritmo DP é simples , se ele usa apenas operações Max e Sum (ou Min e Sum). Para ser mais específico (como sugerido por Joshua), por um algoritmo DP simples , entenderei um circuito (max, +) com portas Fanin-2 Max e Sum. As entradas são variáveis, a i ésima das quais corresponde ao peso dado ao i ésima elemento. Esse circuito pode resolver qualquer problema, calculando apenas o peso total máximo de uma solução viável. Mas isso pode ser muito exagerado, se tivermos exponencialmente muitas dessas soluções (como é quase sempre o caso).

Pergunta 1: Existem matróides, nos quais qualquer algoritmo DP simples precisará de um número super-polinomial de operações para resolver o problema de maximização correspondente?

COMENTÁRIO (adicionado 2015/12/24): Esta pergunta já foi respondida (veja abaixo): não são esses matróides, mesmo em esmagadora maioria.

A próxima pergunta pede para separar DP ganancioso e simples para problemas de aproximação . No problema de correspondência de peso máximo , a família de soluções viáveis ​​consiste em todas as correspondências no gráfico bipartido n×n completo. Para uma determinada atribuição de pesos às bordas, o objetivo é calcular o peso máximo de uma correspondência (sempre será uma correspondência perfeita, pois o peso não é negativo).

O algoritmo simples e ganancioso pode aproximar esse problema do fator 2: basta sempre ter uma margem disjunta ainda não vista do peso máximo. O peso obtido será pelo menos metade do peso ideal.

Pergunta 2: Um algoritmo de DP simples pode se aproximar do problema de correspondência de peso máximo no fator 2 usando apenas polinomialmente muitas operações de Max e Sum?

Obviamente, um algoritmo DP trivial, que gera vezes o peso máximo de uma aresta, aproxima esse problema dentro do fator n . Mas queremos um fator muito menor. Eu acho que mesmo um fator n / log n não pode ser alcançado, mas, novamente: como provar isso? nnn/logn

RELACIONADO: Um primo da correspondência de peso máximo é o problema de atribuição : encontre o peso mínimo de uma correspondência perfeita. Esse problema pode ser resolvido (mesmo que exatamente) por programação linear (o chamado algoritmo húngaro) usando apenas operações . Mas o limite inferior de Razborov no tamanho de circuitos booleanos monótonos que calculam a função permanente implica (não diretamente) que qualquer circuito (min, +) que se aproxime desse problema em qualquer fator finito (!) Deve usar operações n Ω ( log n ) . Assim, para minimizaçãoO(n3)nΩ(logn)problemas, algoritmos DP simples podem ser muito mais fracos que a programação linear. Minhas perguntas acima visam mostrar que esses algoritmos de DP podem ser ainda mais fracos que o Greedy.

Alguém viu perguntas semelhantes sendo consideradas por alguém?


ADICIONADO (em 24.12.2015): a questão 2 tem como objetivo mostrar que um problema de maximização específico (o problema de correspondência de peso máximo), que pode ser aproximado pelo algoritmo guloso com fator , não pode ser aproximado por um simples tamanho poligonal DP com o mesmo fator r . Enquanto isso, obtive uma separação mais fraca entre DP Greedy e DP simples: para cada r = o ( n / log n ) , existe um problema explícito de maximização que pode ser aproximado pelo algoritmo ganancioso com fator r , mas nenhum DP simples com tamanho poli algoritmo pode aproximar esse problema com uma menorr=2rr=o(n/logn)rfator (veja aqui um esboço). Ainda assim, a própria pergunta 2 (não necessariamente para esse problema específico de peso máximo) permanece real: seria interessante direcionar o mesmo fator pelos dois algoritmos.<r/3

Stasys
fonte
2
Você quer definir "algoritmo DP simples" como "qualquer circuito (máximo, +) com portas de entrada 2"?
Joshua Grochow
xi,jKnD(j,1)=xs,jD(j,l)=min{D(j,l1),mini{D(i,l1)+xi,j}}D(t,n1)O(n3)

Respostas:

6

Acho que a resposta à pergunta 1 é afirmativa : não são matróides em que simples DP falhar mal! Ou seja, o DP simples pode ser muito pior que o Greedy ao tentar resolver exatamente um problema de otimização .

KnKnff(max,+)

22n/n3/2n

2kkmatróides. Por outro lado, até onde eu sei, os algoritmos de aproximação baseados em DP geralmente usam algum tipo de "escala" de pesos de entrada e se aplicam apenas a problemas de "mochila" ou a alguns problemas de agendamento. Uma resposta negativa à pergunta 2 confirmaria essa aparente "fraqueza de aproximação" da DP.

Stasys
fonte
1
Uma observação um tanto tangencial: o DP também é usado nos algoritmos do estilo Arora para vários problemas euclidianos de dimensão fixa, por exemplo, TSP euclidiano. Mas isso ainda está no espírito de arredondar a entrada.
Sasho Nikolov
@ Sasho: Sim, esses são realmente bonitos algoritmos baseados em DP. Woeginger até tentou capturar problemas para os quais o DP pode ajudar a aproximar-se deles. Mas eu não vi nenhuma boa aproximação de DP que seja pura (apenas Max e Sum ou Min e Sum, sem arredondamentos / redimensionamentos, sem ArgMax etc.) É claro que isso poderia ser apenas minha culpa: algoritmos de aproximação são algo novo para mim .
Stasys
Não conheço nenhum exemplo de uma boa aproximação "pura" de DP, no seu sentido de pura: todos os exemplos que conheço usam alguma forma de arredondamento.
Sasho Nikolov