【Gurobi】学习笔记 | (一)全局函数 适用于Python


在这里插入图片描述

本文章参考Gurobi官方手册,内容上为更适合入门者学习,有所删减。

下载和调用gurobipy库

进入Python环境,下载名为“gurobi”的软件包,并且在每次使用Gurobi求解时,需要引入这个软件包。


from gurobipy import *

与Gurobi-Python中其他接口相比,全局函数不需要Gurobi对象来调用。

multidict() 函数

  • 功能:将一个字典分割成多个字典
  • 输入:Python字典
  • 输出:一个列表,其中第一个列表包含字典中的共享“键”,其余列表包含从输入字典中按列拆分形成的新字典
# 示例

keys, dict1, dict2 = multidict({
     'key1': [1, 2],
     'key2': [1, 3],
     'key3': [1, 4]})

print(keys)     # ['key1', 'key2', 'key3']
print(dict1)    # {'key1': 1, 'key2': 1, 'key3': 1}
print(dict2)    # {'key1': 2, 'key2': 3, 'key3': 4}

paramHelp() 函数

  • 功能:获取Gurobi参数的相关信息
  • 输入:参数名
  • 输出:参数信息
  • 说明:除准确输入参数名,还可以使用“*”或者“?”通配符。如果有多个参数匹配,将列出所哟匹配的参数信息
# 示例

paramHelp("Cuts")
paramHelp("Heu*")
paramHelp("*cuts")

quicksum() 函数

  • 功能:求和函数,在计算大型Gurobi表达式时,效率高于Python自带的sum() 函数
  • 输入:需要求和的各项列表
  • 输出:求和值
  • 说明:示例中的代码暂时跑不了,因为需要定义Model对象和相关变量
# 示例

expr = quicksum([2*x, 3*y+1, 4*z*z])
expr = quicksum(model.getVars())

read() 函数

  • 功能:从文件中阅读模型
  • 输入:文件名。支持包含如下后缀的文件:.mps, .rew, .lp, .rlp, .dua, .dlp, .ilp, or .opb。支持压缩文件:.gz, .bz2, .zip, or .7z。同时也支持通配符查询,若同时匹配到许多个文件,仅读取第一个文件
  • 输出:从文件中读取的模型
  • 说明:该函数还包含另一个与环境有关的输入env,其默认值是defaultEnv,作为初学者可以不做了解,后续使用时再讲述
# 示例

m = read("afiro.mps") # 读取名为afiro的文件中的模型,并定义为m
m.optimize() # 对模型m进行优化

readParams() 函数

  • 功能:从文件中阅读一组参数设置
  • 输入:文件名。文件必须为PRM格式
  • 输出:无,仅读取
# 示例

readParams("params.prm")

resetParams() 函数

  • 功能:将所有参数重置为默认参数值
  • 输入:无
  • 输出:无
  • 说明:现有模型中,存储在Python数据结构内(列表、字典等)或内部用户类中的参数均不受影响
# 示例

resetParams()

setParam() 函数

  • 功能:给一个参数设置一个新的参数值
  • 输入:参数名,新的参数值
  • 输出:无
  • 说明:现有模型中,存储在Python数据结构内(列表、字典等)或内部用户类中的参数均不受影响。参数名可以使用通配符对参数进行批量设置,参数值也可以使用“default”将其设置为默认参数值
# 示例

setParam("Cuts", 2)
setParam("Heu*", 0.5)
setParam("*Interval", 10)

writeParams() 函数

  • 功能:将模型参数值写入一个文件内,该文件是PRM格式
  • 输入:写入文件名
  • 输出:模型参数文件
# 示例

writeParams("params.prm") # 将模型参数写入名为params的参数文件

相关推荐

  1. python学习笔记——函数

    2024-04-12 21:20:01       35 阅读
  2. Python自学(适用略有基础)

    2024-04-12 21:20:01       23 阅读
  3. Python学习笔记

    2024-04-12 21:20:01       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-12 21:20:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-12 21:20:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-12 21:20:01       82 阅读
  4. Python语言-面向对象

    2024-04-12 21:20:01       91 阅读

热门阅读

  1. Mysql 常用关键字总结

    2024-04-12 21:20:01       36 阅读
  2. 【HDFS】 写数据报 NOT_ENOUGH_STORAGE_SPACE

    2024-04-12 21:20:01       37 阅读
  3. 鸿蒙 HarmonyOS应用模型简要分析

    2024-04-12 21:20:01       34 阅读
  4. 力扣经典150题第十六题:接雨水

    2024-04-12 21:20:01       33 阅读
  5. WPF数据绑定

    2024-04-12 21:20:01       36 阅读
  6. 解锁ChatGPT的论文写作技巧,让学术之路更顺畅

    2024-04-12 21:20:01       52 阅读
  7. 【回溯】Leetcode 78. 子集【中等】

    2024-04-12 21:20:01       36 阅读
  8. 日志埋点功能

    2024-04-12 21:20:01       35 阅读
  9. 【无标题】

    2024-04-12 21:20:01       34 阅读
  10. 深度学习的发展历史与关键技术

    2024-04-12 21:20:01       40 阅读
  11. [C++] 小游戏 斗破苍穹 2.10.1 版本 zty出品

    2024-04-12 21:20:01       36 阅读
  12. LeetCode //C - 540. Single Element in a Sorted Array

    2024-04-12 21:20:01       33 阅读
  13. 最大连通块

    2024-04-12 21:20:01       31 阅读