2019年五一杯数学建模B题木板最优切割方案解题全过程文档及程序

news2024/11/19 1:23:34

2019年五一杯数学建模

B题 木板最优切割方案

原题再现

  徐州某家具厂新进一批木板如表 1 所示,在家具加工的过程中,需要使用切割工具生产表 2所示的产品。假设:木板厚度和割缝宽度忽略不计。
在这里插入图片描述
  请为该家具厂给出如下问题的木板最优切割方案。
  1. 在一块木板上切割 P1 产品,建立数学模型,给出木板利用率最高(即剩余木板面积最小)的切割方案,并将最优方案的结果填入表 3。
在这里插入图片描述
  2. 在一块木板上切割 P1 和 P3 产品,建立数学模型,给出按照木板利用率由高到低排序的前 3 种切割方案,并将结果填入表 4。
在这里插入图片描述
  3. 需要完成表 2 中 P1 和 P3 产品的生产任务,建立数学模型,给出木板总利用率最高的切割方案,并将结果填入表 5。
在这里插入图片描述
  4. 需要完成表 2 中 P1、P2、P3、P4 产品的生产任务,建立数学模型,给出木板总利用率最高的切割方案,并将结果填入表 6。
在这里插入图片描述
  5. 不考虑产品P1,P2,P3,P4的需求数量,给定100张S1木板,按照表2中给出的利润,建立数学模型,给出总利润最大的切割方案,并将结果填入表7。
在这里插入图片描述

整体求解过程概述(摘要)

  本文主要研究了在给定条件下如何对木板最优切割问题,重点研究分析了不同情况下的切割方案,通过建立线性规划模型和混合整数规划模型,并利用 MATLAB和 LINGO 对提出的模型进行求解,具体结果如下:
  对于问题一:考虑到只切割 P1 产品,若想木板利用率最高,只需切割产品的总面积最大,根据两个产品不能重叠,引入了坐标的思想,建立线性规划模型,结合 MATLAB 里的 fmincon 函数求解,得出:在只切割 P1 产品时,一块木板上能够切割 59 块 P1 产品,最高木板利用率为 98.30%。
  对于问题二:在问题一模型的基础上,添加变量𝑘𝑖表示产品种类,建立新的线性规划模型,结合遗传算法求解,在两种产品数量可以为 0 的情况下,木板利用率由高到底排序的前三种切割方案为:
  方案1:在木板全部切割P3产品,能够切割48 块P3,此时木板利用率为99.17%;
  方案2:在木板上切割47块P3产品和 1块P1 产品,此时木板利用率为98.77%;
  方案3:在木板上切割46块P3产品和 2块P1 产品,此时木板利用率为98.37%。
  对于问题三:根据问题一、二中提出的线性规划模型,对问题 3 分析并建立新的整数规划模型,得到最优切割方案如下:用 33 个木板全部切割 P3,得到 1584 个P3,剩余 39 个,利用率为 99.17%;用 13 个木板全部切割 P1,得到 767 个 P1,剩余 7 个 P1,利用率为 98.30%;再将剩余的 7 个 P1 和 39 个 P3 用 1 个木板切割,利用率为 92.23%;所需木板总数量为 47,木板总利用率为 98.78%。
  对于问题四:首先考虑切割面积较大的产品,每次切割按面积大小依次切割,由于选取方案较多,只枚举部分切割方案,以切割的木板数量最少为目标函数,建立混合整数规划模型。运用 LINGO 求解,得到结果:需要木板 S1 的总数量为 138,木板总利用率为 98.47%,具体方案见表 6。
  对于问题五:同问题 4 的思想相同,在分割时,首先考虑尽可能的切割单位面积利润较大的产品,即首先切割 P1 产品,建立线性规划模型,通过 LINGO 求解,得到结果:在 100 块木板上只切割 P1,总数量为 5900,其余产品数量均为 0,总利润为 117410 元,木板总利用率为 98.30%
  最后,深入研究了论文中提出的模型并加以分析,对模型的优化提供了一些改进思路。

模型假设:

  由于产品要求,需要对木板进行一定的打磨去除粗边的加工,切割后的木板也需要进行一定的加工处理才可投入使用。切割时需要考虑切割损失等影响因素,因此,对于本题,我们做出如下假设:
  (1) 不考虑切割时木板产生的损耗。
  (2) 木板可以沿着任意方向切割。
  (3) 木板可以任意摆放。
  (4) 用材不能重叠,不超过原材料的大小。
  (5) 原板材密度厚度均匀,形状为规则矩形。
  (6) 木板厚度和割缝宽度忽略不计。

问题分析:

  此问题为板材下料问题,只切割一种产品时,切割方案比较容易,对于切割多种产品时,需要尽可能的求解板材切割方案,确定不同的方案使得木板得到更多的利用。
  对于问题 1,求解出只切割 P1 产品的木板利用率最高的切割方案,若想木板利用率最高,只需切割产品的总面积最大,即在只切割同一种产品的情况下,只需切割产品的数量最多,问题可以转化为:经过对木板切割,使得获得的 P1 产品数量最多,建立线性规划模型,结合 MATLAB 里的 fmincon 函数求解。
  对于问题 2,求解出在一块木板上切割 P1 和 P3 产品,木板利用率由高到低排序前 3 的切割方案,对问题进行分析,可以将此问题转化为:在 P1 和 P3 产品个数可以为 0 的情况下,在木板上切割 P1 和 P3 产品,可将问题转化为两种产品的总面积之和最大的问题。同问题 1 一样,用线性规划模型,结合 MATLAB 里的 fmincon函数求解。
  对于问题 3,要求出木板总利用率最高的切割方案,经过对问题 3 的分析,可将问题转化为所需木板数量最少的问题,即两种木板的总面积除以所需木板的总面积最大。同问题 1、2 一样,用线性规划建立模型,结合 MATLAB 里的 fmincon 函数求解。
  对于问题 4,在完成 P1,P2,P3,P4 产品的生产任务的条件下,找出木板总利用率最高的切割方案。通过建立相关模型,我们首先找出利用率较高的 12 种切割方案,再建立线性规划模型对这 12 种切割方案进行优化组合,通过 LINGO 函数进行求解。
  对于问题 5,在给定 100 张 S1 木板,不考虑产品 P1,P2,P3,P4 的需求数量的条件下,找出总利润最大切割方案,经过对问题 5 的分析,可以将其转化为找出单张木板的切割利润最大的问题。类似问题 4,建立线性规划模型,通过 LINGO 函数进行求解。

模型的建立与求解整体论文缩略图

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

clc,clear
x1=0;
x2=0; 
n2=0; 
n=0;
for n1=0:8              % 长为3000的边全部放 横放 最多放 8  块
%     n2=0;             % 若将 n2 定义成局部变量 后面的 n2 清零操作可以不需要,因为每次循环结束 局部变量的值自动释放
    while n2*201+n1*373<=3000 
        n2=n2+1;
    end
    if n2*201+n1*373>3000 
        n2=n2-1;        % 最后一次循环n2的值使 n2*201+n1*373>3000  超出 边界30 ,所以 n2 需要减 1
    end
    n=n2*4+n1*7;    % 竖放 最多放 4 行, 横放 最多放 7q=((n2*4+n1*7)*(373*201))/(3000*1500);
    fprintf('竖放%2d 列,横放%2d 列,总数%d,利用率%f\n',n2,n1,n,q); 
%     n=0;        % 清零 进行下次循环   重新计算下次循环总数
    n2=0;       % 清零 进行下次循环   为 "竖放" 计数
end
clc;clear; x=3000; y=1500;
x1=0; 
x2=0; 
i=0;
%同行不同列
fprintf('横放\n');
fprintf('(1)同行不同列\n');
for x1=1:7
    while x1*373+x2*406<=3000       % P1、P3按最长边横放在长为 3000 的边上  且 P1 、P3至少横放一个
        x2=x2+1;
    end
    while x1*373+x2*406>3000 
        x2=x2-1;
    end
    m1=x1*7;    % P1 最多放 715/2.01=7.4627
    m2=x2*6;    % P3 最多放 615/2.29=6.5502
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f\n',x1,m1,x2,m2,q);
    x2=0;
end
 
%同列不同行
y2=0;
fprintf('(2)同列不同行\n'); 
for y1=1:7
    while 201*y1+229*y2<=1500       % P1、P3 最短边 放在 长 1500的边
        y2=y2+1;
    end
    while 201*y1+229*y2>1500 
        y2=y2-1;
    end
    m1=y1*8; 
    m2=y2*7;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 行 ,	P1:%2d 个 ,	P3:%2d 行 ,	P3:%2d 个 , 利 用率%f\n',y1,m1,y2,m2,q);
    y2=0;
end

fprintf('竖放\n');
fprintf('(3)同行不同列\n'); 
x2=0;
for x1=1:14
    while x1*201+x2*229<=3000       % P1、P3 最短边 放在 长 3000的边
        x2=x2+1;
    end
    while x1*201+x2*229>3000 
        x2=x2-1;
    end
    m1=x1*4; 
    m2=x2*3;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f\n',x1,m1,x2,m2,q);
    x2=0;
end

fprintf('(4)同列不同行\n'); 
y2=0;
for y1=1:3
    while y1*373+y2*406<=1500   % P1、P3最长边放在  长1500的边
        y2=y2+1;
    end
    while y1*373+y2*406>1500
        y2=y2-1;
    end
    m1=y1*14; 
    m2=y2*13;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 行 ,	P1:%2d 个 ,	P3:%2d 行 ,	P3:%2d 个 , 利 用率%f\n',y1,m1,y2,m2,q);
    y2=0;
end

%交叉
fprintf('(5)p1 竖放,p3 横放\n');
fprintf('同行不同列\n'); 
x2=0;
y2=0;
for x1=1:13
    while x1*201+x2*406<=3000       % P1最短边、P3 最长边 放在 长 3000的边
        x2=x2+1;
    end
    while x1*201+x2*406>3000 
        x2=x2-1;
    end
    m1=x1*4; 
    m2=x2*6;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f\n',x1,m1,x2,m2,q);
    x2=0;
end
y2=0;
fprintf('(6)p1 竖放,p3 横放,不同行\n'); 
for y1=1:4
    while y1*373+y2*229<=1500       % P1最长边、P3 最短边 放在 长 1500的边
        y2=y2+1;
    end
    while y1*373+y2*229>1500 
        y2=y2-1;
    end
    m1=y1*14; 
    m2=y2*7;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f\n',y1,m1,y2,m2,q);
    x2=0;
end
 
fprintf('(7)p1 横放,p3 竖放,同行\n'); 
for x1=1:7
    while x1*373+x2*229<=3000       % P1最长边、P3 最短边 放在 长 3000的边
        x2=x2+1;
    end
    while x1*373+x2*229>3000 
        x2=x2-1;
    end
    m1=x1*7; 
    m2=x2*3;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f\n',x1,m1,x2,m2,q);
    x2=0;
end

y2=0;
fprintf('(8)p1 横放,p3 竖放,不同行\n'); 
for y1=1:5
    while y1*201+y2*406<=1500       % P1最短边、P3 最长边 放在 长 1500的边
        y2=y2+1;
    end
    while y1*201+y2*406>1500 
        y2=y2-1;
    end
    m1=y1*8; 
    m2=y2*13;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f\n',y1,m1,y2,m2,q);
    x2=0;
end
clc;clear; 
x=3000; 
y=1500;
x1=0; 
x2=0; 
i=0; 
s=0;
qq=0;

%同行不同列
 
fprintf('横放\n');
fprintf('(1)同行不同列\n'); 
for x1=1:6
    while x1*373+x2*406<=3000 
        x2=x2+1;
    end
    while x1*373+x2*406>3000 
        x2=x2-1;
    end
    m1=x1*7; 
    m2=x2*6;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f',x1,m1,x2,m2,q);
    while s*m1<=774||s*m2<=1623 
        s=s+1;
    end
    qq=(373*201*774+406*229*1623)/(s*3000*1500);
    fprintf('\tS1 的块数%d,总的利用率%f\n',s,qq); 
    qq=0;
    s=0; 
    x2=0;
end
 

%同列不同行
y2=0;
fprintf('(2)同列不同行\n'); 
for y1=1:6
    while 201*y1+229*y2<=1500 
        y2=y2+1;
    end
    while 201*y1+229*y2>1500 
        y2=y2-1;
    end
    m1=y1*8; 
    m2=y2*7;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 行 ,	P1:%2d 个 ,	P3:%2d 行 ,	P3:%2d 个 , 利 用率%f',y1,m1,y2,m2,q);
    y2=0;
    while s*m1<=774||s*m2<=1623 
        s=s+1;
    end
    qq=(373*201*774+406*229*1623)/(s*3000*1500);
    fprintf('\tS1 的块数%d,总的利用率%f\n',s,qq); 
    qq=0;
    s=0;
end
fprintf('竖放\n');
fprintf('(3)同行不同列\n'); 
x2=0;
for x1=1:13
    while x1*201+x2*229<=3000 
        x2=x2+1;
    end
    while x1*201+x2*229>3000 
        x2=x2-1;
    end
    m1=x1*4; 
    m2=x2*3;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f',x1,m1,x2,m2,q);
    x2=0;
    while s*m1<=774||s*m2<=1623 
        s=s+1;
    end
    qq=(373*201*774+406*229*1623)/(s*3000*1500);
    fprintf('\tS1 的块数%d,总的利用率%f\n',s,qq); 
    qq=0;
    s=0;
end

fprintf('(4)同列不同行\n'); 
y2=0;
for y1=1:2
    while y1*373+y2*406<=1500 
        y2=y2+1;
    end
    while y1*373+y2*406>1500 
        y2=y2-1;
    end
    m1=y1*14; 
    m2=y2*13;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 行 ,	P1:%2d 个 ,	P3:%2d 行 ,	P3:%2d 个 , 利 用率%f',y1,m1,y2,m2,q);
    y2=0;
    while s*m1<=774||s*m2<=1623 
        s=s+1;
    end
    qq=(373*201*774+406*229*1623)/(s*3000*1500);
    fprintf('\tS1 的块数%d,总的利用率%f\n',s,qq); 
    s=0;
    qq=0;
end
 

%交叉
fprintf('(5)p1 竖放,p3 横放,同行\n');
fprintf('同行不同列\n'); 
x2=0;
y2=0;
for x1=1:12
    while x1*201+x2*406<=3000 
        x2=x2+1;
    end
    while x1*201+x2*406>3000 
        x2=x2-1;
    end
    m1=x1*4; m2=x2*6;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f',x1,m1,x2,m2,q);
    x2=0;
    while s*m1<=774||s*m2<=1623 
        s=s+1;
    end
    qq=(373*201*774+406*229*1623)/(s*3000*1500);
    fprintf('\tS1 的块数%d,总的利用率%f\n',s,qq); 
    s=0;
    qq=0;
end
 
y2=0;
fprintf('(6)p1 竖放,p3 横放,不同行\n'); 
for y1=1:3
    while y1*373+y2*229<=1500 
        y2=y2+1;
    end
    while y1*373+y2*229>1500
        y2=y2-1;
    end
    m1=y1*14; 
    m2=y2*7;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f',y1,m1,y2,m2,q);
    x2=0;
    while s*m1<=774||s*m2<=1623 
        s=s+1;
    end
    qq=(373*201*774+406*229*1623)/(s*3000*1500);
    fprintf('\tS1 的块数%d,总的利用率%f\n',s,qq); 
    s=0;
    qq=0;
end

fprintf('(7)p1 横放,p3 竖放,同行\n'); 
for x1=1:7
    while x1*373+x2*229<=3000 
        x2=x2+1;
    end
    while x1*373+x2*229>3000 
        x2=x2-1;
    end
    m1=x1*7; 
    m2=x2*3;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f',x1,m1,x2,m2,q);
    x2=0;
    while s*m1<=774||s*m2<=1623 
        s=s+1;
    end
    qq=(373*201*774+406*229*1623)/(s*3000*1500);
    fprintf('\tS1 的块数%d,总的利用率%f\n',s,qq); 
    s=0;
    qq=0;
end

y2=0;
fprintf('(8)p1 横放,p3 竖放,不同行\n'); 
for y1=1:5
    while y1*201+y2*406<=1500 
        y2=y2+1;
    end
    while y1*201+y2*406>1500 
        y2=y2-1;
    end
    m1=y1*8; 
    m2=y2*13;
    q=((m1*373*201)+(m2*406*229))/(3000*1500);
    fprintf('P1:%2d 列 ,	P1:%2d 个 ,	P3:%2d 列 ,	P3:%2d 个 , 利 用率%f',y1,m1,y2,m2,q);
    x2=0;
    while s*m1<=774||s*m2<=1623 
        s=s+1;
    end
    qq=(373*201*774+406*229*1623)/(s*3000*1500);
    fprintf('\tS1 的块数%d,总的利用率%f\n',s,qq); 
    s=0;
    qq=0;
end
clc;clear; 
x1=0;y1=1;m1=0; 
x2=0;y2=1;m2=0; 
x3=0;y3=1;m3=0; 
x4=0;y4=1;m4=0; 
q0=3000*1500; 
q1=373*201; 
q2=477*282; 
q3=406*229; 
q4=311*225; 
s=0;
i=1;
fprintf('(1)同列不同行 横放\n');%1 
for y1=1:10
    for y2=1:10
        for y3=1:10
            for y4=1:10
                if y1*201+y2*282+y3*229+y4*225<=1500&&y1*201+y2*282+y3*229+(y4+1)*225>1500
                    m1=y1*8;m2=y2*6;m3=y3*7;m4=y4*9; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 行、%2d 个,P2:%d 行、%2d 个,P3:%d 行 、 %2d 个 , P4:%d 行 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',y1,m1,y2,m2,y3,m3,y4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end

fprintf('(2)同行不同列 全部竖放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*282+x3*229+x4*225<=3000&&x1*201+x2*282+x3*229+(x4+1)*225>3000
                    m1=x1*4;m2=x2*3;m3=x3*3;m4=x4; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(3)同行不同列 P1 竖放,P3 竖放,P3 竖放,P2 横放\n');%1 
for y1=1:15
    for x2=1:15
        for y3=1:15
            for y4=1:15 
                if y1*201+x2*477+y3*229+y4*225<=3000&&y1*201+x2*477+y3*229+(y4+1)*225>3000
                    m1=y1*4;m2=x2*5;m3=y3*3;m4=y4*4; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 行、%2d 个,P2:%d 列、%2d 个,P3:%d 行 、 %2d 个 , P4:%d 行 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',y1,m1,y2,m2,y3,m3,y4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(4)同行不同列 P2 竖放,P3 竖放,P4 竖放,P1 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*282+x3*229+x4*225<=3000&&x1*373+x2*282+x3*229+(x4+1)*225>3000
                    m1=x1*7;m2=x2*3;m3=x3*3;m4=x4*4; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end

fprintf('(5)同行不同列 P2 竖放,P1 竖放,P4 竖放,P3 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*282+x3*406+x4*225<=3000&&x1*201+x2*282+x3*406+(x4+1)*225>3000
                    m1=x1*4;m2=x2*3;m3=x3*6;m4=x4*4; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(6)同行不同列 P2 竖放,P1 竖放,P3 竖放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*282+x3*229+x4*311<=3000&&x1*201+x2*282+x3*229+(x4+1)*311>3000
                    m1=x1*4;m2=x2*3;m3=x3*3;m4=x4*6; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end

fprintf('(7)同行不同列 P3 竖放,P4 竖放,P2 横放,P1 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*477+x3*229+x4*225<=3000&&x1*373+x2*477+x3*229+(x4+1)*225>3000
                    m1=x1*7;m2=x2*5;m3=x3*3;m4=x4*4; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(8)同行不同列 P2 竖放,P4 竖放,P3 横放,P1 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*282+x3*406+x4*225<=3000&&x1*373+x2*282+x3*406+(x4+1)*225>3000
                    m1=x1*7;m2=x2*3;m3=x3*6;m4=x4*4; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end

fprintf('(9)同行不同列 P2 竖放,P3 竖放,P4 横放,P1 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*282+x3*229+x4*311<=3000&&x1*373+x2*282+x3*229+(x4+1)*311>3000
                    m1=x1*7;m2=x2*3;m3=x3*3;m4=x4*6; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end 

fprintf('(10)同行不同列 P1 竖放,P4 竖放,P2 横放,P3 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15        
            for x4=1:15 
                if x1*201+x2*477+x3*406+x4*225<=3000&&x1*201+x2*477+x3*406+(x4+1)*225>3000
                    m1=x1*4;m2=x2*5;m3=x3*6;m4=x4*4; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(11)同行不同列 P1 竖放,P3 竖放,P2 横放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*477+x3*229+x4*311<=3000&&x1*201+x2*477+x3*229+(x4+1)*311>3000
                    m1=x1*4;m2=x2*5;m3=x3*3;m4=x4*6; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end

fprintf('(12)同行不同列 P1 竖放,P2 竖放,P3 横放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*282+x3*406+x4*311<=3000&&x1*201+x2*282+x3*406+(x4+1)*311>3000
                    m1=x1*4;m2=x2*3;m3=x3*6;m4=x4*6; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(13)同行不同列 P1 竖放,P2 横放,P3 横放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*477+x3*406+x4*311<=3000&&x1*201+x2*477+x3*406+(x4+1)*311>3000
                    m1=x1*4;m2=x2*5;m3=x3*6;m4=x4*6; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end 

fprintf('(14)同行不同列 P1 横放,P2 竖放,P3 横放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*282+x3*406+x4*311<=3000&&x1*373+x2*282+x3*406+(x4+1)*311>3000
                    m1=x1*7;m2=x2*3;m3=x3*6;m4=x4*6; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end 

fprintf('(15)同行不同列 P1 横放,P2 横放,P3 竖放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*477+x3*229+x4*311<=3000&&x1*373+x2*477+x3*229+(x4+1)*311>3000
                    m1=x1*7;m2=x2*5;m3=x3*3;m4=x4*6; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(16)同行不同列 P1 横放,P2 横放,P3 横放,P4 竖放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*477+x3*406+x4*225<=3000&&x1*373+x2*477+x3*406+(x4+1)*225>3000
                    m1=x1*7;m2=x2*5;m3=x3*6;m4=x4*4; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(17)同行不同列 全部横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15
                if x1*373+x2*477+x3*406+x4*311<=3000&&x1*373+x2*477+x3*406+(x4+1)*311>3000
                    m1=x1*7;m2=x2*5;m3=x3*6;m4=x4*6; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(18)同列不同行 全部竖放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15
                if x1*373+x2*477+x3*406+x4*311<=1500&&x1*373+x2*477+x3*406+(x4+1)*311>1500
                    m1=x1*14;m2=x2*10;m3=x3*13;m4=x4*13;
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s);
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 
%1500 为基准
fprintf('(19)同列不同行 P2 竖放,P3 竖放,P4 竖放,P1 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*477+x3*406+x4*311<=1500&&x1*201+x2*477+x3*406+(x4+1)*311>1500
                    m1=x1*8;m2=x2*10;m3=x3*13;m4=x4*13; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(20)同列不同行 P1 竖放,P3 竖放,P4 竖放,P2 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*282+x3*406+x4*311<=1500&&x1*373+x2*282+x3*406+(x4+1)*311>1500
                    m1=x1*14;m2=x2*6;m3=x3*13;m4=x4*13; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(21)同列不同行 P1 竖放,P2 竖放,P4 竖放,P3 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*477+x3*229+x4*311<=1500&&x1*373+x2*477+x3*229+(x4+1)*311>1500
                    m1=x1*14;m2=x2*10;m3=x3*7;m4=x4*13; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(22)同列不同行 P1 竖放,P2 竖放,P3 竖放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*477+x3*406+x4*225<=1500&&x1*373+x2*477+x3*406+(x4+1)*225>1500
                    m1=x1*14;m2=x2*10;m3=x3*13;m4=x4*9; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(23)同列不同行 P1 竖放,P2 竖放,P3 横放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*477+x3*229+x4*225<=1500&&x1*373+x2*477+x3*229+(x4+1)*225>1500
                    m1=x1*14;m2=x2*10;m3=x3*7;m4=x4*9; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(24)同列不同行 P1 竖放,P2 横放,P3 竖放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15
                if x1*373+x2*282+x3*406+x4*225<=1500&&x1*373+x2*282+x3*406+(x4+1)*225>1500
                    m1=x1*14;m2=x2*6;m3=x3*13;m4=x4*9; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(25)同列不同行 P1 竖放,P3 横放,P4 竖放,P2 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*282+x3*229+x4*311<=1500&&x1*373+x2*282+x3*229+(x4+1)*311>1500
                    m1=x1*14;m2=x2*6;m3=x3*7;m4=x4*13; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 
fprintf('(26)同列不同行 P1 横放,P2 竖放,P3 竖放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*477+x3*406+x4*225<=1500&&x1*201+x2*477+x3*406+(x4+1)*225>1500
                    m1=x1*8;m2=x2*10;m3=x3*13;m4=x4*9; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(27)同列不同行 P1 横放,P2 竖放,P4 竖放,P3 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*477+x3*229+x4*311<=1500&&x1*201+x2*477+x3*229+(x4+1)*311>1500
                    m1=x1*8;m2=x2*10;m3=x3*7;m4=x4*13; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end 

fprintf('(28)同列不同行 P1 横放,P3 竖放,P4 竖放,P2 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*282+x3*406+x4*311<=1500&&x1*201+x2*282+x3*406+(x4+1)*311>1500
                    m1=x1*8;m2=x2*6;m3=x3*13;m4=x4*13; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(29)同列不同行 P1 竖放,P2 横放,P3 横放,P4 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*373+x2*282+x3*229+x4*225<=1500&&x1*373+x2*282+x3*229+(x4+1)*225>1500
                    m1=x1*14;m2=x2*6;m3=x3*7;m4=x4*9; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end 

fprintf('(30)同列不同行 P1 横放,P2 竖放,P4 横放,P3 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*477+x3*229+x4*225<=1500&&x1*201+x2*477+x3*229+(x4+1)*225>1500
                    m1=x1*8;m2=x2*10;m3=x3*7;m4=x4*9; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(31)同列不同行 P1 横放,P3 竖放,P4 横放,P2 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*282+x3*406+x4*225<=1500&&x1*201+x2*282+x3*406+(x4+1)*225>1500
                    m1=x1*8;m2=x2*6;m3=x3*13;m4=x4*9; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
 

fprintf('(32)同列不同行 P1 横放,P3 横放,P4 竖放,P2 横放\n');%1 
for x1=1:15
    for x2=1:15
        for x3=1:15
            for x4=1:15 
                if x1*201+x2*282+x3*229+x4*311<=1500&&x1*201+x2*282+x3*229+(x4+1)*311>1500
                    m1=x1*8;m2=x2*6;m3=x3*7;m4=x4*13; 
                    Q0=(m1*q1+m2*q2+m3*q3+m4*q4)/q0;
                    while s*m1<774||s*m2<2153||s*m3<1623||s*m4<1614 
                        s=s+1;
                    end
                    Q1=(q1*774+2153*q2+1623*q3+1614*q4)/(q0*s); 
                    if Q1>=0.7
                        fprintf('P1:%d 列、%2d 个,P2:%d 列、%2d 个,P3:%d 列 、 %2d 个 , P4:%d 列 、 %2d 个 , 单 块 利 用 率 %f,S1 的 块 数 %d, 总 利 用率%f\n',x1,m1,x2,m2,x3,m3,x4,m4,Q0,s,Q1);
                    end
                    s=0;
                end
            end
        end
    end
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1210740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

队列与堆栈:原理、区别、算法效率和应用场景的探究

队列与堆栈&#xff1a;原理、区别、算法效率和应用场景的探究 前言原理与应用场景队列原理应用场景&#xff1a; 堆栈原理应用场景递归原理和堆栈在其中的作用递归原理堆栈作用 队列与堆栈区别队列堆栈算法效率 前言 本文主要讲解数据结构中队列和堆栈的原理、区别以及相关的…

requests库验证错误解决方法

用户在使用requests库进行http请求时&#xff0c;遇到了一个AuthenticationRequired&#xff08;身份验证必须&#xff09;的错误。但是&#xff0c;当使用urllib.request.urlopen进行相同的操作时&#xff0c;却能够成功。同时&#xff0c;用户提供了自己的系统信息&#xff0…

GPT 学习法:恐怖算力 + 精确算法,实现复杂文献轻松的完美理解、在庞大的不确性中找到确定性

GPT 学习法&#xff1a;恐怖算力 精确算法&#xff0c;实现复杂文献轻松的完美理解、在庞大的不确性中找到确定性 复杂文献 - 恐怖算力 精确算法&#xff0c;复杂文献轻松的完美理解GPT 理解法 - 举例子、归纳、逻辑链推导本质、图示、概念放大器实战案例&#xff1a;学习高精…

省级数字经济政策词频分析数据集(2005-2023)

数据简介&#xff1a;当今社会&#xff0c;数字经济已经成为推动世界经济发展和社会变革的重要动力。随着信息技术的迅猛发展和智能化技术的普及应用&#xff0c;数字经济政策的制定和实施变得愈发重要。数字经济政策的词频分析成为了对政策文件和宣言进行深度解读的关键工具。…

Vue 中 slot 是什么?作用?分类?如何实现?

结论先行&#xff1a; slot 插槽&#xff0c;是子组件提供给父组件使用的一个占位符&#xff0c;父组件可以在这个占位符中填充任何模板代码。主要作用就是更好的拓展和定制化组件&#xff0c;例如弹窗组件、表格组件等。分为默认插槽、具名插槽和作用域插槽。 其中前两个都是…

SecureCRT 9.2.4最新

SecureCRT是一款功能强大的终端仿真软件&#xff0c;它通过提供安全的、高效的会话&#xff0c;帮助用户在远程设备上完成各种任务。SecureCRT具有出色的性能和可靠性&#xff0c;能够处理复杂的网络环境&#xff0c;提供高效的远程访问和管理。 SecureCRT的主要特点包括&…

【跨境电商独立站新手入门手册】

一直想要更新一个独立站的系列合集&#xff0c;用小白也看得懂的方式阐述怎么从0到1搭建并运营一个独立站&#xff0c;并且后续我也会录制成视频。 今天&#xff0c;它来了。 这是《跨境电商独立站新手入门手册》系列的第一篇。 你是否有过这样的经历&#xff1a;当你在网上浏…

实用篇-ES-RestClient操作文档

一、RestClient案例准备 对es概念不熟悉的话&#xff0c;先去看上面的 实用篇-ES-索引库和文档&#xff0c;不建议基础不牢就直接往下学 ES官方提供了各种不同语言的客户端&#xff0c;用来操作ES。这些客户端的本质就是组装DSL语句&#xff0c;通过http请求来发送给ES。 官…

zabbix的服务器端 server端安装部署

zabbix的服务器端 server 主机iplocalhost&#xff08;centos 7&#xff09;192.168.10.128 zabbix官网部署教程 但是不全&#xff0c;建议搭配这篇文章一起看 zabbixAgent部署 安装mysql 所有配置信息和Zabbix收集到的数据都被存储在数据库中。 下载对应的yum源 yum ins…

openGauss Summit 2023 | Call for Sponsor、Speaker、Demo

数据库作为千行万业数据的基石&#xff0c;也是推动数字经济发展的核心。随着数字经济的蓬勃发展&#xff0c;数据库将迎来更加广阔的应用场景和更加迫切的需求。openGauss 社区旨在汇聚产、学、研、用多方力量&#xff0c;聚焦基础软件核心能力的构建&#xff0c;引领国内数据…

煮蛋器产业研究:全球市场将超过10亿美元

近年来&#xff0c;随着科技的迅猛发展&#xff0c;煮蛋器市场逐渐呈现出多元化和智能化趋势。厂商们不断推出新款煮蛋器&#xff0c;配备更多功能以满足消费者的个性化需求。同时&#xff0c;煮蛋器也受益于烹饪技术的创新&#xff0c;如加热控制和计时功能等的引入&#xff0…

44. Adb调试QT开发的Android程序实用小技巧汇总

1. 说明 使用QT开发Android应用时,如果程序本身出现了问题,很难进行调试。不像在linux或者windows系统中,可以利用QtCreator软件本身进行一些调试,安卓应用一旦在系统中安装后,如果运行中途出现什么BUG,定位问题所在很麻烦。不过,好在有adb这种调试工具可以代替QtCreat…

笔记无法正常展示,小红书笔记收录分析!

很多时候&#xff0c;小红书收录意味着你的流量其实是被记录了&#xff0c;这是有利于你的笔记曝光的一个表现&#xff0c;今天就来带大家一起分享下&#xff0c;为什么笔记无法正常展示&#xff0c;小红书笔记收录分析&#xff01; 一、什么叫小红书笔记收录 不可能所有的笔记…

希尔顿集团旗下酒店为宾客带来冬日活力新玩法

中国上海&#xff0c;2023年11月14日 - 据希尔顿集团发布的《2024年趋势报告》显示&#xff0c;新一代亚洲旅行者正在崛起&#xff0c;也更重视高品质、个性化的服务。希尔顿集团紧随市场脉搏&#xff0c;在即将到来的冬季为宾客精心策划了一系列特色体验&#xff0c;凭借其遍布…

Visual Studio 2019 C# 断点调试代码内存窗口显示无法计算表达式的解决问题

查看如下界面&#xff0c;发现右下角内存1窗口显示无法计算表达式&#xff1a; 按照如下步骤操作即可&#xff1a; 如果s1局部变量此时有值&#xff0c;但是内存窗口还是无法计算表达式我们可以

微同城生活圈小程序源码系统 专业搭建本地生活服务的平台 带完整搭建教程

在互联网的影响下&#xff0c;越来越多的用户开始依赖手机进行日常生活。为了满足本地居民的需求&#xff0c;源码小编来给大家分享一款全新的微同城生活圈小程序源码系统。该系统旨在为本地居民提供一站式的生活服务解决方案&#xff0c;让您的生活更加便捷、高效。 以下是部…

使用 Cloudflare Worker 免费搭建网址导航网站

开源项目 GitHub&#xff1a;https://github.com/sleepwood/CF-Worker-Dir/ CloudFlare Worker&#xff1a;https://workers.cloudflare.com/ 搭建教程 首先&#xff0c;进入cloud flare - Worker 截图20200224180010.png 在 Cloudflare Worker 管理页面创建一个新的 Work…

NCP1654BD65R2G功率因数校正控制器 用于紧凑和坚固的连续导通模式预转换器

NCP1654BD65R2G是一款高效的同步整流控制器&#xff0c;主要用于DC/DC转换器和LED驱动器等应用。该控制器采用了高性能的反馈控制算法&#xff0c;可以实现高达95%以上的转换效率。此外&#xff0c;NCP1654BD65R2G还具有多种保护功能&#xff0c;如过流保护、过热保护、欠压保护…

【Linux】软硬链接和动静态库

软硬链接 软硬链接的区别&#xff1a; **软链接&#xff1a;**是一个独立文件&#xff0c;有自己独立的 inode 和 inode 编号。**硬链接&#xff1a;**不是一个独立的文件&#xff0c;它和目标文件使用的是同一个 inode。硬链接就是单纯的在 Linux 指定的目录下&#xff0c;给…

根据关键词搜索阿里巴巴商品数据列表接口|阿里巴巴商品列表数据接口|阿里巴巴商品API接口|阿里巴巴API接口

阿里巴巴也提供了根据关键词搜索商品数据列表的接口&#xff0c;方便开发者根据关键词搜索商品并进行相关操作。 请求参数可以包括&#xff1a; q&#xff1a;搜索关键字 start_price&#xff1a;开始价格 end_price&#xff1a;结束价格 page&#xff1a;页码 cat&#xff1…