资源简介
装箱问题遗传算法MATLAB求解。希望对你有用。
代码片段和文件信息
clc;clear all;
format long;%设定数据显示格式
M=11;%假设已有10量箱子
N=12;
zq=100;
%c=[ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M) ceil(rand*M)];%定义染色体编码,各个货物对应的车1*12
c=ceil(rand(zqN)*M);
L=[3.86 6.9 4.87 7.15 7.15 7.15 3.9 7.15 7.15 7.15 7.994 7.12];%各个12货物的长度1*12
L=L+0.2;
K=13;%箱子的长度
e=zeros(1N+1);
e(N+1)=100000;
for jhcs=1:10
s=zeros(zqM);
%初始化种群
for zqs=1:zq
for xh=1:40
for j=1:M
s(zqsj)=0;
end
A=zeros(MN);
for j=1:M%遍历各个车
t=1;
for k=1:N%遍历各个货物
if(c(zqsk)==j)
s(zqsj)=s(zqsj)+L(k);%计算每辆箱子上货物的长度s[]
A(jt)=k;
t=t+1;
end
end
end
for j=1:M %遍历各个车
if((s(zqsj)==0)&&(j for i=1:N
if (c(zqsi)==max(c(zqs:)))
c(zqsi)=j;
end
end
%break;
end
end
for j=1:M %遍历各个车
d=10;
T=0;
if(s(zqsj)>=K)%第j辆车货物超过箱子长度
for t=1:N%建立此箱子对应的货物长度矩阵
if ((A(jt)~=0)&&(d>L(A(jt))))
d=L(A(jt)); %寻找最短长度
p=j;q=t; %保存序号
end
end
%找到最短的车序号之后再放到每个车上看看长度够不够,够就插入
for j=1:M
if (s(zqsj)+d %将此货物放入此车中
c(zqsA(pq))=j;
T=1;
break;
end
end
if (T==0)%表明所有的车上货物都不能容纳新货物
c(zqsA(pq))=max(c(zqs:))+1;
break;
end
end
end
end
end
num=zeros(1zq);
f=zeros(1zq);
for zqs=1:zq
%计算每个种群中所用箱子的个数,存于num中
for j=1:M
if (s(zqsj)>0)
num(zqs)=num(zqs)+1;
end
end
f(zqs)=num(zqs)*K*(K*num(zqs)-sum(s(zqs:)));
end
d=[cf‘];
d=sortrows(dN+1);
if(d(N+1) e=d;
end
d(:N+1)=[];
c=d;
%[sfindex]=sort(f);
%for zqs=1:zq
% if (zqs % b=c(index(zqs):);
% c(ind
- 上一篇:基于matlab的电力系统谐波仿真
- 下一篇:用MATLAB画点电荷的电场线
相关资源
- 用MATLAB画点电荷的电场线
- 基于matlab的电力系统谐波仿真
- 一维激波管问题upwind格式matlab代码
- MATLAB中图像背景噪声去除
- 自组织特征映射神经网络matlab
- 实验室的极化码编码译码仿真程序,
- 双极性PWM单相全桥逆变电路
- 普源示波器 matlab读取程序
- Matlab写的粒子群优化算法,很好用!
- 基于MATLAB的两输入两输出DMC控制教程
- matlab基于GUI实现记事本功能
- 肤色模型人脸识别matlab代码
- 用matlab生成正弦表程序.m文件
- 数字信号处理课程设计
- 单神经元自适应PID代码
- 运动控制 速度开环调速系统模型
- 多元回归的交叉验证程序 可供做预测
- 最速下降法MATLAB程序
- 遗传算法程序优化pid参数
- svpwm逆变及电机转差频率控制
- 数值计算方法 基于 MATLAB实现
- 用matlab TV模型图像修复
- 基于GS算法的数字水印
- 熵权法matlab编程
- boost电路模型
- Floyd最短路径算法
- 风力机叶片设计MATLAB程序
- MatlabR2019a安装破解教程.zip
- 基于模型的DMC控制算法
- 线路纵差保护仿真图
评论
共有 条评论