Skip to content

快速开始

总览

FlexDMO 是一个专为动态多目标算法设计的高效分析与实验平台,目前已实现以下两大核心模块:

  1. 🧩 分析模块
  • 支持实验算法的动态组合参数灵活选择
  • 提供实验数据可视化,直观展示优化过程
  • 内置算法性能统计分析工具
  • 独有实验过程回放功能,便于复现与对比

  1. 🧪 实验模块
  • 集成多种经典动态多目标测试问题
  • 内置丰富的动态多目标算法
  • 支持实验并行数量自定义,提升效率
  • 提供一站式结果输出工具,方便数据整理与分析

🚀 FlexDMO 致力于为研究者和开发者提供结构化、可视化、易扩展的动态多目标优化实验环境。

安装

前提条件

Python的版本需大于3.10,且以下的安装方式仅保证用户可以启动平台,某些算法可能用到了其他额外的库,需要用户根据运行提示自行安装

  1. 克隆仓库

    bash
    git clone https://github.com/Xieliuliuliu/FlexDMO.git
    cd FlexDMO
  2. 创建虚拟环境(推荐)

    bash
    python -m venv venv
    # Windows
    venv\Scripts\activate
    # macOS/Linux
    source venv/bin/activate
  3. 安装依赖

    bash
    pip install -r requirements.txt
  4. 启动平台

    bash
    python main.py

功能概述

本节将分步骤简要介绍平台的核心操作流程,帮助用户快速理解和掌握各项功能

分析模块

步骤一: 选择响应策略,搜索算法以及优化问题

在动态多目标优化领域,通常的动态多目标算法由静态搜索算法动态响应策略两部分组成。有些算法通过专门设计动态响应策略来应对动态多目标问题[1],一些算法通过历史信息来辅助静态算法搜索[2],还有些算法在动态策略和搜索算法两方面都进行了设计[3]动态多目标基本流程

因此,为方便研究人员快速对比分析不同的算法组合表现,本平台支持用户根据需要设计动态策略与搜索算法,并将二者组合起来。

如下图所示,在算法运行前,用户需依次选择 Dynamic StrategySearch AlgorithmProblem

提示

此处仅支持单选,多选仅第一个生效

算法选择界面

步骤二: 设置算法超参

在选择好需要测试的相关选项后,用户可以根据自己需要设置运行参数以观察算法表现。

补充

平台中按照规定实现的Search AlgorithmDynamic StrategyProblem会实现相关父类并编写info.jsonconfig.json,前者是其相关背景信息,后者是其需要的超参与默认的参数。因此,默认情况用户不需要对参数进行修改。

步骤三: 选择显示指标

在开始运行前或优化过程中,用户都可以选择希望观察的图表。平台会合并 高频更新,只绘制最新画面;选择的图表越多,绘图开销仍会相应增加。

提示

运行结束后可直接回放本次运行。只有需要以后再次加载时,才需要选中 Auto-save result 保存结果文件。

在运行过程中,用户可以通过 Start / ResumePauseTerminate 控制开始/恢复、暂停和终止。

算法选择界面

步骤四: 运行结果回放

结果回放界面

算法运行结束后,回放时间轴会自动定位到最后一个快照。用户可以立即拖动 时间轴查看整个优化过程;加载已保存结果时使用同一套回放流程。

功能模块具体功能
回放控制• 按实际快照顺序拖动时间轴
• 显示当前与最终评估次数
可视化展示• 显示种群分布变化
• 展示 Pareto 前沿演化
• 灰色显示动态不可行域
性能指标计算• 支持多种指标的计算(MHV、MIGD...)

提示

时间轴按保存的快照移动,而不是把稀疏的评估次数当作连续帧,因此每次 拖动都会对应一个真实画面。

实验模块

步骤一 选择对比算法与测试问题

此处选择方式与分析模块的步骤一选择方式相同,区别是这里可以多选,通过ctrl+左键多选或者shift+左键范围多选。多选的搜索算法和响应策略会通过笛卡尔积的方式组合,并在用户选择的每个测试问题上进行运行。

多选说明

  • 使用 Ctrl + 左键 进行多选
  • 使用 Shift + 左键 进行范围选择
  • 选中的算法组合将在每个测试问题上运行

步骤二 设置环境变化参数

