跳转至

预设总览

预设(Preset)是 OptAgent 的开箱即用策略配置,针对特定问题类型优化了求解器选择、参数配置和编排流程。

预设架构

graph TB
    subgraph "Preset System"
        REG[Preset Registry]
        REG --> SCHED[Scheduling Presets]
        REG --> ROUT[Routing Presets]
        REG --> HYB[Hybrid Presets]
        REG --> LINEAR[Linear Presets]
    end

    subgraph "Preset Config"
        C1[Heuristic Config]
        C2[Orchestrator Config]
        C3[Solver Config]
    end

    SCHED --> C1
    C1 --> C2
    C2 --> C3

使用方式

from optagent import solve
from optagent.presets import BuiltInStrategyPreset

solution = solve(
    problem,
    preset=BuiltInStrategyPreset.SCHEDULING_EVOLUTIONARY_REPAIR
)
from optagent import solve

solution = solve(problem, preset="scheduling_focus")
from optagent import solve

# 根据问题特征自动选择最优预设
solution = solve(problem, preset="auto")

预设列表

预设名称 适用场景 求解器 阶段数
scheduling_focus 快速调度求解 Tabu Search 1
scheduling_evolutionary_repair 调度 + 约束修复 GA + CP-SAT 3
scheduling_memetic_quality 高质量调度解 Memetic 2
routing_evolutionary 路由优化 GA + Local Search 2
hybrid_portfolio 通用混合求解 Portfolio 1
linear_milp 线性规划 MILP 1

预设配置结构

每个预设由 JSON manifest 定义:

{
  "name": "scheduling_evolutionary_repair",
  "description": "基于遗传算法和精确修复的调度求解策略",
  "applicable_to": ["job_shop", "flow_shop", "scheduling"],
  "heuristic": {
    "strategy": "genetic_algorithm",
    "population_size": 50,
    "generations": 200,
    "crossover_rate": 0.8,
    "mutation_rate": 0.1
  },
  "orchestrator": {
    "phases": [
      {"type": "evolutionary", "budget": 0.6},
      {"type": "local_search", "budget": 0.3, "warm_start": true},
      {"type": "exact_repair", "budget": 0.1, "warm_start": true}
    ]
  }
}

预设 vs 手动配置

预设适合快速上手和标准场景。当需要精细控制时,可以通过覆盖预设中的具体参数来定制:

solution = solve(
    problem,
    preset="scheduling_focus",
    config={"time_limit": 300, "heuristic.population_size": 100}
)