Algoritmos de aproximação para problemas em P

34

Geralmente, pensa-se em aproximar soluções (com garantias) a problemas difíceis de NP. Existe alguma pesquisa em andamento sobre problemas já conhecidos em P? Essa pode ser uma boa ideia por vários motivos. De cabeça para baixo, um algoritmo de aproximação pode ser executado com uma complexidade muito menor (ou até uma constante muito menor), pode usar menos espaço ou pode ser muito melhor paralelizável.

Além disso, os esquemas que fornecem compensações de tempo / precisão (FPTAS e PTAS) podem ser muito atraentes para problemas em P com limites mais baixos que são inaceitáveis ​​em entradas grandes.

Três perguntas: falta alguma coisa que torne isso obviamente uma má idéia? Há pesquisas em andamento no desenvolvimento de uma teoria desses algoritmos? Se não, pelo menos, alguém está familiarizado com exemplos individuais de tais algoritmos?

aelguindy
fonte
8
A geometria computacional (por exemplo, nets) e a álgebra linear numérica (por exemplo, vários métodos iterativos) fornecem muitos exemplos de algoritmos de aproximação para problemas triviais em P, mas algoritmos exatos de tempo polinomial podem ser proibitivamente caros por grandes conjuntos de dados mundiais. ϵ
Jukka Suomela 27/03

Respostas:

20

Como Jukka aponta, a geometria computacional é uma fonte rica de problemas que podem ser resolvidos em tempo polinomial, mas desejamos obter aproximações rápidas. O resultado "ideal" clássico é um "LTAS" (esquema de aproximação de tempo linear) cujo tempo de execução seria da forma - geralmente, estes são obtidos pela extração de uma constante (poli ( )) do tamanho de dados e executando um algoritmo caro nesse kernel, com garantia de que uma solução exata no kernel é uma solução aproximada em toda a entrada.O(n+poli(1/ϵ))1/ϵ

Existem vários truques, reduções e princípios, e o novo livro de Sariel Har-Peled está cheio deles. Eu não acho que exista uma rica teoria da complexidade como tal.

Suresh Venkat
fonte
Eu acho que isso é o mais próximo de uma "teoria" que se poderia obter. Vou dar uma olhada completa no livro. Obrigado!
Aelguindy
15

Lista não exaustiva de artigos recentes que encontram soluções aproximadas para problemas emP

1) Há uma grande quantidade de trabalho em soluções aproximadas para equações lineares (simétricas na diagonal dominante) em tempo quase linearO(npolylog(n))

(lista de artigos) http://cs-www.cs.yale.edu/homes/spielman/precon/precon.html

(Em geral, a maioria dos solucionadores iterativos de equações lineares compartilha o princípio de - aproximando a solução verdadeira. O mesmo vale para métodos iterativos que resolvem problemas mais gerais (por exemplo, alguns programas convexos / lineares)).ϵ

2) Soluções aproximadas para min / max cortes / fluxos http://people.csail.mit.edu/madry/docs/maxflow.pdfs-t

3) Encontrar uma aproximação esparsa da transformada de Fourier de um sinal em tempo sublinear http://arxiv.org/pdf/1201.2501v1.pdf

4) Encontrar o componente principal aproximado de uma matriz http://www.stanford.edu/~montanar/RESEARCH/FILEPAP/GossipPCA.pdf

Dimitris
fonte
11

Não estou ciente de uma teoria geral sendo desenvolvida em algoritmos de aproximação para problemas em P. Conheço um problema em particular, porém, chamado de oráculos de distância aproximada:

Dado um gráfico não direcionado ponderado, comnós embordas, uma consulta de ponto-a-ponto pede a distância entre dois nós .n = | V | m = | E | s , t VG=(V,E)n=|V|m=|E|s,tV

Há uma troca de três vias entre espaço, tempo de consulta e aproximação no problema do oráculo à distância. Pode-se responder trivialmente a cada consulta exatamente (aproximação = ) em tempo armazenando a matriz de distância de todos os pares; ou no tempo executando um algoritmo de caminho mais curto. Para gráficos massivos, essas duas soluções podem exigir um espaço proibitivamente grande (para armazenar a matriz) ou tempo de consulta (para executar um algoritmo de caminho mais curto). Por isso, permitimos aproximação.O ( 1 ) O ( m + n log n )1O(1)O(m+nregistron)

