SCIP 如何在我使用 SCIP 时通过使用 c++ 在我的源代码中添加 objective 函数
SCIP how to add objective function in my source code by using c++ when I use SCIP
我想使用 SCIP 作为 MIP 求解器,但我不知道如何在我的源代码中添加 objective 函数。我在SCIP C++示例代码中没有找到相关代码。
SCIP 只理解线性 objective 函数,即每个变量都有一个 objective 系数,可以作为 SCIP_Real obj
传递给
- SCIPCreateVar() 或
- SCIPcreateVarBasic() 在变量的创建时间,或
- 通过为已创建的变量调用 SCIPchgVarObj()。
SCIP 的所有示例项目都以一种或另一种形式创建变量并设置 objective 系数。请注意,默认情况下 SCIP 最小化 给定的 objective 函数。如何设置简单 MIP 的一个很好的例子是 SCIP 示例目录中的 n-queens example。这个例子设置了一个最大化问题!
非线性 objective 函数可以作为约束添加,使用人工 objective 变量,其值受约束约束,系数为 objective 1。很好的例子设置非线性问题可以在 Callable Library example.
中浏览
每个变量的 objective 系数必须在创建期间指定,即在 SCIPcreateVar
调用中指定。您还可以通过调用 SCIPchgVarObj
来更改 objective 系数。请注意,SCIP 仅支持线性 objective 函数。
我想使用 SCIP 作为 MIP 求解器,但我不知道如何在我的源代码中添加 objective 函数。我在SCIP C++示例代码中没有找到相关代码。
SCIP 只理解线性 objective 函数,即每个变量都有一个 objective 系数,可以作为 SCIP_Real obj
传递给
- SCIPCreateVar() 或
- SCIPcreateVarBasic() 在变量的创建时间,或
- 通过为已创建的变量调用 SCIPchgVarObj()。
SCIP 的所有示例项目都以一种或另一种形式创建变量并设置 objective 系数。请注意,默认情况下 SCIP 最小化 给定的 objective 函数。如何设置简单 MIP 的一个很好的例子是 SCIP 示例目录中的 n-queens example。这个例子设置了一个最大化问题!
非线性 objective 函数可以作为约束添加,使用人工 objective 变量,其值受约束约束,系数为 objective 1。很好的例子设置非线性问题可以在 Callable Library example.
中浏览每个变量的 objective 系数必须在创建期间指定,即在 SCIPcreateVar
调用中指定。您还可以通过调用 SCIPchgVarObj
来更改 objective 系数。请注意,SCIP 仅支持线性 objective 函数。