2018年五一杯数学建模A题徐州潘安湖风景区游览路线设计解题全过程文档及程序

news2024/11/27 10:39:13

2019年五一杯数学建模

A题 徐州潘安湖风景区游览路线设计

原题再现

  徐州是一个老工业基地和资源型城市,煤炭开采历史长达130年。长期煤炭开采在徐州累计形成采煤塌陷区达数十万亩。位于徐州市贾汪区西南部、紧邻马庄的潘安湖湿地公园原来就是徐州最大的、塌陷最严重的采煤塌陷区。据统计,1949年以来,贾汪煤田累计为国家提供原煤3.5亿余吨, 也造成了11.3万亩土地塌陷。2010年,江苏省单体投资最大的一宗土地整理项目在潘安湖启动,即利用采煤塌陷形成的开阔水面,同步展开基本农田整理、采煤塌陷地复垦、生态环境修复等,在一片废墟上建成一个6500亩湖面的国家级水利风景区。2016年,贾汪被列为“国家全域旅游示范区”首批创建单位,全区共接待游客560万人次,旅游综合收入达到16.8亿元。本题选取潘安湖景区的部分景点(如图1所示),请在如下的假设下,完成徐州潘安湖风景区游览路线设计问题。
  假设:
  (1)任意两个景点之间的最短步行距离如表1给出。
  (2)第二问、第三问假设步行速度 。
  (3)游客在景区停留的时间由“景点之间的步行时间”、“景点游览时间(即在景点内游玩的时间)” 和“在景区外的等待时间”三部分组成,其他时间忽略不计,游览时间必须符合表2的要求。

  1. 从景石出发,步行游览以下景点: ①游客服务中心,②阳光草坪,③森林小剧场,④儿童科普体验区,⑤儿童戏水场,⑥湿地博物馆,⑦湿地商业街。建立数学模型,找出从景石出发,到达⑦湿地商业街,并且经过①—⑥所有景点至少1次的距离最短的路线,计算该路线的长度,并将相关结果填入表格3。注:在每个景点不用停留。

  2. 如果某游客12:00从景石出发,要求他17:00前到达湿地商业街,17:30离开湿地商业街(注:根据表2的要求在湿地商业街游览时间至少为30分钟)。建立数学模型,为该游客设计一条能游览完全部景点(景点①—⑦)且游览总时间最长的游览路线(假设在各个景点没有等待时间),并完成表4的填写。

  3. 如果有3个旅游团,12:00同时从景石出发,要求三个旅游团17:00前到达湿地商业街,17:30离开湿地商业街(注:根据表2的要求在湿地商业街游览时间至少为30分钟),并且每个景点(湿地商业街除外)同时只能容纳1个旅游团游览,按照时间顺序后到达的旅游团,需要等待先到达的旅游团游览结束之后才能开始游览。建立数学模型,为三个旅游团分别设计一条能游览完全部7个景点且游览总时间最长的游览路线,并完成表5的填写。

  4. 假设3个旅游团的步行速度可以在1km/h到3km/h之间调节,但是总的平均步行速度不能超过 ,3个旅游团12:00同时从景石出发,要求三个旅游团17:00前到达湿地商业街,17:30离开湿地商业街(注:根据表2的要求在湿地商业街游览时间至少为30分钟),并且每个景点(湿地商业街除外)同时只能容纳1个旅游团游览,按照时间顺序后到达的旅游团,需要等待先到达的旅游团游览结束之后才能开始游览。建立数学模型,为三个旅游团分别设计一条能游览完全部7个景点且游览总时间长,总的等待时间短的游览路线,并完成表6的填写。

  5. 在现实中,考虑如下两个不确定性因素
  (1) 不同旅游团从景石出发的时间具有不确定性,例如,多个旅游团在不同的时间从景石出发开始游览,在此情况下到达湿地商业街的时间可以顺延。
  (2) 每个景点的等待时间也存在不确定性因素,例如,旅游设施短时间的维护和清理,或者受到散客客流的影响。
  考虑上述两个不确定性因素,其它条件与问题4相同,建立数学模型,为多个旅游团分别设计一条能游览完全部7个景点且游览总时间长,总的等待时间短的游览路线。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

  本文针对徐州潘安湖风景区的部分景点展开游览路线规划的研究,通过将问题图论化,TSP 问题的转化等,建立了最短路线模型,混合整数 0-1 规划模型,双目标混合整数规划模型等,运用了 lingo 算法,穷举法等得到了受时间约束的游览路线方案,并对结果进行了误差分析和相关验算。
  问题一中,针对游览全部景点的最短路线规划问题,首先将问题图论化,将问题与 TSP 问题有机结合起来,通过引入 0-1 决策变量,建立了以线路距离最短为目标的 0-1 整数规划模型,利用 Lingo 软件求得总的步行距离为 1820 米,路线则为:景石→③→⑤→①→②→④→⑥→⑦。此外,我们还对不含有子巡回的约束条件表达式进行了严格的数学证明。
  问题二中,由于游客在时间上存在约束,针对游览时间最长的路线规划问题,基于问题一,又因为总时间是由游览的总时间、景点之间的步行时间、在景区外的等待时间三部分组成。通过引入决策变量,建立了以总游览时间最长为目标的 0-1混合整数规划模型,利用 Lingo 软件求得总游览时间为 270 分钟,总步行时间为 60分钟,路线为:景石→②→④→③→⑤→①→⑥→⑦。
  问题三中,针对 3 个旅游团的路线规划问题,通过顺延在景点外的等待时间来进行约束,由于每个景点只能容纳一个旅游团,基于问题二,建立了以总的游览时间最长为目标的混合 0-1 整数规划模型,采取穷举搜索结合 Lingo 软件的方法,求得最优结果:三个旅游团的最长的游览总时间分别为 270、261.9、268.8 分钟,而总步行时间分别是 60、68、61 分钟,无等待时间。此外,我们还利用 C 语言程序对各个旅游团在各个景点的时间节点是否冲突进行了验证,确保了结果的准确性。
  问题四中,根据对各个旅行团的速度和平均速度的变化,基于问题三,建立了以游览总时间最长,总的等待时间最短为双目标的混合整数规划模型,仍然采取穷举搜索结合 Lingo 软件的方法,求得最优结果:3 个旅游团总游览时间分别为 270、268.8、268.8 分钟,总的步行时间分别为 60、61.2、61.2 分钟,且平均速度满足2km/h,并用 C 语言冲突验证程序对结果的正确性进行了验证,特别注意的是 3 个旅行团的路线规划中有重复的路线选择,但每个旅游团在各个景点的游览时间并没有冲突。
  问题五中,由于考虑了两个不确定因素:①不同旅游团从景点 1(景石)出发的时间具有不确定性;②每个景点的等待时间也存在不确定性。假设存在 n 个旅游团,基于问题四,建立了双目标的混合整数规划模型,并设定了数据进行了试算,得到可行的参考方案。

