

En matemáticas e informática, el problema de la planificación en espiral es un problema de planificación en tiempo real con tareas repetitivas de duración unitaria y restricciones estrictas en el tiempo entre repeticiones.
Cuando un problema de programación de tipo "pinwheel" tiene solución, esta se caracteriza por una repetición periódica de la programación. Este patrón repetitivo se asemeja al de los pines activados y desactivados en los engranajes de una máquina de cifrado de tipo "pinwheel" , lo que justifica su nombre. [ 1 ] Si la fracción de tiempo que requiere cada tarea es menor que 5/6 del tiempo total, siempre existe una solución; sin embargo, algunos problemas de programación de tipo "pinwheel" cuyas tareas consumen un poco más de 5/6 del tiempo total no tienen solución.
Ciertas formulaciones del problema de programación de molinete son NP-difíciles .
Definición
La entrada para la planificación de tipo pinwheel consiste en una lista de tareas, cada una de las cuales se supone que toma un tiempo unitario por instanciación. Cada tarea tiene un valor entero positivo asociado, su tiempo máximo de repetición (el tiempo máximo desde el inicio de una instanciación de la tarea hasta la siguiente). Solo se puede realizar una tarea a la vez. [ 1 ]
El resultado deseado es una secuencia infinita que especifica qué tarea realizar en cada unidad de tiempo. Cada tarea de entrada debe aparecer infinitas veces en la secuencia, con un intervalo máximo entre dos instanciaciones consecutivas de una tarea igual al tiempo de repetición de la tarea. [ 1 ]
Por ejemplo, la secuencia que se repite infinitamente ABACABACABAC ... sería una programación válida en espiral para tres tareas A, B y C con tiempos de repetición de al menos 2, 4 y 4 respectivamente.
Densidad
Si las tareas a programar están numeradas desdea, dejardenota el tiempo de repetición para la tarea. En cualquier cronograma válido, tareadebe utilizar unfracción del tiempo total, la cantidad que se usaría en un cronograma que repite esa tarea exactamente en su tiempo de repetición especificado. La densidad de un problema de programación de molinete se define como la suma de estas fracciones,Para que exista una solución, los tiempos dedicados a cada tarea no pueden sumar más que el tiempo total disponible, por lo que es necesario que la densidad sea como máximo. [ 2 ]
Esta condición sobre la densidad también es suficiente para que exista un cronograma en el caso especial de que todos los tiempos de repetición sean múltiplos entre sí. Por ejemplo, esto sería cierto cuando todos los tiempos de repetición son potencias de dos . En este caso, se puede resolver el problema utilizando un sistema de cobertura disjunto . [ 1 ] Tener una densidad como máximoTambién es suficiente cuando hay exactamente dos tiempos de repetición distintos. [ 2 ] Sin embargo, tener una densidad como máximo de 1 no es suficiente en algunos otros casos. En particular, no hay un programa para tres elementos con tiempos de repetición.,, y, sin importar cuán grandepuede ser, aunque la densidad de este sistema es solo. [ 3 ]
En 1993, se conjeturó que, cuando la densidad de una programación de molinete es como máximo, existe una solución. [ 3 ] Esto se demostró en 2024. [ 4 ]
Periodicidad y complejidad
Cuando existe una solución, se puede suponer que es periódica, con un período como máximo igual al producto de los tiempos de repetición. Sin embargo, no siempre es posible encontrar un esquema repetitivo de longitud subexponencial. [ 2 ]
Con una representación de entrada compacta que especifica, para cada tiempo de repetición distinto, el número de objetos que tienen ese tiempo de repetición, la planificación de tipo pinwheel es NP-difícil . [ 2 ]
Algoritmos
A pesar de la complejidad NP del problema de programación de la rueda de molinete para entradas generales, algunos tipos de entradas pueden programarse de manera eficiente. Un ejemplo de esto ocurre con entradas donde (cuando se listan en orden) cada tiempo de repetición divide uniformemente al siguiente, y la densidad es como máximo uno. En este caso, el problema puede resolverse mediante un algoritmo voraz que programa las tareas en orden, programando cada tarea para que se repita exactamente en su tiempo de repetición. En cada paso de este algoritmo, las ranuras de tiempo que ya se han asignado forman una secuencia repetitiva, con un período igual al tiempo de repetición de la tarea programada más recientemente. Este patrón permite que cada tarea sucesiva se programe de forma voraz, manteniendo el mismo invariante. [ 1 ]
La misma idea se puede usar para instancias arbitrarias con una densidad máxima de 1/2, redondeando cada tiempo de repetición a una potencia de dos menor o igual a él. Este proceso de redondeo duplica como máximo la densidad, manteniéndola como máximo en uno. Después del redondeo, todas las densidades son múltiplos entre sí, lo que permite que el algoritmo voraz funcione. La programación resultante repite cada tarea en su tiempo de repetición redondeado; como estos tiempos redondeados no superan los tiempos de entrada, la programación es válida. [ 1 ] En lugar de redondear a potencias de dos, se puede lograr un umbral de densidad mayor redondeando a otras secuencias de múltiplos, como los números de la formapara una cuidadosa elección del coeficiente, [ 3 ] o redondeando a dos series geométricas diferentes y generalizando la idea de que las tareas con dos tiempos de repetición distintos se pueden programar hasta una densidad de uno. [ 3 ] [ 5 ]
Aplicaciones
El trabajo original sobre la programación en espiral la propuso para una aplicación en la que una única estación base debe comunicarse con múltiples satélites o sensores remotos , uno a la vez, con requisitos de comunicación distintos. En esta aplicación, cada satélite se convierte en una tarea en un problema de programación en espiral, con un tiempo de repetición elegido para proporcionarle un ancho de banda adecuado. La programación resultante se utiliza para asignar intervalos de tiempo a cada satélite para que se comunique con la estación base. [ 1 ]
Otras aplicaciones de la programación de molinete incluyen la programación de sesiones de mantenimiento para un conjunto de objetos (como cambios de aceite para automóviles), la disposición de símbolos repetidos en las cadenas de impresión de impresoras de línea , [ 3 ] el procesamiento informático de datos multimedia, [ 6 ] y la resolución de contención en redes informáticas inalámbricas en tiempo real. [ 7 ]
Referencias
- 1 2 3 4 5 6 7 Holte, Robert; Mok, Al; Rosier, Louis; Tulchinsky, Igor; Varvel, Donald (1989), "The pinwheel: a real-time scheduling problem", Actas de la Vigésimo Segunda Conferencia Internacional Anual de Hawái sobre Ciencias de Sistemas, Volumen II: Pista de Software , IEEE Computer Society Press, págs. 693–702 , doi : 10.1109/hicss.1989.48075 , ISBN 0-8186-1912-0, S2CID 62617897
- 1 2 3 4 Holte, Robert; Rosier, Louis; Tulchinsky, Igor; Varvel, Donald (1992), "Planificación en espiral con dos números distintos", Theoretical Computer Science , 100 (1): 105– 135, doi : 10.1016/0304-3975(92)90365-M , MR 1171436 Anunciado previamente en MFCS 1989.
- 1 2 3 4 5 Chan, MY; Chin, Francis (1993), "Planificadores para clases más grandes de instancias de pinwheel", Algorithmica , 9 (5): 425– 462, doi : 10.1007/BF01187034 , MR 1212158 , S2CID 6069661
- ↑ Kawamura, Akitoshi (2024), "Prueba de la conjetura del umbral de densidad para la programación de tipo pinwheel" (PDF) , en Mohar, Bojan; Shinkar, Igor; O'Donnell, Ryan (eds.), Actas del 56.º Simposio Anual de la ACM sobre Teoría de la Computación, STOC 2024, Vancouver, BC, Canadá, 24-28 de junio de 2024 , pp. 1816-1819 , arXiv : 2606.27104 , doi : 10.1145/3618260.3649757 , ISBN 979-8-4007-0383-6
- ↑ Chan, MY; Chin, Francis (junio de 1992), "Planificadores generales para el problema del molinillo basados en la reducción de enteros dobles", IEEE Transactions on Computers , 41 (6): 755–768 , Bibcode : 1992ITCmp..41..755C , doi : 10.1109/12.144627
- ↑ Lin, Shun-Shii; Lin, Kwei-Jay (1997), "Un planificador de tipo pinwheel para tres números distintos con un límite de planificabilidad ajustado", Algorithmica , 19 (4): 411– 426, doi : 10.1007/PL00009181 , MR 1470043 , S2CID 22001959
- ↑ Wu, Jean-Lien C.; Shin, Haw-Yun; Wu, Yi-Hsien (junio de 2005), "Un esquema de programación de paquetes en espiral para redes inalámbricas de banda ancha", Journal of the Chinese Institute of Engineers , 28 (4): 701–711 , doi : 10.1080/02533839.2005.9671037 , S2CID 62761108
Enlaces externos
- Programación en espiral (1989) , Douglas B. West, Universidad de Illinois
- Algoritmos de planificación de procesadores