最短路径问题

合集下载

专题—最短路径问题(含解答)

专题—最短路径问题(含解答)

专题—最短路径问题一.选择题(共7小题)1.如图所示,四边形OABC为正方形,边长为3,点A,C分别在x轴,y轴的正半轴上,点D在OA上,且D的坐标为(1,0),P是OB上的一动点,则“求PD+PA和的最小值”要用到的数理依据是()A.“两点之间,线段最短”B.“轴对称的性质”C.“两点之间,线段最短”以及“轴对称的性质”D.以上答案都不正确解:∵四边形OABC为正方形,∴A、C两点关于直线OB对称(轴对称的性质),∴连接CD,则CD即为PD+PA和的最小值(两点之间,线段最短),∴用到的数理依据是“两点之间,线段最短”以及“轴对称的性质”.故选:C.2.点A、B均在由面积为1的相同小矩形组成的网格的格点上,建立平面直角坐标系如图所示.若P是x轴上使得|PA﹣PB|的值最大的点,Q是y轴上使得QA+QB的值最小的点,则OP•OQ=()A.5B.4C.3D.2解:连接AB并延长交x轴于点P,由三角形的三边关系可知,点P即为x轴上使得|PA﹣PB|的值最大的点,∵点B是矩形ACPD的中心,∴点P即为AB延长线上的点,此时P(3,0)即OP=3;作A点关于y轴的对称点A′连接A′B交y轴于点Q,则A′B即为QA+QB的最小值,∵A′(﹣1,2),B(2,1),设过A′B的直线为:y=kx+b,则,解得,∴Q(0,),即OQ=,∴OP•OQ=3×=5.故选:A.3.已知∠MON=40°,P为∠MON内一定点,OM上有一点A,ON上有一点B,当△PAB的周长取最小值时,∠APB的度数是()A.40°B.100°C.140°D.50°解:分别作点P关于OM、ON的对称点P′、P″,连接OP′、OP″、P′P″,P′P″交OM、ON于点A、B,连接PA、PB,此时△PAB周长的最小值等于P′P″.由轴对称性质可得,OP′=OP″=OP,∠P′OA=∠POA,∠P″OB=∠POB,∴∠P′OP″=2∠MON=2×40°=80°,∴∠OP′P″=∠OP″P′=(180°﹣80°)÷2=50°,又∵∠BPO=∠OP″B=50°,∠APO=∠AP′O=50°,∴∠APB=∠APO+∠BPO=100°.故选:B.4.如图,等腰三角形ABC的底边BC长为4,面积是16,腰AC的垂直平分线EF 分别交AC,AB边于E,F点.若点D为BC边的中点,点M为线段EF上一动点,则△CDM周长的最小值为()A.6B.8C.10D.12解:连接AD,∵△ABC是等腰三角形,点D是BC边的中点,∴AD⊥BC,=BC•AD=×4×AD=16,解得AD=8,∴S△ABC∵EF是线段AC的垂直平分线,∴点C关于直线EF的对称点为点A,∴AD的长为CM+MD的最小值,∴△CDM的周长最短=(CM+MD)+CD=AD+BC=8+×4=8+2=10.故选:C.5.如图,点P是∠AOB内的一点,且OP=5,且∠AOB=30°,点M、N分别是射线OA、OB上的动点,则△PMN周长的最小值为()A.5B.6C.8D.10解:分别作点P关于OA、OB的对称点C、D,连接CD,分别交OA、OB于点M、N,连接OP、OC、OD、PM、PN.∵点P关于OA的对称点为C,关于OB的对称点为D,∴PM=CM,OP=OC,∠COA=∠POA;∵点P关于OB的对称点为D,∴PN=DN,OP=OD,∠DOB=∠POB,∴OC=OD=OP=5,∠COD=∠COA+∠POA+∠POB+∠DOB=2∠POA+2∠POB=2∠AOB=60°,∴△COD是等边三角形,∴CD=OC=OD=5.∴△PMN的周长的最小值=PM+MN+PN=CM+MN+DN≥CD=5,故选:A.6.如图,A和B两地在一条河的两岸,现要在河上造一座桥MN,使从A到B 的路径AMNB最短的是(假定河的两岸是平行直线,桥要与河岸垂直)()A.B.C.D.解:根据垂线段最短,得出MN是河的宽时,MN最短,即MN⊥直线a(或直线b),只要AM+BN最短就行,即过A作河岸a的垂线AH,垂足为H,在直线AH上取点I,使AI等于河宽.连结IB交河的b边岸于N,作MN垂直于河岸交a边的岸于M点,所得MN即为所求.故选:D.二.填空题(共9小题)7.如图所示,点A在直线a外,点B在直线a上,在直线a上找一点P,使AP+BP 最小的点P有1个,其位置是B点.解:由题意得使AP+BP最小的点P有1个,其位置是B点,故答案为:1,B点.8.如图,∠AOB=45°,OC平分∠AOB,点M为OB上一定点,P为OC上的一动点,N为OB上一动点,当PM+PN最小,∠PMO=45°.解:∵PM=PM′,∴此时PM+PN=PM′+PN′=M′N′,∵点M与点M′关于OC对称,OC平分∠AOB,∴OM=OM′,∵∠AOB=45°,∴∠PM'O=∠AOB=45°,∴∠PMO=∠PM'O=45°,故答案为:45°.9.四边形ABCD中,∠BAD=136°,∠B=∠D=90°,在BC、CD上分别找一点M、N,使三角形AMN周长最小时,则∠AMN+∠ANM的度数为88度.解:延长AB到A′使得BA′=AB,延长AD到A″使得DA″=AD,连接A′A″与BC、CD 分别交于点M、N.∵∠ABC=∠ADC=90°,∴A、A′关于BC对称,A、A″关于CD对称,此时△AMN的周长最小,∵BA=BA′,MB⊥AB,∴MA=MA′,同理:NA=NA″,∴∠A′=∠MAB,∠A″=∠NAD,∵∠AMN=∠A′+∠MAB=2∠A′,∠ANM=∠A″+∠NAD=2∠A″,∴∠AMN+∠ANM=2(∠A′+∠A″),∵∠BAD=136°,∴∠A′+∠A″=180°﹣∠BAD=44°∴∠AMN+∠ANM=2×44°=88°.故答案为:8810.如图,∠AOB=30°,点P是它内部一点,OP=2,如果点Q、点R分别是OA、OB上的两个动点,那么PQ+QR+RP的最小值是2.解:作点P关于OA对称的点P1,作点P关于OB对称的点P2,连接P1P2,与OA 交于点Q,与OB交于点R,此时△PQR的周长最小.从图上可看出△PQR的周长就是P1P2的长,∵∠AOB=30°,∴∠P1OP2=60°.∵OP1=OP2,∴△OP1P2是等边三角形.∴P1P2=OP1=OP=2.∴△PQR周长的最小值是2.即PQ+QR+RP的最小值是2故答案为:2.11.已知:在四边形ABCD中,∠ABC=∠ADC=90°,M、N分别是CD和BC上的点.求作:点M、N,使△AMN的周长最小.作法:如图2,(1)延长AD,在AD的延长线上截取DA´=DA;(2)延长AB,在AB的延长线上截取BA″=BA;(3)连接A′A″,分别交CD、BC于点M、N.则点M、N即为所求作的点.请回答:这种作法的依据是①线段垂直平分线的定义(或线段垂直平分线的判定,或轴对称的性质即对称点的连线段被对称轴垂直平分)②线段垂直平分线上的点到线段两个端点的距离相等(线段垂直平分线的性质);③两点之间线段最短.解:根据线段垂直平分线的性质和两点之间线段最短作图;故答案为:①线段垂直平分线的定义(或线段垂直平分线的判定,或轴对称的性质即对称点的连线段被对称轴垂直平分)②线段垂直平分线上的点到线段两个端点的距离相等(线段垂直平分线的性质);③两点之间线段最短12.如图,在四边形ABCD中,∠DAB=130°,∠D=∠B=90°,点M,N分别是CD,BC上两个动点,当△AMN的周长最小时,∠AMN+∠ANM的度数为100°.解:如图,作点A关于BC的对称点A′,关于CD的对称点A″,连接A′A″与BC、CD的交点即为所求的点M、N,∵∠BAD=130°,∠B=∠D=90°,∴∠A′+∠A″=180°﹣∠130°=50°,由轴对称的性质得:∠A′=∠A′AM,∠A″=∠A″AN,∴∠AMN+∠ANM=2(∠A′+∠A″)=2×50°=100°.故答案为:100°13.如图,△ABC中,∠A=15°,AB是定长.点D,E分别在AB,AC上运动,连结BE,ED.若BE+ED的最小值是2,则AB的长是4.解;作点B关于AC的对称点B',过B作BF⊥AB',∵点B关于AC的对称点B',∴∠B'AE=∠CAB=15°,∵BF⊥AB',∵BF即为BE+ED的最小值,即BF=2,∴AB=4,故答案为:414.如图,∠AOB=30°,∠AOB内有一定点P,且OP=12,在OA上有一点Q,OB上有一点R,若△PQR周长最小,则最小周长是12解:设∠PO A=θ,则∠POB=30°﹣θ,作PM⊥OA与OA相交于M,并将PM延长一倍到E,即ME=PM.作PN⊥OB与OB相交于N,并将PN延长一倍到F,即NF=PN.连接EF与OA相交于Q,与OB相交于R,再连接PQ,PR,则△PQR即为周长最短的三角形.∵OA是PE的垂直平分线,∴EQ=QP;同理,OB是PF的垂直平分线,∴FR=RP,∴△PQR的周长=EF.∵OE=OF=OP=12,且∠EOF=∠EOP+∠POF=2θ+2(30°﹣θ)=60°,∴△EOF是正三角形,∴EF=12,即在保持OP=12的条件下△PQR的最小周长为12.故答案为:12三.解答题(共9小题)15.如图,A,B两村在河L的同侧,A,B到河L的距离分别为1.5km和2km,AB=1.3km,现要在河边建一供水厂,同时向A,B两村供水.若铺设水管的工程费用为每千米1.8万元,问水厂与A村的水平距离为多远时,能使铺设费用最省,并求出总费用约多少万元.解:连接AB,作AF⊥BD于点F,则BF=BD﹣AE=0.5km,∴AF=1.2,作A关于直线L的对称点A′,连接A′B到L交于点C,则C点为水厂所在地,如图,过B作BD⊥L于D,作A′G⊥BD于点G,∵BG=BD+DG=3.5,A′G=AF=1.2,CD=2÷3.5×1.2=,EC=1.2﹣=,∴AC+BC=A′C+BC=A′B=3.7km,∴总费用为3.7×1.8=6.66万元.16.如图,一个人从C点骑马出发到D点,但他必须先到河岸边l1的P1点去让马饮水,然后再到河岸边l2的P2点去,再次让马饮水,最后骑马到D点,他应如何选择饮水点P1,P2.才能使所走的路程CP1+P1P2+P2D最短?解:如图,作点C关于l1的对称点C′,点D关于l2的对称点D′,连接C′D′,交于l1,l2于点P1,点P2,连接CP1,P1P2,P2D,所以路程CP1+P1P2+P2D最短.17.八(二)班举行元旦文艺晚会,桌子摆成两条直线(如图中所示的AO,BO),AO桌面上摆满了桔子,OB桌面上摆满了糖果,坐在C处的小花先拿桔子再拿糖果,然后送给D处的小红,最后回到C处.请你帮助她设计一条行走路线,使其所走的总路程最短(尺规作图,并写出作法,不需说明理由)解:如图所示,小花所走的行走路线为:CM﹣MN﹣ND,所走的总路程最短.18.尺规作图:(1)如图①,江边A,B两个村庄准备集资建造一个自来水厂,请你确定一个厂址,使得从自来水厂到A,B两村所用的水管最短.(2)如图②,P是∠A0B内部一点,试在角的两边上各找一个点E,F,使△PEF 的周长最小.解:(1)如图①,过A点关于江边的对称点C,再连接CB,BC与江边的交点Q 即为自来水厂厂址;(2)如图②,作点P关于OA对称的点M,作点P关于OB对称的点N,连接MN,与OA交于点E,与OB交于点F,此时△PEF的周长最小.19.如图,为了做好2013年沈阳全运会起降的交通安全工作,某交警执勤小队从A处出发,先到公路l1上设卡检查,再到公路l2上设卡检查,最后再到B 地执行任务,他们应如何走才能使总路程最短?【解答】解:如图所示,交警小队沿A→C→D→B走才能使总路程最短.20.如图所示,A、B为公路l同旁的两个村庄,在l上找一点P.(1)当P到A、B等距离时,P在何处?(2)当P到两村距离之和最小时,P在何处?解:(1)因为点P到两个村庄A,B的距离相等,所以P应建在AB的垂直平分线和l的交点处,理由是到线段两个端点距离相等的点在线段的垂直平分线上,如图1:,(2)作点A关于直线l的对称点,连接A′B交直线于点P,点P就是设置的点,如图2:21.如图,A、B两城市之间有一条国道,国道的宽为a,现要在国道上修建一座垂直于国道的立交桥,使通过A、B两城市路程最近,请你设计建桥的位置,并说明理论依据.解:如图,过点B作BC垂直国道,且使BC等于国道宽a,连接AC交国道边缘与M,作MN∥BC即可.理由:两点之间线段最短.22.如图,A和B两地在一条河的两岸,现要在河上造一座桥MN.桥造在何处才能使从A到B的路径AMNB最短?在下图中画出路径,不写画法但要说明理由.(假定河的两岸是平行的直线,桥要与河垂直.)解:如图,作BB'垂直于河岸GH,使BB′等于河宽,连接AB′,与河岸EF相交于M,作MN⊥GH,则MN∥BB′且MN=BB′,于是MNBB′为平行四边形,故NB=MB′.根据“两点之间线段最短”,AB′最短,即AM+BN最短.故桥建立在MN处符合题意.23.如图,平面上有直线a及直线a外的三点A、B、P.(1)过点P画一条直线m,使得m∥a;(2)若直线a、m表示一条河的两岸,现要在这条河上建一座桥(桥与岸垂直),使得从村庄A经桥过河到村庄B的路程最短,试问桥应建在何处?画出示意图.解:(1)如图1所示,(2)如图2,作AA'垂直于河岸a,使AA′等于河宽,连接BA′,与另一条河岸相交于M,作MN⊥直线a,则MN∥AA′且MN=AA′,于是MNAA′为平行四边形,故MA′=NA.根据“两点之间线段最短”,BA′最短,即AN+BM最短.故桥建立在M、N处符合题意.。

最短路径问题介绍

最短路径问题介绍

最短路径问题介绍全文共四篇示例,供读者参考第一篇示例:最短路径问题是指在一个带有边权的图中,寻找连接图中两个特定节点的最短路径的问题。

在实际生活中,最短路径问题广泛应用于交通运输、通信网络、物流配送等领域。

通过解决最短路径问题,可以使得资源的利用更加高效,节约时间和成本,提高运输效率,并且在紧急情况下可以迅速找到应急通道。

最短路径问题属于图论中的基础问题,通常通过图的表示方法可以简单地描述出这样一个问题。

图是由节点和边组成的集合,节点表示不同的位置或者对象,边表示节点之间的连接关系。

在最短路径问题中,每条边都有一个权重或者距离,表示从一个节点到另一个节点移动的代价。

最短路径即是在图中找到一条路径,使得该路径上的边权和最小。

在解决最短路径问题的过程中,存在着多种算法可以应用。

最著名的算法之一是Dijkstra算法,该算法由荷兰计算机科学家Edsger W. Dijkstra于1956年提出。

Dijkstra算法是一种贪心算法,用于解决单源最短路径问题,即从一个给定的起点到图中所有其他节点的最短路径。

该算法通过维护一个距离数组和一个集合来不断更新节点之间的最短距离,直到找到目标节点为止。

除了Dijkstra算法和Floyd-Warshall算法外,还有一些其他与最短路径问题相关的算法和技术。

例如A*算法是一种启发式搜索算法,结合了BFS和Dijkstra算法的特点,对图中的节点进行评估和排序,以加速搜索过程。

Bellman-Ford算法是一种解决含有负权边的最短路径问题的算法,通过多次迭代来找到最短路径。

一些基于图神经网络的深度学习方法也被应用于最短路径问题的解决中,可以获得更快速和精确的路径搜索结果。

在实际应用中,最短路径问题可以通过计算机程序来实现,利用各种算法和数据结构来求解。

利用图的邻接矩阵或者邻接表来表示图的连接关系,再结合Dijkstra或者Floyd-Warshall算法来计算最短路径。

第21讲 最短路径问题

第21讲  最短路径问题

第21讲 最短路径问题一、方法剖析与提炼引例:如图,A 、B 是笔直公路l 同侧的两个村庄,且两个村庄到直路的距离分别是300m 和500m ,两村庄之间的距离为d(已知d 2=400000m 2),现要在公路上建一汽车停靠站,使两村到停靠站的距离之和最小,则最小距离为___________m 。

【解答】1000。

【解析】如图,作点B 关于公路l 的对称点B′,连接AB′交公路于点C ,CA+CB最短距离就是AB′的长度。

根据勾股定理可以求得AB′=1000m 。

【解法】同侧的两点,通过轴对称变换成异侧,利用两点之间线段最短确定最小距离。

【解释】通过生活中的实际例子,让学生感受最短路径来源于生活,并引出求最短路径常用的方法,利用轴对称变换找对称点及两点之间线段最短(即饮马问题)。

学习时可作如下归纳:(1)在初中范围内和边的不等量有关的知识有哪些,引出两点之间线段最短,三角形两边之和大于第三边;(2)在此图中哪种变换方式比较适合将马路同侧的两条线段变换到异侧,并且保持线段长度不变,旨在复习轴对称、平移、旋转等变换特点;(3)在移动变换中,有没有可能将两条线段置于共线的情形,即最短路径。

例1:已知正方形ABCD 的边长为8,M 在DC 上,且DM=2,N 是AC 上一动点,求DN+MN 的最小值。

【解答】连结BD 交AC 于点O ,根据正方形的对称性可知,B 点即为D 的对称点。

连结BM 交AC 于点N ,则BM 的值为DN+MN 的最小值。

所以BM=10。

【解析】如图,点B 即为点D 关于AC 的对称点,连接BM ,BM 的长度即为DN+MN的最小距离。

在Rt△BCM 中,根据勾股定理可求得BM=10。

【解法】此题 DN ,MN 这两条线段中,M ,D 两点固定,只有N 一个点是移动的,故只需确定点N ,使得距离之和最短即可。

【解释】此例从最基本的图形出发,让学生易于接受,敢于探索。

学生依据正方形自身拥有的轴对称性找到对称点,将同侧两条线段利用翻折变成异侧的两条线段,利用两点之间线段最短找到最短路径。

最短路径(将军饮马+造桥选址).

最短路径(将军饮马+造桥选址).


N B
2、利用线段公理解决问题我们遇到了什 么障碍呢?
2020/7/8
思维火花
我们能否在不改变AM+MN+BN的前提 下把桥转化到一侧呢?什么图形变换能帮助 我们呢?
各抒己见
2020/7/8
1、把A平移到岸边. 2、把B平移到岸边. 3、把桥平移到和A相连. 4、把桥平移到和B相连.
合作与交流
A
向平移A点至A1 点,沿 A1
垂直于第二条河岸方向平移
B点至B1点,连接A1B1
M
分别交A、B的对岸于N、P 两点,建桥MN和PQ.
N P
最短路径 AM+MN+NP+PQ+QB转化为
AA1+A1B1+BB1.
Q B
2020/7/8
思维方法三
沿垂直于河岸方向依次把 B点平移至B1、B2,使 BB1=PQ,B1B2 =MN ; 连接B2A交于A点相邻河 岸于M点,建桥MN; 连接B1N交B1的对岸于 P点,建桥PQ; 从A点到B点的最短路径 为AM+MN+NP+MN +NP+PQ+QB转化 为AB2+B2B1+B1B.
A
C
l
B
② 点A,B分别是直线l同 侧的两个点 B
A l
C
B′
解决问题 1
① 作图
B A
l C
B′
② 证明
B A
C l
C′B′A来自C′CB 证明: l
B′
问题 2 (造桥选址问题)如图,A和B两地在一条河的两岸,现要在河 上造一座桥MN,桥造在何处可使从A到B的路径AMNB最短?(假定河 的两岸是平行的直线,桥要与河垂直。)

最短路径问题例题与讲解

