有障碍物情况下的二维空间中两点间的最短路线

问题的来源:我经常在路上走路,发现人们都爱抄近路,于是就不禁思考起这个问题:给定一个任意的含障碍物的地图,如何找到两点间的最短路线?规则:1.问题讨论的空间是二维的欧氏空... 问题的来源:我经常在路上走路,发现人们都爱抄近路,于是就不禁思考起这个问题:给定一个任意的含障碍物的地图,如何找到两点间的最短路线?

规则:
1. 问题讨论的空间是二维的欧氏空间(不弯曲的)。
2. 障碍物的形状是任意的闭集(点集)。
3. 不可穿过障碍物的内部。

显然,如果没有障碍物,则根据欧几里得几何中的公理,两点之间,线段最短。
如果两点之间的线段没穿过障碍物,则最短路线还是线段。
开始我以为很简单,不断地一步步做切线,每次取最短的切线段就行了,后来发现了如图中的反例。
后来又觉得找出两两障碍物的公切线,然后计算各种组合间的公切线就行了。后来又发现我又错了。因为上一个点和公切线的一个端点之间的连续可能会穿过障碍物。。。
不知道这个问题到底有多深,会不会用到变分法?
To 钟学秀:
谢谢你的回复,不过貌似我已经把问题解决了:
1. 用多边形近似障碍物;
2. 用每一个障碍物的凸包替换它们自身;
3. 除了穿越障碍物内部的连线外,把所有障碍物的顶点、起点、终点之间两两连线。
于是问题转化为图的问题,然后用A*算法或 Dijkstra 算法解之。
To 鸿均的信徒:谢谢回复。不过你的方法即使连外绕的最短路线也得不到(而且从切点怎么走向下一个点你也没说清),呵呵。
To langzi2007:你的想法很有创造性,把障碍物看做镜面,从起点出发的无数光路中只有一条经过终点,问题就是,如何找到这条光路?你把一个数学问题转化为了物理问题,可是新问题并不比旧问题更容易解决。(不好意思,刚刚发现,有时候A到B的光路不止一条,例如可以直线或者多次反射后到达,有时候一条都没有,比如只在中间有一个障碍物)
另外纠正一下你的一个错误:“速度达到接近光速才能体现出物质波来”应为“尺度接近普朗克长度才能体现出物质波来”,巨大的光速c掩盖的是时空的本性,极小的普朗克长度h掩盖的才是物质的波动性。
关于你的问题,简单的说,定积分求的是一个数,变分法求的是一个函数。
展开
 我来答
钟学秀
2009-04-16 · TA获得超过2643个赞
知道小有建树答主
回答量:798
采纳率:0%
帮助的人:935万
展开全部
这里只讨论一个障碍物的情况,多个障碍物时可以用计算机迭代找出来,这里相当介绍你一个算法。障碍物为一个闭集,由巴拿赫定理的几何形式知存在一个支撑泛函f1使得f1(A)=0;几何上解释为过点A有一条切线,同理存在f2使得f2(B)=0;找到了f1和f2之后,再在各自上找一点C和D使得CD得到的线性泛函也为支撑泛函(几何解释就是CD也为切线)得到的线路A-C-D-B为所求。相关理论的证明是已经没问题的,修读过泛函就没问题,因此你只需理解它的操作思想。

你说的没错!巴拿赫定理成立的条件是凸闭集,所以我用错了。不过还是值得像你那样考虑先求出凸闭包。迭代的思想我是这样认为的:
比如你有两个障碍物,你可以假设存在一点E在两个障碍物的凸闭包的公切线上,然后分别对AE,BE做前述操作。如果有n个时候我们先看看AB线段需要跨越哪些障碍物,然后排除掉其他干扰的,剩下的先做个从左到右排序吧,然后再在相邻两个之间像之前说的那样插入一个点(不过这里有两条公切线,所以到底是插在哪条上好,直接这样是判断不出来的,这要根据实际情况,要不就让计算机两条上都插再比较咯,但这样时间复杂度就大了些,暂时还没有想到好的判别标准)
创安恒业-动环监控
2024-08-01 广告
基站动环监控的对象丰富多样,包括但不限于动力系统、环境系统以及安防门禁系统。动力系统主要监控市电配电、蓄电池组、发电机组等设备,确保电压、电流等参数稳定。环境系统则关注温湿度、漏水、粉尘含量等基站环境参数,保障基站运行环境的舒适与安全。安防... 点击进入详情页
本回答由创安恒业-动环监控提供
一葵蜗的9213
2009-04-15 · TA获得超过804个赞
知道小有建树答主
回答量:725
采纳率:0%
帮助的人:504万
展开全部
光走的路线永远是最短路线 光反射 衍射 折射 当然折射需要穿越障碍物 所以我们只用反射和衍射 衍射的话是对于物质波来讲的 对于我们人类来说 除非速度达到奖金光速才能体现出物质波来 才能衍射 所以就免谈了
现在只剩下反射了 所以最短的路线就是反射 把你想象成光线 再看吧
不要把事情看得太严重咯 还变分法? 变分法是什么啊 那个能用到这?你要无限分割?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c5fa75ef72f
2009-04-15 · TA获得超过585个赞
知道答主
回答量:1058
采纳率:0%
帮助的人:0
展开全部
我只能解决外绕的,内部穿来穿去解决不了.
连接AB,找出所有障碍离直线AB的最大距离,然后以这个障碍做切线且分别连接AB,如果中间穿过其他的障碍再用穿过的障碍和最大障碍以及A或B做切线
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MeZmfJ
2023-04-24
知道答主
回答量:1
采纳率:0%
帮助的人:246
展开全部
大佬,可以将两个切点之间的弧线连接吗? 怎么联系您
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友63b43e1
2009-04-15
知道答主
回答量:29
采纳率:0%
帮助的人:7.5万
展开全部
高深啊,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式