求一个新颖的数学建模题材,最好原创,不要现成的建模题。

希望最好能简单一点
2025-03-21 14:40:08
推荐回答(1个)
回答1:

求出下图中以v1为起点的一条中国邮路。

后面是我和朋友一起做的一点东西:

1 问题分析

    中国邮路问题,可以简要叙述为:一个邮递员送信,要走完他负责投递的全部街道,投完后回到邮局。由此把这样一个多重边的连通图中,从某个顶点出发,经过不同的线路,又回到原出发点的路线问题,转化为欧拉图一笔画问题。观察图2.1,为偶点,而奇点则有,共6个点。在图2.1基础上,增加一些重复边,使新图不含奇点,并且重复边的总权为最小。由此建立一个最短路线的一笔画模型。

2 建立模型及求解

由图2.1写出邻接矩阵,运用算法,在中编写程序(附录2.1)得到7个顶点的两两最短距离。

图2.2

根据欧拉定理3.1:连通的多重图G是欧拉图,当且仅当G中无奇点。考虑这6个奇点,在已知两两最短距离情况下,建立关联的3条重复边,并使总权最小为最佳方案的优化模型。由此,将欧拉图问题转化为优化模型,再对当前问题进行分析。欲将6个奇点调整成偶点,可以简化为基本的匹配问题。由于对称性,将图2.2矩阵只列出严格上三角部分,且可以省略的关系。

图2.3

用表示点()添加一条重复边 ,而表示()不关联。 显然,目标函数正好是)对之和。约束条件是每个奇点只能(而且必须在)某一条重复边,即对于任意有:只要属性的某个下标为就加起来,此和应该等于1。

运用软件,编写程序(附录2.2)计算结果如下:

                       Variable           Value        Reduced Cost

                     B( V2, V7)        1.000000            2.000000

                     B( V3, V4)        1.000000            3.000000

                     B( V5, V6)        1.000000            3.000000

图2.4

由上图2.4结果得到:使原图2.1中6个奇点全部调整成为偶点,原图调整成欧拉图并要求路线最短所添加的三条重复边为。

 

图2.5

整理上述模型,增加3条重复边,使得图中所有点均为偶点,符合欧拉定理3.1以完成一笔画模型,且以总权值最小而取得最佳方案。

 

图2.6

如上图2.6,该邮递员走过的路线:,。因为欧拉图一笔画模型的路线总是不止一条,以上只是众多情况之一,但总权值始终不变,为41。

附录2.1

% 计算两点之间的最短路

function  [D,R]=floyd(a)

n=size(a,1);  D=a;  % D是初始矩阵

for i=1:n

    for j=1:n

        R(i,j)=j;

    end

end

for k=1:n

    for i=1:n

        for j=1:n

            if D(i,k)+D(k,j)

                D(i,j)=D(i,k)+D(k,j);  %在循环中进行矩阵迭代

                R(i,j)=R(i,k);  % R是路径矩阵

            end

        end

    end

end

D,R

for i=1:7

    for j=i:7

        s(i,j)=D(i,j);

    end

end

for i=1:7

    for j=1:7

       if s(i,j)==0

           s(i,j)=NaN;

       end

    end

end

附录2.2

!用lingo算出V2-V7每两个点组队的最短距离;

model:

sets:

num_i/v2,v3,v4,v5,v6,v7/;

link(num_i,num_i)|&2#gt#&1:a,b;

endsets

data:

         a=  44742

              3662

                  362

                        35

                              4;

enddata

min=@sum(link(i,j):a(i,j)*b(i,j));

@for(num_i(i):@sum(link(j,k)|j#eq#i #or# k#eq#i:b(j,k))=1);

@for(link(i,j):@bin(b(i,j)));

end