c++调用cplex求解例子_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)
編者按
優(yōu)化求解器對于做運籌學(xué)應(yīng)用的學(xué)生來說,意義重大。
然而直到今天,放眼望去,全網(wǎng)(包括墻外)幾乎沒有一個系統(tǒng)的Cplex中文求解器教程。
作為華人運籌學(xué)的最大的社區(qū),『運籌OR帷幄』 責(zé)無旁貸,我們決定承擔(dān)這“吃力不討好”的責(zé)任。
Cplex視頻教程由『運籌OR帷幄』【視頻】版塊榮譽出品,主編留德華叫獸策劃和監(jiān)制,【視頻】版塊責(zé)編唐博編程并錄制,初步設(shè)置16節(jié)課,希望能為大家掃盲數(shù)學(xué)規(guī)劃求解器的編程基礎(chǔ),并且用實例帶大家入門如今最火的人工智能、計算機(jī)視覺(底層即優(yōu)化問題)。
文章作者:唐博責(zé)任編輯:留德華叫獸
文章發(fā)表于微信公眾號【運籌OR帷幄】:視頻教程 | 用Python玩轉(zhuǎn)運籌優(yōu)化求解器IBM CPLEX(二)歡迎原鏈接轉(zhuǎn)發(fā),轉(zhuǎn)載請私信@運籌OR帷幄獲取信息,盜版必究。
敬請關(guān)注和擴(kuò)散本專欄及同名公眾號,會邀請全球知名學(xué)者發(fā)布運籌學(xué)、人工智能中優(yōu)化理論等相關(guān)干貨、知乎Live及行業(yè)動態(tài):『運籌OR帷幄』大數(shù)據(jù)人工智能時代的運籌學(xué)
一關(guān)于Jupyter Notebook
CPLEX Python教程視頻主要是在Jupyter Notebook上進(jìn)行的。Jupyter Notebook支持運行 40 多種編程語言,是一個非常強大的交互式筆記本。它將可執(zhí)行代碼、實時的運行結(jié)果(包括可視化的圖像)、markdown說明文本、Latex數(shù)學(xué)公式等整合在一個Web文檔中,幫助提升用戶工作效率和代碼的可讀性,在數(shù)據(jù)科學(xué)的工作中發(fā)揮著重要的作用。自然,也是非常好的教學(xué)工具。
Jupyter Notebook文檔
關(guān)于Jupyter Notebook,想必很多使用Python進(jìn)行工作學(xué)習(xí)的朋友對它并不陌生,網(wǎng)上也有很多安裝和使用的相關(guān)教程和討論,因此在本文中不再贅述。
二關(guān)于CPLEX API
CPLEX擁有自己的優(yōu)化編程語言 OPL(Optimal Programming Language),打開IBM CPLEX Studio,即可創(chuàng)建 OPL 項目建模求解。此外,還可以通過在命令行輸入cplex的方式,在命令行使用OPL建模。
在命令行輸入CPLEX
更為重要的是,CPLEX設(shè)有C++,JAVA,Python,.NET,MATLAB等多種語言的接口,用戶可以使用自己熟悉的語言主場作戰(zhàn),調(diào)用API進(jìn)行建模求解。
Python一種解釋型、面向?qū)ο蟆討B(tài)數(shù)據(jù)類型的高級程序設(shè)計語言。我們選擇Python作為教程的建模語言,主要有以下兩點原因:
● Python語法可讀性非常高,是公認(rèn)最簡單易學(xué)的語言,是入門者和非計算機(jī)專業(yè)人士接觸編程的最佳選擇。
● 近些年來,Python備受追捧,使用范圍也十分廣泛。在本月(2019年3月)最新發(fā)布的TOBIE指數(shù)排行榜中,Python再次超越C++成為第3名。在這一趨勢下,我們相信很多運籌優(yōu)化的學(xué)習(xí)者都有經(jīng)驗或者有意愿去使用Python。
TIOBE編程語言排行榜
三LP、MPS文件格式
教程視頻讀寫了LP和MPS文件,這里對兩種文件格式做出簡要說明,在視頻中也會進(jìn)行解讀。
LP文件格式非常直觀,采用的是一般形式的代數(shù)數(shù)學(xué)模型。
LP格式
與LP 格式相反,MPS 格式是面向列的格式——按列(變量)而不是按行(約束)來指定問題。
MPS格式
四第二期視頻內(nèi)容
● LP、MPS文件介紹
● LP、MPS文件讀取
● 模型求解
● LP、MPS文件寫入
好了,千呼萬喚使出來,下面便是第二期的視頻教程:
https://www.zhihu.com/video/1094174835734831104嫌手機(jī)屏幕太小,看得不夠過癮!?
沒問題!歡迎關(guān)注『運籌OR帷幄』官方B站:運籌OR帷幄,Cplex Python API系列視頻教程和視頻直播都會首發(fā)于B站。
B站網(wǎng)址:https://space.bilibili.com/403058474
此外,欲獲得視頻中的源代碼,請于『運籌OR帷幄』公眾號后臺回復(fù)關(guān)鍵詞: Cplex教程
強烈建議大家下載源代碼,跟著唐博一起手?jǐn)]Cplex的Python源代碼喔!~
五Cplex視頻教程系列(Python API)
Cplex視頻教程由『運籌OR帷幄』視頻版塊榮譽出品,主編留德華叫獸策劃和監(jiān)制,【視頻】版塊責(zé)編唐博編程并錄制。
我們假設(shè)讀者已有一定的Python編程基礎(chǔ),在傳授如何用Python調(diào)用Cplex求解數(shù)學(xué)規(guī)劃問題的同時,我們也試圖講解如何把一個實際問題(例如計算機(jī)視覺案例)數(shù)學(xué)建模成整數(shù)規(guī)劃模型,以及一些常用的大規(guī)模優(yōu)化問題的分解方法(割平面、列生成)等建模技巧。
希望這個系列視頻能為大家掃盲數(shù)學(xué)規(guī)劃求解器的編程基礎(chǔ),并且用實例帶大家入門如今最火的人工智能、計算機(jī)視覺(底層都是優(yōu)化問題)。
總提綱(試行):
● CPLEX的下載和安裝
● CPLEX Python API的安裝和調(diào)用
● 數(shù)學(xué)規(guī)劃模型lp、mps格式文件的讀寫
● 線性規(guī)劃問題建模及求解
● 線性規(guī)劃問題敏感性分析
● 線性規(guī)劃問題優(yōu)化器選擇
● 混合整數(shù)規(guī)劃問題建模及求解
● 混合整數(shù)規(guī)劃問題求解策略設(shè)置
● 混合整數(shù)二次規(guī)劃問題求解
● 模型修改和重新優(yōu)化
● 進(jìn)階版--絕對值不等式轉(zhuǎn)線性
● 進(jìn)階版--高次不等式轉(zhuǎn)線性
● 進(jìn)階版--大M不等式及其傷害
● 進(jìn)階版--數(shù)學(xué)建模的藝術(shù)之一題多解
● 進(jìn)階版--割平面法之計算機(jī)視覺實例
● 進(jìn)階版--列生成法之計算機(jī)視覺實例
以上提綱僅為試行版本,隨著視頻錄制的進(jìn)行,可能會有修改或增減。
也希望優(yōu)化求解器大牛們參與到我們的視頻教程創(chuàng)作中來,或提供寶貴的建議,一起參與到運籌學(xué)的科普中~
視頻雖然只有不到10分鐘,但是前期策劃和轉(zhuǎn)變,加上反復(fù)錄制和剪輯,前前后后花了至少有8個小時。
不光是錄制視頻,其實『運籌OR帷幄』創(chuàng)作推文也一樣,每篇文章都會花費責(zé)編/作者數(shù)小時創(chuàng)作/編輯。
因此,各位讀者如果看到您覺得不錯的推文,希望可以點個“好看”和分享,讓知識傳播地更遠(yuǎn),一起科普運籌學(xué)!
鄭重聲明:
所有Cplex Python API視頻教程
● 免費
● 代碼開源
六運籌OR帷幄【視頻】版塊成立啦
「視頻」版塊上線初期,將涵蓋三個模塊:
Part ONE:
視頻教程--即類似今天這樣的技術(shù)視頻教程
Part TWO:
科普快照--即科普類、趣味性視頻,讓學(xué)科傳播地更遠(yuǎn)
Part THREE:
SundayLive--即留德華叫獸擔(dān)任主播,并不定期邀請行業(yè)好友/大佬,與大家談天說地
欲知詳情,請見:
號外!『運籌OR帷幄』開直播、出教程啦!「視頻」版塊正式開通!
參考文獻(xiàn):
[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
相關(guān)文章推薦
使用商用優(yōu)化求解器,可構(gòu)建并求解大規(guī)模的優(yōu)化模型,為復(fù)雜決策問題提供解決方案。CPLEX Python API系列教程視頻旨在為希望入門和進(jìn)階的運籌學(xué)學(xué)習(xí)者提供實用的引導(dǎo)和教學(xué),從理論走向?qū)嵺`。歡迎各位收看上一期教程視頻——CPLEX以及其Python API的下載和安裝。
《視頻教程 | 用Python玩轉(zhuǎn)運籌優(yōu)化求解器IBM Cplex(一 )
作者:唐博
關(guān)于本文責(zé)編
【視頻】版塊主編/責(zé)編(字幕組)火熱招募中:
【視頻】版塊現(xiàn)招募版塊(副)主編,歡迎對運籌學(xué)/數(shù)據(jù)科學(xué)/AI科普有熱情的小伙伴加盟,將學(xué)科知識傳播給平臺10W+的同行,共同學(xué)習(xí)和成長。
最后,如果對于【視頻】版塊或者Cplex教程的提綱有任何建議或想法,都?xì)g迎在評論區(qū)指出!
掃二維碼關(guān)注『運籌OR帷幄』公眾號:
點擊查看『運籌OR帷幄』志愿者招募介紹及加入方式:
總結(jié)
以上是生活随笔為你收集整理的c++调用cplex求解例子_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 环保备案怎么办理流程(环保备案怎么办理)
- 下一篇: (g linux)