function x=randomTimetable(option,data)
%% 初始化
x{1}=randperm(data.num_major);
x{2}=cell(data.num_major,1);
for i=1:data.num_major
x{2}{i}=cell(1,data.major(i,3));
for j=1:data.major(i,3)
classroom.type_classroom=0;
classroom.no_class=0;
classroom.no_classroom=0;
classroom.subject=0;
classroom.no_teacher=0;
x{2}{i}{j}(data.time,data.day)=classroom;
end
end
x{4}=[];
%%
for i=1:data.num_major
position=find(x{1}==i);
if ~isempty(position)
for j=1:length(position)
p=position(j); %进行分配的专业
subject=data.major(p,4:end);
subject(find(isnan(subject)))=[];
num_class=data.major(p,3);
% 开始排课
for k=1:num_class % 每个班级
temp=zeros(data.time,data.day);
for ii=1:length(subject)
teacher=find(data.teacher(:,3)==subject(ii));
position1=find(temp==0);
position1=position1(randperm(length(position1)));
if data.subject(subject(ii),3)==0 %1+1模式
x{2}{p}{k}(position1(1)).subject=subject(ii);
x{2}{p}{k}(position1(1)).no_class=k;
x{2}{p}{k}(position1(1)).type_classroom=2;
x{2}{p}{k}(position1(1)).no_teacher=teacher(randi(length(teacher)));
temp(position1(1))=1;
x{2}{p}{k}(position1(2)).subject=subject(ii);
x{2}{p}{k}(position1(2)).no_class=k;
x{2}{p}{k}(position1(2)).type_classroom=3;
x{2}{p}{k}(position1(2)).no_teacher=teacher(randi(length(teacher)));
temp(position1(2))=1;
x{4}=[x{4};{position1(1:2)}];
else %其他模式
for jj=1:data.subject(subject(ii),4)
x{2}{p}{k}(position1(jj)).subject=subject(ii);
x{2}{p}{k}(position1(jj)).no_class=k;
x{2}{p}{k}(position1(jj)).type_classroom=data.subject(subject(ii),3);
x{2}{p}{k}(position1(jj)).no_teacher=teacher(randi(length(teacher)));
temp(position1(jj))=1;
end
x{4}=[x{4};{sort(position1(1:num_class))}];
end
end
end
end
end
end
%% 安排教室
place=cell(1,data.num_place);
for i=1:data.num_major
for j=1:data.major(i,3)
for ii=1:data.time
for jj=1:data.day
p_place=x{2}{i}{j}(ii,jj).type_classroom;
if ~isempty(p_place) && p_place~=0
capcity=data.place(p_place,4);
if isempty(place{p_place})
place{p_place}{1}=zeros(data.time,data.day);
place{p_place}{1}(ii,jj)=1;
x{2}{i}{j}(ii,jj).no_classroom=1;
else
biaoji=0;
for k=1:length(place{p_place})
if place{p_place}{1}(ii,jj)<capcity
place{p_place}{1}(ii,jj)=place{p_place}{1}(ii,jj)+1;
x{2}{i}{j}(ii,jj).no_classroom=k;
biaoji=1;
break;
end
end
if biaoji==0
place{p_place}=[place{p_place},cell(1,1)];
place{p_place}{end}=zeros(data.time,data.day);
place{p_place}{end}(ii,jj)=1;
x{2}{i}{j}(ii,jj).no_classroom=length(place{p_place});
end
end
end
end
end
end
end
x{3}=place;
end
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
2018.3.6排课3.zip (36个子文件)
2018.3.6排课
粒子群排课
resultDisp.m 755B
17软件.xls 16KB
subject.xls 21KB
place.xls 19KB
专升本.xls 21KB
major.xls 20KB
15新媒体.xls 14KB
main.m 4KB
16新媒体.xls 16KB
teacher.xls 22KB
15会计.xls 17KB
aimFcn_1.m 635B
17会计.xls 17KB
creat_x_1.m 4KB
16会计.xls 17KB
revise.m 4KB
15软件.xls 16KB
16软件.xls 17KB
randomTimetable.m 44B
随机排课
resultDisp.m 755B
17软件.xls 21KB
subject.xls 21KB
place.xls 19KB
专升本.xls 21KB
major.xls 20KB
15新媒体.xls 20KB
main.m 2KB
16新媒体.xls 22KB
teacher.xls 22KB
15会计.xls 23KB
aimFcn_1.m 637B
17会计.xls 23KB
16会计.xls 23KB
15软件.xls 21KB
16软件.xls 22KB
randomTimetable.m 4KB
共 36 条
- 1
资源评论
神经网络机器学习智能算法画图绘图
- 粉丝: 2500
- 资源: 613
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功