Para gráficos gerais, o estado da arte é o oráculo de distância de Thorup e Zwick , que, para qualquer aproximação , requer um espaço ideal. Também oferece uma boa troca de aproximação de espaço.k

Para gráficos esparsos, pode ser mostrada uma troca mais geral de espaço-aproximação-tempo .

Rachit
fonte
11

Muitas vezes, procuramos soluções aproximadas para problemas simples, como encontrar o caminho mais curto em um gráfico, encontrar o número de elementos únicos em um conjunto. A restrição aqui é que a entrada é grande e queremos resolver o problema aproximadamente usando uma única passagem sobre os dados. Existem vários algoritmos de "streaming" projetados para obter soluções aproximadas em tempo linear / quase linear.

O(nm)nm

Shiva Kintali
fonte
9

P

Aaron Roth
fonte
2
Essa é outra grande motivação para a aproximação. Obrigado por apontar isso!
Aelguindy
8

Eu acho que toda a área de streaming de dados e algoritmos sub-lineares é um esforço nessa direção. No fluxo de dados, o foco é resolver os problemas no espaço o (n) e O (polilog (n)) idealmente, enquanto nos algoritmos sub-lineares você tenta obter algoritmos com o (n) tempo de execução. Em ambos os casos, muitas vezes é preciso comprometer o algoritmo de aproximação aleatória.

Você pode começar com o material desta página e disso .

Shitikanth
fonte
8

ϵϵ. Existem vários trabalhos sobre a solução de casos especiais de problemas de programação linear, como fluxos multicomodidades (e mais geralmente empacotando e cobrindo LPs) aproximadamente. Não existe uma teoria separada de aproximação para problemas em P versus problemas que estão em NP (não sabemos se P é igual a NP ou não). Pode-se falar sobre uma certa técnica ser aplicável a uma certa classe de problemas. Por exemplo, existem técnicas gerais conhecidas por resolver aproximadamente empacotar e cobrir programas lineares e algumas variantes.

Chandra Chekuri
fonte
4

Dimitris menciona aproximações de transformadas de Fourier. existe um amplo uso disso na compactação de imagem, por exemplo, no algoritmo JPEG. [1] embora eu não tenha visto um artigo que enfatize isso, parece, em certo sentido, que uma compressão com perda [2] (com limites deriváveis) também pode ser tomada como um algoritmo de aproximação no tempo P. os aspectos de aproximação são altamente desenvolvidos e ajustados / especializados no sentido de serem otimizados para que não possam ser percebidos pela visão humana, ou seja, a percepção humana de artefatos de codificação (aproximadamente definida como diferença entre aproximação e compressão sem perdas) é minimizada.

isso está relacionado a teorias sobre como o olho humano percebe ou a si mesmo "aproxima-se" da codificação de cores por meio de algum processo semelhante a algoritmo. em outras palavras, o esquema / algoritmo teórico de aproximação é realmente intencionalmente projetado para corresponder ao esquema / algoritmo de aproximação físico / biológico (codificado pelo processamento de informações biológicas, isto é, neurônios no sistema visual humano).

portanto, a compressão está fortemente acoplada à aproximação. em JPEG, a transformada de Fourier é aproximada pela DCT, transformada discreta de cosseno [3]. princípios semelhantes são empregados em vários quadros para o padrão de compressão de vídeo MPEG. [4]

[1] compressão jpeg, wikipedia

[2] compressão com perdas, wikipedia

[3] DCT, transformação discreta de cosseno, wikipedia

[4] MPEG, Wikipedia

vzn
fonte
1

Pode ser que isso não seja exatamente uma resposta à sua pergunta, porque atualmente posso me lembrar de algumas heurísticas, mas tenho certeza de que existem algumas aproximações, porque eu as vi antes.

O(f(k)|G|α)f(k) problema e suas aproximações / heurísticas posteriores (o Google simples mostra resultados em 2010, 2011) ou algoritmos para encontrar a decomposição em árvore de gráficos.

Saeed
fonte