上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.4 MATLAB求解
2.4.1 案例3的求解
根据所建立的数学模型,调用求解纯整数线性规划的自编MATLAB函数程序Ch1 FZDJ求解。编写脚本文件程序(命名:Case2 1),源码的具体内容如下。
clc,clear% 清除命令窗口,清除工作空间 % 设定原始数据 F = [27 41 24 28 40 29 0 23 30 37 21 27]; Aeq =[1 zeros(1,3)1 zeros(1,3)1 zeros(1,3);zeros(1,1)1 zeros(1,3)1 zeros(1,3)1 zeros(1,2);... zeros(1,2)1 zeros(1,3)1 zeros(1,3)1 zeros(1,1);zeros(1,3)1 zeros(1,3)1 zeros(1,3)1]; Beq = [20 30 30 40]; A = [ones(1,4)zeros(1,8);zeros(1,4)ones(1,4)zeros(1,4);zeros(1,8)ones(1,4)]; B =[75 75 45]; LB = zeros(1,12)';UB =[inf* ones(1,6)0 inf* ones(1,5)]'; % 求解 [x,min_fval] = Ch1_FZDJ(F,A,B,Aeq,Beq,LB,UB); % 输出结果 fprintf('1.各厂家向各客户的配送量为: \n') disp(' F1-C1 F1-C2 F1-C3 F1-C4'),disp(x(1:4)') disp(' F2-C1 F2-C2 F2-C3 F2-C4'),disp(x(5:8)') disp(' F3-C1 F3-C2 F3-C3 F3-C4'),disp(x(9:12)') fprintf('2.最小成本为(元): '),disp(min_fval)
在MATLAB命令窗口中执行Case2 1,所得结果如图2-1所示。
图2-1 案例3的求解结果
由图2-1所示的求解结果可知,当厂家1向客户1配送20件,厂家2分别向客户2和客户4配送30件与40件,厂家3向客户3配送30件时,可使得运输成本最小。在该配送方案下,最小成本为2960元。
2.4.2 案例4的求解
根据所建立的数学模型,调用求解纯整数线性规划的自编MATLAB函数程序Ch1 FZDJ求解。编写脚本文件程序(命名:Case2 2),源码的具体内容如下。
clc,clear% 清除命令窗口,清除工作空间 % 设定原始数据 F = -[46 53 55 42 32 48 37 18 51 35 29 59]; Aeq =[ones(1,4)zeros(1,8);zeros(1,4)ones(1,4)zeros(1,4);... zeros(1,8)ones(1,4);1 zeros(1,3)1 zeros(1,3)1 zeros(1,3)]; Beq =[8000500070007000]; A =[zeros(1,1)1 zeros(1,3)1 zeros(1,3)1 zeros(1,2);zeros(1,1) -1 zeros(1,3) -1 zeros(1,3) -1 zeros(1,2);... zeros(1,2)1 zeros(1,3)1 zeros(1,3)1 zeros(1,1);zeros(1,2) -1 zeros(1,3) -1 zeros(1,3) -1 zeros(1,1);... zeros(1,3)1 zeros(1,3)1 zeros(1,3)1];B =[9000-30006000-20008000]; LB = zeros(1,12)';UB = inf* ones(1,12)'; % 求解 [x,min_fval] = Ch1_FZDJ(F,A,B,Aeq,Beq,LB,UB); % 输出结果 fprintf('1.各厂家向各客户的配送量为: \n') disp(' F1-C1 F1-C2 F1-C3 F1-C4'),disp(x(1:4)') disp(' F2-C1 F2-C2 F2-C3 F2-C4'),disp(x(5:8)') disp(' F3-C1 F3-C2 F3-C3 F3-C4'),disp(x(9:12)') fprintf('2.最大利润为: '),disp(-min_fval)
在MATLAB命令窗口中执行Case2 2,所得结果如图2-2所示。
图2-2 案例4的求解结果
由图2-2所示的求解结果可知,当分厂1分别向客户1和客户3配送2000件和6000件,分厂2向客户2配送5000件,分厂3分别向客户1和客户4配送5000件和2000件时,可获得最大利润1035000元。