Funzione tempo-utilità
Il paradigma TUF/UA è stato originariamente creato per affrontare alcune esigenze di programmazione basate sulla tempestività e sulla QoS delle applicazioni di varie applicazioni militari per le quali i concetti e le pratiche tradizionali in tempo reale non sono sufficientemente espressivi (ad esempio, per i sistemi critici per la tempestività che non hanno scadenze) e resistenti (ad esempio, per i sistemi soggetti a sovraccarichi di routine). Una classe di esempio di tali applicazioni è la difesa dai missili balistici (teoricamente).
Di conseguenza, numerose variazioni sul modello TUF originale, il modello di sistema del paradigma TUF/UA, e quindi le tecniche di programmazione, sono state studiate nella letteratura accademica-e.g,-e applicate in contesti civili.
Alcuni esempi di questi ultimi includono: sistemi cyber-fisici, IA, sistemi multi-robot, pianificazione dei droni, robot autonomi, trasferimenti di dati intelligenti vehicle-to-cloud, controllo dei processi industriali, sistemi di transazione, calcolo ad alte prestazioni, sistemi cloud, cluster eterogenei, calcolo orientato ai servizi, networking e gestione della memoria per macchine reali e virtuali. Un esempio di acciaieria è brevemente descritto nell’introduzione della tesi di dottorato di Clark. Le informazioni su qualsiasi istanza commerciale o militare del paradigma possono essere pubblicamente inaccessibili (proprietarie o classificate, rispettivamente).
TUF e le loro interpretazioni di utilità (semantica), scale e valori sono derivati dalla conoscenza della materia specifica del dominio. Un’interpretazione storicamente frequente dell’utilità è l’importanza relativa delle azioni. È stato ideato un quadro per assegnare a priori valori di utilità statici soggetti a forti vincoli sui modelli di sistema, ma la ricerca e lo sviluppo successivi (come quelli precedenti) di TUF/UA hanno preferito dipendere dallo sfruttamento della specificità dell’applicazione piuttosto che tentare di creare quadri più generali. Tuttavia, tali strutture e strumenti rimangono un importante argomento di ricerca.
Per convenzione tradizionale, un TUF è una funzione concava, anche lineare. Vedere la rappresentazione di alcuni esempi di TUF.
I documenti TUF/UA nella letteratura di ricerca, con poche eccezioni, ad esempio, sono solo per TUF lineari o parzialmente lineari (compresi quelli convenzionali basati sulla scadenza) perché sono più facili da specificare e programmare. In molti casi, i TUF sono solo monotonicamente decrescenti.
Una funzione costante rappresenta l’utilità di un’azione che non è legata al tempo di completamento dell’azione – per esempio, l’importanza relativa costante dell’azione. Questo permette alle azioni dipendenti dal tempo e a quelle indipendenti dal tempo di essere programmate in modo coerente.
Un TUF ha un tempo critico globale, dopo il quale la sua utilità non aumenta. Se un TUF non diminuisce mai, il suo tempo critico globale è il primo momento in cui viene raggiunta la sua massima utilità. Un TUF costante ha un tempo critico arbitrario ai fini della programmazione, come il tempo di rilascio dell’azione o il tempo di terminazione del TUF. Il tempo critico globale può essere seguito da tempi critici locali – per esempio, si consideri un TUF che ha una sequenza di passi verso il basso, forse per approssimare una curva discendente liscia.
I valori di utilità del TUF sono solitamente o numeri interi o razionali.
L’utilità del TUF può includere valori negativi. (Un TUF che ha valori negativi nella sua gamma non è necessariamente abbandonato dalla considerazione della programmazione o interrotto durante il suo funzionamento – questa decisione dipende dall’algoritmo di programmazione).
Un tempo di scadenza convenzionale (d) rappresentato come un TUF è un caso speciale – un TUF a gradini verso il basso con una penalità unitaria (cioè, che ha valori di utilità 1 prima e 0 dopo il suo tempo critico).
Più in generale, un TUF permette alle funzioni a gradino verso il basso (e verso l’alto) di avere qualsiasi utilità prima e dopo il tempo critico.
Il ritardo rappresentato come un TUF è un caso speciale la cui utilità non zero è la funzione lineare C – d, dove C è il tempo di completamento dell’azione – attuale, previsto o ritenuto. Più in generale, un TUF permette che la precocità e il ritardo non nulli siano non lineari – ad esempio, un ritardo crescente può risultare in un’utilità decrescente non lineare, come quando si rileva una minaccia.
Quindi, i TUF forniscono una ricca generalizzazione dei tradizionali vincoli sui tempi di completamento delle azioni nel calcolo in tempo reale.
In alternativa, il paradigma TUF/UA può essere impiegato per utilizzare la tempestività rispetto al tempo critico globale come mezzo per un fine di accumulo di utilità, cioè, invece della tempestività di per sé come fine a se stessa (vedi sotto).
Un TUF (la sua forma e i suoi valori) può essere adattato dinamicamente da un’applicazione o dal suo ambiente operativo, indipendentemente da qualsiasi azione attualmente in attesa o in funzione.
Questi adattamenti si verificano normalmente in eventi discreti, ad es, a un cambio di modalità dell’applicazione, come per le fasi di volo di un missile balistico.
In alternativa, questi adattamenti possono verificarsi continuamente, come per le azioni le cui durate operative e i TUF sono funzioni specifiche dell’applicazione di quando tali azioni vengono rilasciate o iniziano a funzionare. Le durate operative possono aumentare o diminuire o entrambe, e possono essere non monotone. Questo caso continuo è chiamato schedulazione dipendente dal tempo. La programmazione dipendente dal tempo è stata introdotta per (ma non è limitata a) certe applicazioni militari in tempo reale, come i sistemi di tracciamento radar.