Función tiempo-utilidad
El paradigma TUF/UA se creó originalmente para abordar ciertas necesidades de programación basadas en la puntualidad y en la calidad del servicio de las aplicaciones de diversas aplicaciones militares para las que los conceptos y prácticas tradicionales de tiempo real no son suficientemente expresivos (por ejemplo, para los sistemas críticos para la puntualidad que no tienen plazos) ni resistentes (por ejemplo, para los sistemas sujetos a sobrecargas rutinarias). Un ejemplo de este tipo de aplicaciones es la defensa contra misiles balísticos (teóricamente).
Por consiguiente, se han estudiado en la literatura académica numerosas variaciones del modelo TUF original, del modelo de sistema del paradigma TUF/UA y, por tanto, de las técnicas de programación -por ejemplo,-y aplicadas en contextos civiles.
Algunos ejemplos de esto último incluyen: sistemas ciberfísicos, IA, sistemas multi-robots, programación de drones, robots autónomos, transferencias de datos inteligentes de vehículos a la nube, control de procesos industriales, sistemas de transacciones, computación de alto rendimiento, sistemas en la nube, clusters heterogéneos, computación orientada a servicios, redes y gestión de memoria para máquinas reales y virtuales. En la introducción de la tesis doctoral de Clark se describe brevemente un ejemplo de acería. La información sobre cualquier instancia comercial o militar del paradigma puede ser públicamente inaccesible (propietaria o clasificada, respectivamente).
Las UFs y sus interpretaciones de utilidad (semántica), escalas y valores se derivan del conocimiento de la materia específica del dominio. Una interpretación históricamente frecuente de la utilidad es la importancia relativa de las acciones. Se ha ideado un marco para asignar valores de utilidad estáticos sujetos a fuertes restricciones en los modelos del sistema, pero la investigación y el desarrollo posteriores (al igual que los anteriores) de TUF/UA han preferido depender de la explotación de la especificidad de la aplicación en lugar de intentar crear marcos más generales. Sin embargo, estos marcos y herramientas siguen siendo un importante tema de investigación.
Por convención tradicional, una TUF es una función cóncava, incluyendo las lineales. Véase la representación de algunas TUFs de ejemplo.
Los artículos sobre TUF/UA en la literatura de investigación, con pocas excepciones, por ejemplo, son sólo para TUFs lineales o lineales a trozos (incluyendo las convencionales basadas en plazos) porque son más fáciles de especificar y programar. En muchos casos, las TUFs son sólo monotónicamente decrecientes.
Una función constante representa la utilidad de una acción que no está relacionada con el tiempo de finalización de la acción-por ejemplo, la importancia relativa constante de la acción. Esto permite que tanto las acciones dependientes del tiempo como las independientes del tiempo se programen de forma coherente.
Una TUF tiene un tiempo crítico global, después del cual su utilidad no aumenta. Si una TUF nunca disminuye, su tiempo crítico global es el primer momento en que se alcanza su máxima utilidad. Una TUF constante tiene un tiempo crítico arbitrario para el propósito de la programación – como el tiempo de liberación de la acción, o el tiempo de terminación de la TUF. El tiempo crítico global puede ser seguido por los tiempos críticos locales – por ejemplo, considere una TUF que tiene una secuencia de pasos hacia abajo, tal vez para aproximar una curva suave hacia abajo.
Los valores de utilidad de la TUF son generalmente enteros o números racionales.
La utilidad de la TUF puede incluir valores negativos. (Una TUF que tiene valores negativos en su rango no es necesariamente descartada de la consideración de la programación o abortada durante su operación-esa decisión depende del algoritmo de programación.)
Un tiempo límite convencional (d) representado como una TUF es un caso especial-una TUF de paso descendente que tiene una penalización unitaria (es decir, que tiene valores de utilidad 1 antes y 0 después de su tiempo crítico).
Más generalmente, una TUF permite que las funciones de paso descendente (y ascendente) tengan cualquier utilidad antes y después del tiempo crítico.
La tardanza representada como una TUF es un caso especial cuya utilidad no nula es la función lineal C – d, donde C es el tiempo de finalización de la acción-ya sea actual, esperado o creído. En términos más generales, una TUF permite que la precocidad y la tardanza no sean lineales, por ejemplo, el aumento de la tardanza puede dar lugar a una utilidad que disminuye de forma no lineal, como cuando se detecta una amenaza.
Por lo tanto, las TUFs proporcionan una rica generalización de las restricciones tradicionales de tiempo de finalización de la acción en la computación en tiempo real.
Alternativamente, el paradigma TUF/UA puede emplearse para utilizar la puntualidad con respecto al tiempo crítico global como medio para un fin de acumulación de utilidad, es decir, calidad de servicio (QoS) a nivel de aplicación, en lugar de que la puntualidad en sí misma sea un fin (véase más adelante).
Una TUF (su forma y sus valores) puede ser adaptada dinámicamente por una aplicación o su entorno operativo, independientemente de cualquier acción que esté en espera o en funcionamiento.
Estas adaptaciones se producen normalmente en eventos discretos, por ejemplo en un cambio de modo de la aplicación, como en el caso de las fases de vuelo de misiles balísticos.
Alternativamente, estas adaptaciones pueden ocurrir continuamente, como en el caso de las acciones cuyas duraciones operativas y TUFs son funciones específicas de la aplicación de cuando esas acciones son liberadas o comienzan a operar. Las duraciones operativas pueden aumentar o disminuir, o ambas, y pueden ser no monótonas. Este caso continuo se denomina programación dependiente del tiempo. La programación dependiente del tiempo se introdujo para (pero no se limita a) ciertas aplicaciones militares en tiempo real, como los sistemas de seguimiento por radar.