corrispondenza del modello n-dimensionale


20

Quali sono alcuni risultati noti per trovare un subarray n-dimensionale esatto all'interno di un array n-dimensionale?

In 1D, è solo un problema di corrispondenza delle stringhe, KMP lo fa in tempo lineare.

In 2D, questo documento ha dimostrato che può essere fatto in tempo lineare con poco spazio extra.

Questo problema può essere risolto nel peggiore dei casi in tempo lineare per qualsiasi dimensione fissa?

Risposte:


13

È possibile risolvere il problema in un numero fisso di dimensioni estendendo la soluzione originale a tempo lineare di Bird del 1977 http://www.sciencedirect.com/science/article/pii/0020019077900175 (abbonamento necessario purtroppo).

L'idea generale (in 2D) è nel passaggio 1 di costruire un automa Aho-Corasick delle righe del modello 2D e quindi inserire le righe del testo 2D una per una. Troverai quindi tutte le posizioni che corrispondono alle righe del modello nel testo. Per finire ora devi solo fare una ricerca 1D per le (etichette di) le righe del modello nell'ordine giusto in una colonna nell'output del passaggio 1, usando KMP say. Tutto ciò richiede tempo lineare.

Utilizzando lo stesso metodo è possibile ridurre da qualsiasi dimensione d il problema di corrispondenza esatta a un problema di dimensione d-1. In questo modo si ottiene una soluzione temporale lineare per qualsiasi dimensione fissa d.


9

È possibile risolverlo in un tempo quasi lineare (fino al fattore polilogo) usando le tecniche FFT. Puoi consultare l'articolo: http://www.cs.tau.ac.il/~klim/papers/CEPR08.pdf dove utilizziamo le tecniche FFT per la corrispondenza di modelli monodimensionali. Se si desidera risolvere la corrispondenza di modelli multidimensionali, è sufficiente utilizzare FFT ad alta dimensione.


Dato che l'articolo è del 2008, presumo che gli algoritmi del tempo lineare non siano ancora noti.
Chao Xu,

L'ho dato solo come esempio di tecnica che potrebbe essere usato per risolvere il tuo problema. Vantaggio di questo approccio che ti consente anche di risolvere il problema con disallineamenti e non importa. Ma per quanto riguarda l'esatta corrispondenza di un modello dimensionale esiste un tempo lineare alg. così può essere noto per il multidimensionale.
Klim,

1
Penso che il risultato di base sulla corrispondenza dei pattern con i caratteri jolly sia di Fischer e Paterson del 1974 e quindi continuamente ottimizzato e semplificato fino a quando cs.bris.ac.uk/Publications/pub_master.jsp?id=2000602 (scuse per l'auto-citazione). Tuttavia, potrebbe essere un leggero eccesso per il problema richiesto dall'OP dato il metodo di corrispondenza esatta più vecchio che cito di seguito.
Raffaello,
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.