过滤内容
版本
文本搜索
构建模型
这个示例现在构建了一个优化模型。与优化模型相关的数据必须存储在单个列表变量中。此列表中的命名组件包含模型的不同部分。最基本的命名组件是:约束矩阵(一个
)、客观向量(obj
),右边向量(园艺学会
),约束感知向量(感觉
)。其中,只有约束矩阵是强制性的,如果缺少其他所有模型字段,则用默认值代替。模型变量还可以包括可选组件(例如,客观意义)modelsense
)。
在我们的示例中,我们使用内置R矩阵
函数来构建约束矩阵一个
。一个
在这里以密集矩阵的形式存储。你也可以储存一个
作为一个稀疏矩阵,使用simple_triplet_matrix
函数大满贯
包装或sparseMatrix
类矩阵
包中。稀疏输入矩阵在lp2。R
的例子。
的其他组件模型
变量,包括目标向量、右侧向量和约束感向量。在每种情况下,我们都使用内置的c
函数初始化数组参数。
除了强制组件,本例还设置了两个可选组件:modelsense
和vtype
。前者用来表示目标函数的意义。默认值是最小化,所以我们将组件设置为“马克斯”
表明我们想要最大化指定的目标。的vtype
组件用于指示模型中变量的类型。在我们的示例中,所有变量都是二进制的(“B”
)。注意,我们的接口允许您为任何数组参数指定标量值。Gurobi接口将该标量展开为具有适当长度的常量数组。在本例中,标量值“B”
将被扩展为长度为3的数组,其中包含1“B”
的每列的值一个
。
关于默认变量边界的一个重要注意事项:数学编程中的约定是,默认情况下,变量的下界为0,上界为无穷大。如果您希望变量有不同的边界,则需要显式地提供它们。