Algoritmo Apostolico-Giancarlo

variante dell'algoritmo di ricerca di stringhe di Boyer-Moore

In informatica, l'algoritmo Apostolico-Giancarlo è una variante dell'algoritmo di ricerca di stringhe di Boyer-Moore, la cui applicazione di base è la ricerca di occorrenze di un pattern in un testo . Come con altre ricerche di stringhe basate sul confronto, questo viene fatto allineando ad un certo indice di e controllando se si verifica una corrispondenza in quell'indice. viene quindi spostato rispetto a secondo le regole dell'algoritmo Boyer-Moore, e il processo si ripete fin quando la fine di è stata raggiunta. L'applicazione delle regole di spostamento di Boyer-Moore spesso fa sì che grandi parti del testo vengano interamente saltate.

Per quanto riguarda l'operazione di spostamento, Apostolico-Giancarlo è equivalente come funzionalità a Boyer–Moore. L'utilità di Apostolico-Giancarlo è quella di velocizzare l'operazione di match-checking a qualsiasi indice. Con Boyer-Moore, trovare un'occorrenza di in richiede che tutti gli caratteri di corrispondano. Per alcuni pattern e testi, questo è molto inefficiente, per esempio quando sia il pattern che il testo sono costituiti dallo stesso carattere ripetuto, nel qual caso Boyer-Moore viene eseguito in , dove è la lunghezza in caratteri di . Apostolico-Giancarlo lo accelera salvando il numero di caratteri abbinati agli allineamenti di in una tabella, la quale viene combinata con i dati raccolti durante la pre-elaborazione di per evitare controlli di uguaglianza ridondanti per sequenze di caratteri che si sa che corrispondono. Può essere visto come una generalizzazione della regola di Galil.

Bibliografia

modifica

Voci correlate

modifica
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica