图论最短路径选址问题

图论最短路径选址问题
图论最短路径选址问题

姓名:学号:专业:

图论的实际应用——蔬菜批发市场选址问题

摘要:在现实生活和生产实践中,有许多管理、组织与计划中的优化问题,都可借助图论知识得以解决,而最短路问题是利用图论解决的一个典型的实际问题。图论中最典型的两种求最短路径的算法分别为Dijkstra算法和Floyd算法,其中Floyd算法广泛应用于求任意两点间的最短路径。本文介绍了利于Floyd算法来解决城市蔬菜批发市场选址的问题。

关键词:最短路;Floyd算法;选址问题

0.引言

对于许多地理问题,当它们被抽象为图论意义下的网络图时,问题的核心就变成了网络图上的优化计算问题。其中,最为常见的是关于路径和顶点的优选计算问题[5]。在路径的优选计算问题中,最常见的是最短路径问题,最短路径可能是给定两点间的最短路径,也可能是任意各点间的最短路径。而在顶点的优选计算问题中,最为常见的是选址问题,所谓选址问题就是在某一地理区域构成的网络中选择一个顶点,建立服务设施,为该网络中的各个点提供服务,使得服务效率最高[3]。

选址问题,在规划建设中经常可以碰到,这里所谓的服务设施,可以是某些公共服务设施,如医院,消防站,物流中心等。也可以是生产服务设施,如仓库,转运站等等。可以认为,选址问题,就是把服务设施与服务对象,反映与统一的网络中,便于对问题进行研究[4]。尽管对选址的目标、要求有不同的评判标准,但是要求服务对象与服务设施之间易于沟通、易于达到,这是一个最基本的要求。1.最短路径问题

最短路径问题是图论研究的一个经典算法问题,其目的是求出给定两点之间的长最短的路径,这里所说的长具有广泛意义,即可指普通意义的距离,也可是时间或费用等[2]。因此,最短路径问题通常可以归纳为三类:(1)距离意义上的最短路径,即求两点间距离最短的路径;(2)经济意义上的最短路径,即为两点间的费用最少的路径;(3)时间意义上的最短路径,即选择两点间最节省时间的

路径。以上三类问题,都可以抽象为同一类问题,即带权图上的最短路径问题。不同意义下的距离都可以被抽象为网络图中边的权值,权值既可以代表“纯距离”,又可以代表“经济距离”,还可以代表“时间距离”。

1.1 Dijkstra算法

Dijkstra算法是一种求解最短路径方法。它是一个按路径长度递增的顺序产生最短路径的算法,其基本思想是:设图中所有顶点集合为V,另设置两个顶点集合S和T=V- S,集合S中存放已找到最短路径的顶点,集合T存放当前还未找到最短路径的顶点。初始状态时,集合S中只包含源点V1,然后不断从集合T中选取到顶点V1 的路径长度最短顶点Vi 加入到集合S中,集合S每加入一个新的顶点Vi,都要修改顶点V1到集合T中剩余顶点的最短路径长度值,此过程不断重复,直到集合T中的顶点全部加入到S中为止。这样,就可以求出一点到其它的任一顶点的最短路径。

Dijkstra算法简单易懂,在求给定两点间的最短距离时效率很高,但是其只能求图中一个特定结点到其他各个结点的最短路[1]。当需要求出图中任意两顶点的最短路径时,就需要以图中的每个顶点为起点,依次求出到另外顶点的最短路径,在顶点数目比较多的情况下,其效率将非常低下。

1.2 Floyd算法

Floyd算法为另外一种求最短路径的算法。在某些问题中,需要求出图中任意两顶点之间的最短路径,这时,Floyd算法将比Dijkstra算法具有明显优势。Floyd算法借助于权矩阵的运算直接可以求出任意两点之间的最短路径[2]。

Floyd算法的实现思路为:首先定义赋权图的边权矩 D =[d ij)]n x n,即d ij=w(i,j),若结点i到j无边相连时,则去d ij=∞。然后依次计算出矩阵D[2],D[3],…,D[n]。其中D[2]=D*D=(d[2]ij)n x n,d[2]ij=min{d i1+d1j,d i2+d2j,…,d in+d nj}表示从v i出发两步可以到达v j的道路中距离最短者;D[k]=(d[k]ij)n x n,d[k]ij表示从v i出发k步可以到达v j的道路距离中最短路径。

D[n] = D[n-1]*D = (d[n]ij)n x n

S = D?D[2]?D[3]?…?D[n] = (S ij)n x n

由定义可知d表示从结点i到j经过k边的路(在有向图中即为有向路)中的长度最短者,而S ij为结点i到j的所有路中的长度最短者。

2.最短路径问题在蔬菜批发市场中的应用

河南某城市市政管理部门决定新建一个蔬菜批发市场,为周边的几个小区的菜市场集中供应新鲜蔬菜。由于蔬菜水果容易变质,小区菜市场的商贩必须在每天早晨把蔬菜从批发市场运送回店铺,这就要求批发市场的地址不能距离小区太远。该城市管理部门经过征求意见后,决定将批发市场建在其中的一个小区旁边,现在的问题是该将此批发市场建在那个小区才能使最远的小区距离该批发市场距离最短。

2.1 分析问题并建立模型

已知该城市的小区位置及相互连通道路分布示意图如图1所示,其中结点v1,v2,v3,v4,v5,v6,v7表示七个小区,结点间的数字表示小区间的距离。

图1 小区位置分布示意图

由上面的小区位置及道路分布图可知,若找一个合适的小区来建造批发市场,使该小区到其它小区的最远距离最短,即求无向简单图图1中的一点,使该点到其它点的最大值为最小。为此,我们可以使用Floyd 算法来求解问题。首先根据图1画出对应的权矩阵D :

∞ 30 ∞ ∞ ∞ ∞ ∞

30 ∞ 20 ∞ ∞ 15 ∞ ∞ 20 ∞ 20 60 25 ∞ D = ∞ ∞ 20 ∞ 30 18 ∞ ∞ 7 ∞ 3 ∞ ∞ ∞ ∞ 15 25 18 ∞ ∞ 15

V1

V2

V6

V3

V5

V7

V4 30

60

20

15

15

18

20

30

25

∞ ∞ ∞ ∞ ∞ 15 ∞ 2.2 Floyd 算法求各点间最短路径

通过7阶加权简单图的权矩阵D ,分别算出矩阵D[2],D[3],D[4],D[5],

D[6],D[7],然后求出最短路矩阵S ,S 如下:

?

?

?

??

?

?

??

?

?

??=0156333403060150481825154563480305063933318300203363

402550200205030156333200306045936350300S 则可得出矩阵S 中v1,v2,v3,v4,v5,v6,v7结点到其它个结点的最长距离分别为93,63,50,63,93,48,63,即v6结点到其它结点有最短路径。 由以上结论知,将蔬菜批发市场应该建在小区v6处才最为合理,使得最远的小区菜市场距批发市场的距离最短。

