由于最近在做一些和运筹相关的问题,需要用到优化工具,现有的数学优化工具,如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