网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月20日漏签0天
matlab吧 关注:291,840贴子:1,658,318
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 6回复贴,共1页
<<返回matlab吧
>0< 加载中...

matlab遗传算法排课问题,程序一直有错,求解答

  • 取消只看楼主
  • 收藏

  • 回复
  • 有付发
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
matlab 问题,A阵(20*45)为老师对各个课的打分情况,20个老师,45门课
调试显示:位置 1 处的索引无效。数组索引必须为正整数或逻辑值。
但是一直不知道哪里出错了,跪求大神解答。下面是代码
for i=1:20(popsize)
for j=1:90(chrom_size)%%每门课要上两次(45*2=90)
%%A矩阵为课程分值矩阵
fitness_value(i)=fitness_value(i)+A(pop(i,j),ceil(j/2));%%计算每一条染色体的适应度
end
end
end


  • 有付发
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
自顶


2025-07-20 21:05:22
广告
  • 有付发
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
再顶


  • 有付发
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
再顶


  • 有付发
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function fitness(pop_size,chrom_size,a,b,y)
%%赋予初始适应度的值
global pop;
global fitness_value;
global A;
global B;
global U;
for i=1:pop_size
for j=1:chrom_size
%%A矩阵为课程分值矩阵
fitness_value(i)=fitness_value(i)+A(pop(i,j),ceil(j/2));%%(位置1)计算每一条染色体的适应度
end
end
%%定义每个老师的初始课时为0
for k=1:pop_size
for kk=1:20
teacher(k,kk)=0;
end
end
%%teacher,每个老师的课时
teacher_total=0;
teacher_avg=0;
for ii=1:pop_size
for jj=1:chrom_size
teacher(ii,pop(ii,jj))= teacher(ii,pop(ii,jj))+C(ceil(jj/2));%%计算染色体中每个老师的课时
teacher_total(ii)=teacher_total(ii)+teacher(ii,pop(ii,jj));%%计算累计课时
end
teacher_avg(ii)=teacher_total(ii)./20;%%计算平均课时
end
for zzz=1:20
newb=newb+B(zzz);%%计算每个老师的时长均值
end
for zzzz=1:pop_size
teacher_avg(zzzz)=teacher_avg(zzzz)-newb;
end
q1=0;%%用以衡量每个老师的课时,限制在合理区间
q2=0;%%用以衡量老师之间的不公平程度,值越大代表该老师的课时时间越不合理
q3=0;
q=0;
for z=1:pop_size
for zz=1:20
if teacher(z,zz)<B(zz)
q1(z,zz)=a*(B(zz)-teacher(z,zz));
end
if teacher(z,zz)>U(zz)
q1(z,zz)=b*(teacher(z,zz)-U(zz));
end
if teacher(z,zz)<B(zz)+teacher_avg(z)
q2(z,zz)=y*(B(zz)+teacher_avg(z)-teacher(z,zz));
end
if teacher(z,zz)>B(zz)+teacher_avg(z)
q2(z,zz)=y*(teacher(z,zz)-B(zz)-teacher_avg(z));
end
q3(z,zz)=q1(z,zz)+q2(z,zz);%%每个教师的惩罚值
q(z)=q(z)+q(z,zz);%%累计惩罚值
end
end
for iii=1:chrom_size
fitness_value(iii)= fitness_value(iii)-q(iii);%%适应度
end


  • 有付发
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
亲们


  • 有付发
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
就是报错显示位置一索引问题,位置一我已经标注出来了,跟最开始发的短代码错误一样,我还是觉得是那一个调用A矩阵的问题


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回matlab吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示