Função tempo-utilidade
O paradigma TUF/UA foi originalmente criado para abordar certas linhas de tempo e aplicações de programação baseadas em QoS de várias aplicações militares para as quais os conceitos e práticas tradicionais em tempo real não são suficientemente expressivos (por exemplo, para sistemas críticos de pontualidade sem prazos) e resilientes (por exemplo, para sistemas sujeitos a sobrecargas de rotina). Uma classe de exemplo de tais aplicações é a defesa contra mísseis balísticos (nocional).
Subseqüentemente, numerosas variações no modelo original TUF, o modelo de sistema do paradigma TUF/UA, e assim técnicas de agendamento, têm sido estudadas na literatura acadêmica – por exemplo,-e aplicadas em contextos civis.
Alguns exemplos deste último incluem: sistemas ciberfísicos, IA, sistemas multirobô, agendamento de drones, robôs autônomos, transferência inteligente de dados veículo-a-nuvem, controle de processos industriais, sistemas de transação, computação de alto desempenho, sistemas de nuvem, clusters heterogêneos, computação orientada a serviços, redes e gerenciamento de memória para máquinas reais e virtuais. Um exemplo de fábrica de aço é descrito brevemente na Introdução da tese de doutorado da Clark. As informações sobre quaisquer instâncias comerciais ou militares do paradigma podem ser publicamente inacessíveis (proprietárias ou classificadas, respectivamente).
TUFs e suas interpretações de utilidade (semântica), escalas e valores são derivados do conhecimento do assunto específico do domínio. Uma interpretação historicamente frequente da utilidade é a importância relativa das ações. Um framework para a priori atribuir valores de utilidade estáticos sujeitos a fortes restrições nos modelos de sistema foi concebido, mas a pesquisa e desenvolvimento subseqüente (como antes) TUF/UA preferiu depender da exploração da especificidade da aplicação em vez de tentar criar frameworks mais gerais. Entretanto, tais frameworks e ferramentas continuam sendo um tópico de pesquisa importante.
Por convenção tradicional, um TUF é uma função côncava, incluindo as lineares. Veja a descrição de alguns exemplos de TUFs.
TUF/UA na literatura da pesquisa, com poucas exceções, por exemplo, são apenas para TUFs lineares ou lineares em camadas (incluindo TUFs convencionais baseados em linhas mortas) porque são mais fáceis de especificar e agendar. Em muitos casos, os TUFs estão apenas diminuindo monotonicamente.
Uma função constante representa a utilidade de uma ação que não está relacionada ao tempo de conclusão da ação – por exemplo, a importância relativa constante da ação. Isto permite que ações dependentes e independentes do tempo sejam programadas coerentemente.
A TUF tem um tempo crítico global, após o qual sua utilidade não aumenta. Se um TUF nunca diminui, seu tempo crítico global é a primeira vez em que sua utilidade máxima é atingida. Um TUF constante tem um tempo crítico arbitrário para o propósito de agendamento – como o tempo de liberação da ação, ou o tempo de término do TUF. O tempo crítico global pode ser seguido por tempos críticos locais – por exemplo, considere um TUF tendo uma seqüência de passos para baixo, talvez para aproximar uma curva descendente suave.
TUF os valores da utilidade são geralmente números inteiros ou racionais.
TUF a utilidade pode incluir valores negativos. (Uma TUF que tenha valores negativos em seu intervalo não é necessariamente descartada da consideração de programação ou abortada durante sua operação – essa decisão depende do algoritmo de programação)
Um tempo de prazo convencional (d) representado como uma TUF é um caso especial – uma TUF de etapa descendente tendo uma penalidade unitária (isto é.., tendo valores de utilidade 1 antes e 0 depois de seu tempo crítico).
Mais geralmente, um TUF permite que funções de passos para baixo (e para cima) tenham qualquer utilidade de tempo pré- e pós-crítica.
Tardiness representado como um TUF é um caso especial cuja utilidade não-zero é a função linear C – d, onde C é o tempo de conclusão da ação – seja atual, esperado ou acreditado. De modo mais geral, um TUF permite que a precocidade e o atraso não zero sejam não lineares – por exemplo, o aumento do atraso pode resultar na diminuição não linear da utilidade, como quando se detecta uma ameaça.
Assim, os TUFs fornecem uma rica generalização das restrições de tempo de conclusão da ação tradicional na computação em tempo real.
Alternativamente, o paradigma TUF/UA pode ser empregado para usar a pontualidade com respeito ao tempo crítico global como um meio para um fim de acumulação de utilidade, ou seja, Qualidade de Serviço (QoS) a nível de aplicação – em vez de a atualidade em si mesma ser um fim em si mesma (ver abaixo).
A TUF (sua forma e valores) pode ser adaptada dinamicamente por uma aplicação ou seu ambiente operacional, independentemente de quaisquer ações atualmente em espera ou em operação.
Estas adaptações ocorrem normalmente em eventos discretos – por exemplo, em uma mudança de modo de aplicação, como para fases de vôo de mísseis balísticos.
Alternativamente, estas adaptações podem ocorrer continuamente, como para ações cujas durações operacionais e TUFs são funções específicas da aplicação de quando essas ações são liberadas ou começam a operar. As durações de operação podem aumentar ou diminuir ou ambas, e podem ser não-monotônicas. Este caso contínuo é chamado de programação dependente do tempo. A programação dependente do tempo foi introduzida para (mas não está limitada a) certas aplicações militares em tempo real, tais como sistemas de rastreamento de radar.