Modifica distanza nello spazio sublineare


19

Qual è la complessità più nota per calcolare l'esatta distanza di modifica tra due stringhe della stessa lunghezza usando uno spazio di lavoro che è sublineare nella dimensione dell'input? Presumo che l'input sia memorizzato in un formato di sola lettura. È un problema precedentemente studiato?

Per rendere la domanda un po 'più specifica, come su spazio dove è la lunghezza di ogni stringa di input.nΘ(n)n


Modificare. Seguendo la risposta di David Eppstein, sembra una buona domanda semplicemente se la distanza di modifica può essere trovata nel tempo polinomiale e nello spazio . Anche eventuali limiti inferiori sarebbero interessanti.Θ(n)


1
Per quanto riguarda la modifica: penso che tu abbia frainteso qualcosa. La risposta di David Eppstein mostra che il problema è risolvibile in NL, quindi anche in P.
Emil Jeřábek sostiene Monica il

1
... In realtà, l'algoritmo originale di Wagner-Fischer lo fa già.
Emil Jeřábek sostiene Monica il

3
Presumo che la versione modificata intendesse chiedere algoritmi che fossero sia spazio sublineare che tempo polinomiale.
David Eppstein,

@DavidEppstein Sì, esattamente. Ho modificato di nuovo per chiarimenti.
felix,

A proposito, supponendo che il modello di determinazione del prezzo standard sia 1 per metà corrispondenza / elimina / inserisci, quindi se la distanza di modifica è l, il percorso che realizza il percorso più breve nella matrice della distanza di modifica sta andando a distanza al massimo 1 dalla diagonale principale, quindi la distanza di modifica può essere calcolata usando lo spazio O (l). Pertanto, con sqrt (n) spazio, è possibile calcolare la distanza di modifica se è piccola (ovvero, più piccola di sqrt (n)). È solo se è grande che questo sembra difficile. Ovviamente, in questo caso, probabilmente, ti dovrebbe interessare di meno.
Sariel Har-Peled,

Risposte:


16

Solo per far andare le cose, piuttosto che cercare di risolvere questo problema: esiste un ovvio algoritmo non deterministico che utilizza logaritmicamente molti bit di spazio (ricerca di un singolo percorso attraverso la matrice di programmazione dinamica), quindi secondo il teorema di Savitch esiste un algoritmo deterministico con spazio . Il suo tempo deve essere nella forma n O ( log n ) , quasi polinomiale piuttosto che esponenziale.O(log2n)nO(logn)

Ci sono alcuni limiti inferiori di spazio per la modifica della distanza in http://arxiv.org/abs/1106.4412 ma non credo che corrispondano alla tua versione del problema.


Come si verifica che il percorso trovato sia ottimale?
Lembik,

1
Ricerca binaria o ricerca sequenziale della distanza minima per la quale è possibile trovare un percorso, ovvero nulla oltre l'equivalenza standard di decisione e problemi di ricerca. Ciò non influisce sulle forme dello spazio o del limite di tempo.
David Eppstein,

@ David Penso che tu abbia ragione quindi ho cancellato la mia risposta.
SamiD,

2
È anche calcolabile nello spazio del registro?
Lembik,
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.