Cplex 安装

2017-04-24  本文已影响0人  Silly_N_Fool

1 Cplex是IBM出的一款科学计算软件,从IBM官网可以下到最新版
2 看了一下Cplex的支持软件,最常用的是matlab,所以先从他入手,一步步来。
3 首先要安装matlab和Cplex,最近几年的版本都可以,matlab是破解版没关系。我能从网上下到的是2016a,64位破解版。Cplex是从IBM官网下载的。Y软件包是绿色的,放在计算机任意位置都可以。
4 在matlab中配置Cplex,就是把几个路径放入matlab,让matlab可以找到就行。或者说相当于设置环境变量。


设置路径 把路径添加到MATLAB中去,添加并包含子文件选项
5 测试,matlab+Cplex+Y链接完毕以后要测试
测试文件链接给出 https://pan.baidu.com/s/1dFswTaT 密码xpjv
6 问题发现
报错,怎么办?
找到Y文件夹下的definesolvers.m文件
找到如下字眼
solver(i).subversion = '12.7.0';
solver(i).checkfor= {'cplexqcp.m','cplexlink1270'};

版本号与Cplex版本要一致,就是如果Cplex的版本是12.7.1,那么所有涉及到12.7.0的参数都要改成12.7.1
然后重新测试样例程序,成功


输出正确结果

7 由于Cplex比较难下载,分享可以从这个网址下载
http://pan.baidu.com/s/1pKQYpxp

8 总结一下,matlab+Cplex总的来说就是设置一下环境变量。具体代码怎么写?还是比较简单的。那么下面,有三条路,就依赖matlab,依赖C++,依赖C。下一步,看看怎么和C联系起来。

9 先具体看一下matlab中是怎么用cplex
几个语言要解释一下

x = sdpvar(2, 1, 'full');
Objective = sum(x);
Constraints = [c'*x >=0.6, x>=0];
options = sdpsettings('verbose',1,'solver','cplex');
sol = solvesdp(Constraints,Objective,options);
    if sol.problem == 0
        str = ['The optimal objective value is = ', num2str(double(Objective))];
        display(str);
        
        str = ['The value of x (1) = ', num2str(double(x(1)))];
        display(str);
        str = ['The value of x (2) = ', num2str(double(x(2)))];
        display(str);    
    else
        str = 'Something wrong occurs!';
        display(str);
    end     

10 保存文件的语句是

Paste_Image.png
一开始出错了,后来把文件路径,不是添加路径,然后就可以正常输出了。
更改文件夹
11 C++如何调用Cplex?
我还不知道如何用C调用Cplex,而且网上资料没有,目前还没有找到对口资料。所以,怎么调用还要看官方文档。先看看怎么用C++call
12 通过官网上搜matlab+cplex看看官网是怎么介绍用matlab调cplex
官网说了一些废话,或者说没用的,但是详细。
至于怎么添加路径却没有细说。但是大差不差。也就是说官网上的内容我是可以相信的。
13 安装文件中有example,这可以学学
IBM网站上只介绍了matlab call cplex,VS怎么调Cplex还真不知道。网上也只有很少的几篇文章。难哪。
14 问题还是一是怎么用配置,用vs来配置,然后才是怎么调用。找到一篇文章
https://wenku.baidu.com/view/d60edc93aeaad1f347933f5f.html
安装cplex

14.1 看一下官方文档,最权威了
create a C or C++ project and link the target with CPLEX
project在vs里面我们建的是空项目
link a targe是什么意思?
build an example 是什么意思?
CPLEX Optimizers installation folder安装文件,安装目录
Throughout this document,
the CPLEX installation folder is referred to as <CPLEXDIR>
the Concert Technology installation folder is referred to as <CONCERTDIR>
Concert Technology installation folder是什么意思?

For example, 
if CPLEX Studio has been installed in the folder C:\Program Files\IBM\ILOG\CPLEX_Studio1270 references to <CPLEXDIR>\include represent C:\Program Files\IBM\ILOG\CPLEX_Studio1270\cplex\include. 
Concert Technology is located in C:\Program Files\IBM\ILOG\CPLEX_Studio1270\concert.

Libraries
IBM提供了很多mannual, 但是第一步是怎么在vs中设置,让一个小程序能够跑起来,然后再谈怎么编程。
所以,怎么配置的参考资料还是在安装目录下的c_cpp.html
但是这个文档都是英语,而且没有图片,所以,一些中文的参考资料非常必要,下面推荐三篇文章:
http://blog.sina.com.cn/s/blog_50c154510100g81w.html
http://blog.sina.com.cn/s/blog_50c154510100r0nm.html
http://wap.sciencenet.cn/blogview.aspx?id=511626
根据这三篇文章和官方文档,操作步骤如下
Start Microsoft Visual Studio 2015.
From the File menu, choose Open > Project/Solution....
The Open Project dialog box appears.
就是打开VS,然后打开项目,一个范例,在example文件中

15 上面是一个现成的项目,如何做我自己的项目?
这个官方文档也介绍了
Building your own project which links with CPLEX
multi-threaded DLL STL library多线程DLL,STL库,
下面新建的项目的设置很麻烦,其实有个很简单的方法,就是在已经有的例子的example某个例子下面直接复制一份,在该例子的文件里面写上自己的代码即可,省的下面新建的文件需要设置很多参数环境,还挺麻烦的说。
Let's assume that you want to build a target named test.exe and have:
a source file named test.cpp which uses Concert Technology or test.c which uses the C API of the CPLEX Callable Library;
a folder where this file is located and which, for the sake of simplicity, we'll refer to as <MYAPPDIR>.
里面有个关键的话,c文件也能用,但是要用Callable Library中的C API
One way to achieve that goal is to create a project named test.vcxproj as described here. Be aware that the order of instructions is important. 按照他的步骤做
Start Microsoft Visual Studio 2013.
The next step is to create the test.sln solution.
From the File menu, select New > Project....
In the Installed Templates pane, select Visual C++ and Win64.
In the middle pane, select the Win64 Console Application icon.
Fill in the project name (test).
If necessary, correct the location of the project (to <MYAPPDIR>).

15 如何使用c++调用cplex?
关于c++或是其他编程语言API的使用,可参看cplex用户手册
安老师说看example

上一篇下一篇

猜你喜欢

热点阅读