Articulo de referencia

Algoritmo de una sola pasada

En informática, un algoritmo de una sola pasada es un algoritmo de flujo que lee su entrada exactamente una vez. [ 1 ] Lo hace procesando los elementos en orden, sin almacenamie...

En informática, un algoritmo de una sola pasada es un algoritmo de flujo que lee su entrada exactamente una vez. [ 1 ] Lo hace procesando los elementos en orden, sin almacenamiento en búfer ilimitado ; lee un bloque en un búfer de entrada , lo procesa y mueve el resultado a un búfer de salida para cada paso del proceso. [ 2 ] Un algoritmo de una sola pasada generalmente requiere un tiempo de O ( n ) (véase la notación 'big O' ) y un almacenamiento menor a O ( n ) (típicamente O (1)), donde n es el tamaño de la entrada. [ 3 ] Un ejemplo de un algoritmo de una sola pasada es el proceso de decisión de Markov parcialmente observable de Sondik . [ 4 ]

Ejemplos de problemas que se pueden resolver mediante algoritmos de una sola pasada.

Dada cualquier lista como entrada:

  • Cuenta el número de elementos.

Dada una lista de números:

Dada una lista de símbolos de un alfabeto de k símbolos, dada de antemano.

  • Cuenta el número de veces que aparece cada símbolo en la entrada.
  • Encuentra los elementos más o menos frecuentes.
  • Ordena la lista según algún orden en los símbolos (posible ya que el número de símbolos posteriores es limitado).
  • Encuentra la máxima diferencia entre dos apariciones de un símbolo dado.

Ejemplos de problemas que no se pueden resolver con algoritmos de una sola pasada.

Dada cualquier lista como entrada:

  • Encuentra el enésimo elemento desde el final (o informa que la lista tiene menos de n elementos).
  • Encuentra el elemento central de la lista. Sin embargo, esto se puede resolver en dos pasos: el paso 1 cuenta los elementos y el paso 2 selecciona el del medio.

Dada una lista de números:

  • Encuentra la mediana .
  • Encuentra los modos (esto no es lo mismo que encontrar el símbolo más frecuente de un alfabeto limitado).
  • Ordena la lista.
  • Cuenta la cantidad de elementos mayores o menores que la media . Sin embargo, esto se puede hacer en memoria constante con dos pasadas: la pasada 1 encuentra el promedio y la pasada 2 realiza el conteo.

Los algoritmos de dos pasadas mencionados anteriormente siguen siendo algoritmos de transmisión continua , pero no algoritmos de una sola pasada.

Referencias

  1. Schweikardt, Nicole. "Algoritmo de una pasada" (PDF) . Consultado el 1 de julio de 2021 .
  2. Pollett, Chris (14 de marzo de 2005). "Algoritmos de una y dos pasadas" (PDF) . Recuperado el 1 de julio de 2021 .
  3. Schweikardt, Nicole (2009), "One-Pass Algorithm" , en LIU, LING ; ÖZSU, M. TAMER (eds.), Encyclopedia of Database Systems , Boston, MA: Springer US, pp. 1948–1949 , doi : 10.1007/978-0-387-39940-9_253 , ISBN  978-0-387-39940-9, consultado el 13 de abril de 2021
  4. "Algoritmo de una pasada de Sondik" . www.pomdp.org .