文章目录

  • 相关知识点
    • LP线性规划问题
    • MIP混合整数规划
    • MIP的Python实现(docplex库)
    • MIP的Python实现(ortool库)

喜欢的话请关注我们的微信公众号~《你好世界炼丹师》。

  • 公众号主要讲统计学,数据科学,机器学习,深度学习,以及一些参加Kaggle竞赛的经验。
  • 公众号内容建议作为课后的一些相关知识的补充,饭后甜点。
  • 此外,为了不过多打扰,公众号每周推送一次,每次4~6篇精选文章。

微信搜索公众号:你好世界炼丹师。期待您的关注。


相关知识点

LP线性规划问题

  • Linear Problem
  • [百度百科]:研究线性约束条件下线性目标函数的极值问题的数学理论和方法。
    学过运筹学的小伙伴,可以看这个LP问题的标准型来回顾一下:

    不太熟悉的朋友可以看这个例题,再结合上面的标准型,来感受一下:

MIP混合整数规划

  • Mixed Integar Planing
  • 混合整数规划是LP的一种,决策变量部分是整数,不要求全部都是整数的规划问题。

MIP的Python实现(docplex库)

我们来解一个这样得简单得题目

from docplex.mp.model import Model  #导出库,只用这一个就够了
model = Model('LP') #可命名model为 'LP'
var_list = [i for i in range(0, 4)] #创建列表
X = model.continuous_var_list(var_list, lb=0, name='X') #创建变量列表
model.maximize(3 * X[0] + 5 * X[1] + 4 * X[2])  #设定目标函数
#添加约束条件
model.add_constraint(2 * X[0] + 3 * X[1] <= 1500)
model.add_constraint(2 * X[1] + 4 * X[2] <= 800)
model.add_constraint(3 * X[0] + 2 * X[1] + 5 * X[2] <= 2000)
sol = model.solve() #求解模型
print(sol)  #打印结果

但是这样抛出一个错误,目前还不知道怎么解决


这里给出一个cplex库得解决方法,跟docplex是同一个原理

# 先安装cplex
!pip install cplex

import cplex
from cplex.exceptions import CplexError
my_obj = [1.0, 2.0, 3.0, 1.0]
my_ub = [40.0, cplex.infinity, cplex.infinity, 3.0]
my_lb = [0.0, 0.0, 0.0, 2.0]
my_ctype = "CCCI"
my_colnames = ["x1", "x2", "x3", "x4"]
my_rhs = [20.0, 30.0, 0.0]
my_rownames = ["r1", "r2", "r3"]
my_sense = "LLE"try:mlp = cplex.Cplex()mlp.objective.set_sense(prob.objective.sense.maximize)mlp.variables.add(obj=my_obj,lb=my_lb,ub=my_ub,types=my_ctype,names=my_colnames)rows = [[["x1","x2","x3","x4"],[-1,1,1,10]],[["x1","x2","x3"],[1,-3,1]],[["x2","x4"],[1.0,-3.5]]]mlp.linear_constraints.add(lin_expr=rows,senses=my_sense,rhs=my_rhs,names=my_rownames)mlp.solve()except CplexError as exc:print(exc)
print()

输出打印结果

print("Solution status = ",mlp.solution.get_status(),":",end=' ')
print(mlp.solution.status[mlp.solution.get_status()])
print("Solution value = ",mlp.solution.get_objective_value())numcols = mlp.variables.get_num()
numrows = mlp.linear_constraints.get_num()slack = mlp.solution.get_linear_slacks()
x = mlp.solution.get_values()
print('x:')
print(x)

MIP的Python实现(ortool库)

个人而言,还是比较喜欢用ortool来解决MIP问题
混合整数规划MIP/线性规划LP+python(ortool库)实现 附代码

混合整数规划MIP/线性规划LP+python(cplex库)实现 附代码相关推荐

  1. 混合整数规划MIP/线性规划LP+python(ortool库)实现 附代码

    文章目录 相关知识点 LP线性规划问题 MIP混合整数规划 MIP的Python实现(Ortool库) assert MIP的Python实现(docplex库) 喜欢的话请关注我们的微信公众号~&l ...

  2. python混合整数线性规划_【Python代码】混合整数规划MIP/线性规划LP+python(ortool库)实现...

    相关知识点 LP线性规划问题 Linear Problem [百度百科]:研究线性约束条件下线性目标函数的极值问题的数学理论和方法. 学过运筹学的小伙伴,可以看这个LP问题的标准型来回顾一下: 不太熟 ...

  3. 新视角带你认识Python可视化库(附代码资源)

    作者:Dan Saber 翻译:笪洁琼 校对:梁傅淇 本文约16196字,建议阅读20+分钟. 本文中,作者借助拟人化的形式,让Python中值得一提的可视化库共同出演了一出戏剧,形象.生动地展现了不 ...

  4. 线性规划LP和混合整数规划MIP基础知识

    如果你刚刚入门线性规划,对于线性规划的基本原理.概念.术语,以及 Gurobi 内部的核心算法不了解的话,请花费 10分钟时间,阅读以下两个科普文章.如果对于英文不熟练的话,可以采用谷歌浏览器,然后选 ...

  5. Python 开源库及示例代码

    Python 开源库及示例代码 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) React 入门实战(干货) ...

  6. python常用代码入门-入门十大Python机器学习算法(附代码)

    入门十大Python机器学习算法(附代码) 今天,给大家推荐最常用的10种机器学习算法,它们几乎可以用在所有的数据问题上: 1.线性回归 线性回归通常用于根据连续变量估计实际数值(房价.呼叫次数.总销 ...

  7. Python科学绘图实例附代码

    Python绘图精简实例附代码 作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 Python绘图精简实例附代 ...

  8. 一文盘点三大顶级Python库(附代码)

    来源:开源最前线 本文约1500字,建议阅读5分钟. 本文为你分享最受数据科学青睐的3个顶级的Python库. Python在许多方面有着强大的吸引力 - 例如效率.代码可读性和速度方面,也正因为如此 ...

  9. 用Python进行机器学习(附代码、学习资源)

    作者:Tirthajyoti Sarkar 翻译:张逸 校对:冯羽 本文约3090字,建议阅读6分钟. 本文从非线性数据进行建模,带你用简便并且稳健的方法来快速实现使用Python进行机器学习. 使用 ...

最新文章

  1. 二叉搜索树(binary search tree)的建立、删除、查找
  2. ITK:计算Sigmoid
  3. 「第五篇」全国电子设计竞赛-电源题设计方案总结
  4. 反向代理与Real-IP和X-Forwarded-For(转)
  5. 查找字符串中要查找的字符串最后一次出现的位置
  6. postman 无法正常返回结果 Could not get any response
  7. 所以一切都是有套路的,按照套路出牌是最合适的方式。
  8. Linux中bond的七种网卡绑定模式详解
  9. matlab 2017a下载以及安装教程 亲测有效
  10. 概率密度函数曲线及绘制
  11. 【STM32-V7】STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2022-11-22)
  12. 使用 RSA 算法进行加解密,签名和验签
  13. IE被劫持的手动解除
  14. Jupyter notebook的主题和字体美化
  15. MapWinGIS4.9.3的二次开发
  16. 王道数据结构课代表 - 考研数据结构 第三章 栈和队列 究极精华总结笔记
  17. 拼多多存在多种重大风险
  18. Gitment给基于hexo的yilia主题的博客搭建免费评论系统
  19. java画星星_用java画色彩斑斓的星星
  20. 加推超级IP名片正式上线!联合京东打造个人轻商城

热门文章

  1. UNIX高级环境编程—第八章进程控制
  2. 护考人机对话用计算机吗,2017年护考改革 人机对话,有什么要注意的?
  3. 流放者柯南服务器搭建虚拟机,流放者柯南服务器搭建教程
  4. javacript回炉重造之基础细节点
  5. 建筑工程人转行之路续篇(五年后)
  6. 记一次攻防演练实战总结
  7. 滴普科技董事长兼CEO赵杰辉:打造数据智能基础设施拓展数字化场景
  8. 2013-09-30TinyOS下载MicaZ问题:Programmer is not responding
  9. 帧同步游戏 服务器相关实现
  10. 机电设备维修保养大全【必收】