Requisitos de armazenamento para seleção mediana (algoritmos de duas passagens)

18

Num artigo clássico, Munro e Paterson estudam o problema de quanto armazenamento é necessário para que um algoritmo encontre a mediana em uma matriz classificada aleatoriamente. Em particular, eles se concentram no seguinte modelo:

a entrada é lida da esquerda para a direita por um número P de vezes.

É mostrado que as células de memória são suficientes, mas o limite inferior correspondente é conhecido apenas por P = 1. Não vi nenhum resultado para P> 1. Alguém está ciente desses limites inferiores? O(n12P)

Observe que a principal dificuldade aqui é que, na segunda passagem, a entrada não é mais ordenada aleatoriamente.

MassimoLauria
fonte

Respostas:

18

O primeiro artigo a provar limites por mais de 1 passe foi o meu artigo com Jayram e Amit da SODA'08. Depois, há o artigo que Warren mencionou, que melhora os limites com uma prova mais limpa.

Em resumo, entendemos a dependência se você permitir constantes antes do número de passes. Obviamente, essas constantes estão no expoente, para que você possa solicitar um entendimento preciso. Minha principal reclamação é que o modelo de streaming multipass não é tão motivado.

A questão mais intrigante é se podemos provar um limite inferior do programa de ramificação. Pode ser que, mesmo para um algoritmo de espaço delimitado que possa acessar a memória como deseje, a melhor estratégia seja apenas fazer o streaming multipass?

A resposta parece afirmativa e temos algum progresso parcial no sentido de prová-la.

Mihai
fonte
5
Eu acho que o streaming multipass é um modelo natural nos seguintes tipos de experimentos: Você usa amostragem aleatória para fazer testes estatísticos (por exemplo, testes de permutação). Você realiza bilhões de experiências; cada experimento obtém números aleatórios de um PRNG e produz alguns valores de saída. Então você deseja calcular medianas, histogramas etc. desses valores. Você não tem acesso aleatório eficiente ao seu fluxo de saídas e não possui memória para armazenar tudo. No entanto, você pode reproduzir novamente o fluxo; basta redefinir seu PRNG com a mesma semente e executar novamente seu algoritmo.
Jukka Suomela 22/10/10
2
Todos podemos concordar que o melhor é ter limites superiores no modelo de streaming multipass e corresponder limites inferiores para alguma família relevante de programas de ramificação.
MassimoLauria 22/10/10