首页>软件资讯>常见问题

常见问题

Gurobi求解器

发布时间:2024-05-10 09:45:19人气:154

关于Gurobi Optimization

Gurobi Optimization 成立于 2008 年,是著名的线性、混合整数、二次和更通用的非线性优化高级软件开发商。其旗舰产品 Gurobi Optimizer 因其在为数千到数百万个决策变量中的问题确定最佳解决方案方面的速度和稳健性的完美结合而备受推崇

Gurobi 由优化领域的三位著名专家 Zonghao Gu 博士、Edward Rothberg 博士和 Robert Bixby 教授创建,他们试图创建一个高性能求解器,以满足复杂数据驱动决策日益增长的需求,同时与流行的编程语言和平台轻松集成。这种适应性使 Gurobi 成为众多行业的首选,包括物流、金融、能源、电信和制造业。


Gurobi Optimizer 不断发展,整合了尖端研究和算法,以保持其在优化技术前沿的地位,扩大了所解决的问题类型的多样性,并扩大了可用的本地和基于云的解决方案的范围。Gurobi 对创新的承诺,加上强大的客户支持和社区参与,凸显了其作为推进数学优化实践的关键参与者的作用。

支持的问题类型

连续变量和整数变量的线性和二次优化,适用于凸和非凸情况,并扩展到广泛使用的非线性和逻辑表达式。


检测到特殊形式

目标和约束中的凸和非凸二次表达式;圆锥二次约束;方便的非线性和逻辑运算符。


可用的算法

对于连续线性和凸二次问题,原始单纯形和对偶单纯形方法以及内点(势垒)方法。对于整数问题,使用预求解、可行性启发式和切割生成器进行高级分支和切割。对于一般非线性问题,空间分支和边界和外近似。


功能特性

非凸二次和选定非线性问题的全局优化。用于屏障和分支和切割的共享内存处理。分布式并发优化和调优,以利用多台机器。简化对云服务的访问。多目标优化和不可行性诊断的特殊设施。

下载适用于所有平台的 Gurobi - Windows、Linux、macOS


Gurobi 机器学习

一个 Python 包,用于帮助在 数学优化模型。该软件包支持多种回归模型 (线性、逻辑、神经网络、决策树,...)培训人员 不同的机器学习框架(scikit-learn、LightGBM、XGBoost、Keras 和 PyTorch)。

介绍

机器学习 (ML) 技术与数学的集成 优化是一个越来越受关注的话题。一种特殊的方法是 能够在优化模型中使用经过训练的 ML 模型 (伯格曼等人。[BHB+22]、Maragno 等人 [MWB+21]、Ceccon 等人 [CJH+22])。在这种方法中, ML 模型的输入和预测是 优化,而其参数是固定的。我们说 ML 模型是 在优化模型中制定,我们参考输入和预测 分别作为输入变量和输出变量。它们之间的联系在于,在一个 可行解,输出变量值是 来自输入变量值的 ML 模型。


Gurobi Machine Learning 是一个开源 Python 包,用于制定训练有素的 回归模型 [1] 在 gurobipy 模型中为 用 Gurobi 求解器求解。


该软件包的目的是:


提供一种在 gurobipy 模型中制定回归模型的简单方法。


促进预测性和规范性之间的更深层次集成 分析学。


允许轻松比较使用不同回归模型的效果 相同的数学优化应用程序。


提高 Gurobi 在这些模型上的算法性能。


该软件包目前支持各种 scikit-learn 对象。它还可以配制 来自 XGboost 和 LightGBM <https://lightgbm.readthedocs.io/en/stable/>的梯度提升回归模型。 最后,它对 TensorFlow 和 PyTorch 的 Keras API 的支持有限。仅具有 ReLU 激活的神经网络 可以与这两个包一起使用。


该软件包正在积极开发中,如果用户有使用回归模型的应用程序,我们鼓励他们与我们联系 目前不可用。


下面,我们给出基本的安装和使用说明。 

安装

我们鼓励通过 pip 安装软件包(或将其添加到您的requirements.txt文件中):


 pip install gurobi-machinelearning

注意


如果尚未安装,则应安装 gurobipy、numpy 和 scipy 软件包。


注意


该包已经过 Python 3.9 和 Python 测试并受其支持 3.10.


下表列出了相关包的版本,这些包是 在当前版本 (1.5.0) 中测试和支持。

版本 1.5.0 支持的软件包


Package

Version

gurobipy

11.0.1

numpy

1.26.4

scipy

1.12.0

pandas

2.2.1

torch

2.2.1

scikit-learn

1.4.1.post1

tensorflow

2.15.0.post1

xgboost

2.0.3

lightgbm

4.3.0


用法

软件包提供的主要功能是 。它采用以下参数:gurobipy 模型、支持的回归模型、输入 Gurobi 变量和 输出 Gurobi 变量。


通过调用该函数,gurobipy 模型被增强了变量和 约束条件,以便在解决方案中,输出变量的值为 由回归模型根据输入变量的值进行预测。更多 形式上,如果我们用回归的预测函数表示 模型,通过输入变量和输出变量, 然后在任何解决方案中。


该函数返回派生自类的建模对象。该对象跟踪所有 已添加到 gurobipy 模型的变量和约束 建立回归的输入变量和输出变量之间的关系。


建模对象可以执行一些任务:


它创建的一切(即变量和约束以建立 输入和输出之间的关系)可以用该方法删除。


它可以打印使用该方法添加的内容的摘要。


一旦 Gurobi 计算出优化问题的解决方案,它就可以计算 回归模型从输入中预测的内容之间的差异 值和使用该方法的 Gurobi 解中的输出变量的值。


其功能是 应为任何支持的回归添加正确模型的速记 模型,但每个回归模型的单独函数也可用。 对于支持的框架和回归模型列表,以及相应的 函数请参考支持的回归模型部分。我们还简要地介绍了一下 在混合整数公式部分中概述各种回归模型在 Gurobi 中的表示方式。


对于某些回归模型,可以设置其他可选参数来进行调整 预测变量在 Gurobi 模型中的插入方式。这些记录在 从支持的回归模型链接的相应函数。



上一条:RedHat红帽高级副总裁Ashesh Badani :将开源方式引入AI领域

下一条:Gurobi解决优化问题