割平面法python_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)

编者按

优化求解器对于做运筹学应用的学生来说,意义重大。

然而直到今天,放眼望去,全网(包括墙外)几乎没有一个系统的Cplex中文求解器教程。

作为华人运筹学的最大的社区,『运筹OR帷幄』 责无旁贷,我们决定承担这“吃力不讨好”的责任。

Cplex视频教程由『运筹OR帷幄』【视频】版块荣誉出品,主编留德华叫兽策划和监制,【视频】版块责编唐博编程并录制,初步设置16节课,希望能为大家扫盲数学规划求解器的编程基础,并且用实例带大家入门如今最火的人工智能、计算机视觉(底层即优化问题)。文章作者:唐博

责任编辑:留德华叫兽

文章发表于微信公众号【运筹OR帷幄】:视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)

欢迎原链接转发,转载请私信@运筹OR帷幄获取信息,盗版必究。

敬请关注和扩散本专栏及同名公众号,会邀请全球知名学者发布运筹学、人工智能中优化理论等相关干货、知乎Live及行业动态:『运筹OR帷幄』大数据人工智能时代的运筹学

一、关于Jupyter Notebook

CPLEX Python教程视频主要是在Jupyter Notebook上进行的。Jupyter Notebook支持运行 40 多种编程语言,是一个非常强大的交互式笔记本。它将可执行代码、实时的运行结果(包括可视化的图像)、markdown说明文本、Latex数学公式等整合在一个Web文档中,帮助提升用户工作效率和代码的可读性,在数据科学的工作中发挥着重要的作用。自然,也是非常好的教学工具。

Jupyter Notebook文档

关于Jupyter Notebook,想必很多使用Python进行工作学习的朋友对它并不陌生,网上也有很多安装和使用的相关教程和讨论,因此在本文中不再赘述。

二、关于CPLEX API

CPLEX拥有自己的优化编程语言 OPL(Optimal Programming Language),打开IBM CPLEX Studio,即可创建 OPL 项目建模求解。此外,还可以通过在命令行输入cplex的方式,在命令行使用OPL建模。

在命令行输入CPLEX

更为重要的是,CPLEX设有C++,JAVA,Python,.NET,MATLAB等多种语言的接口,用户可以使用自己熟悉的语言主场作战,调用API进行建模求解。

Python一种解释型、面向对象、动态数据类型的高级程序设计语言。我们选择Python作为教程的建模语言,主要有以下两点原因:

● Python语法可读性非常高,是公认最简单易学的语言,是入门者和非计算机专业人士接触编程的最佳选择。

● 近些年来,Python备受追捧,使用范围也十分广泛。在本月(2019年3月)最新发布的TOBIE指数排行榜中,Python再次超越C++成为第3名。在这一趋势下,我们相信很多运筹优化的学习者都有经验或者有意愿去使用Python。

TIOBE编程语言排行榜

三、LP、MPS文件格式

教程视频读写了LP和MPS文件,这里对两种文件格式做出简要说明,在视频中也会进行解读。

LP文件格式非常直观,采用的是一般形式的代数数学模型。

LP格式

与LP 格式相反,MPS 格式是面向列的格式——按列(变量)而不是按行(约束)来指定问题。

MPS格式

四、第二期视频内容

● LP、MPS文件介绍

● LP、MPS文件读取

● 模型求解

● LP、MPS文件写入

好了,千呼万唤使出来,下面便是第二期的视频教程:https://www.zhihu.com/video/1102683030484877312

嫌手机屏幕太小,看得不够过瘾!?

没问题!欢迎关注『运筹OR帷幄』官方B站:运筹OR帷幄,Cplex Python API系列视频教程和视频直播都会首发于B站。

此外,欲获得视频中的源代码,请于『运筹OR帷幄』公众号后台回复关键词: Cplex教程

强烈建议大家下载源代码,跟着唐博一起手撸Cplex的Python源代码喔!~

五、Cplex视频教程系列(Python API)

Cplex视频教程由『运筹OR帷幄』视频版块荣誉出品,主编留德华叫兽策划和监制,【视频】版块责编唐博编程并录制。

我们假设读者已有一定的Python编程基础,在传授如何用Python调用Cplex求解数学规划问题的同时,我们也试图讲解如何把一个实际问题(例如计算机视觉案例)数学建模成整数规划模型,以及一些常用的大规模优化问题的分解方法(割平面、列生成)等建模技巧。

