8

División entre módulo de algoritmo y módulo de problema

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

En labase abierta y desacopladade EvoX, un flujo evolutivo completo se divide en dos «piezas» intercambiables:el módulo de algoritmoresponde «cómo buscar»,el módulo de problemaresponde «qué evaluar y cómo retroalimenta el entorno». Ambos se conectan mediante un conjunto claro de contratos de interfaz, y juntos componen un flujo evolutivo reutilizable, reemplazable y transferible.

Base abierta y desacoplada de EvoXDiagrama de interacción de interfaces entre el módulo de algoritmo y el módulo de problemael módulo de algoritmoEncapsula: cómo buscarGeneración de soluciones candidatas e inicialización de la poblaciónMutación / cruce / selecciónControl de búsqueda: iteraciones, tamaño, criterio de convergenciaNo depende de la forma física de la función objetivoel módulo de problemaEncapsula: evaluación y retroalimentación del entornoValores objetivo, aptitud, magnitud de violación de restriccionesResultado de la interacción con el entornoDimensión de las variables y rango de valoresEvaluación consistente para un mismo lote de soluciones candidatasLote de soluciones candidatasResultado de evaluación: vector objetivo / magnitud de violación de restriccionesContrato de interfazEstrecho y completo① Enviar el lote de soluciones candidatas② Devolver el resultado de evaluación③ Actualizar la población y avanzar a la siguiente generaciónUn ciclo «envío ⇄ respuesta» constituye una generación de evoluciónContrato de interfaz estable → el algoritmo y el problema pueden reemplazarse, ampliarse y reutilizarse entre tareas de forma independiente

Módulo de algoritmo: encapsula «cómo buscar»

  • Generación de soluciones candidatas y actualización de la población: la lógica evolutiva —inicialización, mutación, cruce, selección, preservación de élites, etc.— la implementa de forma unificada el módulo de algoritmo.
  • Control de búsqueda: el número de iteraciones, el tamaño de la población, los criterios de reinicio y convergencia y la programación de parámetros de los operadores son decisiones del lado del algoritmo.
  • El módulo de algoritmo solo depende de la premisa abstracta de que «las soluciones candidatas serán evaluadas», sin importarle el significado físico ni la forma concreta de la función objetivo.

Módulo de problema: define «qué evaluar y cómo retroalimenta el entorno»

  • Convertir soluciones candidatas en retroalimentación comparable: valores objetivo, aptitud, magnitud de violación de restricciones o el resultado de una interacción con el entorno.
  • Declarar los límites y las restricciones del problema: dimensión de las variables, rango de valores y reglas de la región factible, para que el algoritmo sepa dónde puede generar soluciones candidatas.
  • Ofrecer una evaluación consistente para un mismo lote de soluciones candidatas, de modo que puedan compararse horizontalmente distintos individuos, generaciones y algoritmos.

Contrato de interfaz: lote de soluciones candidatas ⇄ resultado de evaluación

El módulo de algoritmo envía al módulo de problemaun lote de soluciones candidatas; el módulo de problema devuelveun resultado de evaluación estructurado(vector objetivo, magnitud de violación de restricciones e información de diagnóstico adicional opcional); con base en ello, el módulo de algoritmo actualiza la población y avanza a la siguiente generación. Este ciclo de «envío—respuesta» constituye una generación de evolución.

Beneficios del desacoplamiento

  • Ampliación independiente: añadir o reemplazar algoritmos no afecta la definición del problema; modificar o añadir problemas tampoco exige reescribir el módulo de algoritmo.
  • Combinable: un mismo módulo de problema puede conectarse a distintos algoritmos evolutivos, y un mismo módulo de algoritmo también puede cambiarse a distintos módulos de problema.
  • Transferible: mientras el contrato de interfaz se mantenga estable, el algoritmo y el problema pueden reutilizarse, reemplazarse y transferirse entre tareas.

Por qué es especialmente importante en el contexto de esta lección: compensaciones multiobjetivo y retroalimentación costosa

Esta lección se centra en problemas de ingeniería del mundo físico real, por ejemplo, el diseñode perfiles alares supercríticos en COMAC. Este tipo de problemas suele reunir tres características a la vez: múltiples objetivos que se condicionan mutuamente (por ejemplo, aumentar la sustentación suele implicar mayor resistencia y menor estabilidad), restricciones anidadas entre sí (como el coeficiente de sustentación de buffet crítico o que la tensión máxima no supere el valor admisible del material) yretroalimentación costosa y dispersa(el coste de una sola evaluación con simulación de alta precisión es muy alto). La división en módulos nace precisamente para hacer frente a estos tres puntos.

Del lado del módulo de problema, los múltiples objetivos y las restricciones se convierten de forma unificada en resultados de evaluación comparables: el vector objetivo describe cada indicador, la magnitud de violación de restricciones describe el grado de incumplimiento y, cuando es necesario, se recurre amodelos subrogadospara ofrecer evaluaciones aproximadas a menor coste y aliviar el cuello de botella de retroalimentación que impone la simulación de alta precisión. Del lado del módulo de algoritmo, la búsqueda ya no persigue converger prematuramente a una única «respuesta óptima», sino que mantieneun conjunto diversificado de soluciones candidatas, para que los expertos optimicen preferencias y tomen decisiones entre sustentación, resistencia y margen de seguridad.

Por lo tanto, el contrato «lote de soluciones candidatas ⇄ resultado de evaluación» no solo debe poder transportar una única aptitud escalar, sino también el vector objetivo y la magnitud de violación de restricciones: la compensación multiobjetivo exige que el algoritmo pueda hacer comparaciones no dominadas, y el tratamiento de restricciones exige que pueda distinguir entre factible e infactible. Si el contrato queda incompleto, la información multiobjetivo y de restricciones se pierde de forma permanente en la interfaz, y con ello también se pierden la reutilización y la transferibilidad que aporta el desacoplamiento.

Error frecuente
Incluir la función objetivo, el tratamiento de restricciones o reglas heurísticas propias del problema dentro del módulo de algoritmo, o implementar la selección y la actualización de la población dentro del módulo de problema. A simple vista parece «escribir una capa menos», pero en realidad vuelve a acoplar ambos lados: cambiar de problema obliga a modificar el algoritmo y cambiar de algoritmo obliga a modificar el problema, con la consiguiente pérdida de reutilización y transferibilidad.
La interfaz debe ser «estrecha y completa»
Estrecha significa pocos campos y estables: solo se transmiten dos tipos de información, el lote de soluciones candidatas y el resultado de evaluación. Completa significa que la información no puede quedar incompleta: el vector objetivo, la magnitud de violación de restricciones y los límites de las variables deben estar presentes. Devolver únicamente una aptitud escalar elimina de forma permanente la información de restricciones y dificulta el tratamiento correcto de problemas con restricciones.