Quando encontramos limites melhores para algoritmos conhecidos?


16

Existem exemplos interessantes de algoritmos que foram publicados com limites comprovados e onde limites estritamente melhores foram publicados posteriormente? Algoritmos não melhores com limites melhores - obviamente, isso aconteceu! Mas uma melhor análise leva a uma melhor ligação a um algoritmo existente

Eu pensei que a multiplicação de matrizes fosse um exemplo disso, mas eu me convenci disso (talvez incorretamente!) Depois de tentar entender melhor o Coppersmith – Winograd e seus amigos.


Um exemplo ideal é a multiplicação de matrizes. As melhorias recentes são, de fato, melhores análises (Le Gall, Williams, etc.).
Lwins

Lwins - Eu suspeitava que poderia ser o caso, mas vasculhar alguns dos papéis me fez pensar que eles estavam variando ligeiramente o algoritmo e a análise. Talvez eu precise olhar mais fundo.
Rob Simmons

Isso é uma meia-resposta, já que é um boato em segunda mão: ao trabalhar na determinação de autômatos Buechi ( dl.acm.org/citation.cfm?id=1398627 ), Safra originalmente analisou sua construção para ter um expoente quadrático. Então, depois de escrever a construção e, devido a algum mal-entendido, ele acabou com o melhor (ótimo) expoente. nregistron
Shaull

Eu sugeriria investigar os problemas de planejamento de movimento - sinto que houve vários casos por lá. Além disso, o IIRC, a complexidade precisa dos algoritmos simplex (s?), Foi uma questão de estudo por um bom tempo.
Steven Stadnicki 08/08/19

1
Um pouco diferente, mas a prova de existência de uma entrada que satisfaz das cláusulas em uma instância 3SAT foi aprimorada para um algoritmo explícito por uma análise mais cuidadosa. 7m/8
Stella Biderman

Respostas:


23

O algoritmo Union-Find, que Tarjan 1 mostrou ter complexidade nα(n) , onde α(n) é a função inversa de Ackermann, havia sido analisado anteriormente por várias pessoas. Segundo a Wikipedia, foi inventado por Galler e Fischer 2 , mas isso parece estar incorreto, pois eles não tinham todos os componentes do algoritmo necessários para fazê-lo funcionar tão rapidamente.

Com base em breves varreduras dos artigos, parece que o algoritmo foi inventado por Hopcroft e Ullman 3 , que deram um limite de tempo (incorreto) para O(n) . Fischer 4 então encontrou o erro na prova e deu um tempo O(nregistroregistron) . Em seguida, Hopcroft e Ullman 5 deram um limite de tempo O(nregistron) , após o qual Tarjan 1 encontrou o limite de tempo O(nα(n)) ideal) O ( n α ( n ) ) .

1 RE Tarjan, "Eficiência de um algoritmo de união de conjuntos bom, mas não linear" (1975).
2 BS Galler e MJ Fischer, "Um algoritmo de equivalência aprimorado" (1964).
3 JE Hopcroft e JD Ullman, "Um algoritmo de fusão de lista linear" (1971).
4 MJ Fischer, "Eficiência de algoritmos de equivalência" (1972).
5 JE Hopcroft e JD Ullman, "Algoritmos de fusão de conjuntos" (1973).


2
O histórico dessa estrutura de dados é um pouco obscuro para mim e seria bom investigá-lo. Examinei o artigo de Galler e Fischer e parece descrever a estrutura de dados da Disjoint Sets Forest (DSF), mas sem as heurísticas cruciais de compactação de caminho (PC) e união ponderada (WU). Hopcroft e Ullman atribuem DSF com PC e sem WU a Tritter, citando Knuth. Não tenho certeza se o DSF com PC e WU foi proposto em um artigo publicado antes do artigo de Hopcroft e Ullman, embora eu não ficasse surpreso se fosse.
Sasho Nikolov

