由於最近在做一些和運籌相關的問題,需要用到優化工具,現有的數學優化工具,如matlab只能解決單目標,少約束的問題,對於解決像混合整數線性規劃模型(MILP),二次規劃模型(QLP)等問題比較侷限。而IBM的CPLEX比較全面而且提供豐富的接口用於解決運籌相關的規劃問題。以下關於如何在Visual Studio 2017中配置CPLEX環境:
首先,給大家介紹幾個CPLEX相關的教程:
- Getting Started with CPLEX 使用 CPLEX 以及 Concert Technology(如 C++, Java, C#, Python,寫的API) 必須看的第一個文檔,是一個很重要的教程,需要仔細閱讀。
- CPLEX User’s Manual 進階教程,關於相關API的介紹,對於做大型項目開發,或工程實踐建議仔細閱讀。
- CPLEX Parameters Reference Manual CPLEX 各項參數需要參考的文檔,使用中再查找即可。
- OPL Language User’s Manual 是一種專門針對優化建模的一種語言,在 CPLEX Studio 中運行。
以上是關於,CPLEX入門的相關教程的總結,都是cplex的原生文檔,更有助於掌握其相關的功能和操作使用方法。
配置 Visual Studio C++ 調用 CPLEX 接口
軟件版本:Visual Studio 2017, CPLEX 12.8.0
注:以下文件路徑需要根據 CPLEX 在自己電腦上的安裝路徑相應修改。
- 新建一個控制檯程序
- 源碼加入頭文件
#include <ilcplex/ilocplex.h>
和 一條宏命令ILOSTLBEGIN
,後者用來調用C++的STL。 - BUILD -> Configuration Manager, 把win32改成x64平臺。CPLEX 版本是64位的,所以必須要改。總之 C++和 CPLEX 在平臺上要一致。
- 接下來需要讓 C++ 的 Linker 知道CPLEX 以及 Concert Technology 的庫在哪裏。Project -> [你的項目名] Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies 添加:
C:\Program Files\IBM\ILOG\CPLEX_Studio1251\cplex\lib\x64_windows_vs2012\stat_mda\cplex1251.lib
C:\Program Files\IBM\ILOG\CPLEX_Studio1251\cplex\lib\x64_windows_vs2012\stat_mda\ilocplex.lib
C:\Program Files\IBM\ILOG\CPLEX_Studio1251\concert\lib\x64_windows_vs2012\stat_mda\concert.lib
5.然後 include 的各種路徑也要添加進去。Project -> [你的項目名] Properties -> Configuration Properties -> C/C++ -> General -> Additional Include Directories 添加:
C:\Program Files\IBM\ILOG\CPLEX_Studio1251\concert\include
C:\Program Files\IBM\ILOG\CPLEX_Studio1251\cplex\include
6.Preprocessor 中要添加一些指令,最重要的自然是IL_STD。 Project -> … Properties -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions 添加:
WIN64 (注:如果是32位的,此處應該是 WIN32)
_CONSOLE
IL_STD
_CRT_SECURE_NO_WARNINGS
7.最後 check 下 debug 功能是否開啓了,不然沒法 debug。Project -> … Properties -> Configuration Properties -> Linker -> Debugging -> Generate Debug Info 改成 YES