3.编程实现

以下为使用C++语言实现的Floyd 算法的核心代码: #include

#define MaxInt 10000//最大数 const int MaxNumEdges=50;

const int MaxNumVertices=10; //最大顶点数 class Graph {

private:

int vNum;//当前顶点数 int eNum;//当前边数

int Vertex[MaxNumVertices];//顶点数组

int Edge[MaxNumV ertices][MaxNumVertices];//边数组

bool GetVertexPos(const int &vertex,int &i);//给出顶点vertex 在图中的位置 public:

Graph(const int sz= MaxNumEdges);//构造函数 bool FindVertex(const int &vertex);

bool InsertVertex(const int & vertex);//插入一个顶点vertex

bool InsertEdge(const int v1,const int v2,const int weight);//插入一条边(v1,v2),该边上的权值为weight

void Hospital();//选址函数 };

Graph::Graph(const int sz): vNum(0), eNum(0) //构造函数

{

int n,e;

int name,tail,head;

int weight;

for(int i=0;i

for(int j=0;j

{

if(i==j)

Edge[i][j]=0;//顶点到自身权值为0

else

Edge[i][j]=10000;//邻接矩阵初始化为最大值}

printf("请输入顶点数,注意本程序最多为10个!\n");

scanf("%d",&n);

printf("请依次输入顶点名称:\n");

for(int r=0;r

{

scanf("%d",&name);

InsertVertex(name);

vNum++;

}

printf("请输入边数:\n");

scanf("%d",&e);

printf("以下输入边信息:\n");

for(int k=0;k

{

printf("请输入第%d边头顶点:\n",k+1);

scanf("%d",&head);

printf("请输入该边尾顶点:\n");

scanf("%d",&tail);

printf("请输入该边权值:\n");

scanf("%d",&weight);

if(!InsertEdge(head,tail,weight))

{

printf("不存在该边,请重输!\n");

continue;

}

}

}

bool Graph::FindVertex(const int& vertex)

//给出顶点vertex在图中的位置

{

for (int i = 0; i < vNum; i++)

if (vertex == Vertex[i])

return true;

return false;

}

bool Graph:: GetVertexPos(const int &vertex,int &i)

//给出顶点vertex在图中的位置

{

for (i = 0; i < vNum; i++)

if (vertex == Vertex[i])

return true;

return false;

}

bool Graph::InsertVertex(const int & vertex)

//插入一个顶点vertex

{

if (FindVertex(vertex))

return false;

V ertex[vNum] = vertex;

return true;

}

bool Graph::InsertEdge(const int v1,const int v2,const int weight)

//插入一条边(v1,v2),该边上的权值为weight

{

int k=0,j=0;

if(GetVertexPos(v1,k) && GetVertexPos(v2,j))

{

Edge[k][j]=weight;

eNum++;

Edge[j][k]=weight;

eNum++;

return true;

}

else

return false;

}

void Graph::Hospital()

//在以邻接带权矩阵表示的n个小区中,求批发市场建在何处,使离市场距离最远的小区到达市场的路径最短。

{

int k,i,j,s;

for (k=0;k

for (i=0;i

for (j=0;j

if (Edge[i][k]+Edge[k][j]

Edge[i][j]=Edge[i][k]+Edge[k][j];

int m=MaxInt; //设定m为机器内最大整数。

printf("********************************************\n");

//以下为求各小区离批发市场最近的选址

int min=MaxInt ; //设定机器最大数作小区间距离之和的初值。

k=0; //k设小区位置。

for (j=0;j

{

m=0 ;

for (i=0;im)

{

min=m;

k=j;

} //取顶点间的距离之和的最小值。

}//for

printf("各小区离批发市场最近的选址,要建批发市场的小区为:%d\n",k+1); //输出要建批发市场的小区编号

for(j=0;j

if(j!=k)

printf("该小区离%d小区最短距离为:%d\n",j+1,Edge[k][j]);

}//算法结束

int main()

{

Graph Town(MaxNumVertices);

Town.Hospital();

return 0;

}

运行程序,并将2.1中的加权矩阵D的数值输入程序,得到的程序运行的结果如图2所示:

图2程序运行结果图

对图2中结果分析知,将批发市场建在V6小区,使得到其它6个小区的最长距离为48。结果和2.2中的矩阵S的计算结果相同。

4.总结

通过利用学习到的Floyd算法解决了一个城市蔬菜批发市场的选址问题,

25

我认识到最短路径问题在现实生活中的巨大作用,它可以广泛应用于建筑物选址,厂区布局等实际问题,用此方法可得到最好的解决方案。

参考文献

[1] 殷剑宏,吴开亚. 基于图论及其算法[M].合肥:中国科学技术大学出版社,2005:63-75.

[2] 张清华. 图论及其应用[M].北京:清华大学出版社,2012:87-95.

[3] 胡桔洲. Floyd最短路径算法在配送中心选择中的应用[J].湖南农业大学学报,2004(08):51

-75

[4] 毕亚君,王晓威. 网络图中任意两点间最短路径问题的计算机实现[J].科技资讯,2006(06):

32-34.

[5] 叶玉萍. 最短路径在中心选址中的应用研究[J].电脑与信息技术,2012(08):8-12.

(完整版)初中数学[最短路径问题]典型题型及解题技巧

初中数学[最短路径问题]典型题型及解题技巧 最短路径问题中, 关键在于,我们善于作定点关于动点所在直线的对称点,或利用平移和展开图来处理。这对于我们解决此类问题有事半功倍的作用。理论依据:“两点之间线段最短” ,“垂线段最短”,“点关于线对称”,“线段的平移”“立体图形展开图”。教材中的例题“饮马问题”,“造桥选址问题”“立体展开图”。考的较多的还是“饮马问题” 。 知识点:“两点之间线段最短”,“垂线段最短”,“点关于线对称”,“线段的平移”。“饮马问题”,“造桥选址问题”。考的较多的还是“饮马问题” ,出题背景变式有角、三角形、菱形、矩形、正方形、梯形、圆、坐标轴、抛物线等。解题总思路:找点关于线的对称点实现“折”转“直” ,近两年出现“三折线”转“直”等变式问题考查。 一、两点在一条直线异侧例:已知:如图,A,B在直线L的两侧,在L上求一点P,使得PA+PB 最小。 解:连接AB,线段AB 与直线L 的交点P ,就是所求。(根据:两点之间线段最短.) 二、两点在一条直线同侧 例:图所示,要在街道旁修建一个奶站,向居民区A 、B 提供牛奶,奶站应建在什么地方,才能使从A、B 到它的距离之和最短. 解:只有A、C 、B在一直线上时,才能使AC +BC最小.作点A 关于 直线“街道”的对称点A′,然后连接A ′B,交“街道”于点C,则 点C 就是所求的点. 、一点在两相交直线内部 例:已知:如图A 是锐角∠ MON 内部任意一点,在∠ MON 的两边 OM ,ON 上各取一点B,C ,组成三角形,使三角形周长最小.

解:分别作点A 关于OM ,ON 的对称点A ′,A OM ,ON 于点B、点C ,则点B、点C 即为所求分析:当AB 、BC 和AC 三条边的长度恰好能够体现在一条直线上时,三角形的周长 最小 例:如图,A.B 两地在一条河的两岸,现要在河 上建一座桥MN ,桥造在何处才能使从A 到B 的路径AMNB 最短?(假设河的两岸是平行的直线,桥要与河垂直) 解:1.将点B 沿垂直与河岸的方向平移一个河宽到E, 2.连接AE 交河对岸与点M, 则点M 为建桥的位置,MN 为所建的桥证明:由平移的性质,得 BN∥EM 且BN=EM, MN=CD, BD ∥CE, BD=CE, 所以A.B 两地的距:AM+MN+BN=AM+MN+EM=AE+MN, 若桥的位置建在CD 处,连接AC.CD.DB.CE, 则AB 两地的距离为: AC+CD+DB=AC+CD+CE=AC+CE+MN, 在△ACE 中,∵ AC+CE >AE, ∴AC+CE+MN >AE+MN, 即AC+CD+DB >AM+MN+BN 所以桥的位置建在CD 处,AB 两地的路程最短。 例:如图,A、B 是两个蓄水池,都在河流a 的同侧,为了方便灌溉作物,?要在河边建一个抽水站,将河水送到A、B 两地,问该站建在 连接A ′,A ″,分 别交 B

(完整版)八年级最短路径问题归纳小结

八年级数学最短路径问题 【问题概述】最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径.算法具体的形式包括: ①确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题. ②确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题. ③确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径. ④全局最短路径问题 - 求图中所有的最短路径. 【问题原型】“将军饮马”,“造桥选址”,“费马点”. 【涉及知识】“两点之间线段最短”,“垂线段最短”,“三角形三边关系”,“轴对称”,“平移”. 【出题背景】角、三角形、菱形、矩形、正方形、梯形、圆、坐标轴、抛物线等. 【解题思路】找对称点实现“折”转“直”,近两年出现“三折线”转“直”等变式问题考查.

在直线l 上求一点P ,使PB PA -的值最大. 作直线AB ,与直线l 的交 点即为P . 三角形任意两边之差小于 第三边.PB PA -≤AB . PB PA -的最大值=AB . 【问题11】 作法 图形 原理 在直线l 上求一点P ,使PB PA -的值最大. 作B 关于l 的对称点B '作直线A B ',与l 交点即 为P . 三角形任意两边之差小于 第三边.PB PA -≤AB '. PB PA -最大值=AB '. 【问题12】“费马点” 作法 图形 原理 △ABC 中每一内角都小于120°,在△ABC 内求一点P ,使P A +PB +PC 值最小. 所求点为“费马点”,即满足∠APB =∠BPC =∠ APC =120°.以AB 、AC 为边向外作等边△ABD 、△ACE ,连CD 、BE 相交于P ,点P 即为所求. 两点之间线段最短. P A +PB +PC 最小值=CD . 【精品练习】 1.如图所示,正方形ABCD 的面积为12,△ABE 是等边三角形,点E 在正方形ABCD 内,在对角线AC 上有 一点P ,使PD +PE 的和最小,则这个最小值为( ) A .3 B .26 C .3 D 6 2.如图,在边长为2的菱形ABCD 中,∠ABC =60°,若将△ACD 绕点A 旋转,当AC ′、AD ′分别与BC 、CD 交于点E 、F ,则△CEF 的周长的最小值为( ) A .2 B .32 C .32+ D .4 l B A l P A B l A B l B P A B' A B C P E D C B A A D E P B C

最短路径问题练习题

13.4课题学习最短路径问题 六街中学:罗云膑1.最短路径问题 (1)求直线异侧的两点与直线上一点所连线段的和最小的问题,只要连接这两点,与直线的交点即为所求. 如图所示,点A,B分别是直线l异侧的两个点,在l上找一个点C,使CA+CB最短,这时点C是直线l与AB的交点. (2)求直线同侧的两点与直线上一点所连线段的和最小的问题,只要找到其中一个点关于这条直线的对称点,连接对称点与另一个点,则与该直线的交点即为所求.如图所示,点A,B分别是直线l同侧的两个点,在l上找一个点C,使CA+CB最短,这时先作点B关于直线l的对称点B′,则点C是直线l与AB′的交点. 为了证明点C的位置即为所求,我们不妨在直线上另外任取一点C′,连接AC′,BC′,B′C′,证明AC+CB<AC′+C′B.如下: 证明:由作图可知,点B和B′关于直线l对称, 所以直线l是线段BB′的垂直平分线. 因为点C与C′在直线l上, 所以BC=B′C,BC′=B′C′. 在△AB′C′中,AB′<AC′+B′C′, 所以AC+B′C<AC′+B′C′, 所以AC+BC<AC′+C′B. 【例1】在图中直线l上找到一点M,使它到A,B两点的距离和最小.

分析:先确定其中一个点关于直线l的对称点,然后连接对称点和另一个点,与直线l 的交点M即为所求的点. 解:如图所示:(1)作点B关于直线l的对称点B′; (2)连接AB′交直线l于点M. (3)则点M即为所求的点. 点拨:运用轴对称变换及性质将不在一条直线上的两条线段转化到一条直线上,然后用“两点之间线段最短”解决问题. 2.运用轴对称解决距离最短问题 运用轴对称及两点之间线段最短的性质,将所求线段之和转化为一条线段的长,是解决距离之和最小问题的基本思路,不论题目如何变化,运用时要抓住直线同旁有两点,这两点到直线上某点的距离和最小这个核心,所有作法都相同. 警误区利用轴对称解决最值问题应注意题目要求根据轴对称的性质、利用三角形的三边关系,通过比较来说明最值问题是常用的一种方法.解决这类最值问题时,要认真审题,不要只注意图形而忽略题意要求,审题不清导致答非所问. 3.利用平移确定最短路径选址 选址问题的关键是把各条线段转化到一条线段上.如果两点在一条直线的同侧时,过两点的直线与原直线的交点处构成线段的差最大,如果两点在一条直线的异侧时,过两点的直线与原直线的交点处构成的线段的和最小,都可以用三角形三边关系来推理说明,通常根据最大值或最小值的情况取其中一个点的对称点来解决. 解决连接河两岸的两个点的最短路径问题时,可以通过平移河岸的方法使河的宽度变为零,转化为求直线异侧的两点到直线上一点所连线段的和最小的问题. 在解决最短路径问题时,我们通常利用轴对称、平移等变换把不在一条直线上的两条线段转化到一条直线上,从而作出最短路径的方法来解决问题. 【例2】如图,小河边有两个村庄A,B,要在河边建一自来水厂向A村与B村供水. (1)若要使厂部到A,B村的距离相等,则应选择在哪建厂? (2)若要使厂部到A,B两村的水管最短,应建在什么地方? 分析:(1)到A,B两点距离相等,可联想到“线段垂直平分线上的点到线段两端点的距离相等”,又要在河边,所以作AB的垂直平分线,与EF的交点即为符合条件的点. (2)要使厂部到A村、B村的距离之和最短,可联想到“两点之间线段最短”,作A(或 B)点关于EF的对称点,连接对称点与B点,与EF的交点即为所求. 解:(1)如图1,取线段AB的中点G,过中点G画AB的垂线,交EF于P,则P到A,

中考数学复习指导:对造桥选址问题的再认识

对“造桥选址问题”的再认识 问题A和B两地在一条河的两岸,现要在河上造一座桥MN.桥造在何处可使从A到B 的路径AMNB最短? (假定河的两岸是平行的直线,桥要与河垂直.) 教科书的分析是: 把河的两岸看成两条平行线a和b (图1),N为直线b上的一个动点,MN垂直于直线b,交直线a于点M.这样,上面的问题可以转化为: 当点N在直线b的什么位置时,AM+MN+NB最小? 由于河岸宽度是固定的,因此当AM + NB最小时,AM+MN+NB最小.这样,问题就进一步转化为:当点N在直线b的什么位置时,AM+NB最小? 这两段分析我们能看懂、能理解,也指明了解题的方向.而接下来的一段分析让我们费解: 如图2,将AM沿与河岸垂直的方向平移,点M移动到点N,点A移动到点A',则AA'=MN ,AM+NB = A' N+NB.这样,问题就转化为:当点N在直线b的什么位置时,A'N+NB 最小? 我们经过认真的辩论后认为:此时桥MN并未确定,只是任意的一个位置,所以平移AM 的目的只是将点A移动到点A'.事实上,将“点A移动到点A'”即是忽略河宽,将河的两岸重合 在这种认识下,我们提出了一种新的解题思路,供同学们参考,将河岸a向b平移,直至重合,如图3.相应地,点A也平移到A',由平移性质,AA'长即为河宽,根据两点之间线段最短,连结A' B,与直线b相交于点N,点N即为造桥处. 作法如图4,过点A作河岸a的垂线,在垂线上截取AA' 等于河宽, 连结A'B交b于点N,作MN垂直于b并交a于点M,则MN为所造之

桥.此时路径AMNB是最短 证明在河上任架一座异于MN的桥M'N' (显然M'N'与MN相等),连结AM'、BN'、A'N'.由AA'MN,可知四边形AMN A'是平行四边形,所以AM=A'N.同理四边形AM'N'A'也是平行四边形,所以AM'=A'N'.故AM+MN+NB=A' N+MN+NB=A'B+MN<A' N'+N' B+M' N'=AM'+M'N'+N'B,即AM+MN+NB最小. 拓展思考若A与B之间有两条河(如图5),你能找出使A到B路径最短的造桥地点吗? 同学们自己试一试吧.

gis计算最短路径的Dijkstra算法详细讲解

最短路径之Dijkstra算法详细讲解 1最短路径算法 在日常生活中,我们如果需要常常往返A地区和B 地区之间,我们最希望知道的可能是从A地区到B地区间的众多路径中,那一条路径的路途最短。最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括: (1)确定起点的最短路径问题:即已知起始结点,求最短路径的问题。 (2)确定终点的最短路径问题:与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。 (3)确定起点终点的最短路径问题:即已知起点和终点,求两结点之间的最短路径。 (4)全局最短路径问题:求图中所有的最短路径。 用于解决最短路径问题的算法被称做“最短路径算法”,有时被简称作“路径算法”。最常用的路径算法

有:Dijkstra算法、A*算法、Bellman-Ford算法、Floyd-Warshall算法、Johnson算法。 本文主要研究Dijkstra算法的单源算法。 2Dijkstra算法 2.1 Dijkstra算法 Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 Dijkstra算法是很有代表性的最短路算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。 2.2 Dijkstra算法思想 Dijkstra算法思想为:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径, 就将加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U 表示),按最短路径长度的递增次序依次把第二组的顶点加入S中。在加入的过程中,总保持从源点v到S中各顶点的最短路径长度不大于从源点v到U中任何顶点的最短路径长度。此外,每个顶点对应一个距离,S中的顶点的距离就是从v到此顶点的最短路径长度,U中的顶点的距离,是从v到此顶点只包括S 中的顶点为中间顶点的当前最短路径长度。 2.3 Dijkstra算法具体步骤 (1)初始时,S只包含源点,即S=,v的距离为0。U包含除v外的其他顶点,U中顶点u距离为边上的权(若v与u有边)或)(若u不是v的出边邻接点)。 (2)从U中选取一个距离v最小的顶点k,把k,加入S中(该选定的距离就是v到k的最短路径长度)。 (3)以k为新考虑的中间点,修改U中各顶点的距离;若从源点v到顶点u(u U)的距离(经过顶点k)比原来距离(不经过顶点k)短,则修改顶点u 的距离值,修改后的距离值的顶点k的距离加上边上的权。 (4)重复步骤(2)和(3)直到所有顶点都包含在S中。 2.4 Dijkstra算法举例说明 如下图,设A为源点,求A到其他各顶点(B、C、D、E、F)的最短路径。线上所标注为相邻线段之间的距离,即权值。(注:此图为随意所画,其相邻顶点间的距离与图中的目视长度不能一一对等)

最短路径问题

最短路径问题 摘要 在图论当中,任意两点间的最短路径问题,运用Dijkstra 算法,Flord 算法,匈牙利算法等都可以就解决这类相关问题,本文主要就是运用图论相关知识,来分析问题的。 在问题一中,需要为货车司机选择一条从地点1到地点11的最短时间问题,其实际归结为求一个两点间最短路径问题,运用运筹学中的网络模型相关知识,建立了一个一个0-1线性模型,并最终求的其结果,最短时间为21,货车司机的运输路线为1891011v v v v v →→→→。 运用Floyd 算法解决问题二,并且运用Matlab 软件编程,Floyd 算法与Matlab 软件编程所得出的结果一致,最后得出了一个最短航程表,及任意两点间的最短航程图。 本文的最大亮点在于将问题二进行更深一步的拓展,从问题实际出发,从公司的差旅费用最小出发,利用Mtlab 软件编程的出了公司到个城市间差旅费用最小图,从而更能为公司节省成本。 任意城市间差旅费用最小 其次是本文结果的准确性,问题一运用Lingo 软件编程,和WinQSB 软件,所得出结果都是一致的,问题二更是运用Floyd 算法,Matlab 软件编程,WinQSB 软件,大大地保证了结果的准确性,并且十分恰当地运用WinQSB 软件将作图功能,把每一提的最短路径都清晰的描绘出来,更加直观地将结果展现出来。 关键字:Matlab Lingo WinQSB Floyd 算法 0-1规划

一、 问题重述 问题一需要解决的问题是在一个城市交通网络中(图一),如何从地点1找到一条时间最短路径通往地点11,在这个城市交通网络中,有单向道,也有双向道,即如何处理一个有向图与无向图结合的图论问题,并且是一个两点间的最短路径问题: 图(一) 问题二阐述的是某公司员工往来于六个城市间,给出了这六个城市间的直达航班票价(表二),需要为这家公司提供出这六个城市间任意两点间的最小航班费用表 05040251050015202515010204020100102525201005510 2525550∞ ?? ??∞???? ∞∞?????? ∞?? ∞?? 表(二) 二、问题分析

图论中最短路径问题

图论最短路径问题 在消防选址中的应用 【摘 要】 最短路径问题是图论解决的典型实际问题之一,可用来解决管路铺设、线路 安装、厂区布局和设备更新等实际问题。介绍了图论最短路径问题及其算法,并应用图论最短路径问题的分析方法,解决城市消防站的选址问题。 【关键词】 最短路径;Floyd 算法;消防 1 引言 图论是运筹学的一个重要分支,旨在解决离散型的优化问题,近年来发展十分迅速。在人们的社会实践中,图论已成为解决自然科学、工程技术、社会科学、生物技术以及经济、军事等领域中许多问题的有力工具之一。图论中的“图”,并不是通常意义下的几何图形或物体的形状图,也不是工程设计图中的“图”,而是以一种抽象的形式来表达一些确定的对象,以及这些对象之间具有或不具有某种特定关系的一个数学系统。也就是说,几何图形是表述 物体的形状和结构,图论中的“图”则描述一些特定的事物和这些事物之间的联系。它是数学中经常采用的抽象直观思维方法的典型代表。 2 图论基本概念 2.1 图的定义 有序三元组),,(?E V G =称为一个图,其中: (1)),,,(21n V V V V =是有穷非空集,称为顶点集,其元素叫做图的顶点; (2)E 称为边集,其元素叫做图的边; (3)?是从边集E 到顶点集V 的有序或者无序对集合的影射,称为关联函数。 2.2 图的分类 在图G 中,与V 中的有序偶),(j i V V 对应的边e 称为图的有向边(或弧),而与V 中顶点的无序偶对应的边e 称为图形的无向边,每一条边都是无向边的图,叫做无向图,记为 ),(E V G =;每一条边都是有向边的图叫做有向图,记为),(E V D =;既有无向边又有有 向边的图叫做混合图。 2.3 权 如果图G 中任意一条边),(j i V V 上都附有一个数ij W ,则称这样的图G 为赋权图, ij W 称为边),(j i V V 上的权。

最短路径问题

最短路径问题 (导学案) 洪湖市龙口镇和里中学 龚宝金 教学目标: 1知识与技能:理解和掌握解决最短距离问题的一般思想方法 2.过程与方法:培养学生转化思想和数形结合思想 3.情感态度与价值观: 通过专项讲解,归纳出方法和规律,消除学生对此类问题的陌生感 和畏惧感,提高学生解决问题的信心和解决问题的能力。 教学重点:利用轴对称作图确定使距离最短的点 教学难点:数形结合思想与数学建模思想的培养 教学过程 一. 温故而知新1. 在公路l 两侧有两村庄,现要在公路l 旁修建一所候车亭P ,要使候车亭到两村庄的 距离之和最短,试确定候车亭P 的位置。 ★思考:本题运用了 。 随堂练习一. 1. 造桥选址问题:如图,A 、B 两地在一条河的两岸,现要在河上造一座桥MN ,桥造在何 处可使从A 到B 的路径AMNB 最短?(假定河的两岸是平行的直线,桥要与河垂直。) ★思考:本题运用了 。 二.温故而知新2. 如图,在河的同侧有两村庄,现要在河边L 建一泵站P 分别向A 、B 两村庄同时供水,要使泵站P 到A 村、B 村的距离之和最短,确定泵站P 的位置。 ★思考:本题运用了 。 A B

随堂练习二: 1. 如图,已知正方形ABCD ,点M 为BC 边的中点, P 为对角线BD 上的一动点,要 使PM+PC 的值最小,请确定点P 的位置。 2. 如图,已知菱形ABCD ,M 、N 分别为AB 、BC 边的中点,P 为对角线AC 上的一动点,要使 PM+PN 的值最小,试确定点P 的位置。 三.合作探究——拓展与延伸. 1.如图,点P 在∠AOB 内部,问如何在射线OA 、OB 上分别找点C 、D , 使PC+CD+DP 之和最小? 2. 饮马问题: 如图牧马人从A 地出发,先到草地边某一处牧马,再到河边饮马,然后回 到B 处,请画出最短路径。 第1题图 第2题图 B A

初中最短路径问题

最短路径问题(珍藏版) 【问题概述】最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结 点之间的最短路径.算法具体的形式包括: ①确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题. ②确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题. ③确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径. ④全局最短路径问题 - 求图中所有的最短路径. 【问题原型】“将军饮马”,“造桥选址”,“费马点”. 【涉及知识】“两点之间线段最短”,“垂线段最短”,“三角形三边关系”,“轴对称”,“平移”. 【出题背景】角、三角形、菱形、矩形、正方形、梯形、圆、坐标轴、抛物线等. 【解题思路】找对称点实现“折”转“直”,近两年出现“三折线”转“直”等变式问题考查. 【十二个基本问题】 【问题 1】 作法 图形 原理 在直线 l 上求一点 P ,使 PA +PB 值最小. 连 AB ,与 l 交点即为 P . 两点之间线段最短. PA +PB 最小值为 AB . 【问题 2】“将军饮马” 作法 图形 原理 在直线 l 上求一点 P ,使 PA +PB 值最小. 作 B 关于 l 的对称点 B ' 连 A B ',与 l 交点即为 P . 两点之间线段最短. PA +PB 最小值为 A B '. 【问题 3】 作法 图形 原理 在直线l 1 、l 2 上分别求点 M 、N ,使△PMN 的周长最小. 分别作点 P 关于两直线的 对称点 P '和 P ',连 P 'P '与两直线交点即为 M ,N . , 两点之间线段最短. PM +MN +PN 的最小值为线段 P 'P ''的长. 【问题 4】 作法 图形 原理 在直线l 1 、l 2 上分别求点 M 、N ,使四边形 PQMN 的周长最小. 分别作点 Q 、P 关于直线 l 1 、l 2 的对称点 Q '和 P ' 连 Q 'P ',与两直线交点即为 M ,N . 两点之间线段最短. 四边形 PQMN 周长的最小值为线段 P 'P ''的长.

造桥选址问题教案

13.4课题学习最短路径问题(2) 造桥选址问题 教师:朱巧 一、教学目标 1、知识与技能 理解利用平移的方法,解决最短路径问题。 2、过程与方法 (1)在观察、操作、归纳等探索过程中,培养学生的实际动手能力; (2)在运用知识解决有关问题的过程中,体验并掌握探索、归纳最短路径选取的方法。 3、情感态度与价值观 (1)体会数学与现实生活的联系,增强克服困难的勇气与信心; (2)会应用数学知识解决一些简单的实际问题,增强应用意识; (3)使学生进一步形成数学来源于实践,反过来又服务于实践的辩证唯物主义观点。 二、教学重点与难点 1、教学重点 理解如何利用平移,解决造桥选址中的最短路径问题。 2、教学难点 理解路径最短的证明方法。 三、教具:多媒体、三角板 四、教学过程 (一)、知识点回顾 1、两点所有的连线中,线段最短。 2、连接直线外一点与直线上各点的所以线段中,垂线段最短。 应用1:利用轴对称的方法解决最短路径选取问题。 利用轴对称 的方法把已 知问题转化 为容易解决 的问题,这 就是“两点 的所有连线 中,线段最短”的应用。 (二)、提出问题 如果把一条直线l变成两条直线,会变成生活中的什么问题呢? (三)、新课学习

图(1) 图(2) 环节一:(情境设置)简单介绍著名桥梁专家茅以升、 环节二:把实际问题转化为数学问题、 如上图(1),A 与B 两地在一条河的两岸,现要在河上造一座桥MN 、桥造在何处可使从A 到B 的路径AMNB 最短?(假定河的两岸就是平行的直线,桥要与河垂直、) 分析图(2):把河的两岸瞧成两条平行线 a 与b ,N 为直线b 上的一个动点,MN 垂直于直线b,交直线a 于点M,这样,上面的问题可以转化为下面的问题,当点N 在直线b 的什么位置时,AM+MN+NB 最小? 引导学生发现,由于河宽就是固定的,即MN 不变,求AM+MN+NB 的最小值只要求AM+NB 的最小值即可。 环节三:请同学们各抒己见如何求AM+MN+NB 的最小值、 环节四:用几何画板展示造桥选址问题、 通 过 几 何 画 板 的 动 画 演 示, 让 学 生找到动点N 在什么位置时, AM+MN+NB 最小。 环节五:如何证明AM+MN+NB<1111AM M N N B ++ ? 环节六:引导学生归纳方法:利用平移变化把已知问题转化为容易解决的问题,从而做出最短路径的选择。 (四)、拓展应用 拓展1:如图,如果A 、B 两地之间有两条平行的河, 我们要建的桥都就是与河岸垂直的。我们如何找到这个 最短的距离呢? (请学生分组讨论,如何作图,并请学生代表上台演示) 拓展2:如图,荆州古城河在CC`处直角拐弯,从A 处到 达B 处,需经两座桥:DD`,EE`(桥宽不计),设护城河以 及两座桥都就是东西、南北方向的,如何架桥可使 ADD`E`EB 的路程最短? (请学生分组讨论,如何作图,并请学生代表上台演示) (五)、小结:造桥选址问题,要使所得到的路径最短,就就是 要通过平移,使得除桥长不变外,把其它路径平移在一条直 线上,从而做出最短路径的选择。这就是“两点所有的连 线中,线段最短”的第二个应用。

2020年中考数学专题突破专题十一:最短路径——造桥选址问题复习课程

2020年中考数学专题突破专题十一:最短路径——造桥选址问 题

专题十一:最短路径——造桥选址问题 【导例引入】 导例:如图1,已知正方形ABCD 边长为3,点E 在AB 边上且BE=1,点P ,Q 分别是边BC ,CD 的动点(均不与顶点重合),当四边形AEPQ 的周长取最小值时,四边形AEPQ 的面积是 . 【方法指引】 (1)如图,在直线l 上找M 、N 两点(M 在左),使得AM+MN+NB 最小,且MN=d 。 方法:将点A 向右平移d 个单位到A ′,作A ′关于直线l 的对称点A",连接A"B 交直线l 于点N ,将点N 向左平移d 个单位到M ,点M 、N 即为所求,此时AM+MN+NB 最小为A"B 。 (2)如图,1l ∥2l ,1l ,2l 之间距离为d ,在1l ,2l 分别找M 、N 两点,使得MN ⊥1l ,且AM+MN+NB 最小。

l于点N,将点N向上平方法:将点A向下平移d个单位到A′,连接A′B交直线 2 移d个单位到M,点M,N即为所求,AM+MN+NB的最小值为A′B+d。 (3)如图,点P,Q在∠AOB内,分别在OA,OB上找点C,点D,使四边形PCDQ的周长最小. 方法:分别作P,Q关于OA,OB的对称点P′,Q′,连接P′Q′分别交OA,OB与点C,D,则此时四边形PCDQ的周长最小 本质为转化思想: (1)化同侧为异侧(对称变换), (2)平移定距离(平移变换), (3)化折线为直线(两点之间线段最短) “将军饮马”问题主要利用构造对称图形解决求两条线段和差、三角形周长、四边形周长等一类最值问题,会与直线、角、三角形、四边形、圆、抛物线等图形结合,在近年的中考和竞赛中经常出现,而且大多以压轴题的形式出现。【例题精讲】 类型一:两定点两动点形成最短路径型

初二数学最短路径问题知识归纳+练习

初二数学最短路径问题 【问题概述】最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径.算法具体的形式包括: ①确定起点的最短路径问题- 即已知起始结点,求最短路径的问题. ②确定终点的最短路径问题- 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题. ③确定起点终点的最短路径问题- 即已知起点和终点,求两结点之间的最短路径. ④全局最短路径问题- 求图中所有的最短路径. 【问题原型】“将军饮马”,“造桥选址”,“费马点”. 【涉及知识】“两点之间线段最短”,“垂线段最短”,“三角形三边关系”,“轴对称”,“平移”. 【出题背景】角、三角形、菱形、矩形、正方形、梯形、圆、坐标轴、抛物线等. 【解题思路】找对称点实现“折”转“直”,近两年出现“三折线”转“直”等变式问题考查.

在直线l 上求一点P ,使PB PA -的值最大. 作直线AB ,与直线l 的交 点即为P . 三角形任意两边之差小于 第三边.PB PA -≤AB . PB PA -的最大值=AB . 【问题11】 作法 图形 原理 在直线l 上求一点P ,使PB PA -的值最大. 作B 关于l 的对称点B '作直线A B ',与l 交点即为 P . 三角形任意两边之差小于 第三边.PB PA -≤AB '. PB PA -最大值=AB '. 【问题12】“费马点” 作法 图形 原理 △ABC 中每一内角都小于120°,在△ABC 内求一点P ,使P A +PB +PC 值最小. 所求点为“费马点”,即满足∠APB =∠BPC =∠APC =120°.以AB 、AC 为边向外作等边△ABD 、△ACE ,连CD 、BE 相交于P , 点P 即为所求. 两点之间线段最短. P A +PB +PC 最小值=CD . 【精品练习】 1.如图所示,正方形ABCD 的面积为12,△ABE 是等边三角形,点E 在正方形ABCD 内,在对角线AC 上有一 点P ,使PD +PE 的和最小,则这个最小值为( ) A .3 B .26 C .3 D 6 2.如图,在边长为2的菱形ABCD 中,∠ABC =60°,若将△ACD 绕点A 旋转,当AC ′、AD ′分别与BC 、CD 交于点E 、F ,则△CEF 的周长的最小值为( ) A .2 B .32 C .32+ D .4 l B A l P A B l A B l B P A B' A B C P E D C B A A D E P B C

最短路径问题(珍藏版纯word版)

第11讲:轴对称 【问题概述】初中数学最值问题是每年中考必出题,更是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 【问题原型】“将军饮马”,“造桥选址”,“费马点”. 【涉及知识】“两点之间线段最短”,“垂线段最短”,“三角形三边关系”,“轴对称”,“平移”. 【出题背景】角、三角形、菱形、矩形、正方形、梯形、圆、坐标轴、抛物线等. 【解题思路】找对称点实现“折”转“直”,近两年出现“三折线”转“直”等变式问题考查.一.【十二个基本问题】 在直线l上求一点 +PB 值最小。 【问题2】作图 在直线l上求一点 A+PB 值最小. 【问题3】“将军饮马”作图 在直线l1 、l2 上分别 求点M、N,使△PMN 周长最小. 【问题 4】作图 在直线l1、l2上分别求 M 、N ,使四 PQMN的周长最小。

直线m∥ n,在m、 上分别求点M、N,使 m,且AM+MN+BN 值最小。 【问题 6】作图 在直线l上求两点M、 在左),使MN a,并使 +MN+NB 的值最小 作图 l1上求点A,在l2 B,使P A+AB值最小. 【问题 8】作图 A 为l1上一定点,B 上;A 为l1上一定点, B 为l2上一定点,在 上求点M在l1上求点N 作图 在直线l上求一点 PA-的值最小 PB

二.“一次对称”常见模型:在直线 l 上求一点 PB PA -的值最大作图 在直线 l 上求一点 PB -的值最大 .【问题 12】“费马点”作图 ABC 中每一内角都小120°,在△ABC 内求一点P ,使 P A +PB +PC 最小.

选址问题数学模型

选址问题数学模型 摘要 本题是用图论与算法结合的数学模型,来解决居民各社区生活中存在三个的问题:合理的建立3个煤气缴费站的问题;如何建立合理的派出所;市领导人巡视路线最佳安排方案的问题。通过对原型进行初步分析,分清各个要素及求解目标,理出它们之间的联系.在用图论模型描述研究对象时,为了突出与求解目标息息相关的要素,降低思考的复杂度。对客观事物进行抽象、化简,并用图来描述事物特征及内在联系的过程.建立图论模型是为了简化问题,突出要点,以便更深入地研究问题 针对问题1:0-1规划的穷举法模型。该模型首先采用改善的Floyd-Warshall 算法计算出城市间最短路径矩阵见附录表一;然后,用0-1规划的穷举法获得模型目标函数的最优解,其煤气缴费站设置点分别在Q、W、M社区,各社区居民缴费区域见表7-1,居民与最近的缴费点之间平均距离的最小值11.7118百米。 针对问题2:为避免资源的浪费,且满足条件,建立了以最少分组数为目标函数的单目标最优化模型,用问题一中最短路径的Floyd算法,运用LINGO软件编程计算,得到个社区之间的最短距离,再经过计算可得到本问的派出所管辖范围是2.5千米。最后采用就近归组的搜索方法,逐步优化,最终得到最少需要设置3个派出所,其所在位置有三种方案,分别是:(1)K区,W区,D区;(2)K区,W区,R区;(3)K区,W区,Q区。最后根据效率和公平性和工作负荷考虑考虑,其第三种方案为最佳方案,故选择K区,W区,Q区,其各自管辖区域路线图如图8-1。 针对问题3:建立了双目标最优化模型。首先将问题三转化为三个售货员的最佳旅行售货员问题,得到以总路程最短和路程均衡度最小的目标函数,采用最短路径Floyd算法,并用MATLAB和LINGO软件编程计算,得到最优树图,然后按每块近似有相等总路程的标准将最优树分成三块,最后根据最小环路定理,得到三组巡视路程分别为11.8km、11km和12.5km,三组巡视的总路程达到35.3km,路程均衡度为12%,具体巡视路线安排见表9-1和图9.2 。 关键词Floyd-Warshall算法穷举法最小生成树最短路径 1问题重述 1.1问题背景 这是一个最优选址问题,是一种重要的长期决策,它的好坏直接影响到服务方法,服务质量,服务效率,服务成本,所以选址问题的研究有着重大的经济社

13.4 最短路径问题例题与讲解

13.4 课题学习最短路径问题 1.最短路径问题 (1)求直线异侧的两点与直线上一点所连线段的和最小的问题,只要连接这两点,与直线的交点即为所求. 如图所示,点A,B分别是直线l异侧的两个点,在l上找一个点C,使CA+CB最短,这时点C是直线l与AB的交点. (2)求直线同侧的两点与直线上一点所连线段的和最小的问题,只要找到其中一个点关于这条直线的对称点,连接对称点与另一个点,则与该直线的交点即为所求. 如图所示,点A,B分别是直线l同侧的两个点,在l上找一个点C,使CA+CB最短,这时先作点B关于直线l的对称点B′,则点C是直线l与AB′的交点.

为了证明点C的位置即为所求,我们不妨在直线上另外任取一点C′,连接AC′,BC′,B′C′,证明AC+CB<AC′+C′B.如下:证明:由作图可知,点B和B′关于直线l对称, 所以直线l是线段BB′的垂直平分线. 因为点C与C′在直线l上, 所以BC=B′C,BC′=B′C′. 在△AB′C′中,AB′<AC′+B′C′, 所以AC+B′C<AC′+B′C′, 所以AC+BC<AC′+C′B. 【例1】在图中直线l上找到一点M,使它到A,B两点的距离和最小. 分析:先确定其中一个点关于直线l的对称点,然后连接对称点和另一个点,与直线l的交点M即为所求的点. 解:如图所示:(1)作点B关于直线l的对称点B′; (2)连接AB′交直线l于点M. (3)则点M即为所求的点.

点拨:运用轴对称变换及性质将不在一条直线上的两条线段转化到一条直线上,然后用“两点之间线段最短”解决问题. 2.运用轴对称解决距离最短问题 运用轴对称及两点之间线段最短的性质,将所求线段之和转化为一条线段的长,是解决距离之和最小问题的基本思路,不论题目如何变化,运用时要抓住直线同旁有两点,这两点到直线上某点的距离和最小这个核心,所有作法都相同. 警误区利用轴对称解决最值问题应注意题目要求根据轴对称的性质、利用三角形的三边关系,通过比较来说明最值问题是常用的一种方法.解决这类最值问题时,要认真审题,不要只注意图形而忽略题意要求,审题不清导致答非所问. 3.利用平移确定最短路径选址 选址问题的关键是把各条线段转化到一条线段上.如果两点在一条直线的同侧时,过两点的直线与原直线的交点处构成线段的差最大,如果两点在一条直线的异侧时,过两点的直线与原直线的交点处构成的线段的和最小,都可以用三角形三边关系来推理说明,通常根据最大值或最小值的情况取其中一个点的对称点来解决.解决连接河两岸的两个点的最短路径问题时,可以通过平移河岸

最短路径问题专项练习题

最短路径问题专项练习 共13页,全面复习与联系最短路径问题 一、具体内容包括: 蚂蚁沿正方体、长方体、圆柱、圆锥外侧面吃食问题; 线段(之和)最短问题; 二、原理: 两点之间,线段最短;垂线段最短。(构建“对称模型”实现转化) 1.最短路径问题 (1)求直线异侧的两点与直线上一点所连线段的和最小的问题,只要连接这两点,与直线的交点即为所求. 如图所示,点A ,B 分别是直线l 异侧的两个点,在l 上找一个点C ,使CA +CB 最短,这时点C 是直线l 与AB 的交点. (2)求直线同侧的两点与直线上一点所连线段的和最小的问题,只要找到其中一个点关于 这条直线的对称点,连接对称点与另一个点,则与该直线的交点即为所求. 如图所示,点A ,B 分别是直线l 同侧的两个点,在l 上找一个点C ,使CA +CB 最短,这时先作点B 关于直线l 的对称点B ′,则点C 是直线l 与AB ′的交点. 为了证明点C 的位置即为所求,我们不妨在直线上另外任取一点C ′,连接AC ′,BC ′, B ′ C ′,证明AC +CB <AC ′+C ′B .如下: 证明:由作图可知,点B 和B ′关于直线l 对称, 所以直线l 是线段BB ′的垂直平分线. 因为点C 与C ′在直线l 上, 所以BC =B ′C ,BC ′=B ′C ′. 在△AB ′C ′中,AB ′<AC ′+B ′C ′, 所以AC +B ′C <AC ′+B ′C ′, 所以AC +BC <AC ′+C ′B . 【例1】 在图中直线l 上找到一点M ,使它到A ,B 两点的距离和最小. 分析:先确定其中一个点关于直线l 的对称点,然后连接对称点和另一个点,与直线l 的交点M 即为所求的点. 解:如图所示:(1)作点B 关于直线l 的对称点B ′; (2)连接AB ′交直线l 于点M . (3)则点M 即为所求的点. 点拨:运用轴对称变换及性质将不在一条直线上的两条线段转化到一条直线上,然后用“两点之间线段最短”解决问题.

造桥选址问题的拓展

造桥选址问题的拓展 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

造桥选址问题的拓展 利用平移变换进行造桥选址,是平移变换的一个重要应用。下面就课本中一道习题,加以拓展探究,我们可发现其一般规律。 一、原题再现 如图1,A和B两地在一条河的两岸,现要在河上造一座桥MN。桥造在何处才能使从A到B的路径AMNB最短(假定河的两岸是平行的直线,桥要与河垂直)。(人教课标七年级下册2007年第二版37页第7题) 分析:由于河岸宽度是固定的,造的桥要与河垂直,因此路径AMNB中的MN 的长度是固定的。 我们可以将点A沿与河垂直的方向平移MN的距离到A 1 ,那么为了使AMNB 最短,只需A 1B最短。根据两点之间距离最短,连接A 1 B,交河岸于点N,在此 处造桥MN,所得路径AMNB就是最短路径。如图2。? 证明:如图3,如果在不同于MN的位置造桥M 1N 1 。由于M 1 N 1 =MN=AA 1 ;又根 据“两点之间,线段最短”。可知,AN 1+N 1 B>A 1 N+NB。? 所以,路径AMNB要短于AM 1N 1 B。?

二、拓展应用? 拓展1:如图4,如果A、B两地之间有两条平行的河,我们要建的桥都是与河岸垂直的。我们如何找到这个最短的距离呢 方法1:仿照上例,可以将点A沿与河垂直的方向平移两个河宽分别到到 A 1、A 2 ,路径中两座桥的长度是固定的。为了使路径最短,只要A 2 B最短。连接 A 2B,交河流2河岸于N,在此处造桥MN;连接A 1 M,交河流1河岸于P,在此处 造桥PQ。所得路径AQPMNB最短。 方法2:此题还可以用以下方法来确定建桥位置。? 如图6,将点A沿与第一条河流垂直的方向平移一个河宽到A 1 ,将B沿与第 二条河垂直的方向平移一个河宽到B 1 ,连接A1B1与两条河分别相交于N、P,在N、P两处,分别建桥MN、PQ,所得路径AQPMNB最短。? 拓展2:如图7,如果A、B之间有三条平行的河流呢

1043 【图论基础】求一个无向图的最短路径(dijkstra) 1044 有向图中任意两点最短路径(floyd)

【图论基础】求一个无向图的最短路径(dijkstra) Time Limit:10000MS Memory Limit:65536K Total Submit:112 Accepted:46 Description 一个含n个结点的无向图,以矩阵存储方式给出,请求出指定的两个点之间的最短距离。 Input 第一行,一个整数n(0 < n < 1000 ),表示无向图中结点的个数。 接下来是一个n*n的矩阵,表示无向图中各结点之间的联结情况,矩阵中的数值为小于等于1000的下整数,其中0 表示两点之间无直接连接。 最后一行,两个整数i,j。表示求解i点到j点的最短距离。 Output 一个数值,表示指定的两点之间最短距离。 Sample Input 2 0 2 2 0 1 2 Sample Output 2 Source

?var ? i,j,k,n,min:longint; ? x,y:longint; ? a:array[1..1000,1..1000] of longint; ? b:array[1..1000] of longint; ? c:array[1..1000] of boolean; ?begin ? readln(n); ? for i:=1 to n do ? for j:=1 to n do read(a[i,j]); ? readln(x,y); ? fillchar(c,sizeof(c),0); ? fillchar(b,sizeof(b),$7); ? k:=x; b[x]:=0; ? for i:=1 to n-1 do begin ? c[k]:=true; ? for j:=1 to n do ? if (a[k,j]<>0) and not c[j] and (a[k,j]+b[k]

相关文档
最新文档