最短路径问题例题与讲解

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即为所求的点.点拨:运用轴对称变换及性质将不在一条直线上的两条线段转化到一条直线上,然后用“两点之间线段最短”解决问题.运用轴对称及两点之间线段最短的性质,将所求线段之和转化为一条线段的长,是解决距离之和最小问题的基本思路,不管题目如何变化,运用时要抓住直线同旁有两点,这两点到直线上某点的距离和最小这个核心,所有作法都相同.警误区利用轴对称解决最值问题应注意题目要求根据轴对称的性质、利用三角形的三边关系,通过比较来说明最值问题是常用的一种方法.解决这类最值问题时,要认真审题,不要只注意图形而忽略题意要求,审题不清导致答非所问.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,B的距离相等.也可分别以A、B为圆心,以大于12AB 为半径画弧,两弧交于两点,过这两点作直线,与EF 的交点P 即为所求.(2)如图2,画出点A 关于河岸EF 的对称点A ′,连接A ′B 交EF 于P ,则P 到A ,B 的距离和最短.【例3】 如图,从A 地到B 地经过一条小河(河岸平行),今欲在河上建一座与两岸垂直的桥,应如何选择桥的位置才能使从A 地到B 地的路程最短?思路导引:从A 到B 要走的路线是A →M →N →B ,如下图,而MN 是定值,于是要使路程最短,只要AM +BN 最短即可.此时两线段应在同一平行方向上,平移MN 到AC ,从C 到B 应是余下的路程,连接BC 的线段即为最短的,此时不难说明点N 即为建桥位置,MN 即为所建的桥.解:(1)如图2,过点A 作AC 垂直于河岸,且使AC 等于河宽.(2)连接BC与河岸的一边交于点N.(3)过点N作河岸的垂线交另一条河岸于点M.则MN为所建的桥的位置.4.生活中的距离最短问题由两点之间线段最短(或三角形两边之和大于第三边)可知,求距离之和最小问题,就是运用等量代换的方式,把几条线段的和想方法转化在一条线段上,从而解决这个问题,运用轴对称性质,能将两条线段通过类似于镜面反射的方式转化成一条线段,如图,AO+BO=AC的长.所以作已知点关于某直线的对称点是解决这类问题的基本方法.【例4】(实际应用题)茅坪民族中学八(2)班举行文艺晚会,桌子摆成如图a所示两直排(图中的AO,BO),AO桌面上摆满了橘子,OB桌面上摆满了糖果,站在C处的学生小明先拿橘子再拿糖果,然后到D处座位上,请你帮助他设计一条行走路线,使其所走的总路程最短?图a 图b解:如图b.(1)作C点关于OA的对称点C1,作D点关于OB的对称点D1,(2)连接C1D1,分别交OA,OB于P,Q,那么小明沿C→P→Q→D 的路线行走,所走的总路程最短.利用轴对称和三角形的三边关系是解决几何中的最大值问题的关键.先做出其中一点关于对称轴的对称点,然后连接对称点和另一个点,所得直线与对称轴的交点,即为所求.根据垂直平分线的性质和三角形中两边之差小于第三边易证明这就是最大值.破疑点解决距离的最值问题的关键运用轴对称变换及三角形三边关系是解决一些距离的最值问题的有效方法.【例5】如下图,A,B两点在直线l的两侧,在l上找一点C,使点C到点A、B的距离之差最大.分析:此题的突破点是作点A(或B)关于直线l的对称点A′(或B′),作直线A′B(AB′)与直线l交于点C,把问题转化为三角形任意两边之差小于第三边来解决.解:如下图,以直线l为对称轴,作点A关于直线l的对称点A′,A′B的连线交l于点C,则点C即为所求.理由:在直线l上任找一点C′(异于点C),连接CA,C′A,C′A′,C′B.因为点A,A′关于直线l对称,所以l为线段AA′的垂直平分线,则有CA=CA′,所以CA -CB=CA′-CB=A′B.又因为点C′在l上,所以C′A=C′A′.在△A′BC′中,C′A-C′B=C′A′-C′B<A′B,所以C′A′-C′B<CA-CB.点拨:根据轴对称的性质、利用三角形的三边关系,通过比较来说明最值问题是常用的一种方法.。

最短路径问题(经典)

最短路径问题(经典)

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

最短路径问题的求解

最短路径问题的求解

最短路径问题的求解
4、此时再以离原点最近的未展开的点B联接的所有点,处理后,再展开离原点最近未展开的D点, 处理后得到如下图的最终结果:
5、由上图可以得出结论:点C、B、D、E就是点A到它们的最短路径(注意:这些路径并不是经过了 所有点,而是只经过了其中的若干个点,而且到每一个点的那条路径不一定相同)。因而A到E的最 短距离就是13。至于它经过了哪几个点大家可在上述过程中加以记录即可。
最短路径问题的求解
三、等代价搜索法 等代价搜索法也是在宽度优先搜索的基础上进行了部分优化的一种算法,它与 启发式搜索的相似之处都是每次只展开某一个结点(不是展开所有结点),不同之 处在于:它不需要去另找专门的估价函数,而是以该结点到A点的距离作为估价值, 也就是说,等代价搜索法是启发式搜索的一种简化版本。它的大体思路是: 1、 从A点开始依次展开得到AB(7)、AC(3)、AD(10)、AE(15)四个新 结点,把第一层结点A标 把未展开过的AB、AC、AD、AE四个结点中距离最小的一个展开,即展开AC (3)结点,得到ACB(8)、ACD(16)、ACE(13)三个结点,并把结点AC标记为 已展开; 3、 再从未展开的所有结点中找出距离最小的一个展开,即展开AB(7)结点, 得到ABC(12)、ABD(20)、ABE(19)三个结点,并把结点AB标记为已展开; 4、 再次从未展开的所有结点中找出距离最小的一个展开,即展开ACB(8)结 点,……; 5、 每次展开所有未展开的结点中距离最小的那个结点,直到展开的新结点中 出现目标情况(结点含有5个字母)时,即得到了结果。
最短路径问题的求解
[问题分析] 对于一个含有n个顶点和e条边的图来说,从某一个顶点Vi到其余任一顶点Vj的最短路径,可 能是它们之间的边(Vi,Vj),也可能是经过k个中间顶点和k+1条边所形成的路径(1≤k≤n-2)。 下面给出解决这个问题的Dijkstra算法思想。 设图G用邻接矩阵的方式存储在GA中,GA[i,j]=maxint表示Vi,Vj是不关联的,否则为权值 (大于0的实数)。设集合S用来保存已求得最短路径的终点序号,初始时S=[Vi]表示只有源点, 以后每求出一个终点Vj,就把它加入到集合中并作为新考虑的中间顶点。设数组dist[1..n]用来 存储当前求得的最短路径,初始时Vi,Vj如果是关联的,则dist[j]等于权值,否则等于maxint, 以后随着新考虑的中间顶点越来越多,dist[j]可能越来越小。再设一个与dist对应的数组 path[1..n]用来存放当前最短路径的边,初始时为Vi到Vj的边,如果不存在边则为空。 执行时,先从S以外的顶点(即待求出最短路径的终点)所对应的dist数组元素中,找出其 值最小的元素(假设为dist[m]),该元素值就是从源点Vi到终点Vm的最短路径长度,对应的 path[m]中的顶点或边的序列即为最短路径。接着把Vm并入集合S中,然后以Vm作为新考虑的中 间顶点,对S以外的每个顶点Vj,比较dist[m]+GA[m,j]的dist[j]的大小,若前者小,表明加入 了新的中间顶点后可以得到更好的方案,即可求得更短的路径,则用它代替dist[j],同时把Vj 或边(Vm,Vj)并入到path[j]中。重复以上过程n-2次,即可在dist数组中得到从源点到其余 各终点的最段路径长度,对应的path数组中保存着相应的最段路径。 对于上图,采用Dijkstra算法找出C1到Ci之间的最短路径(2≤i≤6)的过程如下:

最短路径问题

最短路径问题

A
O
N
3. 两定两动型最值
例:在∠MON的内部有点A和点B,在OM 上找一点C,在ON上找一点D,使得四边形 ABCD周长最短.
M
A
B
O
N
例:(造桥选址)将军每日需骑马从军营出发,去 河岸对侧的瞭望台观察敌情,已知河流的宽度为30 米,请问,在何地修浮桥,可使得将军每日的行程 最短?
A
C
D
B
4. 垂线段最短型
最短路径问题
1.两定一动型:两定点到一动 点的距离和最小
原理:两点之间线段最短。
例:在定直线l上找一个动点C,使动点C到两 个定点A与B的距离之和最小, 即CA+CB的和最小.
B A
l
2.两动一定型 例:在∠MON的内部有一点A,在OM上找 一点B,在ON上找一点C,使得△BAC周长 最短.
M
A
D
E
B
C
3.正方形ABCD的边长为8,M在DC上,且 DM=2,N是AC上的一动点,DN+MN的最小值 为————
课堂小结
通过本节课的学习,
你有哪些收获 ?作业CD NhomakorabeaA
B
典型例题
1.如图,在等边△ABC中,AB = 6,AD⊥BC, E是AC上的一点,M是AD上的一点,且AE = 2, 求EM+EC的最小值
A
A
E M
E
M
H
B
D
CB
D
C
2.正方形ABCD的面积为12, ABE是等边三角 形,点E在正方形ABCD内,在对角线AC上有一 点P,使PD+PE的和最小,则这个最小值是
例1:在∠MON的内部有一点A,在OM上找一点 B,在ON上找一点C,使得AB+BC最短.

最短路径的十二个基本问题

最短路径的十二个基本问题
原理
两点之间线段最短. PA+PB 最小值为 A B'.
原理
分别作点 P 关于两直 线的对称点 P'和 P'', 在直线 l1 、l2 上分别求 连 P'P'',与两直线交 点 M、N,使△PMN 的 点即为 M,N. 周长最小.
两点之间线段最短. PM+MN+PN 的最小值为 线段 P'P''的长.
【十二个基本问题】
【问题 1】
作法
图形
原理
连 AB,与 l 交点即为
P.
在直线 l 上求一点 P,
使 PA+PB 值最小.
【问题 2】“将军饮马”
作法
作 B 关于 l 的对称点
B'连 A B',与 l 交点
在直线 l 上求一点 P,
即为 P.
使 PA+PB 值最小.
【问题 3】
作法
图形 图形
两点之间线段最短. PA+PB 最小值为 AB.
原理
将点 A 向下平移 MN 的
长度单位得 A',连 A'
B,交 n 于点 N,过 N 作
直线 m ∥ n ,在 m 、n , NM⊥ m 于 M.
上分别求点 M、N,使
MN⊥ m ,且 AM+MN+BN
的值最小.
【问题 6】
作法
图形
将点 A 向右平移 a 个
长度单位得 A',作 A'
关于 l 的对称点 A'',连 在直线 l 上求两点 M、N
对称点 B',连 A'B' l2 上一定点,在 l2 上求 交l2 于 M,交 l1 于 N.
点 M,在 l1 上求点 N,
使 AM+MN+NB 的 值 最
小.

最短路径问题(Dijkstra算法)和最小生成树(Kruskal算法和Prim算法)

最短路径问题(Dijkstra算法)和最小生成树(Kruskal算法和Prim算法)
ift(j)==tmax
t(j)=tmin;
end
end
end
ifk==n
break;
end
end
T;
c;
Prim算法程序:
function[T c] =Primf(a)
%a表示权值矩阵
%c表示生成树的权和
%T表示生成树的边集合
l=length(a);
a(a==0)=inf;
k=1:l;
listV(k)=0;
上机实验1、2
1.最短路径问题(Dijkstra算法)
2.最小生成树(Kruskal算法和Prim算法)
一、最短路径问题(Dijkstra算法)
实验问题描述:如图的交通网络,每条弧上的数字代表车辆在该路段行驶所需的时间,有向边表示单行道,无向边表示可双向行驶。若有一批货物要从1号顶点运往11号顶点,问运货车应沿哪条线路行驶,才能最快地到达目的地。
listV(1)=1;
e=1;
while(e<l)
min=inf;
fori=1:l
iflistV(i)==1
forj=1:l
iflistV(j)==0&min>a(i,j)
min=a(i,j);b=a(i,j);
s=i;d=j;
end
end
end
end
listV(d)=1;
distance(e)=b;
T =
3 4 1 2
4 5 3 5
c =
10
>> a=[0 5 3 7 inf;5 0 8 inf 4;3 8 0 1 6;7 inf 1 0 2;inf 4 6 2 0];
>> [T c] =Primf(a)

最短路径问题归纳总结

最短路径问题归纳总结

最短路径问题归纳总结本文介绍了数学中的最短路径问题,该问题是图论研究中的一个经典算法问题,旨在寻找图中两结点之间的最短路径。

具体的算法形式包括确定起点的最短路径问题、确定终点的最短路径问题、确定起点终点的最短路径问题和全局最短路径问题。

其中,“将军饮马”、“造桥选址”和“费马点”是该问题的原型。

解决该问题需要涉及知识包括“两点之间线段最短”、“垂线段最短”、“三角形三边关系”、“轴对称”和“平移”等。

在解题思路方面,可以通过找对称点实现“折”转“直”,近两年出现“三折线”转“直”等变式问题考查。

本文还列举了十二个基本问题,包括确定起点的最短路径问题、确定终点的最短路径问题、确定起点终点的最短路径问题、全局最短路径问题、将军饮马、造桥选址等。

对于每个问题,本文都给出了详细的作法和图形原理,以及需要用到的知识原理。

问题6】给定直线m和直线n,求在它们上面的两个点M和N,使得XXX的值最小。

根据垂线段最短的原理,将点A向右平移a个长度得到A',作A'关于直线m的对称点A'',连A''B,交直线MN于点M,直线NB于点N,使得MN⊥m且MN=a。

则AM+MN+BN的最小值为A''B+MN。

在直线l上求两点M、N(M在左),使MN=a,并使AM+MN+NB的值最小。

将N点向左平移a个单位得到M。

问题7】给定两条直线l1和l2,求在它们上面的两个点A和B,使得PA+AB的值最小。

根据垂线段最短的原理,作点P关于l1的对称点P',作P'B⊥l2于B,交l2于A。

则PA+AB的最小值为线段P'B的长。

在l1上求点A,在l2上求点B,使PA+AB值最小。

问题8】给定两条直线l1和l2,求在它们上面的两个点A和B,使得AM+MN+NB的值最小。

根据两点之间线段最短的原理,作点A关于l2的对称点A',作点B关于l1的对称点B',连A'B'交l2于M,交l1于N。

最短路径算法——Dijkstra 算法

最短路径算法——Dijkstra 算法

最短路径算法——Dijkstra算法一、最短路径问题最短路问题是图论理论的一个经典问题。

寻找最短路径就是在指定网络中两结点间找一条距离最小的路。

最短路不仅仅指一般地理意义上的距离最短,还可以引申到其它的度量,如时间、费用、线路容量等。

最短路径算法的选择与实现是通道路线设计的基础,最短路径算法是计算机科学与地理信息科学等领域的研究热点,很多网络相关问题均可纳入最短路径问题的范畴之中。

经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现。

在带权图(即网络)G=(V,E)中,若顶点v i,v j是图G的两个顶点,从顶点v i到v j 的路径长度定义为路径上各条边的权值之和。

从顶点v i到v j可能有多条路径,其中路径长度最小的一条路径称为顶点v i到v j的最短路径。

求最短路径具有很高的实用价值,在各类竞赛中经常遇到。

一般有两类最短路径问题:一类是求从某个顶点(即源点)到其他顶点(即终点)的最短路径;另一类是求图中每一对顶点间的最短路径。

本讲主要讲述一种单源最短路径(Single source shortest path)算法——Dijkstra 算法,用于解决非负权有向图的单源最短路径问题。

二、Dijkstra算法2.1 Dijkstra算法Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径。

主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。

Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率偏低。

Dijkstra算法是很有代表性的最短路算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。

2.2 Dijkstra算法思想对于图G=(V,E),假设(u,v)是E中的边,c u,v是边的长度(即边权)。

如果把顶点集合V划分为两个集合S和T:S中所包含的顶点,他们到u的距离已经确定;T中所包含的顶点,他们到u的距离尚未确定。

最短路径问题和解法

最短路径问题和解法

最短路径问题和解法最短路径问题是计算一个图中从一个源点到目标点的最短路径问题,是图论中的重要问题之一。

该问题的解法可以划分为两种:单源最短路径问题和全源最短路径问题。

一、单源最短路径问题单源最短路径问题是指从一个源点出发,计算该源点到其他所有点的最短路径的问题。

解法有两种:Dijkstra算法和Bellman-Ford算法。

1. Dijkstra算法Dijkstra算法是一种贪心算法,每次将到源点距离最短的点加入已求出最短路径的点集。

虽然Dijkstra算法只适用于边权值均为正的带权有向图或者无向图,但是它的时间复杂度相比Bellman-Ford算法更优秀,为O(n^2)。

2. Bellman-Ford算法Bellman-Ford算法是一种较为通用的算法,不需要图的属性满足任何特殊要求,但是时间复杂度为O(n^3),不适用于大规模的图。

算法原理是进行n次松弛操作,查找从源点到其他点的最短路径,其中进行松弛的过程是比较消耗时间的。

二、全源最短路径问题全源最短路径问题是指求解所有点之间的最短路径问题。

解法有两种:Floyd算法和Johnson算法。

3. Floyd算法Floyd算法是一种动态规划算法,算法将所有点对之间的最短路径逐步推进,通过枚举中间点,得到更加精细的状态转移方程和最短路径。

时间复杂度为O(n^3),因此带来的计算负担较大。

4. Johnson算法Johnson算法目前是解决稠密图最短路径问题的最好算法之一。

Johnson算法先通过引入虚拟点,将原图转化为一个没有负权边的新图,再对新图使用Dijkstra算法进行求解。

该算法的时间复杂度为O(mnlogn),其中m为边的条数,n为点的个数。

综上所述,最短路径问题是图论中的重要问题之一。

对于单源最短路径问题,Dijkstra算法和Bellman-Ford算法是常用的解法;全源最短路径问题,Floyd算法和Johnson算法是较为常用的解法。

最短路径问题

最短路径问题

最短路径问题最短路径问题是图论中一个重要的研究领域,即求解两个节点之间的最短路径。

在实际生活中,最短路径问题有着广泛的应用,例如导航系统、交通规划以及网络通信等领域。

本文将介绍最短路径问题的定义、常见算法以及应用实例。

一、定义最短路径问题可以用来求解从一个节点到另一个节点的最短路径。

在图论中,最短路径通常指的是路径上的边的权重之和最小。

图可以由节点和边组成,边可以有权重,表示两个节点之间的距离或成本。

最短路径问题的目标是找到两个节点之间的路径,使得路径上的边的权重之和最小。

二、算法1. Dijkstra算法Dijkstra算法是解决最短路径问题的经典算法之一。

该算法采用贪心策略,逐步确定起点到其他节点的最短路径。

具体步骤如下:(1)初始化距离数组,起点到起点的距离为0,所有其他节点的距离为无穷大。

(2)选择一个未被访问过的节点,标记为当前节点。

(3)对于当前节点的所有邻居节点,更新其距离为当前节点距离加上边的权重,并更新最短路径。

(4)继续选择未被访问过的节点中最短路径最小的节点,标记为当前节点,重复步骤(3)。

(5)重复步骤(3)和(4),直到所有节点都被访问过。

Dijkstra算法的时间复杂度为O(V^2),其中V为节点的数量。

2. Bellman-Ford算法Bellman-Ford算法是另一种解决最短路径问题的算法。

与Dijkstra 算法不同,Bellman-Ford算法可以处理带有负权边的图。

该算法通过迭代更新距离数组,逐步确定最短路径。

具体步骤如下:(1)初始化距离数组,起点到起点的距离为0,其他节点的距离为无穷大。

(2)对于图中的每条边,重复以下步骤:a. 从边的起点到终点的距离是否可以通过起点到起点的距离加上边的权重来达到更小值。

b. 如果是,则更新终点的距离为该更小值。

(3)重复步骤(2)|V|-1次,其中V为节点的数量。

Bellman-Ford算法的时间复杂度为O(VE),其中V为节点的数量,E为边的数量。

最短路径问题

最短路径问题

最短路径问题陈道蓄 南京大学计算机系在道路网络中确定起点到终点的最短路径,可以抽象为一个有向图模型。

图中每个节点表示一个“路口”,对任意节点u,v,存在uv-边当且仅当从u到v有“路段”直接相连(当中没有其他路口)。

也可以建立无向图模型,则任一条边对应于双向可通行的路段。

其实这样的模型并不限于道路交通问题,从本专栏前面的文章中读者已经看到许多与交通运输无关的问题都可以抽象为图模型,“最短路径”在不同应用中可能背景意义不同,但确定最短路是大量基于图模型的应用问题求解中的一个基本环节。

● 用广度优先搜索(BFS)算法求解先来考虑有向图模型上一种最简单的情况:假设每个路段长度均为1,那么,从u到v最短路的长度即为所有uv-路中包含的边数的最小值,也称为从u到v的距离。

设想房间的角上有个水龙头,其所在位置是房间地面最高点。

地面高度向房内其他地方极其平缓地均匀下降,将龙头开到适当大小,水会在地面以扇形缓缓漫开。

如果像动画片一样间隔固定时间段记录漫水区域的边界,看到的将是一道道大致平行的弧形曲线,它们反映了边界上的点与水龙头位置的大致距离。

在图中遍历所有节点常用算法包括“深度优先(DFS)”与“广度优先(BFS)”。

本专栏在前面讨论走迷宫和调度问题时,都采用了深度优先算法。

从上面的比喻很容易想到:考虑点与点的距离时该采用广度优先算法。

事实上,在本专栏在前面讨论图的连通性时,简单地用到了广度优先(尽管我们没有提到这个名词)。

图1给出一个简单的例子,指定a为起点,则广度优先搜索生成的BFS树可能如图1中右图所示。

右边结果图中每个节点名称旁标的数字表示从起点a到该点最短路的长度。

在广度优先搜索过程中,距离a较远的节点被发现的时间一定晚于较近的节点。

这个例子显示了广度优先搜索过程与最短路径的关联。

由此在每条边长度均为1的假设下,我们可以用广度优先算法解最短路问题。

为了体现前面的比喻中漫水区前缘均匀推进,算法用队列Q放置当前已经“看见”并等待处理的顶点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最短路径问题摘要在图论当中,任意两点间的最短路径问题,运用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,在这个城市交通网络中,有单向道,也有双向道,即如何处理一个有向图与无向图结合的图论问题,并且是一个两点间的最短路径问题:图(一)问题二阐述的是某公司员工往来于六个城市间,给出了这六个城市间的直达航班票价(表二),需要为这家公司提供出这六个城市间任意两点间的最小航班费用表050402510500152025150102040201001025252010055102525550∞⎡⎤⎢⎥∞⎢⎥⎢⎥∞∞⎢⎥⎢⎥⎢⎥∞⎢⎥∞⎣⎦表(二)二、问题分析4.1问题一的分析:实际问题是货车运输问题,货车运输从起点1到终点11,一般情况下,不存在货物往回运输,所以地点1到地点8是可以看成是一个单向道,即8指向1,同样的地点8也是指向地点9的。

假设货物到达地点9时,货物要运送到终点,则地点9只能指向地点10,同理货物到达地顶点点7,只能是往地点6的方向运输。

如果货物到达地点5时,货物只有经过5 →6 →9 →10 →11,才是最短的,所以在这里地点5指向地点6.同理3指向5,得出图(二),这样按照时间耗费的目的,将一个有向图与无向图结合的图,转化为一个单纯的有向图,这将有利于问题的分析。

图(二)4.2问题二的分析;通过题目给出的六个城市间的直达航班票价(表二),可以将其绘成无向图(图三),可以将其转换成一个图轮问题,即求一个具有六个顶点无向图的任意两点间的最短路径问题,这里用到图论当中的Flord算法。

图(三)三、基本假设1、货车在各路段中所花时间数据属实。

2、货车在行驶中是按匀速行驶3、货运车在路途中无意外发生,无需返回原地。

4、假设天气等一些客观因素不影响交通运输。

5、飞机航班不存在延误现象。

6、公司员工转机过程中不存在逗留现象。

四、符号说明1、:ij e 货车从地点i 到地点j 所花的时间:2、ijx:货车司机是否选择地点i 到地点j ,1(,0,{i j ij i j x = 弧)包括在最短路径中 不选择弧(); 3、ij c 公司员工选择从城市i 到城市j 的航班,1,0ij ij c ⎧=⎨⎩选择城市间航班,不选择;4、i D ,插入点i ;5、ip :插入点i 后的路径;五、模型的建立与求解6.1 问题1的模型建立与求解6.1.1跟据已得出的分析再加上题目所给的已知条件,可以得出其赋全矩阵(表(三)):·v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v1 0 8 ∞ ∞ ∞ ∞ 7 8 ∞ ∞ ∞ v2 ∞ 0 3 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ v3 ∞ ∞ 0 5 6 ∞ 5 ∞ ∞ ∞ ∞ v4 ∞ ∞ ∞ 0 11 ∞ ∞ ∞ ∞ ∞ 12 v5 ∞ ∞ 6 ∞ 0 2 ∞ ∞ ∞ ∞ 10 v6 ∞ ∞ ∞ ∞ 2 0 ∞ ∞ 3 ∞ ∞ v7 ∞ ∞ ∞ ∞ ∞ 9 0 ∞ ∞ ∞ ∞ v8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 9 ∞ ∞ v9 ∞ ∞ ∞ ∞ 7 ∞ ∞ ∞ 0 2 ∞ v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 0 2 v11∞∞∞∞∞∞∞∞∞∞建立如下0-1规划数学模型:ij ij ijMinz c x =⋅∑121718122317761889233435371737767665698969959,1034454,11354565955,11354595655,117669657665699,1010,11000000000000x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x ++=-=-=-=---=+-=--=+--=--=+++-=++--=--=+-=-1344,11454,115,1110,1100110,ij x x x x x x x ⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪=⎪⎪--=⎪++=⎪⎪=⎩或所有弧(i,j)运用Lingo 软件输入一个线性规划程序(见附录(一)),分析得出如下结果:form to time time v1 v8 8 8 v8 v9 9 17 v9 v10 2 19 v10 v11 2 21 v1 v11 = 21 v1 v2 = 8 v1 v3 = 11 v1 v4 = 16 v1 v5 = 17 v1 v6 = 16 v1 v7 = 7 v1 v8 = 8 v1 v9 = 17 v1 v10 = 196.1.2模型一的结果分析:利用WinQSB 软件中的Network model,选择Short Path problem,输入问题一的赋权矩阵(表 )输入如下数据:图(三)得出结果表(见附录三),并得出如下直观图:图(四)图四中可以看出111v v →的最短路径为21,所以模型一的最优解可以得到验证为181x =,891x =,9101x =10111x =,所以货车司机应选路线1891011v vv v v →→→→最短,所花时间最短为21。

6.2 问题2的模型建立与求解6.2.1由问题2的分析,可利用图论方法、Floyd 算法及WinQSB 软件求解该问题, 由问题中所给的各个节点的坐标进行如下的Floyd 算法步骤:以及得出每次插入点的路径变化(见附录表(三)),得出六个城市间的任意两点间的最短路径表和最终选择路径矩阵:165511622242533334544444545554664646p ⎛⎫ ⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭ 最短航程图由Matlab 编程(见附录五)运行得出的结果与Floyd 算法一致、6.2.2问题二的结果分析利用WinQSB 软件求得这6个城市间的任意两点最短航程见(附录四),并得出直观图:六、模型二的扩展在问题二该公司员工出差途中,在搭乘航班过程所使用的总时间,都算作公司损失时间,此时公司差旅费用=每小时员工正常创造价值⨯航班总时间+票价。

公司员工搭乘航班时间是航班总飞行时间是与飞机飞行时间和员工转乘时间有关,计算公司员工出差从i 地到j 地,公司差旅费用最少。

①员工在六个城市C1,C2,C3,C4,C5,C6个机场等待重新登机起飞所等待的时间(机场估算),如下:0 1.530.5120 1.52 2.51.50120.5210120.12350.510 1.5010.61.50456c c c c c c ∞⎡⎤⎢⎥∞⎢⎥⎢⎥∞∞⎢⎥⎢⎥⎢⎥∞⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎢⎦⎦∞⎥⎣⎥⎣ ②假设:航程越长⇒飞行时间越长⇒票价越贵,这三者间存在联系,查找数据得两个城市之间飞行时间(机场估算),如下:航班飞行时间=054 2.5150 1.52 2.51.501242101 2.52.5210 5.512.5 2.5 5.50⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦∞∞∞∞∞∞航班飞行总时间=飞机飞行时间+员工重新登机时间。

公司员工为公司创造价值每小时a (a =30)元(公司估计值)。

公司差旅费用=员工为公司创造价值⨯航班总时间+票价。

通过计算得:公司差旅费用=票价+飞行总时间069.5613416710243240240163253.5321601638.53427.51607614.835.534.3760a ∞⎡⎤⎢⎥∞⎢⎥⎢⎥∞∞⨯=⎢⎥⎢⎥⎢⎥∞⎢⎥∞⎣⎦,根据此矩阵的出如下图形:利用Matlab软件编程求解(程序见附录七),整理结果得出任意城市差旅费用最小表(四),并利用WinQSB软件得出如下任意城市间差旅费用最小图:任意城市间差旅费用最小图七、模型的评价问题一的模型评价运用了Lingo编程、利用WinQSB软件验证,大大地减少了计算量,同时提高了计算的准确性。

模型一求最短路径问题,将问题按实际常理出发,将一个有向与无向结合的图,转化为一个单一的有向图,使得问题变得简化易解,将模型建立为一个线性规划问题,该模型有利于解决一些解决常见的最短路问题,并且其Lingo程序只需改动相关数据便可适用于常见的求最短路问题。

问题二的模型评价采用了Floyd算法并利用Matlab软件编程,再利用WinQSB软件,确保了结果的准确性,并以图表的形式,更加直观清晰地展示出每一个城市到任意城市的最短路径。

针对问题二,从实际问题出发,对问题进行了拓展,求出了公司差旅费用最小矩阵,更加有利于为公司节省最大费用。

但由于渠道不畅,对于拓展内容的相关数据的可靠性还有待核实,但这并不会减掉模型拓展内容的丰富性,并不会抹掉其内在的,实质性魅力。

八、参考文献[1] 熊伟,运筹学,第二版,北京:机械工业出版社,2011。

[2] 薛毅,数学建模基础,第二版,北京:科学出版社,2011。

[3] 魏巍, Matlab应用数学工具箱技术手册,北京:国防工业出版社,2004。

[4] 姜启源谢金星叶俊,数学模型,第三版:高等教育出版社,2007。

[5] 韩中庚宋明武邵广纪,数学建模竞赛获奖论文精选与点评,北京:科学出版社,2007。

九、附录附录一(问题一中的Lingo程序):model:! vij表示选择从地点i到地点j;! eij表示从地点i到地点j货车司机所花时间;[obj]min=v12*e12+v17*e17+v18*e18+v23*e23+v34*e34+v37*e37+v35*e35 +v411*e411+v45*e45+v511*e511+v56*e56+v69*e69+v76*e76+v89*e89+v910*e910+v95*e95+v1011*e1011;[a]v12+v17+v18=1;[b]v18-v89=0;[c]v17+v37-v76=0;[d]v12-v23=0;[e]v23-v34-v37-v35=0;[f]v34-v411-v45=0;[g]v35+v45+v95-v56-v511=0;[h]v76+v56-v69=0;[l]v89+v69-v95-v910=0;[n]v910-v1011=0;[o]v411+v511+v1011=1;@bin(v12);@bin(v17);@bin(v18);@bin(v76);@bin(v89);@bin(v35);@bin(v37);@bin(v23);@bin(v34);@bin(v45);@bin(v411);@bin(v511);@bin(v56);@bin(v69);@bin(v95);@bin(v910);@bin(v1011);data:e12=8;e23=3;e34=5;e411=12;e37=5;e17=7;e18=8;e45=1;e35=6;e76=9;e56=2;e511=10;e89=9;e910=2;e1011=2;e95=7;e69=3;enddataend附录二(问题一中的Lingo程序的运行结果):Feasible solution found.Infeasibilities: 0.000000Extended solver steps: 0Total solver iterations: 0Variable ValueV12 0.000000V17 0.000000V18 1.000000V89 1.000000V37 0.000000V76 0.000000V23 0.000000V34 0.000000V35 0.000000V411 0.000000V45 0.000000V95 0.000000V56 0.000000V511 0.000000V69 0.000000V910 1.000000V1011 1.000000E12 8.000000E23 3.000000E34 5.000000E411 12.00000E37 5.000000E17 7.000000E18 8.000000E45 1.000000E35 6.000000E76 9.000000E56 2.000000E511 10.00000E89 9.000000E910 2.000000E1011 2.000000E95 7.000000E69 3.000000Row Slack or SurplusA 0.000000B 0.000000C 0.000000D 0.000000E 0.000000F 0.000000G 0.000000H 0.000000L 0.000000N 0.000000O 0.000000附录三问题一在WinQSB软件中运行的结果:附录四问题二在WinQSB软件中运行的结果,任意两点间的最短航程表c到各个城市的最短航程1c到各个城市的最短航程2c到各个城市的最短航程3c到各个城市的最短航程4c到各个城市的最短航程5c到各个城市的最短航程6附录五问题二在进行Floydj算法进行插值时,每次插值所发生的选择路径的变化:1111111 222212 333333 444444 515551 666616p⎛⎫⎪⎪⎪⎪=⎪⎪⎪⎪⎝⎭2112111222212233332444444515551662616p⎛⎫⎪⎪⎪⎪=⎪⎪⎪⎪⎝⎭3112111 222232 233332 444444 535551 662616p⎛⎫⎪⎪⎪⎪=⎪⎪⎪⎪⎝⎭4114111222242433334444444545554664646p⎛⎫⎪⎪⎪⎪=⎪⎪⎪⎪⎪⎝⎭5115511 222242 533334 544444 545554 664646p⎛⎫⎪⎪⎪⎪=⎪⎪⎪⎪⎝⎭6165511622242533334544444545554664646p⎛⎫⎪⎪⎪⎪=⎪⎪⎪⎪⎝⎭附录六问题二用Matlab软件编程程序与运行结果:>> clear>> n=6;>> a=zeros(n);>> a(1,2)=50;a(1,4)=40;a(1,5)=25;a(1,6)=10;>> a(2,3)=15;a(2,4)=20;a(2,6)=25;a(3,4)=10;a(3,5)=20;>> a(4,5)=10;a(4,6)=25; a(5,6)=55;>> a=a+a'; M=max(max(a))*n^2; %M为充分大的正实数>> a=a+((a==0)-eye(n))*M;>> path=zeros(n);>> for k=1:nfor i=1:nif a(i,j)>a(i,k)+a(k,j)a(i,j)=a(i,k)+a(k,j);path(i,j)=k;endendendend>> a, path运行结果:a, patha =0 35 45 35 25 1035 0 15 20 30 2545 15 0 10 20 3535 20 10 0 10 2525 30 20 10 0 3510 25 35 25 35 0path =0 6 5 5 0 06 0 0 0 4 05 0 0 0 0 45 0 0 0 0 00 4 0 0 0 10 0 4 0 1 0附录七问题二的拓展用Matlab软件编程程序与运行结果:>> n=6;>> a=zeros(n);>> a(1,2)=69.5;a(1,4)=61;a(1,5)=34;a(1,6)=16;>> a(2,1)=71;a(2,3)=24;a(2,4)=32;a(2,6)=40;>> a(3,2)=24;a(3,4)=16;a(3,5)=32;>> a(4,1)=53.5;a(4,2)=32;a(4,3)=16;a(4,5)=16;a(4,6)=38.5;>> a(5,1)=34;a(5,3)=27.5;a(5,4)=16;a(5,6)=76;>> a(6,1)=14.8;a(6,2)=35.5;a(6,4)=34.3;a(6,5)=76;>> M=max(max(a))*n^2;>> a=a+((a==0)-eye(n))*M;>> path=zeros(n);for i=1:nfor j=1:nif a(i,j)>a(i,k)+a(k,j)a(i,j)=a(i,k)+a(k,j);path(i,j)=k;endendendend>> a, path问题二拓展Matlab运行结果:a =0 51.5000 61.5000 50.0000 34.0000 16.000054.8000 0 24.0000 32.0000 48.0000 40.000066.0000 24.0000 0 16.0000 32.0000 54.500050.0000 32.0000 16.0000 0 16.0000 38.500034.0000 48.0000 27.5000 16.0000 0 50.000014.8000 35.5000 50.3000 34.3000 48.8000 0path =0 6 5 5 0 06 0 0 0 4 05 0 0 0 0 45 0 0 0 0 00 4 0 0 0 10 0 4 0 1 0。

相关文档
最新文档