CPLEX 在matlab中实现的一个例子-RCPSP
很多人运行不了或者不方便,于是我将去年写的代码发到网盘中,大家可以下载看看,我刚刚运行了一下,代码没问题。贴上链接和提取码
链接:https://pan.baidu.com/s/1AQtgE5RIBq8HeMjuxekJCw 提取码:3g71
本人去年想采用使用cplex求解数学模型,本想在博客上找一个例子仿照练习,无奈找遍全网都没有一个合适的,幸好有师兄们的代码。
matlab调用CPLEX的方法网上有很多,在这里我就不介绍了。直接上例子。这个代码以RCPSP为例,熟悉RCPSP的人肯定只要,如果不熟悉也没关系,我附上数学模型。
资源受限项目调度问题描述:
附上代码
% CPLEX matlab上实现
% a cplex code of RCPSP on matlab
function solution=cplex_function()
% 定义的全部变量,储存项目信息
global Case
% 假设的时间最大值
H=sum(Case.dur);
% 定义变量 bin是0 1 值 full代表是满的矩阵,非稀疏矩阵
x=binvar(Case.job_count,H,'full');
% 资源上限,是常数
r=Case.Con_R;
% 定义中间变量 int 是整数值,可以是任意整数
C=intvar(1);
% 目标函数
Objective=min(C);
% 约束
Constraints=[];
% 作业时间约束
% dur 代表作业持续时间
x2=sum(x,2);
for i=1:Case.job_count
Constraints=[Constraints,x2(i)==Case.dur(i)