跳转至
OptAgent 1.2.0

线性与混合整数优化

线性与混合整数优化

问题概览

这类问题可以把业务需求写成变量、线性表达式、约束和目标函数。典型 场景包括分配、背包、设施选址,以及可以显式线性化的路径问题。

需求定义

  • 输入:候选对象、成本或收益、容量、距离矩阵和业务参数。
  • 决策:选择、分配、开设设施,或选择一条满足访问关系的路径。
  • 约束:容量、供需平衡、唯一分配、流守恒和子回路消除。
  • 目标:最大化收益,或最小化成本、距离和资源使用量。

规模与数据来源

规模主要由变量数、约束数、非零系数数目和路径节点数决定。TSP 的公开 问题可以参考 TSPLIB95 对称 TSP 数据集, 其中每个实例以节点数、坐标或显式距离矩阵描述。

建模方案

统一使用 ModelBuilder。普通分配、背包和设施选址直接使用整数或布尔 变量;TSP 则使用弧选择变量、每个节点恰好进入和离开一次的约束,以及 MTZ 等子回路消除约束。这样 TSP 仍然是一个可交给精确 MP 后端的模型, 不需要使用 Python 黑盒评分函数。

对于只包含有界整数和结构化序列转移成本的模型,也可以使用 sequence_var + sequence_transition_sum,再选择统一的 solve(...) 路径。

求解方案

  • 示例默认使用 solve(...),快速验证统一建模和求解路径。
  • 同一份模型需要 OptX 精确路径时,可切换到 solve_optx(...);完整代码以注释保留切换方式。

示例页

每个示例页先说明一个具体需求,再展示对应的建模方式和完整公开代码:

  • 指派问题:唯一分配与两种求解入口。
  • 背包问题:容量约束与两种求解入口。
  • 设施选址:开设决策、客户分配与两种求解入口。
  • 路径与 TSP:线性化访问路径、子回路消除与两种求解入口。