windows下cplex12.6.3的下载、安装、IDE编程及相关问题解决
一、下载进入官网:https://www.ibm.com/cn-zh/analytics/cplex-optimizer在右上角搜索框中输入“cplex”,并点击搜索。搜索的结果:找到下载页面,其中学术版可以免费使用,但是需要使用学校邮箱注册。学术版的cplex的求解规模和约束变量是有限的。也可以花钱买,功能更强大。白瞟学术版即可。这里就不详细说了如果有需要可以关注我的公众号,输入关键字“cple
其他文章:
通过0-1背包问题看穷举法、贪心算法、启发式算法(JAVA)
java集成Cplex:Cplex下载、IDEA环境搭建、docker部署
windows下cplex12.6.3的下载、安装、IDE编程及相关问题解决
windows下cplex20.1.0启动报错: ilog.odms.ide.opllang.IloOplLangPlugin
参考B站视频:cplex入门到精通
一、下载
进入官网:https://www.ibm.com/cn-zh/analytics/cplex-optimizer
在右上角搜索框中输入“cplex”,并点击搜索。
搜索的结果:
找到下载页面,其中学术版可以免费使用,但是需要使用学校邮箱注册。学术版的cplex的求解规模和约束变量是有限的。也可以花钱买,功能更强大。白瞟学术版即可。这里就不详细说了
如果有需要可以关注我的公众号[诸葛小猿],输入关键字“cplex”,即可获得下载地址。如果不能下载,请到公众号文章下留言。
二、安装
获取软件包后:
双击安装:
选择简体中文,并点击确定:
点击下一步:
选择接受协议后,点击下一步:
自定义安装目录(建议不要放在系统C盘),点击下一步:
选择副本目录,选择下一步:
选择关联相关文件(一定要选),选择下一步:
选择更新PATH变量(一定要选),选择下一步:
这里展示了安装的目录(要记住自己安装的这两个目录,后续相关的文件需要到这两个目录里找),选择安装:
看到上面的界面基本就安装完成了。安装进度条提醒cplex依赖jre,所以需要提前在电脑上安装java环境,如果不会安装java环境请百度。
上面勾选了“Readme file”时,点击下一步会自动在浏览器中显示readme文件内容,建议勾选,简单读一下readme文件。
上面勾选了“CPLEX Opeimization Studio IDE”时,点击下一步会自动打开编程窗口,建议勾选。
点击下一步:
点击完成。
点击完成后,由于勾选了“Readme file”,这里可以看到相关内容。注意浏览器中readme文件的位置,就是我们的安装位置。
点击完成后,由于之前选择了“CPLEX Opeimization Studio IDE”,所以这里会自动打开上面IDE编辑器,并且弹框询问工作空间放在哪里,所谓的工作空间就是后续我们使用ide编辑器写代码时,我们的代码文件保存的目录,这个目录很重要,后续可以在这里找到自己之前写过的代码。建议定义好这个目录。左下角有个选项“将此值作为缺省值并且不再询问”,建议勾选,如果不勾选,以后每次打开IDE编辑器时都会弹框询问。
点击确定,即可打开下面的IED代码编辑器。
上面的欢迎窗口中间有四个功能:概述、教程、样本、新增内容,可以学习一下相关使用。
关闭欢迎页面,现在就可以在编辑器中建模求解了。
三、IDE的使用
安装完成后,在电脑的左下角开始按钮中可以看到:
这里有相关的使用说明,前四个是说明,有需要的可以自己读(如下),第五个是IDE的启动按钮。
四、编程测试
4.1.创建项目
- 创建OPL项目
- 选择项目位置
-
编程窗口
4.2.不使用集合语言编程(简单编程)
模型比较简单、变量约束比较少的情况,可以直接编程,比较简单。
- 模型:
min z = 2x + 3y
s.t. 2x + 3y >= 20
x + y >= 10
x,y>=0且为整数
- 代码:
// 1.定义决策变量 x,y>=0且为整数
dvar int+ x;
dvar int+ y;
// 2.定义目标函数 min z = 2x + 3y
minimize 2*x + 3*y;
// 3.定义约束条件
subject to {
2*x + 3*y >= 20;
x + y >= 10;
}
- 运行方式一:
运行后看到“问题”窗口报错了,具体错误原因出现了乱码,问题类型:OPL标记问题。原因出在项目中“运行配置”文件夹下的文件是中文的原因。右键这个“配置1(缺省值)”,重命名为config1,修改英文名后右键运行。最终的结果在“解”这个对话框中。
- 运行方式二
或者直接使用命令运行:oplrun -p <路径\项目名>
这里我这个项目的路径是D:\IBM\workspace\firstModelTest
打开命令行窗口运行命令:
4.3.使用集合语言编程
模型比较复杂时可以使用这个方式。
4.3.1.背包问题
比如一个背包问题的模型如下(假如n、p、w、C是三个已知量):
代码:
// 1.定义已知量
int n=4;
int C=13;
int p[1..4]=[12,11,9,8];
int w[1..4]=[8,6,4,3];
// 2.定义决策变量
dvar boolean x[1..n];
// 3.目标函数
maximize sum(j in 1..n) p[j] * x[j];
// 4.约束条件
subject to{
sum(j in 1..n) w[j] *x[j] <= C;
}
运行结果:
4.3.2.指派问题
模型:
代码:
// 1.定义已知量
int n = 5;
int c[1..5][1..5] =
[
[3,8,2,10,3],
[8,7,2,9,7],
[6,4,2,7,5],
[8,4,2,3,5],
[9,10,6,9,10]
];
// 2.定义决策变量
dvar boolean x[1..n][1..n];
// 3.目标函数
minimize sum(i in 1..n) sum(j in 1..n) c[i][j] * x[i][j];
// 4.约束条件
subject to {
forall(j in 1..n) sum(i in 1..n) x[i][j] == 1;
forall(i in 1..n) sum(j in 1..n) x[i][j] == 1;
}
运行结果:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)