cuGenOpt/benchmark/experiments/e13_multiobjective/README.md
2026-03-20 00:33:45 +08:00

2.2 KiB
Raw Blame History

E13: 多目标优化验证实验

实验目标

验证 cuGenOpt 框架的两种多目标比较模式:

  1. Weighted加权求和 - 目标可权衡
  2. Lexicographic字典法 - 目标有严格优先级

实验内容

主实验(单 GPU

  1. 双目标 VRP (A-n32-k5)

    • 目标:最小化总距离 + 最小化车辆数
    • Weighted 模式3 组权重配置 [0.9,0.1], [0.7,0.3], [0.5,0.5]
    • Lexicographic 模式3 组配置(不同优先级和容差)
  2. 三目标 VRP (A-n32-k5)

    • 目标:最小化总距离 + 最小化车辆数 + 最小化最大路径长度
    • Weighted 模式1 组权重配置 [0.6,0.2,0.2]
    • Lexicographic 模式2 组配置(不同优先级顺序)
  3. 双目标 Knapsack (knapPI_1_100)

    • 目标:最大化价值 + 最小化重量
    • Weighted 模式1 组权重配置 [0.8,0.2]
    • Lexicographic 模式1 组配置(优先级 [价值, 重量]

附加验证(多 GPU

  • 双目标 VRP (A-n32-k5)
  • Weighted 模式:[0.7,0.3]
  • Lexicographic 模式:优先级 [距离, 车辆数]
  • 2×T4, 60 秒, 单次运行

编译和运行

在 gpu2v100 上编译

cd /path/to/generic_solver/benchmark/experiments/e13_multiobjective
make

运行实验

./e13_multiobjective > e13_results.txt 2>&1

文件说明

  • bi_objective_vrp.cuh - 双目标 VRP Problem 定义
  • tri_objective_vrp.cuh - 三目标 VRP Problem 定义
  • bi_objective_knapsack.cuh - 双目标 Knapsack Problem 定义
  • gpu.cu - 主实验程序
  • Makefile - 编译配置
  • DESIGN.md - 详细实验设计文档

预期输出

每个配置运行 5 次seeds: 42, 123, 456, 789, 2024输出格式

[BiVRP] W_90_10 (mode=Weighted, multi_gpu=NO)
  Run 1 (seed=42): obj0=850.23 obj1=6.00 penalty=0.00 time=60.0s gen=12345
  Run 2 (seed=123): obj0=845.67 obj1=6.00 penalty=0.00 time=60.0s gen=12456
  ...

数据分析

实验完成后,运行数据分析脚本生成报告:

python3 analyze_results.py e13_results.txt

将生成 E13_REPORT.md 包含:

  • Weighted 不同权重下的解质量对比表
  • Lexicographic 不同容差下的解质量对比表
  • 多 GPU 验证结果