Na lição anterior, os sistemas evolutivos acumulavam capacidade continuamente por meio do ciclo fechado de "geração—avaliação—seleção—herança". Nesta lição, levamos essa ideia um nível mais para dentro: não se trata apenas de usar algoritmos para resolver problemas, mas de usar algoritmos para aperfeiçoar algoritmos.MetaDE é exatamente uma arquitetura evolutiva aninhada desse tipo — ela divide a Evolução Diferencial (DE) em duas camadas, interna e externa, tornando a "otimização de algoritmos por algoritmos" um processo computacional executável.
I. Divisão de papéis entre as duas camadas: quem resolve, quem evolui
O MetaDE organiza a DE em duas camadas, interna e externa, cujos objetos de trabalho são completamente distintos:
- DE interna (camada de tarefa): voltada para tarefas reais de otimização, mantém uma população de soluções candidatas e executa repetidamente mutação, cruzamento e seleção, aproximando-se gradualmente de boas soluções para a tarefa. Ela responde à pergunta "como está indo a resolução deste problema".
- DE externa (camada meta): voltada para o próprio algoritmo, cada indivíduo da população não é uma solução da tarefa, mas sim um conjunto completo de configurações de "estratégia de mutação + parâmetros", como qual modo de mutação adotar e quais valores usar para o fator de escala e a probabilidade de cruzamento. Ela responde à pergunta "esta configuração de algoritmo funciona bem".
Portanto, a camada externa não otimiza diretamente as variáveis da tarefa; estas são sempre tratadas pela camada interna. A camada externa muda apenas o "manual de trabalho" da camada interna.
II. Ciclo fechado de interação: envio de configurações e retorno de desempenho
As duas camadas estão acopladas por um canal bidirecional, formando um ciclo fechado: a camada externa primeiro gera um conjunto de configurações do algoritmo e o envia (→) à camada interna; a camada interna executa a tarefa conforme essa configuração e, ao terminar, devolve o desempenho na tarefa (→) à camada externa; com base nisso, a camada externa retém e recombina as configurações de melhor desempenho e gera a configuração da rodada seguinte. Todo o fluxo pode ser resumido assim: configuração externa → resolução interna → desempenho na tarefa → atualização externa, repetindo-se continuamente.
Esse ciclo fechado traz uma propriedade fundamental: a estratégia de mutação e os parâmetros do algoritmo da camada interna deixam de ser definidos uma única vez pelo ser humano e mantidos fixos; passam a ser continuamente reescritos conforme a busca da camada externa, e o algoritmo ganha assim um canal de autoaperfeiçoamento.
III. Premissas de execução: paralelismo e trade-off de custo
A estrutura aninhada não é isenta de custos. A cada avaliação da camada externa, é preciso executar integralmente um conjunto de configurações na tarefa, o que amplia bastante o custo de avaliação; quanto maior a população externa, maior o custo total. É justamente por isso que o MetaDE depende do paralelismo em GPU: vários conjuntos de configurações da camada interna podem ser avaliados ao mesmo tempo, o tempo necessário para uma única iteração da camada externa é bastante reduzido, e só assim a meta-evolução aninhada se torna executável em termos de engenharia. Por outro lado, se os recursos paralelos disponíveis forem insuficientes, reduzir a escala da camada externa ou diminuir a precisão da avaliação interna costuma ser mais realista do que ampliar a busca às cegas.
