You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于PyGAD的多目标优化:maximin算法实现咨询

使用PyGAD结合Maximin算法求解多目标优化问题

核心方案概述

当前PyGAD的新版本(≥3.10.0)已支持多目标适应度计算,你可以通过以下步骤实现Maximin算法:

  1. 定义返回多目标值的适应度函数;
  2. 在on_fitness回调中获取完整种群的多目标适应度矩阵;
  3. 基于该矩阵计算每个个体的Maximin适应度值,并替换PyGAD的种群适应度;
  4. 让PyGAD基于Maximin值完成后续遗传操作。

实现步骤与代码示例

1. 安装/升级PyGAD到最新版

pip install --upgrade pygad

2. 定义多目标适应度函数

该函数需返回每个个体的多个目标值(列表或数组形式):

import pygad
import numpy as np

def multi_objective_fitness(ga_instance, solution, solution_idx):
    # 示例:两个最大化目标,可替换为你的实际目标计算逻辑
    obj1 = np.sum(solution)  # 目标1:最大化基因和
    obj2 = np.prod(solution) # 目标2:最大化基因乘积
    return [obj1, obj2]

3. 实现Maximin逻辑的回调函数

在on_fitness回调中,所有个体的多目标适应度已计算完成,此时可获取完整矩阵并计算Maximin值:

def on_fitness(ga_instance, population_fitness):
    pop_size = len(population_fitness)
    num_objs = len(population_fitness[0])
    
    maximin_fitness = []
    for i in range(pop_size):
        # 计算当前个体与其他所有个体的目标差值
        diffs = population_fitness[i] - population_fitness
        # 排除自身(差值为0的情况)
        diffs = diffs[diffs != 0].reshape(pop_size-1, num_objs)
        # 对每个其他个体,取当前个体在所有目标上的最小优势
        min_diffs_per_ind = np.min(diffs, axis=1)
        # 取这些最小优势中的最大值,作为当前个体的Maximin适应度
        maximin_val = np.max(min_diffs_per_ind)
        maximin_fitness.append(maximin_val)
    
    # 替换PyGAD的种群适应度,后续遗传操作将基于此值进行
    ga_instance.population_fitness = np.array(maximin_fitness)

4. 初始化并运行遗传算法

配置PyGAD参数,关联上述函数后启动算法:

ga_instance = pygad.GA(
    num_generations=50,
    num_parents_mating=4,
    fitness_func=multi_objective_fitness,
    sol_per_pop=10,
    num_genes=5,
    gene_space=[0, 1],  # 示例基因空间,可替换为你的实际变量范围
    on_fitness=on_fitness,
)

# 启动优化
ga_instance.run()

# 可视化适应度变化
ga_instance.plot_fitness()

关键说明

  • 种群适应度获取:在on_fitness、on_generation等回调中,均可通过ga_instance.population_fitness获取当前种群的适应度矩阵(多目标下为二维数组)。
  • Maximin逻辑调整:示例中的Maximin计算逻辑为「最大化个体相对于其他所有个体的最小目标优势」,你可根据问题需求修改差值计算、极值选取的逻辑。
  • 多目标支持验证:若你的PyGAD版本较低,升级后即可支持多目标适应度函数返回列表/数组,无需额外配置。

内容的提问来源于stack exchange,提问作者Ryan Larson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:22:47