【发布时间】:2019-01-08 08:26:00
【问题描述】:
我想使用 SCIP 作为 MIP 求解器,但我不知道如何在我的源代码中添加目标函数。我在 SCIP C++ 示例代码中没有找到相关代码。
【问题讨论】:
我想使用 SCIP 作为 MIP 求解器,但我不知道如何在我的源代码中添加目标函数。我在 SCIP C++ 示例代码中没有找到相关代码。
【问题讨论】:
SCIP 只理解线性目标函数,即每个变量都有一个目标系数,可以作为SCIP_Real obj 传递给
SCIP 的所有示例项目都以一种或另一种形式创建变量并设置目标系数。请注意,SCIP 默认最小化给定的目标函数。如何设置简单 MIP 的一个很好的示例是 SCIP 示例目录中的 n-queens example。这个例子设置了一个最大化问题!
非线性目标函数可以作为约束添加,使用人工目标变量,其值受约束限制,目标系数为 1。可以在Callable Library example 中浏览设置非线性问题的良好示例。
【讨论】:
每个变量的目标系数必须在创建期间指定,即在SCIPcreateVar 调用中。您还可以通过调用SCIPchgVarObj 来更改目标系数。请注意,SCIP 仅支持线性目标函数。
【讨论】: