完整论文
本题是一个运筹优化问题。
对于第一问,题目要求在假定各种农作物未来的预期销售量、种植成本、亩产量和销售价格相对于2023年保持稳定,每季种植的农作物在当季销售的情况下,求出(1)超过部分滞销,造成浪费、(2) 超过部分按2023年销售价格的 50%降价出售。两种情况下的种植方案。首先,对该问题需要建立一个线性规划模型对问题的优化目标及约束条件进行描述。在这里可以将决策变量设置为,代表地块在第年的季种植的作物的亩数。同时,需要对轮种、三年豆类植物种植、种植面积等约束条件进行定义。在建立线性规划模型后,设计一个改进的遗传算法对模型进行求解。考虑问题的解空间较大,可以设计一个多矩阵的染色体编码方式,并对交叉、变异方式进行对应的改进。对于产生的不可行解,设计基于规则的不可行解修复方式使节合法化。在求得结果后,对解的产量及每块耕地的种植面积进行可视化表示。
对于第二问,题目要求考虑蔬菜的预期销售量、亩产量、种植成本和销售价格的不确定性以及潜在的种植风险。在题目中给出了预期销售量、产量、成本等值的波动范围,若直接对各个范围进行排列组合将导致求解的计算资源消耗极大。故在此可以考虑使用正交实验设计,用较少的实验组来代表可能会出现的各种波动风险情况…
模型的建立与求解
数据清洗
问题一的建模与求解
问题二的建模与求解
问题三的建模与求解
代码
第一问
clc
clear
close all;
data = xlsread('附件2.xlsx','2023年统计的相关数据');
data = data(:,[2 5 9 7 6]);
price = [];
for i=1:41 %遍历41种蔬菜
for ii=1:size(data,1)
if data(ii,1)==i %找到了蔬菜
if data(ii,2) == 0 %如果是单季种植
price(1,i) = 0;
price(2,i) = data(ii,3);
break
else %如果不是单季种植
price(data(ii,2),i) = data(ii,3);
end
end
end
end
cost = [];
for i=1:41 %遍历41种蔬菜
for ii=1:size(data,1)
if data(ii,1)==i %找到了蔬菜
if data(ii,2) == 0 %如果是单季种植
cost(1,i) = 0;
cost(2,i) = data(ii,4);
break
else %如果不是单季种植
cost(data(ii,2),i) = data(ii,4);
end
end
end
end
O = []; %存亩产
for i=1:41 %遍历41种蔬菜
for ii=1:size(data,1)
if data(ii,1)==i %找到了蔬菜
if data(ii,2) == 0 %如果是单季种植
O(1,i) = 0;
O(2,i) = data(ii,5);
break
else %如果不是单季种植
O(data(ii,2),i) = data(ii,5);
end
end
end
end
完整论文与代码,请看下方!