资源流示例¶
资源流示例展示多阶段合同流、机器节点、物流边、库存和需求滚动之间的关系。该目录提供 CP-SAT 取向 formulation、MILP formulation、统一求解入口和滚动窗口 workflow。
https://github.com/Dongbox/optagent-examples/tree/main/examples/resource_flow
问题说明¶
同一份公开 case snapshot 可以用两种方式建模:
cpformulation:强调离散流量、整数约束和 CP-SAT 友好的重述。milpformulation:强调代数线性约束,便于走mathopt_mp或highs_native。
这类示例适合观察“业务工作流层”和“OptAgent 求解层”的边界:滚动窗口状态推进留在示例 workflow 中,单窗口模型交给 OptAgent。
目录结构¶
examples/resource_flow/
README.md
schema.py
case_loader.py
cp_builder.py
milp_builder.py
solve_case.py
rolling.py
original_bridge.py
compare_original.py
data/
zj_case_cp_sat_p3.json.gz
zj_case_mathopt_p3.json.gz
代码示例¶
from examples.resource_flow.case_loader import load_case
from examples.resource_flow.cp_builder import build_single_window_program
from optagent import Orchestrator
case = load_case(case_name="zj", formulation="cp", planning_period=3)
built = build_single_window_program(case.config, case.model_input, modeling_period=3, k=0)
result = Orchestrator().run(built.program)
运行¶
PYTHONPATH=. python examples/resource_flow/solve_case.py --formulation cp --summary-only
PYTHONPATH=. python examples/resource_flow/solve_case.py --formulation milp --summary-only
PYTHONPATH=. python examples/resource_flow/solve_case.py --formulation cp --mode hybrid
PYTHONPATH=. python examples/resource_flow/solve_case.py --formulation milp --mode exact --backend highs_native
注意事项¶
- 默认 bundled 路径只依赖公开仓库内的数据文件。
compare_original.py属于迁移比较脚本,需要额外的原始工程环境;普通公开运行不需要它。- 完整大实例 exact solve 时间和后端有关,建议先用
--summary-only评估规模。 - 滚动窗口当前是示例 workflow,不是核心
Orchestrator的内置功能。