Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Factor oracle

From Wikipedia, the free encyclopedia

A factor oracle is a finite-state automaton that can efficiently search for factors (substrings) in a body of text. Older techniques, such as suffix trees, were time-efficient but required significant amounts of memory. Factor oracles, by contrast, can be constructed in linear time and space in an incremental fashion.[1]

Overview

[edit]

Older techniques for matching strings include: suffix arrays, suffix trees, suffix automata or directed acyclic word graphs, and factor automata (Allauzen, Crochemore, Raffinot, 1999). In 1999, Allauzen, Crochemore, and Raffinot, presented the factor oracle algorithm as a memory efficient improvement upon these older techniques for string matching and compression. Starting in the mid-2000s, factor oracles have found application in computer music, as well.[2]

Implementations

[edit]

The Computer Audition Laboratory provides a Matlab implementation of the factor oracle algorithm.

See also

[edit]

References

[edit]
  1. Allauzen C., Crochemore M., Raffinot M., Factor oracle: a new structure for pattern matching Archived 2012-04-15 at the Wayback Machine; Proceedings of SOFSEM’99; Theory and Practice of Informatics.
  2. Assayag G., Dubnov S., Using Factor Oracles for Machine Improvisation. Soft Computing - A Fusion of Foundations, Methodologies and Applications. 2004-09-01. Springer Berlin / Heidelberg