希望这个系列视频能为大家扫盲数学规划求解器的编程基础,并且用实例带大家入门如今最火的人工智能、计算机视觉(底层都是优化问题)。

总提纲(试行):

● CPLEX的下载和安装

● CPLEX Python API的安装和调用

● 数学规划模型lp、mps格式文件的读写

● 线性规划问题建模及求解

● 线性规划问题敏感性分析

● 线性规划问题优化器选择

● 混合整数规划问题建模及求解

● 混合整数规划问题求解策略设置

● 混合整数二次规划问题求解

● 模型修改和重新优化

● 进阶版--绝对值不等式转线性

● 进阶版--高次不等式转线性

● 进阶版--大M不等式及其伤害

● 进阶版--数学建模的艺术之一题多解

● 进阶版--割平面法之计算机视觉实例

● 进阶版--列生成法之计算机视觉实例

以上提纲仅为试行版本,随着视频录制的进行,可能会有修改或增减。

也希望优化求解器大牛们参与到我们的视频教程创作中来,或提供宝贵的建议,一起参与到运筹学的科普中~

视频虽然只有不到10分钟,但是前期策划和转变,加上反复录制和剪辑,前前后后花了至少有8个小时。

不光是录制视频,其实『运筹OR帷幄』创作推文也一样,每篇文章都会花费责编/作者数小时创作/编辑。

因此,各位读者如果看到您觉得不错的推文,希望可以点个“好看”和分享,让知识传播地更远,一起科普运筹学!

郑重声明:

所有Cplex Python API视频教程

● 免费

● 代码开源

六、运筹OR帷幄【视频】版块成立啦

「视频」版块上线初期,将涵盖三个模块:

Part ONE:

视频教程--即类似今天这样的技术视频教程

Part TWO:

科普快照--即科普类、趣味性视频,让学科传播地更远

Part THREE:

SundayLive--即留德华叫兽担任主播,并不定期邀请行业好友/大佬,与大家谈天说地

七、运筹OR帷幄【代码咨询】服务

经常在『运筹OR帷幄』的20+细分学术群看到小伙伴们有着各式各样的代码问题,苦于群友们忙于自己的学业或事业,而算法设计/代码bug又不是一眼就能看出、三言俩语就能解决的问题,因此经常问题抛出后就石沉大海。

也曾经在我们某个学术群遇到群友私下达成代码咨询“交易”,后因”服务“不周”导致撕破脸皮并“在群里“人肉”的尴尬画面。

『运筹OR帷幄』作为全球最大的华人运筹学社区,自2018年将社区扩展至人工智能、数据科学,全网拥有20W+专业受众,因其专业性和社区凝聚力广受粉丝的赞誉。

粉丝的需求得不到满足我们看在眼里,我们决定作为平台仲裁方,对接 有代码咨询需求 和 代码极客 这俩类人群。一方面,我们匹配供给双方,试图解决Bipartite Matching这个组合优化问题;

另一方面,作为拥有公信力的平台,我们会制定付费咨询须知,并派出专员全程跟进咨询进程,避免不必要的纠纷。

『运筹OR帷幄』初期将半公益地为大家服务,如果你:有任何代码相关的问题,不论是初级编程语法、算法、数据结构问题,或是运筹学、机器学习、NLP、计算机视觉算法;

是编程极客,将写代码/啃算法/Debug当作你的精神食粮

请在『运筹OR帷幄』公众号后台回复:代码咨询,获取进一步信息。

欲知详情,请见:

参考文献:

相关文章推荐

使用商用优化求解器,可构建并求解大规模的优化模型,为复杂决策问题提供解决方案。CPLEX Python API系列教程视频旨在为希望入门和进阶的运筹学学习者提供实用的引导和教学,从理论走向实践。欢迎各位收看上一期教程视频——CPLEX以及其Python API的下载和安装。

作者:唐博

关于本文责编

【视频】版块主编/责编(字幕组)火热招募中:

【视频】版块现招募版块(副)主编,欢迎对运筹学/数据科学/AI科普有热情的小伙伴加盟,将学科知识传播给平台10W+的同行,共同学习和成长。

最后,如果对于【视频】版块或者Cplex教程的提纲有任何建议或想法,都欢迎在评论区指出!

扫二维码关注『运筹OR帷幄』公众号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值