You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取数学规划二进制变量数量及Drake中Gurobi输出方法

Gurobi二进制变量相关操作

1. 获取数学规划中的二进制变量数量

直接调用Gurobi模型的NumBinVars属性即可得到当前模型中二进制变量的总数,示例代码:

import gurobipy as gp

# 创建模型并添加变量
model = gp.Model()
model.addVar(vtype=gp.GRB.BINARY, name="x1")
model.addVar(vtype=gp.GRB.BINARY, name="x2")
model.addVar(vtype=gp.GRB.CONTINUOUS, name="c1")

# 输出二进制变量数量
print(f"二进制变量总数: {model.NumBinVars}")  # 输出结果为2

2. 获取所有二进制变量的向量引用

通过遍历模型变量并筛选类型为GRB.BINARY的变量,即可得到所有二进制变量的列表(向量引用),示例代码:

# 筛选所有二进制变量
binary_vars = [var for var in model.getVars() if var.VType == gp.GRB.BINARY]

# 遍历输出二进制变量名称
for var in binary_vars:
    print(f"二进制变量: {var.VarName}")

3. 获取包含二进制变量数量的Gurobi标准输出

Gurobi默认在求解时会输出包含变量统计的日志,其中就有二进制变量数量。如果之前关闭了输出,可通过以下参数开启:

# 开启输出日志
model.setParam("OutputFlag", 1)

求解模型后,控制台会输出类似如下内容:

Optimize a model with 0 rows, 3 columns and 0 nonzeros
Model fingerprint: 0xabc12345
Variables: 3, Binary: 2, Integer: 0, Continuous: 1
...

若需要将日志保存到文件,可设置日志文件路径:

# 设置日志输出文件
model.setParam("LogFile", "gurobi_solve.log")

求解完成后,日志文件中会包含完整的输出信息,其中同样包含二进制变量的统计数据。

内容的提问来源于stack exchange,提问作者HoliInn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:57:14