编者按
优化求解器对于做运筹学应用的学生来说,意义重大。
然而直到今天,放眼望去,全网(包括墙外)几乎没有一个系统的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/1094174835734831104嫌手机屏幕太小,看得不够过瘾!?
没问题!欢迎关注『运筹OR帷幄』官方B站:运筹OR帷幄,Cplex Python API系列视频教程和视频直播都会首发于B站。
B站网址:https://space.bilibili.com/403058474
此外,欲获得视频中的源代码,请于『运筹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帷幄』开直播、出教程啦!「视频」版块正式开通!
参考文献:
[1] https://jupyter.org/
[2] https://www.tiobe.com/tiobe-index/
[3]https://www.ibm.com/support/knowledgecenter/zh/SSSA5P_12.7.0/ilog.odms.cplex.help/CPLEX/homepages/reffileformatscplex.html
相关文章推荐
使用商用优化求解器,可构建并求解大规模的优化模型,为复杂决策问题提供解决方案。CPLEX Python API系列教程视频旨在为希望入门和进阶的运筹学学习者提供实用的引导和教学,从理论走向实践。欢迎各位收看上一期教程视频——CPLEX以及其Python API的下载和安装。
《视频教程 | 用Python玩转运筹优化求解器IBM Cplex(一 )
作者:唐博
关于本文责编
【视频】版块主编/责编(字幕组)火热招募中:
【视频】版块现招募版块(副)主编,欢迎对运筹学/数据科学/AI科普有热情的小伙伴加盟,将学科知识传播给平台10W+的同行,共同学习和成长。
最后,如果对于【视频】版块或者Cplex教程的提纲有任何建议或想法,都欢迎在评论区指出!
扫二维码关注『运筹OR帷幄』公众号:
点击查看『运筹OR帷幄』志愿者招募介绍及加入方式: