建模历程(NPMCM)2——蔬菜供应方案设计

这道题其实是第三次的题,第二次的题目是:局部脑血流测定,现在看起来虽然问题简单但没做出来什么新东西,所以直接总结第三次的。

首先,先看题目,图1所示为江平市的蔬菜供应网点图,图中A、B、C为蔬菜收购点,①到⑧为城中的菜市场,各菜市场的每天需求量与供应不平衡时会产生损失费用,蔬菜运输到各菜市场会产生运输费用,题目大概就是这样。 然后我们先梳理一下思路,问题一需要我们设计一种方案,使蔬菜调运及预期的短缺损失最小,这个问题就很明确了,要让运输费用和短缺损失费用之和最小,而运输费用只与运输里程有关、短缺损失费由各个菜市场的短缺量决定,以此建立线性规划模型并进行求解就行了。   

图1

通过上面对问题进行的初步分析,图1中路网所有节点之间的最短距离首先需要求解的。最短距离矩阵的求解使用Floyd或Dijkstra算法均可,但图1中节点编号不完整,所以重新进行编号如图2所示。

     

图2

根据图2编号顺序将带权邻接矩阵写出,然后直接由Floyd或Dijkstra算法去求解最短距离即可。下面的程序将二者求解的结果进行了比较,看是否一致,当然对本题来说结果是一致的。

%% 清空环境clcclear%% 输入带权邻接矩阵a1=[0 7 5 4 inf inf inf inf inf inf inf inf inf inf inf;...    7 0 inf 8 3 7 inf inf inf inf inf inf inf inf inf;...    5 inf 0 6 inf inf 5 inf 7 inf inf inf inf inf inf;...    4 8 6 0 7 inf 4 8 inf inf inf inf inf inf inf;...    inf 3 inf 7 0 6 inf 5 inf inf inf inf inf inf inf;...    inf 7 inf inf 6 0 inf 7 inf inf 11 inf inf inf inf;...    inf inf 5 4 inf inf 0 4 inf 7 inf inf inf inf inf;...    inf inf inf 8 5 7 4 0 inf 5 6 inf inf inf inf;...    inf inf 7 inf inf inf inf inf 0 6 inf inf 8 inf 10;...    inf inf inf inf inf inf 7 5 6 0 3 inf 6 inf inf;...    inf inf inf inf inf 11 inf 6 inf 3 0 5 inf 6 inf;...    inf inf inf inf inf inf inf inf inf inf 5 0 inf inf inf;...    inf inf inf inf inf inf inf inf 8 6 inf inf 0 10 5;...    inf inf inf inf inf inf inf inf inf inf 6 inf 10 0 11;...    inf inf inf inf inf inf inf inf 10 inf inf inf 5 11 0]; %各个节点邻接矩阵%% 调用函数[D,path]=Floyd(a)[D,path]=Floyd(a1);%% 调用函数[min,path]=dijkstra(a,ul,ub)[m,n]=size(a1);D1=zeros(m,n);for i=1:m    for j=1:n        D1(i,j)=dijkstra(a1,i,j);    endend%% 判断Floyd和Dijkstra算法所得结果是否相同% disp(D)disp('===============')disp('判断Floyd和Dijkstra算法所得结果是否相同')if isequal(D, D1)    disp('--------相同')else    disp('--------不相同')end

接下来就可以求解LP模型了,模型如下:

关于变量,简单说明D为距离、M为运送重量、N为菜市场需求量、S为缺货损失。

由“linprog”求解上述LP模型,所得结果如图3所示。

[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,options)

图3 A、B、C 三个收购点对①至⑧号菜市场的供应方案

第一问到此就结束了,本题后面还有两问,但其实思路和第一问大同小异,这里就不做赘述了。

本文全部实现程序以及详细题目,后台回复“NPMCM2或“FDLP”获取。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1)这本书为什么值得看: Python语言描述,如果学的Python用这本书学数据结构更合适 2016年出版,内容...
    孙怀阔阅读 14,339评论 0 15
  • 摘要:为进一步整合开放医疗数据和社会其他资源,本文提出了一套数据利用方案。以无锡市局部路网为原型,构建了一基于互联...
    a微风掠过阅读 3,638评论 0 0
  • 最近在复习和学习数学建模的东西,主要是《数学建模优秀论文精选与点评(2011-2015)》和《数学建模方法及其应用...
    X_Ran_0a11阅读 6,621评论 0 2
  • 7.1 图的定义和术语 顶点(Vertex)记是顶点的有穷非空集合 以表示从到的弧(Arc),其中称为弧尾(Tai...
    Collie阅读 3,382评论 0 0
  • Dijkstra 算法 前言 为了达到任意两结点的最短路径,我们有几种算法可以实现:Dijkstra 算法、Flo...
    廖少少阅读 10,985评论 0 7

友情链接更多精彩内容