Estratégia Evolutiva (μ,λ)-ES

Mamute congelado em uma geleira

O que é a (μ,λ)-ES?

A (μ,λ)-ES é uma estratégia evolutiva que mantém μ pais e gera λ filhos. Aqui, λ é sempre maior que μ, geralmente λ ≈ 4μ a 7μ. Cada filho é criado por mutação gaussiana a partir de um pai escolhido. Após avaliar todos os λ filhos, apenas os μ melhores sobrevivem. Os pais antigos são completamente descartados, sem exceção. Essa abordagem é chamada de seleção de truncamento (μ,λ). Ela permite que o algoritmo esqueça soluções antigas e explore novas. Isso reduz o risco de estagnação em mínimos locais. Por outro lado, a (μ+λ)-ES mantém os pais na competição. A notação (μ,λ) enfatiza que a população parental é renovada a cada geração.

Mecanismos de auto-adaptação e recombinação

Cada indivíduo carrega seu próprio desvio-padrão para mutação adaptativa. Esses desvios também sofrem mutação log-normal e são herdados pelos filhos. Além disso, muitas variantes usam crossover para combinar dois pais. O crossover intermediário calcula a média dos vetores parentais. Já o crossover discreto troca coordenadas entre os pais escolhidos. Ambos aumentam a diversidade genética dentro da população de filhos. A seleção dos pais para reprodução é geralmente uniforme ou por torneio. Contudo, a sobrevivência é sempre determinística: os μ melhores filhos.

Vantagens e cenários de uso

A grande vantagem é a capacidade de escapar de ótimos locais com facilidade. Ela é especialmente eficaz em paisagens multimodais e ruidosas. Além disso, a auto-adaptação dispensa ajustes manuais de taxa de mutação. Seu custo computacional é maior que o da (1+1)-ES, mas ainda viável. Ela é usada em otimização de hiperparâmetros de redes neurais. Também é aplicada em design de aerofólios e roteamento de veículos. Para iniciantes, ela representa o salto natural após a (1+1)-ES.

A (μ,λ)-ES foi formalizada por Schwefel na década de 1970. Ela introduziu o conceito de “população” como um grupo de candidatos. Isso contrasta com a abordagem elitista estrita da (1+1)-ES. A escolha de μ e λ afeta diretamente a pressão seletiva do algoritmo. Valores maiores de λ aumentam a exploração, mas custam mais avaliações. Valores menores de μ concentram a busca nas melhores regiões. A razão λ/μ típica fica entre 3 e 7 para bons resultados. Os desvios-padrão evoluem conforme a regra do 1/5 ou via deriva genética. Na prática, a auto-adaptação log-normal é mais comum e robusta. Ela multiplica o sigma por exp(τ * N(0,1)), onde τ é uma constante. Isso permite que cada dimensão tenha seu próprio passo de mutação. Assim, a (μ,λ)-ES se adapta a escalas diferentes em cada variável. Ela é considerada uma das melhores para otimização contínua. Sua implementação é direta e seu desempenho é amplamente documentado.

Um exemplo clássico é minimizar a função de Ackley em 10 dimensões. Ela tem um mínimo global em (0,…,0) com valor 0. A superfície é cheia de mínimos locais, desafiando algoritmos simples. A (μ,λ)-ES encontra o ótimo com poucas gerações graças à diversidade. Esse problema demonstra o poder da recombinação e da população múltipla.


Enunciado do exemplo clássico

Implemente a (μ,λ)-ES com μ=15, λ=100 para minimizar a função de Ackley em 2 dimensões: f(x,y) = -20*exp(-0.2*sqrt(0.5*(x²+y²))) – exp(0.5*(cos(2πx)+cos(2πy))) + 20 + e. Domínio: x,y ∈ [-5, 5]. Use mutação com sigma inicial 0.5 e auto-adaptação log-normal. Execute por 200 gerações e armazene o melhor fitness e o melhor ponto por geração. Plote a curva de convergência e a trajetória do melhor ponto no espaço 2D.

Este código implementa a (μ,λ)-ES com auto-adaptação log-normal. A curva de convergência mostra queda acentuada nas primeiras gerações. A trajetória revela como o ponto se move pelo vale da função Ackley. Mesmo com muitos mínimos locais, o algoritmo encontra o global. A diversidade provida por λ=100 filhos é crucial para esse sucesso. Para iniciantes, este exemplo evidencia o poder das populações maiores. A (μ,λ)-ES é, portanto, uma ferramenta robusta e escalável.

Estratégia Evolutiva (1+1)-ES

Mamute congelado em uma geleira

O que é a (1+1)-ES?