模型假设:

  (1)假设正常情况下人的步行速度为V =2km/h。
  (2)假设游客在景区停留的时间由“景点之间的步行时间”、“景点游览时间(即在景点内游玩的时间)” 和“在景区外的等待时间”三部分组成,其他时间忽略不计。
  (3)假设在游玩过程中,游客们不会遇到突发事件,所有的游览均是正常进行。
  (4)假设每个景点的旅游设备的维护与清理都不会影响游客们的正常游览时间。

问题分析:

  背景
  在前期的准备工作中,我们发现本问题与 TSP 问题有着相应的联系,并且可以用混合整数规划来替代,此外问题的图论化也是一个需要了解的方面,图论化会将许多现实中的实际问题简单化,对于此类问题的研究有着积极的作用。
  所需问题的分析
  (1)根据问题一的说明,从景点 1(景石)出发,必须经过景点 2 至 7 至少一次,最后到达景点 8(湿地商业街),则可联想到问题的图论化,有利于我们对于路线筛选的准确性。此外图的连接也是一个需要解决的问题,需要连接 8 处景点,且必须从景点 1进,景点 8 出。如果能将本问题的 TSP 模型转换成混合整数规划,则可通过相应的约束条件结合目标函数利用 Lingo 软件得出最短的路线及长度。
  (2)根据问题二的说明,必须中午 12:00 从景石出发,17:30 离开湿地商业街,则总的时间为 330 分钟,有根据表 2 给出的相应游览时间以及景点开放时间,我们需要对这些时间进行约束,结合问题一建立的模型,找出游览全部景点的路线,而总时间又由景点之间的步行时间,景点游览时间,和在景点外的等待时间三部分组成,则我们可以得到游览的总时间=总时间 - 景点之间的步行时间 - 在景区外的等待时间。而通过路程时间计算公式,在已知总路线长度的前提下,可以求出景点之间的步行时间;景点外等待的时间只有在景点 4(森林小剧场)才会出现,再对比路线的规划,求出到达景点4(森林小剧场)时所耗的总时间,即可推算出到达景点 4(森林小剧场)的时间,从而对比相应时间段的开放时间,则可求出在景点外的等待时间,即运用公式,可得出游览的总时间,即为目标函数。
  (3)根据问题三的说明,若现有3个旅行团,同时从景点1出发,且时间同为12:00,并于 17:00 前均到达景点 8,然后于 17:30 离开。而问题三就是在问题二的基础上增加一个变量,关于旅行团的编号。但是每个景点只能容纳 1 个旅游团,且按照时间顺序后到达的旅游团需等到先到达的团队游览结束后才能开始游览,则不同于问题二的相关约束就只是多了一个变量即旅行团的编号。同时对于每个景点只能容纳一个旅游团,那就只好通过增加在景点外的等待时间来实现这一问题的约束,从而建立相关模型与目标函数,总结出总的约束条件,得出 3 个旅行团对应的游览路线与时间规划。
  (4)根据问题四的说明,表明在问题三的基础上设置了对游客步行速度的限制,即旅行团的步行速度在 1km/h 到 3km/h 之间调节,但是总的平均速度不能超过 2km/h,则只需再引入一个变量速度,在满足平均速度和各自旅行团的步行速度的约束下,就可以将总的约束条件分析完毕,但是问题四中的目标函数为双目标函数,既要分配三个旅游团的游览总时间长的路线,也要总的等待时间短的同一游览路线,所以就可以建立混合整数规划模型来得出双目标函数下的结果。
  (5)根据问题五的说明,只是在问题四条件的基础上考虑了两个不确定因素:①不同旅游团从景点 1(景石)出发的时间具有不确定性;②每个景点的等待时间也存在不确定性。为此可以设立一个不确定因素 Ek 来表明第 k 个旅游团在每个景点的不确定等待时间;再给出一个常量Yk 来表明第 k 个旅游团从景点 1(景石)出发的时间。又因为题设中只说明了多个旅行团,即表明可以用 k 个旅行团来参与模型的建立(k 没有限制),再基于问题四,建立数学模型来完成考虑不确定因素的多个旅游团的路线选择的猜想。

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

在这里插入图片描述

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

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

function W = incandadf( F,f )
%仅适用于无向图
%W是输出矩阵
%F是输入矩阵
%f=0时,表示邻接矩阵转关联矩阵,f=1表示关联矩阵转邻接矩阵
if f==0
    m=sum(sum(F))/2;
    n=size(F,1);
    W=zeros(n,m);
    k=1;
    for i=1:n
        for j=i:n
            if F(i,j)~=0
                W(i,k)=1;
                W(j,k)=1;
                k=k+1;
            end
        end
    end
elseif f==1
    m=size(F,2);
    n=size(F,1);
    W=zeros(n,n);
    for i=1:m
        a=find(F(:,i)~=0);
        W(a(1),a(2))=1;
        W(a(2),a(1))=1;
    end
else
    fprintf('f error');

end
W;
end


function W = mattransf( F,f )
%仅适用于有向图
%W是输出矩阵
%F是输入矩阵
%f=0时,表示邻接矩阵转关联矩阵,f=1表示关联矩阵转邻接矩阵
if f==0
    m=sum(sum(F));
    n=size(F,1);
    W=zeros(n,m);
    k=1;
    for i=1:n
        for j=1:n
            if F(i,j)~=0
                W(i,k)=1;
                W(j,k)=-1;
                k=k+1;
            end
        end
    end
elseif f==1
    m=size(F,2);
    n=size(F,1);
    W=zeros(n,n);
    for i=1:m
        a=find(F(:,i)~=0);
        if F(a(1),i)==1
            W(a(1),a(2))=1;
        else
            W(a(2),a(1))=1;
        end
    end
else
    fprintf('f error');
end
W;
end
function [T c] = Fleuf1( d )
%d表示图的权值矩阵
%T表示边的集合
%c表示权重和
n=length(d);
b=d;
b(b==inf)=0;
b(b~=0)=1;
m=0;
a=sum(b);
eds=sum(a)/2;
ed=zeros(2,eds);
vexs=zeros(1,eds+1);
matr=b;
for i=1:n
    if mod(a(i),2)==1
        m=m+1;
    end
end
if m~=0
    fprintf('no');
    T=0;
    c=0;
end
if m==0
    vet=1;
    flag=0;
    t1=find(matr(vet,:)==1);
    for ii=1:length(t1)
        ed(:,1)=[vet,t1(ii)];
        vexs(1,1)=vet;
        vexs(1,2)=t1(ii);
        matr(vexs(1,2),vexs(1,1))=0;
        flagg=1;
        tem=1;
        while flagg
            [flagg ed]=edf(matr,eds,vexs,ed,tem);
            tem=tem+1;
            if ed(1,eds)~=0 && ed(2,eds)~=0
                T=ed;
                T(2,eds)=1;
                c=0;
                for g=1:eds
                    c=c+d(T(1,g),T(2,g));
                end
                flagg=0;
                break;
            end
        end
    end
end
end
 

function [ flag ed ] = edf( matr,eds,vexs,ed,tem )
flag=1;
for i=2:eds
    [dvex f]=flecvexf(matr,i,vexs,eds,ed,tem);
    if f==1
        flag=0;
        break;
    end
    if dvex~=0
        ed(:,i)=[vexs(1,i) dvex];
        vexs(1,i+1)=dvex;
        matr(vexs(1,i+1),vexs(1,i))=0;
    else
        break;
    end
end
end
 

function [dvex f] = flecvexf(matr,i,vexs,eds,ed,temp)
f=0;
edd=find(matr(vexs(1,i),:)==1);
dvex=0;
dvex1=[];
ded=[];
if length(edd)==1
    dvex=edd;
else
    dd=1;
    dd1=0;
    kkk=0;
    for kk=1:length(edd)
        m1=find(vexs==edd(kk));
        if sum(m1)==0
            dvex1(dd)=edd(kk);
            dd=dd+1;
            ddl=1;
        else
            kkk=kkk+1;
        end
    end
    if kkk==length(edd)
        tem=vexs(1,i)*ones(1,kkk);
        edd1=[tem;edd];
        for l1=1:kkk
            lt=0;
            ddd=1;
            for l2=1:eds
                if edd1(1:2,l1)==ed(1:2,l2)
                    lt=lt+1;
                end
            end
            if lt==0
                ded(ddd)=edd(l1);
                ddd=ddd+1;
            end
        end
    end
    if temp<=length(dvex1)
        dvex=dvex1(temp);
    elseif temp>length(dvex1)&&temp<=length(ded)
        dvex=ded(temp);
    else
        f=1;
    end
end
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

你知道如何科学的学习吗?-关于个人成长的思考

背景 最近在翻看自己工作后的笔记&#xff0c;从有道云笔记到印象笔记&#xff0c;到本地笔记&#xff0c;到自己使用github搭建的博客&#xff0c;到语雀笔记&#xff0c;使用了不同的平台工具&#xff1b;零零总总记录了许多学习笔记、个人成长笔记、职业规划等内容。现在看…

十、http客户端Feign

目录 一、使用Feign客户端 1、修改pom文件 2、在启动类OrderApplication中加入注释 3、创建客户端接口 4、装配UserClient&#xff0c;并且进行远程调用 5、发送请求&#xff0c;查看服务调用情况 二、定义Feigin的配置 方式一&#xff1a;配置文件方式 &#xff08;1&…

项目Git分支管理规范

Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 一、分支管理 项目中&#xff0c;一般会创建三个常用分支&#xff1a; develop&#xff1a;开发环境的稳定分支&#xff0c;公共开发环境基于该分支构建。pre-release&#xff1a;测试…

单脉冲测角-和差比幅法

和差比幅法单脉冲测角 单脉冲测角的类型阵列接收模型和差波束构造方法和差比幅测角仿真 单脉冲测角的类型 传统的单脉冲测向方法主要有3种&#xff0c;分别是半阵法、加权法和和差比幅法。其实这3种方法都需要形成和波束和差波束&#xff0c;只是波束形成的方法不同&#xff0…

批量处理文件夹及子文件夹下文件名

从此烟雨落京城&#xff0c;一人撑伞两人行。 问题描述 下载的资源被打过标记&#xff0c;不能直接使用&#xff0c;甚是痛苦 问题&#xff1a; 所有文件的文件名都加入了【更多it教程 微信号&#xff1a;…】字段&#xff0c;包括当前文件夹和子文件夹的全部文件&#xff0c…

【Spring】bean的基础配置

bean的别名 当在Spring config文件中定义name作为别名后&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…

4. 【自动驾驶与机器人中的SLAM技术】点云中的拟合问题和K近邻

目录 1.在三维体素中定义 NEARBY14&#xff0c;实现 14 格最近邻的查找。2.推导arg max||Ad||22的解为ATA的最大特征向量或者奇异向量。3. 将本节的最近邻算法与一些常见的近似最近邻算法进行对比&#xff0c;比如nanoflann&#xff0c;给出精度指标和时间效率指标。4. 也欢迎大…

创建一个用户test且使用testtab表空间及testtemp临时表空间并授予其权限,密码随意