1
@ Sasho: Tudo isso deve ser verificado, pois é baseado em breves digitalizações dos papéis. Tarjan atribui o DSF com PC e WU a Michael Fischer, em "Eficiência de algoritmos de equivalência" (1972), que fornece um tempo de execução de para ele. Digitalizar papel de Fischer, ele parece atribuir o algoritmo para Hopcroft e Ullman em "Uma lista linear fusão algoritmo", mas eles dão um Θ ( n ) tempo de execução para ele, a prova de que mostra Fischer está incorreto. Tarjan diz que Hopcroft e Ullman, em "algoritmos Set-fusão" redimir-se, dando um O ( n log * n ) ligada.O(nregistroregistron)Θ(n)O(nregistron)
Peter Shor

12

Sabe-se que o algoritmo de Paturi, Pudlák, Saks e Zane (PPSZ) para k-SAT possui um tempo de execução de O(1.364n) para 3-SAT , com um limite melhor de O(1.308n) para fórmulas com garantia de uma atribuição satisfatória exclusiva. Mais tarde, Hertli fez uma análise aprimorada, mostrando que esse limite aprimorado de tempo de execução também vale para o caso geral, mostrando assim o PPSZ como o melhor algoritmo para 3-SAT conhecido na época.


Esta é uma resposta realmente satisfatória! Eu acho que isso e os exemplos Union Find são os melhores exemplos do que eu estava esperando.
Rob Simmons

8

O Ataque impasse menciona que a análise da peneira número campo geral (quando aplicado a computação logaritmos discretos ao longo Fp ) passo descida foi tightend, ver parte superior esquerda da página 3. Como esta é a única etapa que não pode ser pré-calculada (se Fp é fixa), a sua eficácia foi fundamental para o seu ataque.

A análise inicial parece estar em Gordon 92 , onde descida foi orçado semelhante ao precomputation, em Lp(1/3,32/3) . A análise mais apertado parece ser a partir da tese de Barbulescu , onde é descida orçado em Lp(1/3,1.232) , onde:

Lp(v,c)=exp((c+o(1))(registrop)v(registroregistrop)1-v)
Vale ressaltar que este é tecnicamente um custo esperado, e não um limite superior. Isso ainda parece o espírito da pergunta para mim, mas a removerei se não for o que você está procurando.


1
Muito no espírito, obrigado!
Rob Simmons

5

kO(nk+o(1))O(n2k-2)O(n1,98k+O(1))

Ω(nk)

Nota: Uma palestra de Jason Li (e os slides correspondentes) pode ser encontrada no site do TCS + .


k



4

3 forneça uma análise mais refinada (contando subproblemas / subestruturas), levando a melhores recorrências e, portanto, melhores tempos de execução. Acho que existem vários exemplos na literatura de complexidade parametrizada, em que adicionar outra variável à análise pode levar a tempos de execução aprimorados, mas estou fora desse jogo há vários anos e não consigo pensar em exemplos específicos em o momento. Existem vários trabalhos nas áreas do FPT e PTAS que surgem quando se busca "análise aprimorada" nos títulos dos trabalhos.

Se especificar escolhas conta como o mesmo algoritmo (como a heurística de rank de profundidade da union-find), o algoritmo Edmonds-Karp é uma 'análise aprimorada' de Ford-Fulkerson, e eu imagino que existem muitos outros problemas que possuem algoritmos que viram melhorias no tempo de execução das novas regras de escolha.

Depois, há um monte de análises amortizadas dos algoritmos existentes (acho que a união-busca se encaixa nessa descrição, aqui está outra https://link.springer.com/article/10.1007/s00453-004-1145-7 )


Fazer novas escolhas parece próximo do que eu estava procurando, mas não está lá - em certo sentido, um algoritmo mais especificado é um "algoritmo diferente" - mas esses ainda são exemplos muito interessantes!
Rob Simmons
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.