Gurobi求解器入门:手把手教你用Python搞定第一个混合整数规划(MIP)问题
第一次接触运筹优化时,看到那些复杂的数学公式和算法总让人望而生畏。直到我发现了Gurobi——这个被业界称为"优化求解器中的劳斯莱斯"的工具,才真正体会到数学建模的魅力。本文将带你从零开始,用Python和Gurobi解决一个实际的混合整数规划问题,避开那些教科书式的理论讲解,直接进入实战环节。
1. 环境准备与安装
在开始之前,我们需要确保Python环境已经就绪。推荐使用Anaconda创建独立环境,避免与其他项目产生依赖冲突:
bash复制conda create -n gurobi_env python=3.8
conda activate gurobi_env
Gurobi提供学术免费许可和企业付费许可两种选择。对于学生和研究人员,只需在官网注册教育账号即可获得免费license。安装过程非常简单:
python复制pip install gurobipy
安装完成后,可以通过以下代码验证是否成功:
python复制import gurobipy as gp
print(gp.GRB_VERSION)
提示:如果遇到license问题,建议将获取的license文件放置在用户主目录下的gurobi.lic路径,或者通过grbgetkey命令在线激活。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 问题定义:生产计划案例
假设我们经营一家小型工厂,需要制定下周的生产计划。工厂可以生产两种产品:
- 产品A:每件利润120元,需要2小时加工时间和1单位原材料
- 产品B:每件利润150元,需要3小时加工时间和2单位原材料
工厂资源限制:
- 总加工时间不超过100小时
- 原材料库存为50单位
- 由于设备限制,产品A至少生产5件
- 产品B的生产数量必须是整数
这是一个典型的混合整数规划问题,包含连续变量(产品A)和整数变量(产品B)。让我们用Gurobi来建模求解。
3. 模型构建步骤详解
3.1 初始化模型
首先导入必要的库并创建模型对象:
python复制import gurobipy as gp
from gurobipy import GRB
# 创建模型
model = gp.Model("
