快速开始示例¶
快速开始示例用于确认 OptAgent 的三件事可以串起来:用 ModelBuilder 定义变量和约束、冻结为 program、交给 Orchestrator 求解。
https://github.com/Dongbox/optagent-examples
目录结构¶
optagent-examples/
examples/
linear/
knapsack_mathopt.py
scheduling/
job_shop_small.py
blackbox/
tsp_blackbox_small.py
hybrid/
hybrid_production_planning_small.py
requirements-dev.txt
quickstart 没有单独目录,建议按从简单到复杂的顺序运行上面四个入口。
最小代码形状¶
下面是线性背包示例的核心结构,完整文件见公开仓库的 examples/linear/knapsack_mathopt.py。
from optagent import ModelBuilder, Orchestrator
builder = ModelBuilder(metadata={"case": "quickstart_knapsack"})
picks = [builder.int_var(default=0, lb=0, ub=1, name=f"pick_{idx}") for idx in range(3)]
weights = [2, 3, 4]
values = [3, 4, 8]
builder.constraint(builder.sum(*(pick * weight for pick, weight in zip(picks, weights))) <= 5)
builder.maximize(builder.sum(*(pick * value for pick, value in zip(picks, values))))
result = Orchestrator().run(builder.freeze())
print(result.final_solution.status)
运行¶
git clone https://github.com/Dongbox/optagent-examples.git
cd optagent-examples
python -m pip install -r requirements-dev.txt
PYTHONPATH=. python examples/linear/knapsack_mathopt.py
运行前需要先按团队或发行渠道提供的方式安装 OptAgent 本体。需要精确后端时,再安装对应可选依赖,例如 ortools 或 highspy。