Model.addSOS(type, vars, wts=None)
Arguments:
type: SOS type (can be GRB.SOS_TYPE1 or GRB.SOS_TYPE2).
type1:约束是一个变量集合,最多有一个变量的值不为零
type2:约束是一个有序的变量集合,最多有两个变量的值不为零,如果有两个变量的值不为零,那么这两个变量在有序集合中位置必须是连续的
vars: List of variables that participate in the SOS constraint.
weights (optional): Weights for the variables in the SOS constraint. Default weights are 1, 2, ...
其实weights就是这些变量在有序集合中的顺序, 也就是在 SOS 约束中,权重值为 1 的变量(对应的是 x)、权重值为 2 的变量(对应的是 y)、权重值为 4 的变量(对应的是 z)在有序集合中的顺序。
Return value: New SOS object.
Example usage:
model.addSOS(GRB.SOS_TYPE1, [x, y, z], [1, 2, 4])
官网解释: