8

Divisão entre Módulo de Algoritmo e Módulo de Problema

AI999第4课:现代计算底座与张量化并行演化
00:00

Nabase aberta e desacopladado EvoX, um fluxo evolutivo completo é dividido em dois “blocos” substituíveis: omódulo de algoritmoresponde “como buscar”, e omódulo de problemaresponde “o que avaliar e como o ambiente dá feedback”. Ambos se conectam por meio de um conjunto claro de contratos de interface, compondo fluxos evolutivos reutilizáveis, substituíveis e portáveis.

Base Aberta e Desacoplada do EvoXDiagrama de interação de interface entre o módulo de algoritmo e o módulo de problemamódulo de algoritmoEncapsula: como buscarGeração de soluções candidatas e inicialização da populaçãoMutação / cruzamento / seleçãoControle de busca: rodadas, tamanho, critérios de convergênciaNão depende da forma física da função objetivomódulo de problemaEncapsula: avaliação e feedback do ambienteValores objetivo, aptidão, violação de restriçõesResultado da interação com o ambienteDimensão das variáveis e faixa de valoresAvaliação consistente para o mesmo lote de soluções candidatasLote de soluções candidatasResultado da avaliação: vetor objetivo / violação de restriçõesContrato de interfaceEstreito e completo① Envio do lote de soluções candidatas② Retorno do resultado da avaliação③ Atualização da população e avanço para a próxima geraçãoUm ciclo de «envio ⇄ retorno» constitui uma geração da evoluçãoContrato de interface estável → algoritmo e problema podem ser substituídos, expandidos e reutilizados entre tarefas de forma independente

Módulo de algoritmo: encapsula “como buscar”

  • Geração de soluções candidatas e atualização da população: inicialização, mutação, cruzamento, seleção, preservação de elite e demais lógicas evolutivas são implementadas de forma unificada pelo módulo de algoritmo.
  • Controle de busca: número de iterações, tamanho da população, reinício e critérios de convergência, agendamento de parâmetros dos operadores — todas são decisões do lado do algoritmo.
  • O módulo de algoritmo depende apenas da premissa abstrata de que “as soluções candidatas serão avaliadas”, sem se preocupar com o significado físico ou a forma concreta da função objetivo.

Módulo de problema: define “o que avaliar e como o ambiente dá feedback”

  • Transformar soluções candidatas em feedback comparável: valores objetivo, aptidão, violação de restrições ou o resultado de uma interação com o ambiente.
  • Declarar os limites e restrições do problema: dimensão das variáveis, faixa de valores, regras da região viável, para que o algoritmo saiba onde pode gerar soluções candidatas.
  • Fornecer avaliação consistente para o mesmo lote de soluções candidatas, permitindo comparações transversais entre diferentes indivíduos, gerações e algoritmos.

Contrato de interface: lote de soluções candidatas ⇄ resultado da avaliação

O módulo de algoritmo envia ao módulo de problemaum lote de soluções candidatas; o módulo de problema retornaum resultado de avaliação estruturado(vetor objetivo, violação de restrições e informações de diagnóstico adicionais opcionais); com base nisso, o módulo de algoritmo atualiza a população e avança para a próxima geração. Esse ciclo de “envio—retorno” constitui uma geração da evolução.

Benefícios do desacoplamento

  • Expansão independente:新增或替换算法不影响问题定义;修改或新增问题也不要求改写算法模块。
  • Componível: o mesmo módulo de problema pode ser conectado a diferentes algoritmos evolutivos, e o mesmo módulo de algoritmo pode ser alternado entre diferentes módulos de problema.
  • Portável: desde que o contrato de interface permaneça estável, algoritmo e problema podem ser reutilizados, substituídos e migrados entre tarefas.

Por que isso é especialmente importante no contexto desta aula: trade-offs multiobjetivo e feedback custoso

Esta aula aborda problemas de engenharia do mundo físico real — por exemplo, o design de aerofólio supercrítico da COMACdesign de aerofólio supercrítico. Esse tipo de problema costuma apresentar três características simultâneas: múltiplos objetivos que se contrapõem (por exemplo, aumentar a sustentação geralmente implica maior arrasto e menor estabilidade), restrições mutuamente aninhadas (como o coeficiente de sustentação crítico de buffeting e a tensão máxima que não pode exceder o valor admissível do material), efeedback custoso e esparso(o custo de uma única avaliação por simulação de alta fidelidade é elevado). A divisão em módulos nasce justamente para lidar com esses três pontos.

No lado do módulo de problema, múltiplos objetivos e restrições são convertidos de forma unificada em resultados de avaliação comparáveis: o vetor objetivo descreve cada métrica, a violação de restrições descreve o grau de extrapolação e, quando necessário, recorre-se amodelos substitutos (surrogate models)para fornecer avaliações aproximadas a custo reduzido, aliviando o gargalo de feedback causado por simulações de alta fidelidade. No lado do módulo de algoritmo, a busca deixa de perseguir a convergência prematura para uma única “resposta ótima” e passa a manterum conjunto diversificado de soluções candidatas, permitindo que especialistas façam otimização de preferências e trade-offs entre sustentação, arrasto e margem de segurança.

Portanto, o contrato “lote de soluções candidatas ⇄ resultado da avaliação” não deve apenas suportar uma única aptidão escalar, mas também o vetor objetivo e a violação de restrições: o trade-off multiobjetivo exige que o algoritmo faça comparações de não dominância, e o tratamento de restrições exige que o algoritmo distinga entre viável e inviável. Se o contrato for incompleto, as informações multiobjetivo e de restrições serão permanentemente perdidas na interface, e a capacidade de reutilização e migração proporcionada pelo desacoplamento deixará de funcionar.

Equívoco comum
Escrever a função objetivo, o tratamento de restrições ou regras heurísticas específicas do problema dentro do módulo de algoritmo, ou implementar seleção e atualização da população no módulo de problema. À primeira vista, parece “escrever uma camada a menos”, mas na prática recoupla os dois lados: trocar o problema exige alterar o algoritmo, e trocar o algoritmo exige alterar o problema, fazendo com que a reutilização e a portabilidade falhem ao mesmo tempo.
A interface deve ser “estreita e completa”
Estreita significa poucos campos e estabilidade — passando apenas dois tipos de informação: o lote de soluções candidatas e o resultado da avaliação. Completa significa que as informações não podem ser incompletas — vetor objetivo, violação de restrições e limites das variáveis devem estar presentes. Retornar apenas uma única aptidão escalar descarta permanentemente as informações de restrições, tornando difícil o tratamento correto de problemas com restrições.