Na implementação de engenharia de algoritmos evolutivos,a organização tensorialmapeia de forma unificada "o que é a população, como foi avaliada e em que etapa está a execução", antes dispersos em objetos e listas, para tensores regulares. Sua essência é estabelecer um contrato de dados unificado para população, avaliação e estado, conferindo semântica de memória comum ao cálculo em lote, à residência no dispositivo e ao escalonamento paralelo subsequente.
Tensorização da população: codificação como [N, D]
Organize N soluções candidatas ao longo da dimensão de lote como um tensor de codificação de formato [N, D]. Variáveis contínuas, discretas ou codificações multi-segmento podem ser expressas por tensores de campo ou blocos agrupados, mantendo tipo de dados e localização no dispositivo unificados.
- Dimensão de lote por fora: normalmente coloca-se N na camada mais externa, para que o mesmo operador seja executado de forma vetorizada em todo o lote.
- Blocos por campo: se o indivíduo for composto por múltiplos segmentos de parâmetros, pode ser dividido em [N, D1] + [N, D2] + … mantendo o armazenamento contíguo.
- Tratamento de comprimento variável: indivíduos de comprimento variável são tratados com preenchimento mais máscara ou bucketing, evitando que estruturas heterogêneas comprometam o cálculo em lote.
Matricialização dos resultados de avaliação: [N, M] e [N, K]
Uma única avaliação em lote produz uma matriz de aptidão [N, M]; múltiplos objetivos, múltiplas restrições e métricas adicionais podem ser dispostos lado a lado como [N, M+K] ou armazenados em tabelas separadas, evitando chamadas em loop à função de avaliação por indivíduo.
Gestão unificada de tensores de estado
Geração, estado do gerador aleatório, hiperparâmetros de estratégia, melhor solução, cache histórico, ranking ou estado de amostragem também entram em tensores ou em contêineres de estado estruturados, garantindo reprodutibilidade, rastreabilidade e atualização em lote.
Benefícios e limites da organização
Tensores unificados reduzem as idas e voltas entre host e dispositivo, diminuem o custo de loop e fornecem base de dados para a paralelização posterior de operadores; porém, é preciso lidar com a validade das máscaras, o desperdício de preenchimento, o crescimento da escala multiobjetivo e o custo de sincronização de estado.
