El problema de actualización o acceso a listas es un modelo simple utilizado en el estudio del análisis competitivo de algoritmos en línea . Dado un conjunto de elementos en una lista donde el costo de acceso a un elemento es proporcional a su distancia desde el inicio de la lista (por ejemplo, una lista enlazada) , y una secuencia de solicitudes de acceso, el problema consiste en idear una estrategia para reordenar la lista de manera que se minimice el costo total de los accesos. El reordenamiento puede realizarse en cualquier momento, pero conlleva un costo. El modelo estándar incluye dos acciones de reordenamiento:
- Una transposición libre del elemento al que se accede en cualquier lugar anterior a su posición actual;
- Una transposición pagada de un costo unitario por intercambiar dos elementos adyacentes cualesquiera en la lista.
El rendimiento de los algoritmos depende de la construcción de secuencias de solicitudes por parte de los adversarios bajo diversos modelos de adversarios.
Un algoritmo en línea para este problema tiene que reordenar los elementos y atender las solicitudes basándose únicamente en el conocimiento de los elementos solicitados previamente, por lo que su estrategia puede no tener el coste óptimo en comparación con un algoritmo fuera de línea que puede ver toda la secuencia de solicitudes y diseñar una estrategia completa antes de atender la primera solicitud.
Además de sus usos originales, se ha sugerido que este problema guarda una gran similitud con los problemas de mejora del contexto global y la compresibilidad tras una transformación de Burrows-Wheeler . Tras esta transformación, los archivos suelen presentar grandes regiones con frecuencias localmente elevadas, y la eficiencia de la compresión mejora notablemente con técnicas que tienden a desplazar los caracteres más frecuentes hacia el principio de la lista. Por ello, los métodos y variantes de Move-to-Front y el conteo de frecuencias suelen seguir al algoritmo BWT para mejorar la compresibilidad.
Modelos adversarios
Un adversario es una entidad que elige la secuencia de solicitud.para un algoritmo ALG . Dependiendo de siSe puede modificar en función de la estrategia de ALG , a los adversarios se les otorgan diversos poderes y el rendimiento de ALG se mide frente a estos adversarios.
Un adversario desprevenido tiene que construir toda la secuencia de solicitud.antes de ejecutar ALG y paga el precio óptimo fuera de línea,que se compara con
Un adversario en línea adaptativo puede realizar la siguiente solicitud basándose en los resultados previos del algoritmo en línea, pero paga por la solicitud de forma óptima y en línea.
Un adversario adaptativo fuera de línea puede realizar la siguiente solicitud basándose en los resultados previos del algoritmo en línea, pero pagando el costo óptimo fuera de línea.
Algoritmos fuera de línea
Se realizó un análisis competitivo para muchos problemas de actualización de listas sin ningún conocimiento específico de la naturaleza exacta del algoritmo fuera de línea óptimo (OPT). Existe un algoritmo que se ejecuta en tiempo O( n²m ( m - 1)!) y espacio O( m !) , donde n es la longitud de la secuencia de solicitud y m es la longitud de la lista. [ 1 ] El mejor algoritmo fuera de línea óptimo conocido, que depende de la longitud de la secuencia de solicitud, se ejecuta en tiempo O(m²(m-1)!n), según afirmó el Dr. Srikrishnan Divakaran en 2014. [ 2 ]
Las transposiciones de pago son, en general, necesarias para los algoritmos óptimos. Consideremos una lista ( a , b , c ) donde a está al principio y una secuencia de solicitudes c , b , c , b . Un algoritmo óptimo fuera de línea que utilice únicamente intercambios gratuitos costaría 9 (3+3+2+1), mientras que un algoritmo óptimo fuera de línea que utilice únicamente intercambios de pago costaría 8. Por lo tanto, no podemos prescindir de las transposiciones gratuitas para el algoritmo óptimo fuera de línea.
Se demostró que el problema de actualización óptima de la lista es NP-difícil por ( Ambühl 2000 ) .
Algoritmo en línea
Un algoritmo en línea ALG tiene una razón competitiva c si para cualquier entrada se desempeña al menos tan bien como c veces peor que OPT. Es decir, si existe unde tal manera que para todas las secuencias de solicitud de longitud finita,Los algoritmos en línea pueden ser deterministas o aleatorios, y resulta que la aleatorización en este caso puede ser de gran ayuda contra adversarios desprevenidos.
Determinista
La mayoría de los algoritmos deterministas son variantes de estos tres algoritmos :
- MTF (Pasar al frente)
- Después de acceder a un elemento, muévalo al principio de la lista sin cambiar el orden de los demás elementos.
- TRANS (Transposición)
- Tras acceder a un elemento, interpóngalo con el elemento inmediatamente anterior.
- FC (Conteo de frecuencias)
- Para cada elemento, mantenga un contador de frecuencia del número de accesos al mismo; cuando se acceda a un elemento, incremente su contador de frecuencia y reordene la lista en orden descendente de frecuencias.
Obsérvese que todos estos métodos utilizan únicamente transposiciones libres. Resulta que tanto TRANS como FC no son competitivos. En un resultado clásico que utiliza el análisis del método potencial ( Sleator y Tarjan, 1985 ) , se demostró que MTF es 2-competitivo. La demostración no requiere el conocimiento explícito de OPT, sino que simplemente cuenta el número de inversiones, es decir, los elementos que aparecen en orden inverso en las listas de MTF y OPT.
Cualquier algoritmo determinista tiene un límite inferior dePara una lista de longitud l , MTF es en realidad el algoritmo óptimo de actualización de lista determinista. El tipo de adversario no importa en el caso de algoritmos deterministas, ya que el adversario puede ejecutar una copia del algoritmo determinista por su cuenta para precalcular la secuencia más desastrosa.
Aleatorizado
Consideremos el siguiente algoritmo aleatorio simple :
- POCO
- Para cada elemento de la lista, mantén un bit. Inicializa todos los bits de forma uniforme y aleatoria a 0 o 1. Cuando se acceda a un elemento, cambia el valor del bit y, si es 1, muévelo al principio; de lo contrario, no lo muevas.
Este algoritmo es apenas aleatorio: realiza todas sus elecciones aleatorias al principio y no durante la ejecución. Resulta que BIT rompe el límite determinista: es mejor que MTF contra adversarios inconscientes. Es competitivo 7/4. Hay otros algoritmos aleatorios que funcionan mejor que BIT. En 1995, Albers et al. presentaron un algoritmo aleatorio con una razón de competitividad de 1,6. [ 3 ] Boris Teia demostró un límite inferior de 1,5 para cualquier algoritmo aleatorio de actualización de lista. [ 4 ]
Problemas relacionados
El problema de actualización de listas donde se pueden insertar y eliminar elementos se llama problema de actualización dinámica de listas, a diferencia del problema de actualización estática de listas donde solo se permite el acceso a los elementos de la lista. El límite inferior deEsto también se aplica al modelo dinámico.
También existen diferentes modelos de costos. En el modelo de costo total habitual, el acceso a un elemento ubicado en la posición i cuesta i , pero la última comparación es inevitable para cualquier algoritmo, es decir, hay i-1 elementos que se interponen en el camino de i . En el modelo de costo parcial, estos costos de comparación final, que suman el número de elementos en la secuencia de solicitud, se ignoran. Para los costos de transposiciones pagadas distintas de la unidad, se utilizan modelos P d .
Véase también
Notas
- ↑ N. Reingold y J. Westbrook. Algoritmos óptimos fuera de línea para las reglas de actualización y paginación de listas. Informe técnico YALE/DcS/TR-805, Universidad de Yale, New Haven, Connecticut, agosto de 1990.
- ↑ Divakaran, Srikrishnan (30-04-2014). "Un algoritmo fuera de línea óptimo para la actualización de listas". arXiv : 1404.7638 [ cs.DS ].
- ↑ Albers, Susanne; Von Stengel, Bernhard; Werchner, Ralph (1995). "Un algoritmo combinado BIT y TIMESTAMP para el problema de actualización de listas". Information Processing Letters . 56 (3): 135– 139. doi : 10.1016/0020-0190(95)00142-Y .
- ↑ Teia, Boris, Un límite inferior para algoritmos de actualización de listas aleatorias, Inf. Process. Lett. (1993), págs. 5-9
Referencias
- Sleator, D .; Tarjan, R. (1985), "Eficiencia amortizada de las reglas de actualización y paginación de listas", Communications of the ACM , 28 (2): 202–208 , CiteSeerX 10.1.1.367.6317 , doi : 10.1145/2786.2793 , S2CID 2494305 .
- Borodin, A.; El-Yaniv, R. (1998). Computación en línea y análisis competitivo . Cambridge University Press. ISBN 978-0-521-56392-5.
- Ambühl, C. (2000), La actualización de listas sin conexión es NP-difícil , Springer, págs. 42–51
- Análisis de algoritmos
- Algoritmos en línea
- Algoritmos aleatorios