GRBEnv#
-
class GRBEnv#
Gurobi环境对象。Gurobi模型总是与一个环境相关联。在创建和填充模型之前,您必须先创建一个环境。在您的程序中,通常只需要一个环境对象。
环境对象上的方法主要用于管理Gurobi参数(例如,
get
,getParamInfo
,set
)。-
GRBEnv GRBEnv()#
GRBEnv
对象的构造函数。创建一个 Gurobi 环境(禁用日志记录)。此方法还将填充您在gurobi.lic
文件中指定的任何参数(ComputeServer、TokenServer、ServerPassword 等)。此方法还将检查当前工作目录中是否存在名为gurobi.env
的文件,如果存在,它将尝试从此文件中读取参数设置。该文件应为 PRM 格式(简而言之,每行应包含一个参数名称,后跟该参数的所需值)。通常,您应该努力在程序中创建一个单一的Gurobi环境,即使您计划处理多个模型。重复使用一个环境比创建和销毁多个环境要高效得多。唯一的例外是如果您正在编写多线程程序,因为环境不是线程安全的。在这种情况下,您需要为每个线程单独创建一个环境。
- Returns:
一个环境对象(没有关联的日志文件)。
-
GRBEnv GRBEnv(bool empty)#
GRBEnv
对象的构造函数。如果empty=true
,则创建一个空的环境。使用GRBEnv::start
来启动环境。如果empty=false
,结果与不提供任何参数给构造函数相同。通常,您应该努力在程序中创建一个单一的Gurobi环境,即使您计划处理多个模型。重复使用一个环境比创建和销毁多个环境要高效得多。唯一的例外是如果您正在编写多线程程序,因为环境不是线程安全的。在这种情况下,您需要为每个线程单独创建一个环境。
- Parameters:
empty – 表示环境是否应为空。如果您希望在实际启动环境之前设置参数,则应使用
empty=true
。如果您希望连接到计算服务器、令牌服务器、Gurobi即时云、集群管理器或使用WLS许可证,这可能很有用。有关更多详细信息,请参阅环境部分。- Returns:
一个环境对象。
-
GRBEnv GRBEnv(const string &logFileName)#
GRBEnv
对象的构造函数。创建一个 Gurobi 环境(启用日志记录)。此方法还将填充在您的gurobi.lic
文件中指定的任何参数(ComputeServer、TokenServer、ServerPassword 等)。此方法还将检查当前工作目录中是否存在名为gurobi.env
的文件,如果存在,它将尝试从此文件中读取参数设置。该文件应为 PRM 格式(简而言之,每行应包含一个参数名称,后跟该参数的所需值)。通常,您应该努力在程序中创建一个单一的Gurobi环境,即使您计划处理多个模型。重复使用一个环境比创建和销毁多个环境要高效得多。唯一的例外是如果您正在编写多线程程序,因为环境不是线程安全的。在这种情况下,您需要为每个线程单独创建一个环境。
- Parameters:
logFileName – 所需的日志文件名。
- Returns:
一个环境对象。
-
double get(GRB_DoubleParam param)#
查询一个双精度值参数的值。
- Parameters:
param – 正在查询的参数。请参阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、最大值和默认值。
- Returns:
请求参数的当前值。
-
int get(GRB_IntParam param)#
查询一个整数值参数的值。
- Parameters:
param – 正在查询的参数。请参阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、最大值和默认值。
- Returns:
请求参数的当前值。
-
string get(GRB_StringParam param)#
查询字符串值参数的值。
- Parameters:
param – 正在查询的参数。请参阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、最大值和默认值。
- Returns:
请求参数的当前值。
-
const string getErrorMsg()#
查询与此环境相关的最新异常的错误信息。
- Returns:
错误字符串。
-
void getParamInfo(GRB_DoubleParam param, double *valP, double *minP, double *maxP, double **defP)#
获取有关双精度参数的详细信息。
- Parameters:
param – 感兴趣的参数。请查阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、 最大值和默认值。
valP – 参数的当前值。
minP – 参数允许的最小值。
maxP – 参数允许的最大值。
defP – 参数的默认值。
-
void getParamInfo(GRB_IntParam param, int *valP, int *minP, int *maxP, int *defP)#
获取有关整数参数的详细信息。
- Parameters:
param – 感兴趣的参数。请查阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、 最大值和默认值。
valP – 参数的当前值。
minP – 参数允许的最小值。
maxP – 参数允许的最大值。
defP – 参数的默认值。
-
void getParamInfo(GRB_StringParam param, string *valP, string *defP)#
获取有关字符串参数的详细信息。
- Parameters:
param – 感兴趣的参数。请查阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、 最大值和默认值。
valP – 参数的当前值。
defP – 参数的默认值。
-
void message(const string &message)#
向控制台和日志文件写入一条消息。
- Parameters:
message – 要写入的消息。
注意
除非设置了OutputFlag参数,否则此调用无效。此外,在
MESSAGE
回调(参见WHERE 值)和日志回调中,它会被忽略。控制台日志可以通过LogToConsole进行控制。
-
void readParams(const string ¶mfile)#
从文件中读取新的参数设置。
请参考 参数部分以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、最大值和默认值。
参数应每行列出一个,首先是参数名称,其次是所需的值。例如:
# Gurobi parameter file Threads 1 MIPGap 0
空白行和以井号开头的行将被忽略。
- Parameters:
paramfile – 包含参数设置的文件名称。
-
void set(GRB_DoubleParam param, double newvalue)#
设置一个双精度值参数的值。
- Parameters:
param – 正在修改的参数。请查阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述以及最小、最大和默认值。
newvalue – 参数所需的新值。
注意
请注意,模型在创建时会获得其自己的环境副本。对原始环境的更改不会影响副本,反之亦然。使用适当版本的重载方法
GRBModel::set
来更改现有模型上的参数。
-
void set(GRB_IntParam param, int newvalue)#
设置一个整型参数的值。
- Parameters:
param – 正在修改的参数。请查阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述以及最小、最大和默认值。
newvalue – 参数所需的新值。
注意
请注意,模型在创建时会获得其自己的环境副本。对原始环境的更改不会影响副本,反之亦然。使用适当版本的重载方法
GRBModel::set
来更改现有模型上的参数。
-
void set(GRB_StringParam param, const string &newvalue)#
设置字符串类型参数的值。
- Parameters:
param – 正在修改的参数。请查阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述以及最小、最大和默认值。
newvalue – 参数所需的新值。
注意
请注意,模型在创建时会获得其自己的环境副本。对原始环境的更改不会影响副本,反之亦然。使用适当版本的重载方法
GRBModel::set
来更改现有模型上的参数。
-
void set(const string ¶m, const string &newvalue)#
仅使用字符串设置任何参数的值。
- Parameters:
param – 正在修改的参数的名称。 请查阅 参数部分 以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、最大值和默认值。
newvalue – 参数所需的新值。
注意
请注意,模型在创建时会获得其自己的环境副本。对原始环境的更改不会影响副本,反之亦然。使用适当版本的重载方法
GRBModel::set
来更改现有模型上的参数。
-
void start()#
启动一个空的环境。如果环境已经启动,此方法将不执行任何操作。如果调用失败,环境将保持与调用此方法之前相同的状态。
此方法还将填充您的
gurobi.lic
文件中指定的任何参数(ComputeServer、TokenServer、ServerPassword等)。此方法还将检查当前工作目录中是否存在名为gurobi.env
的文件,如果存在,它将尝试从此文件中读取参数设置。该文件应为PRM格式(简而言之,每行应包含一个参数名称,后跟该参数的所需值)。之后,它将应用用户在此调用之前指定的所有参数更改。请注意,这可能会覆盖许可证文件或gurobi.env
文件(如果存在)中设置的参数。在执行所有这些更改后,代码将实际激活环境,并使其准备好与模型一起工作。
通常,您应该努力在程序中创建一个单一的Gurobi环境,即使您计划处理多个模型。重复使用一个环境比创建和销毁多个环境要高效得多。唯一的例外是如果您正在编写多线程程序,因为环境不是线程安全的。在这种情况下,您需要为每个线程单独创建一个环境。
请参考 参数部分以获取Gurobi参数的完整列表,包括它们的用途描述及其最小值、最大值和默认值。
-
GRBEnv GRBEnv()#