CPLEX 在matlab中实现的一个例子-RCPSP

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);
% 定义变量   bin0 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)
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值