Aplicações Teóricas para Algoritmos de Aproximação

21

Ultimamente, comecei a procurar algoritmos de aproximação para problemas difíceis de NP e estava pensando nas razões teóricas para estudá-los. (A questão não é para ser inflamatória - estou apenas curiosa).

Alguma teoria verdadeiramente bela saiu do estudo dos algoritmos de aproximação - a conexão entre o teorema PCP e a dureza da aproximação, a conjectura UGC, o algoritmo de aproximação Goeman-Williamson, etc.

Eu estava pensando sobre o ponto de estudar algoritmos de aproximação para problemas como Traveller Salesman, Asymmetric Traveller Salesman e outras variantes, vários problemas no design de mecanismos (por exemplo, em leilões combinatórios), etc. Esses algoritmos de aproximação foram úteis em outras partes da teoria? no passado ou eles são estudados puramente por si mesmos?

Nota: Não estou perguntando sobre nenhuma aplicação prática, pois, até onde eu sei, no mundo real, são principalmente heurísticas que são aplicadas, em vez de algoritmos de aproximação, e as heurísticas raramente são informadas por qualquer insight obtido pelo estudo dos algoritmos de aproximação para o problema.

Anon1234
fonte
4
Não sei se entendi a pergunta. Quais são as "razões teóricas" para estudar qualquer matéria teórica?
Jeffε
11
Eu acho que ele quer dizer "preencha o etc." no parágrafo 2
Huck Bennett 08/12
2
É errado se é isso que estou fazendo e nunca me fiz a pergunta? Eu só que os algoritmos de aproximação pareciam legais!
Gopi
11
Eu acho que a motivação é a mesma que a motivação para estudar a dureza da aproximação: entender a complexidade exata de vários problemas. O algoritmo de Goemans-Williamson anda de mãos dadas com a dureza dos jogos únicos de fazer melhor que o fator de aproximação GW.
Aaron Roth
11
Não tenho certeza se o seu último parágrafo é justo. Os algoritmos de aproximação são interessantes porque são uma maneira sugerida de lidar com a intratabilidade de problemas como o TSP. Pode ser que muitos deles não sejam usados ​​diretamente na prática na forma original, mas são úteis para saber o que tentar. Você pode dizer o mesmo sobre algoritmos exatos, muitos deles nunca são usados ​​diretamente na prática, existem muitos problemas de engenharia que precisam ser considerados ao usar qualquer algoritmo na prática. Muitos problemas na prática não necessidade exata algoritmos e os usuários serão completamente feliz
Kaveh

Respostas:

21

Discordo totalmente do último parágrafo. Declarações gerais como essa não são úteis. Se você olhar documentos em muitas áreas de sistemas, como redes, bancos de dados, IA e assim por diante, verá que muitos algoritmos de aproximação são usados ​​na prática. Existem alguns problemas para os quais se deseja respostas muito precisas; por exemplo, digamos que uma companhia aérea seja interessante para otimizar a programação de sua frota. Nesses casos, as pessoas usam várias heurísticas que levam um tempo computacional substancial, mas obtêm melhores resultados do que um algoritmo de aproximação genérico pode fornecer.

Agora, por algumas razões teóricas para o estudo de algoritmos de aproximação. Primeiro, o que explica o fato de que a mochila é muito fácil na prática, enquanto a coloração do gráfico é bastante difícil? Ambos são NP-Hard e poli-time redutíveis um ao outro. Segundo, estudando algoritmos de aproximação para casos especiais de um problema, é possível identificar quais classes de instâncias provavelmente serão fáceis ou difíceis. Por exemplo, sabemos que muitos problemas admitem um PTAS em gráficos planares e livres de menores, enquanto eles são muito mais difíceis em gráficos gerais arbitrários. A idéia de aproximação permeia o design moderno de algoritmos. Por exemplo, as pessoas usam algoritmos de fluxo de dados e sem a lente de aproximação é difícil entender / projetar algoritmos, porque mesmo problemas simples não podem ser resolvidos exatamente.

Chandra Chekuri
fonte
12

S2pZPPNP

Markus Bläser
fonte
9

Também não concordo com a "nota", pelo menos declarada nesta generalidade. Relacionado a isso, alguém sabe se a palestra sobre o prêmio Kanellakis de David Johnson está disponível em algum lugar?

Além disso, depois que percebemos que todos os problemas difíceis de NP são equivalentes em relação à pior complexidade das soluções exatas, é muito natural indagar sobre a complexidade de encontrar soluções aproximadas. E Chandra enfatiza bastante a mudança de perspectiva que os algoritmos de aproximação trazem ao design do algoritmo.

O(logn)

Sasho Nikolov
fonte
8

As melhores heurísticas são realmente algoritmos de aproximação. Os algoritmos de aproximação mais bonitos são apenas heurísticas "estúpidas" que funcionam. Por exemplo, pesquisa local por agrupamento, agrupamento ganancioso (Gonzalez), um pelo preço de dois, vários algoritmos gananciosos, etc, etc, etc.

Portanto, estudar algoritmos de aproximação é realmente entender quais heurísticas são algoritmos de aproximação garantidos. A esperança é que a pesquisa sobre algoritmos de aproximação crie dois tipos de fertilização cruzada:

  • Mova idéias que funcionam da heurística para ferramentas de design de algoritmos. Da mesma forma, mova idéias do design de algoritmos para heurísticas / algoritmos que funcionam bem na prática.
  • fertilização cruzada entre uma pessoa que acabou de se formar e uma posição.

Em resumo, o mundo não é exato, as entradas não são exatas, as funções de destino otimizadas por vários problemas de algoritmo não são exatas e, na melhor das hipóteses, representam uma aproximação nebulosa do que se deseja, e os cálculos não são exatos. Por que alguém aprenderia algoritmos exatos? (Resposta: porque algoritmos exatos são realmente bons algoritmos de aproximação.)

No mundo real, existem muito poucos algoritmos exatos - você precisa usar a aproximação para ser remotamente relevante ...

Sariel Har-Peled
fonte
4

Lidar com problemas com variáveis ​​contínuas é muito irritante com algoritmos exatos. Por exemplo, o que significa especificar os pesos de borda de uma instância TSP com números reais exatos?

Quando permitimos algoritmos FPTAS para esses problemas, podemos quantificar esses parâmetros em números inteiros. Isso torna o problema muito melhor comportado (pode usar máquinas de Turing padrão), mas gera um pequeno erro.

David Harris
fonte