构建模型
构建模型
该示例现在构建了一个优化模型。与优化模型关联的数据必须存储在单个列表变量中。此列表中的命名组件包含模型的不同部分。最基本的命名组件是:约束矩阵(A.
),目标向量(obj
),右侧向量(rhs
),以及约束感知向量(感觉
)。其中,只有约束矩阵是必需的,如果缺少默认值,则会用默认值替换所有其他模型字段。模型变量还可以包括可选组件(例如,客观意义模态感知
).
在我们的示例中,我们使用内置的R矩阵
函数来构建约束矩阵A.
.A.
在这里存储为稠密矩阵。您还可以存储A.
作为稀疏矩阵,使用稀疏三重矩阵
功能来自砰地关上
包装或斯巴塞矩阵
来自矩阵
稀疏输入矩阵如中所示lp2.R
实例
后续语句将填充模型
变量,包括目标向量、右侧向量和约束感知向量。在每种情况下,我们都使用内置C
函数初始化数组参数。
除了必需的组件外,本示例还设置了两个可选组件:模态感知
和V型
前者用于表示目标函数的意义。默认值为最小化,因此我们将组件设置为“马克斯”
表明我们希望最大限度地实现指定的目标V型
组件用于指示模型中变量的类型。在我们的示例中,所有变量都是二进制的(“B”
)。请注意,我们的接口允许您为任何数组参数指定标量值。Gurobi接口将把该标量扩展为适当长度的常量数组。在本例中,标量值“B”
将扩展为长度为3的数组,其中包含一个“B”
表中每列的值A.
.
关于默认变量边界的一个重要注意事项:数学编程中的约定是,默认情况下,变量的下界为0,上界为无限。如果希望变量具有不同的边界,则需要显式提供它们。