- 在线时间
- 4 小时
- 最后登录
- 2014-9-17
- 注册时间
- 2014-1-15
- 听众数
- 8
- 收听数
- 0
- 能力
- 0 分
- 体力
- 2 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 4
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 6
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 3
升级   80% 该用户从未签到
- 自我介绍
- noob...
 |
本帖最后由 pigjie 于 2014-1-26 08:55 编辑
- model:
- !3 个工人,41 个工作的分配问题;
- sets:
- workers/t1..t3/:x;
- jobs/o1..o41/:y;
- links(workers,jobs): carry;
- city/c1..c41/:z;
- urgent/u1..u41/:u;
- endsets
- data:
- x = 12 13 7;
- y = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;
- z = 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4;
- u = 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
- enddata
- !目标函数;
- max=@sum(links: carry);
- !每份工作只能有一个工人或者不接;
- @for(jobs(J):@sum(workers(I): carry(I,J))<=1);
- !每个工人的活不能超过工人可以接受的量;
- @for(workers(I):@sum(jobs(J): carry(I,J))<=x(I));
- @for(links:@gin(carry));
- end
复制代码 我现在有city集。我希望一个工人所接所有工作的城市不能超过2个。
并且urgent集内值为1的希望优先安排给工人。
各位大神帮帮忙了吧!!!
|
zan
|