评估方法论¶
OptAgent 使用标准化的基准测试框架评估不同策略的性能。
评估框架¶
graph TB
subgraph "Benchmark Framework"
GEN[Problem Generator]
RUN[Experiment Runner]
COL[Result Collector]
ANA[Analysis Engine]
end
GEN -->|问题实例| RUN
RUN -->|原始结果| COL
COL -->|聚合数据| ANA
ANA -->|报告| OUT[Markdown / JSON]
评估维度¶
| 维度 | 指标 | 说明 |
|---|---|---|
| 解质量 | 目标函数值 | 与最优解或已知下界的差距 |
| 求解速度 | 时间(秒) | 达到可行解/最优解的时间 |
| 可扩展性 | 问题规模 vs 时间 | 随问题规模增长的性能变化 |
| 稳定性 | 多次运行的方差 | 同一问题多次求解的结果一致性 |
| 可行性 | 可行解比例 | 在时间限制内找到可行解的概率 |
实验设计¶
问题生成¶
使用参数化的问题生成器创建不同规模和难度的实例:
from optagent.benchmark import ProblemGenerator
gen = ProblemGenerator(problem_family="job_shop")
instances = gen.generate(
n_jobs=[10, 20, 50, 100],
n_machines=[5, 10, 20],
seed=42
)
实验矩阵¶
每个预设在每个问题实例上运行多次(通常 5-10 次),以评估稳定性:
| 预设 | 实例 1 (10×5) | 实例 2 (20×10) | 实例 3 (50×20) | 实例 4 (100×20) |
|---|---|---|---|---|
scheduling_focus |
run×5 | run×5 | run×5 | run×5 |
scheduling_evolutionary_repair |
run×5 | run×5 | run×5 | run×5 |
scheduling_memetic_quality |
run×5 | run×5 | run×5 | run×5 |
结果分析¶
- Winner Analysis:每个问题族中哪个预设表现最好
- Scalability Plot:问题规模 vs 求解时间的对数图
- Quality Gap:与已知最优解的差距分布