如下图所示,在选择完算法后,用户需设置环境的变化参数 ntn_tτt\tau_t。这些参数决定了优化过程中环境的变化特性:

对于规则变化的DMOPs,环境变化时间计算公式为:

t=1ntττtt = \frac{1}{n_t} \cdot \frac{\tau}{\tau_t}

其中:

  • ntn_t 表示环境变化的烈度(severity)
  • τ\tau 表示总代数(total generation)
  • τt\tau_t 表示变化频率(frequency of change)

参数说明

  • 较小的 τt\tau_t 值表示环境变化更快
  • 较小的 ntn_t 值表示环境变化更强烈

runs 参数用于设置实验的重复运行次数。由于进化算法具有随机性,单次运行的结果可能不够可靠。通过多次重复运行,我们可以:

  • 获得更稳定的统计结果
  • 评估算法的鲁棒性
  • 进行更可靠的性能比较
实验设置界面

当用户选择好运行配置并添加到运行管理栏后,平台会根据用户配置创建运行任务。任务数量由以下因素决定:

配置项示例值说明
策略数量5动态响应策略
算法数量1搜索算法
问题数量8测试问题
环境参数2τ\tau 值(10, 20)
运行次数5重复运行次数

任务计算

总任务数 = 策略数量 × 算法数量 × 问题数量 × 环境参数数量 × 运行次数

示例:5 × 1 × 8 × 2 × 5 = 400 个运行任务

步骤三 运行任务管理

在运行任务前,请设置好保存结果的路径与并行运行的数量,以上内容请勿在运行时进行修改,在运行时,pause按钮进行暂停,再次点击pause即可继续运行,当用户想中断运行时,通过remove即可删除所有运行任务

步骤四 运行控制

运行前设置

在开始运行任务前,必须完成以下设置:

  • 设置结果保存路径
  • 配置并行运行数量(建议设置为 CPU 核心数的 50%)

运行控制说明:

  • 运行过程中请勿修改配置参数
  • 使用 Pause 按钮可随时暂停/继续运行
  • 使用 Remove 按钮可中断并删除所有运行任务

步骤五 结果分析

平台提供了多种结果分析工具,支持生成图片、Excel等格式的分析结果。分析流程如下:

  1. 选择分析工具

    • 从预定义的分析工具中选择所需类型
    • 平台自动读取工具的 param.json 配置文件
  2. 参数配置

    • 根据工具要求填写相关参数
    • 参数配置决定了分析的具体内容和输出格式
  3. 执行分析

    • 点击执行按钮开始分析
    • 平台将参数传递给分析代码
    • 自动生成分析结果文件
结果分析界面

自定义内容

FlexDMO 平台支持用户自定义测试问题、搜索算法和响应策略等。

详细文档

组件类型文档链接
自定义问题自定义问题文档
自定义算法自定义算法文档
自定义响应策略自定义响应策略文档
自定义指标自定义指标文档
自定义分析自定义分析文档
自定义显示自定义显示文档

寻求帮助

如果您在使用 FlexDMO 平台时遇到问题,可以尝试以下方式获取帮助:

  1. 查看文档

    • 阅读本指南和 API 文档
    • 查看常见问题(FAQ)部分
    • 参考示例代码
  2. GitHub Issues

    • 访问 GitHub Issues 页面
    • 查看是否有类似问题
    • 如果没有找到相关问题,可以提交新的 Issue
  3. 提交 Issue 建议

    • 简单描述遇到的问题
    • 说明复现步骤
    • 提供错误信息
    • 注明运行环境
  4. 参与改进

    • 欢迎 Fork 项目
    • 创建分支进行开发
    • 提交 Pull Request

提示

提交 Issue 时建议:

  • 先查看文档中是否有相关说明
  • 确保问题可以复现
  • 提供必要的信息


[1] Zhou, Aimin, Yaochu Jin, and Qingfu Zhang. "A population prediction strategy for evolutionary dynamic multiobjective optimization." IEEE Transactions on Cybernetics 44.1 (2013): 40-53.
[2] Yu, Kunjie, et al. "A framework based on historical evolution learning for dynamic multiobjective optimization." IEEE Transactions on Evolutionary Computation (2023).
[3] Wang, Feng, et al. "A new prediction strategy for dynamic multi-objective optimization using diffusion model." IEEE Transactions on Evolutionary Computation (2025).