|
发表于 2023-10-2 16:53:02
|
显示全部楼层
clc
clear all
close all
%% 读取钢筋数据
data=load('钢筋明细表.txt');%读取数据
r=unique(data(:,1));%获得有哪几种钢筋直径
L=9000;%原始钢管长度
%% 计算每种钢筋尺寸的原材料的切割方式
global L_data d_data
for i1=3:3%length(r)%每种直径的材料依次循环
fprintf('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n')
fprintf(strcat('直径为',num2str(r(i1)),'的切割方式为:\n'))
%% 获取最终的尺寸和数量
I1=find(data(:,1)==r(i1));
L_data=unique(data(I1,2));%获得有哪几种钢筋长度
d_data=zeros(length(L_data),1);%计算不同钢筋长度的数量
m=length(L_data);%钢筋的种类
for i2=1:length(I1)
for i3=1:length(L_data)
if data(I1(i2),2)==L_data(i3)
d_data(i3)=d_data(i3)+1;
end
end
end
k=0;
for i2=1:length(L_data)
k=k+ceil(d_data(i2)/floor(L/L_data(i2)));%计算一个初始的范围
end
%% 用GA求解
%未知数为aij和k1,aij前k1行有数据,后面k-k1行为0
LB=zeros(k*m+1,1);%下限
b=d_data;
A=zeros(m,k*m);
for i3=1:m%不同的钢筋种类
for i4=1:k
A(i3,i3+(i4-1)*k)=1;
end
end
%% 显示结果
end |
|