Requisiti di archiviazione per la selezione mediana (algoritmi a due passaggi)


18

In un classico articolo Munro e Paterson studiano il problema di quanta memoria è necessaria affinché un algoritmo trovi la mediana in una matrice ordinata casualmente. In particolare si concentrano sul seguente modello:

l'ingresso viene letto da sinistra a destra per un numero P di volte.

Viene mostrato che le celle di memoria sono sufficienti, ma il limite inferiore corrispondente è noto solo per P = 1. Non ho visto alcun risultato per P> 1. Qualcuno è a conoscenza di limiti così bassi? O(n12P)

Si noti che la difficoltà principale qui è che al secondo passaggio l'ingresso non viene più ordinato casualmente.

Risposte:



18

Il primo documento a dimostrare limiti per più di 1 passaggio è stato il mio articolo con Jayram e Amit di SODA'08. Poi c'è il documento che ha menzionato Warren, che migliora i limiti con una prova più pulita.

In breve, comprendiamo la dipendenza se si consentono le costanti davanti al numero di passaggi. Naturalmente, queste costanti sono nell'esponente, quindi puoi chiedere una comprensione precisa. La mia lamentela principale è che il modello di streaming multipass non è così ben motivato.

La domanda più intrigante è se possiamo dimostrare che un programma di ramificazione ha un limite inferiore. Può essere che anche per un algoritmo di spazio limitato che possa accedere alla memoria a suo piacimento, la strategia migliore è semplicemente fare lo streaming multipass?

La risposta sembra affermativa e abbiamo alcuni progressi parziali verso dimostrarla.


5
Penso che lo streaming multipass sia un modello naturale nei seguenti tipi di esperimenti: usi il campionamento randomizzato per fare test statistici (ad esempio, test di permutazione). Corri miliardi di esperimenti; ogni esperimento ottiene numeri casuali da un PRNG e produce alcuni valori di output. Quindi vuoi calcolare mediane, istogrammi, ecc. Di questi valori. Non hai un accesso casuale efficiente al tuo flusso di output e non hai memoria per archiviare tutto. Tuttavia, è possibile riprodurre nuovamente il flusso; resetta il tuo PRNG con lo stesso seed e riesegui il tuo algoritmo.
Jukka Suomela,

2
Siamo tutti d'accordo sul fatto che il migliore è avere limiti superiori nel modello di streaming multipass e abbinare limiti inferiori per alcune famiglie di programmi di ramificazione pertinenti.
MassimoLauria,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.