文章目录 1、连接到数据库2、创建表空间3、创建用户4、授予权限5、测试 1、连接到数据库 sqlplus / as sysdba2、创建表空间 创建testtab表空间 CREATE TABLESPACE testtab DATAFILE /u01/app/oracle/oradata/orcl/testtab.dbf SIZE 50M AUTOEXTEND ON NEXT 5M MAXSIZE …

【以图会意】文件系统从外存到内存到用户空间

首先&#xff0c;在文件目录中&#xff0c;装有很多块FCB&#xff0c;由文件名和i指针两部分构成&#xff0c;指针指向文件所在的索引结点&#xff0c;包含了例如&#xff1a;文件存储权限&#xff0c;文件长度等一系列文件的信息&#xff0c;最重要的当然是物理地址&#xff0…

《变形监测与数据处理》笔记/期末复习资料(择期补充更新)

变形&#xff1a; 变形是物体在外来因素作用下产生的形状、大小及位置的变化&#xff08;随时间域和空间域的变化&#xff09;&#xff0c;它是自然界普遍存在的现象。 变形体&#xff1a; 一般包括工程建筑物、构筑物、大型机械设备以及其他自然和人工对象等。 变形体和变形…

AW2013芯片讲解

文章目录 前言一、AW2013芯片介绍二、AW2013从机地址三、AW2013读写时序AW2013写时序AW2013读时序 四、AW2013的INT引脚五、LED作用和配置描述LED控制PWM控制模式简短编程模式 六、AW2013寄存器讲解总结 前言 本篇文章将带大家学习AW2013芯片的使用。 一、AW2013芯片介绍 AW…

Mistral 7B 比Llama 2更好的开源大模型 (三)

Mistral 7B 比Llama 2更好的开源大模型 Mistral 7B是一个70亿参数的语言模型,旨在获得卓越的性能和效率。Mistral 7B在所有评估的基准测试中都优于最好的开放13B模型(Llama 2),在推理、数学和代码生成方面也优于最好的发布34B模型(Llama 1)。Mistral 7B模型利用分组查询注…

Linux(1):开始

计算机组成概述 计算机&#xff1a;接受用户输入指令与数据&#xff0c;经由中央处理器的数学与逻辑单元处理后&#xff0c;以产生或存储有用的信息。 主要可以分为3个部分&#xff1a;输入单元、主机单元、输出单元。 中央处理器&#xff08;Central Processing Unit, CPU&a…

unity shaderGraph实例-扫描效果

文章目录 效果展示整体结构各区域内容区域1区域2区域3区域4区域5区域6GraphSetttings注意事项使用方法 效果展示 整体结构 各区域内容 区域1 用场景深度减去顶点的View空间的视野深度&#xff08;Z值&#xff09;&#xff0c;这里Z值需要乘-1是因为从相机看到的物体顶点的视野…

UI设计是什么意思?一文给你讲清楚

随着互联网的快速发展&#xff0c;用户界面UI设计在中国也逐渐发展&#xff0c;用户界面UI设计的目的不仅是让用户&#xff0c;有视觉享受&#xff0c;而且解决用户如何与互联网设备交互&#xff0c;因此&#xff0c;用户界面UI设计是通过用户使用习惯、操作逻辑、界面交互和视…

【数据结构高阶】二叉搜索树

接下来我们来开始使用C来详细讲解数据结构的一些高阶的知识点 本期讲解的是二叉搜索树&#xff0c;对于初阶二叉树有所遗忘的同学可以看到这里&#xff1a; 【精选】【数据结构初阶】链式二叉树的解析及一些基本操作 讲解二叉搜索树主要是为了后面的map和set做铺垫&#xff…

安装pycharm选择路径时,点击next无反应

安装的时候断网就可以解决该问题。

空调能量表

数字化应用场景&#xff1a;空调能量监测 定义 空调能量表产品又被称为冷量积算仪、冷量积分仪、能量积分仪、能量积算仪、空调冷热量表、冷量表、能量表等&#xff0c;现阶段行业内没有统一的名称。 作用 用于计量中央空调能耗的仪表&#xff0c;它通过和空调管道流量计和温…

《增长黑客》思维导图

增长黑客这个词源于硅谷&#xff0c;简单说&#xff0c;这是一群以数据驱动营销、以迭代验证策略&#xff0c;通过技术手段实现爆发式增长的新型人才。 近年来&#xff0c;互联网公司意识到这一角色可以发挥四两拨千斤的作用&#xff0c;因此对该职位的需求也如井喷式增长。本…