A (1+1)-ES é a estratégia evolutiva mais simples que existe. Ela mantém apenas um indivíduo pai e gera um único filho por geração. O filho é criado pela adição de ruído gaussiano ao pai. Se o filho tiver aptidão melhor ou igual, ele substitui o pai. Caso contrário, o pai permanece inalterado para a próxima iteração. Esse mecanismo é chamado de seleção elitista (1+1). A notação indica que um pai e um filho competem pela sobrevivência. Apesar da simplicidade, ela é eficaz para funções contínuas e unimodais. Ela foi proposta por Rechenberg nos anos 1960 como protótipo inicial. Sua principal característica é a auto-adaptação do passo de mutação. O tamanho do passo é ajustado dinamicamente com base na taxa de sucesso. Assim, a (1+1)-ES aprende a velocidade ideal de exploração.

Regra de adaptação do passo (1/5 de sucesso)

Rechenberg introduziu uma regra heurística para ajustar o desvio-padrão. A cada geração, conta-se quantas mutações foram bem-sucedidas (filho aceito). Se a taxa de sucesso for maior que 1/5, o passo de mutação aumenta. Se for menor que 1/5, o passo diminui para refinar a busca local. Essa regra mantém a convergência próxima do ótimo de forma equilibrada. O fator de ajuste típico é multiplicar por 0.85 ou dividir por 0.85. Portanto, o algoritmo se torna autônomo e dispensa ajustes manuais. Isso é especialmente útil para iniciantes que não conhecem a paisagem.

Vantagens e limitações da abordagem

A grande vantagem é a extrema simplicidade de implementação e entendimento. Ela requer poucas linhas de código e nenhuma população grande. Além disso, o custo computacional por geração é mínimo. Contudo, ela pode estagnar em mínimos locais em funções multimodais. Sua natureza determinística (um filho) limita a diversidade exploratória. Para problemas com muitas variáveis, a convergência pode ser lenta. Mesmo assim, ela é um excelente ponto de partida didático. Muitos a utilizam para calibrar parâmetros em experimentos reais.

A (1+1)-ES é um caso particular das estratégias evolutivas maiores. Diferentemente da (μ, λ), ela não mantém múltiplos candidatos simultaneamente. Isso reduz drasticamente a memória e o tempo de avaliação por iteração. Por outro lado, a ausência de crossover limita a recombinação de boas características. Ainda assim, a mutação com passo adaptativo é surpreendentemente poderosa. Ela é capaz de resolver problemas com até dezenas de dimensões. A regra do 1/5 foi provada como ótima para funções esféricas. Em outros cenários, ela funciona bem na prática, embora sem garantia formal. O usuário deve monitorar a taxa de sucesso para evitar passos muito grandes. Passos grandes causam saltos que ultrapassam o ótimo repetidamente. Passos pequenos levam a uma convergência extremamente lenta. O equilíbrio é alcançado pela própria adaptação dinâmica. Assim, a (1+1)-ES ensina conceitos fundamentais de auto-ajuste. Ela é frequentemente a primeira estratégia evolutiva ensinada em cursos.

Um exemplo clássico é minimizar a função esférica f(x) = x₁² + x₂² + … + xₙ². O mínimo global está em (0,0,…,0) com valor zero. A (1+1)-ES encontra esse ponto com alta precisão após algumas centenas de gerações. O passo inicial é escolhido arbitrariamente, mas logo se ajusta. Esse problema é ideal para demonstrar a regra do 1/5 na prática.


Enunciado do exemplo clássico

Implemente a (1+1)-ES para minimizar a função de Rosenbrock em 2 dimensões: f(x,y) = (1 – x)² + 100*(y – x²)², com x,y ∈ [-2, 2]. O mínimo global é em (1,1) com f=0. Use passo inicial sigma=0.1. Aplique a regra de adaptação 1/5 com fator 0.85 a cada 10 gerações. Execute por 500 gerações e armazene o melhor valor e a distância até (1,1). Plote a evolução do valor da função e a trajetória do ponto no espaço 2D. Forneça o código Python completo e auto-contido.

Este código demonstra a (1+1)-ES na prática com visualização clara. A evolução do fitness em escala log mostra a rápida melhoria inicial. A trajetória revela como o ponto serpenteia até o vale da Rosenbrock. A regra do 1/5 ajusta o sigma automaticamente, sem intervenção manual. Mesmo sendo um único indivíduo, a busca é eficaz e estável. Para iniciantes, esse exemplo conecta teoria, código e gráficos intuitivos. A (1+1)-ES é, portanto, uma porta de entrada simples para computação evolutiva.