c++调用cplex求解例子_视频教程 | 用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/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帷幄』志愿者招募介绍及加入方式:
c++调用cplex求解例子_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)相关推荐
- c++调用cplex求解例子_递归算法的R语言实现 (罗汉塔、九连环、斐波那契数列等问题的求解)...
递归算法用函数来实现,通俗地说就是函数对自身的调用,求解递归问题就转化为函数的调用关系问题.函数f(n)随自变量n的增加而变化,函数的调用关系也就表现为f(n)与f(n-1)或f(n-2)关系的问题. ...
- python函数调用的例子_实例讲解Python中函数的调用与定义
调用函数: #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 函数调用 >>> abs(100) 100 >>> a ...
- 子程序调用编程序例子_汇编程序设计:LCD1602静态显示
嗨,大家好,昨天刚写好一个汇编程序,之前有bug,不能正确显示,经过一天的调试修改终于改好了,和大家分享一下. 我今天给大家介绍的是LCD1602的显示,该程序是用汇编语言来写的.我们先来看一下实物效 ...
- python调用cmd执行命令_详解python调用cmd命令三种方法
目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...
- python语言例子_第一个Python实例
1. 第一个Python实例 Python随着时代的进步,变得越来越受欢迎,当然也有它受人喜欢的道理.下面我们首先通过对比来了解一下. 不知道大家有没有学过C或C++,在C语言中输出一个简单的'Hel ...
- linux中python如何调用matlab的数据_?如何在Python中加入多个数据帧?
全文共2235字,预计学习时长7分钟 来源:Pexels 初学Python编程的人,面临的是各种未知的挑战. 下面是一个几乎让所有更有抱负的数据科学家都感到意外的场景: 你正在处理一个从多个源收集数据 ...
- python调用有道词典_菜鸟上手Python最有野心的库Asyncio
Asyncio是Python中非常牛逼的一个异步并发库,比较复杂不太好理解!从Py3.4之后开始加入这个内置并发库,一举解决了Python中高并发的问题.它提供了一整套异步IO模型的编程接口,可以说它 ...
- python调用sdk的文章_如何使用 python 接入虹软 ArcFace SDK
公司需要在项目中使用人脸识别SDK,并且对信息安全的要求非常高,在详细了解市场上几个主流人脸识别SDK后,综合来看虹软的Arcface SDK比较符合我们的需求,它提供了免费版本,并且可以在离线环境下 ...
- python 调用shell 不阻塞_遇到问题---python调用shell脚本时subprocess.check_call不阻塞
遇到的问题 使用命令 subprocess.check_call(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) ...
最新文章
- 密度聚类算法DBSCAN实战及可视化分析
- 从大门看守到贴身保镖服务的安全纵深防御
- Jquery 选择器大全 【转载】
- 【Linux shell】sed实践(2)
- php后台无法接受文件,ios afnetworking2.x上传图片 服务端php无法接受文件问题
- asp.net webapi 自托管插件式服务(转)
- 函数递归/二分法/列表,字典生成式/三元表达式/匿名函数/内置函数
- FPGA设计中遇到的奇葩问题之“芯片也要看出身”(二)
- 【Excel2013教程】如何破解vba工程密码
- cop2000计算机组成原理,COP2000计算机组成原理实验系统.pdf
- sqlite3_英英词典
- win11如何备份系统 Windows11备份系统的设置方法
- 在iOS开发中如何高效使用静态库
- Xcode不用数据线---真机测试
- 蜗牛星际安装winserver 2012的网卡驱动
- Delphi 把字符串复制到剪贴板
- 第四讲 介词 (Preposition)
- 良心推荐,一款PDF转JPG图片的免费在线工具
- [附源码]计算机毕业设计Python+uniapp安卓日程管理APPqksh9(程序+源码+LW+远程部署)
- 给歌曲配置和弦的技巧
热门文章
- hibernate查询缓存_Hibernate查询缓存如何工作
- 命令模式应用_命令设计模式的应用
- 内存映射文件 写入 卡住_在Java中使用内存映射文件时检测(写入)失败
- Java,JavaFX的流畅设计风格滑块
- Istio的零停机滚动更新
- wicket_Wicket模型的干净方法
- cpu 抖动_微抖动,繁忙的等待和绑定CPU
- Packt发行的$ 5 Java编程书籍:精通Java 9,Java 9 High Performance
- 用杰克逊流式传输大型JSON文件– RxJava常见问题解答
- spring pom设置_Spring社交Twitter设置