Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >查找特定起点和终点之间的所有可能路径

查找特定起点和终点之间的所有可能路径
EN

Stack Overflow用户
提问于 2011-07-31 14:08:49
回答 2查看 1.1K关注 0票数 0

我希望找到从特定节点开始到特定节点结束的所有可能路径。我尝试用java进行深度优先搜索,但在我的情况下不起作用。因为我的道路将在同一个方向上。我不想遍历选定节点周围的所有其他节点。

我无法上传显示我想要的图片。不管怎样,我会试着解释的。节点间

0 1 2 3 4 5 6 7 8 9

例如,我要查找的路径将从2到9开始。

2-7-9

2-4-6-8-9

2-4-6-9

对于node-1,我的下一个可能是node-2,所以我不会尝试node 0和node -3。由于我设置的一些特殊规则,只有node-2适合node-1。将选择node-2、node-4和node-7的下一个节点。对于node-4,只有node-6适用。对于节点6,节点8和节点9是合适的。另一方面,对于节点7,下一个节点将仅为9。

所有这些路径都被创建并保存在哈希图或列表结构中。

例如,DFS查找0-1和1-3之间的路径,这对我来说是不可接受的。由于算法的本质,它会找到最短路径。根据规则,我要所有的可能性,而不仅仅是最短的。规则不是问题,所以我不想让你困惑和无聊。解决这个问题的一般方法对我来说很重要。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2011-07-31 14:12:03

您将希望通过Queue使用breadth-first search

编辑:重读你的问题后,我认为问题在于你如何表示有向图,而不是你选择的算法。DFS或BFS都适用于您的情况,但您需要正确地实现该图,以便算法知道不要在错误的方向上尝试路径。

例如,

DFS查找0-1和1-3之间的路径,这对我来说是不可接受的。由于算法的本质,它会找到最短路径。根据规则,我要所有的可能性,而不仅仅是最短的。

实际上,BFS通常用于查找最短路径,而两者都可用于查找所有可能的路径。我会坚持使用DFS,因为它更容易实现(使用递归而不是Queue,等等)。

票数 0
EN

Stack Overflow用户

发布于 2011-07-31 22:50:20

如果您正确地表示您的节点和规则,算法将不会找到不合法的路径。例如,如果你想从节点2开始,就让它成为开始节点。

最简单的方法是定义一个类来表示一个节点。在类中有一个包含这个“父”的所有“子”节点的数组列表。在节点中还有一个整数,它被用作深度优先遍历的“光标”。(也可以有另一个整数/字符字符串,即node #或其他标识符。)

将所有节点中的整数“光标”设置为零。选择你的开始节点--使它成为“当前节点”。在该节点上调用一个方法来遍历它。它拿起游标并提取相应的数组列表元素。然后,它为该数组列表元素中的节点调用"walk“方法。返回时,“游标”会递增。

当"walk“方法到达目标节点时,或者当"cursor”递增超过子数组的大小时,它就会返回。

在此过程中,您可以随心所欲地记录您想要的路径。一种方法是传递在每次"walk“调用中访问的节点的数组列表,在传递之前将当前节点添加到列表中。当遍历到达终端节点时,数组列表被复制为答案之一。从"walk“返回时,添加的元素将被删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6889918

复制
相关文章
【静态时序分析】如何寻找时序路径的起点与终点
今天看《集成电路时序分析与建模》中看到这么一个知识点,觉得有点意思,就记录下来,与大家一起分享。
Reborn Lee
2022/04/19
7080
【静态时序分析】如何寻找时序路径的起点与终点
LeetCode - 所有可能的路径
我又重新开始更新LeetCode了,以后工作日更新LeetCode,周末更新东野圭吾的小说
晓痴
2019/07/24
7490
LeetCode - 所有可能的路径
LeetCode:所有可能的路径_797
给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)
Yuyy
2022/06/28
3430
LeetCode:所有可能的路径_797
linux 上查找包含特定文本的所有文件
原文链接:https://rumenz.com/rumenbiji/linux-find-strings.html
入门笔记
2021/11/24
3.9K0
linux 上查找包含特定文本的所有文件
grep > grep -rnw '/path/to/somewhere/' -e 'pattern' -r或者-R是递归的, -n 是行号,并且 -w 代表匹配整个单词。 -l (小写 L) 可以添加只给出匹配文件的文件名。 -e 是搜索过程中使用的模式 除了这些, --exclude, --include,--exclude-dir标志可用于高效搜索: 只搜索那些具有 .c 或 .h 扩展名的文件 > grep --include=\*.{c,h} -rnw '/path/to/somewhere/'
入门笔记
2022/06/02
3.4K0
linux 上查找包含特定文本的所有文件
原文链接:https://rumenz.com/rumenbiji/linux-find-strings.html
入门笔记
2022/07/21
3.6K0
LeetCode-797-所有可能的路径
题目来自于力扣https://leetcode-cn.com/problems/all-paths-from-source-to-target
benym
2022/07/14
4240
LeetCode 1059. 从始点到终点的所有路径(回溯)
给定有向图的边 edges,以及该图的始点 source 和目标终点 destination,确定从始点 source 出发的所有路径是否最终结束于目标终点 destination,即:
Michael阿明
2021/02/19
1.2K0
螺纹起点与终点Z向尺寸计算
如图所示,由于车螺纹起始时有一个加速过程,结束前有一个减速过程在这段距离中螺距不可能保持均匀,因而车螺纹时,两端必须设置足够的升速进刀段L1和减速退刀段L2。
lrglu
2022/05/16
7150
螺纹起点与终点Z向尺寸计算
LeetCode 797. 所有可能的路径(DFS)
给一个有 n 个结点的有向无环图,找到所有从 0 到 n-1 的路径并输出(不要求按顺序)
Michael阿明
2020/07/13
7530
LeetCode 797. 所有可能的路径(DFS)
ROS机器人从起点到终点(二)改进
vel_x = 1.0 * sqrt(pow((goal_x-msg->x), 2) + pow((goal_y-msg->y), 2));
zhangrelay
2022/04/29
3100
ROS机器人从起点到终点(二)改进
起点到终点?web地图?我来告诉你!
小伙伴们,做外卖项目的小伙伴,有没有遇到过,web端显示配送路线的小问题呢?今天思梦PHP就给大家带来高德地图,从添加起点到录入终点,做了一个指示路线的小功能! 首先第一步你要去高德或者百度的地图的官
思梦php
2018/03/09
1.1K0
起点到终点?web地图?我来告诉你!
java 根据特定后缀,递归读取文件路径下的所有文件
一写代码就开心
2023/05/27
6510
ROS机器人从起点到终点(三)完成
这是一个起点到终点勉强及格的完成版本。 输入坐标,到达指定位置! 最终效果如下: 修改CMakelist: add_executable(move src/move.cpp) target_link_libraries(move ${catkin_LIBRARIES}) add_dependencies(move turtlesim_gencpp) 程序参考: #include "ros/ros.h" #include "turtlesim/Pose.h" #include "geometry_m
zhangrelay
2022/04/29
3410
ROS机器人从起点到终点(三)完成
01:查找特定的值
01:查找特定的值 查看 提交 统计 1 #include<iostream> 2 using namespace std; 3 int a[10001]; 4 int main() 5 { 6 int n; 7 int ans; 8 cin>>n; 9 for(int i=1;i<=n;i++) 10 { 11 cin>>a[i]; 12 } 13 cin>>ans; 14 for(int j=1;j<
attack
2018/04/03
1.8K0
ROS机器人从起点到终点(一)简单P控制
这部分可以参考之前案例 遥控肯定没难度,但是精度也很差哦。 获取目标位置与当前位置之间的误差,用于机器人运动控制。 假定目标x=10.0 y=1.5,求解机器人控制速度?  获取位置: #include <ros/ros.h> #include "turtlesim/Pose.h" void poseCallback(const turtlesim::Pose::ConstPtr& msg) { ROS_INFO("Turtle pose: x:%0.6f, y:%0.6f", msg
zhangrelay
2022/04/29
2980
ROS机器人从起点到终点(一)简单P控制
MSYS2下:unix路径和window路径之间的转换
今天在写MYSYS2下的脚本(bash shell)遇到一个问题:MSYS2环境下获取到的路径都是’/'开头的unix路径,需要把它转为’C:\Windows\system’这样的windows路径。
10km
2019/07/31
2.6K0
ROS机器人从起点到终点(四)蓝桥云实践复现
可否在蓝桥ROS中复现呢?试一试吧: 首先需要下载已经打包的案例: 需要修改源码使用wget下载到code文件夹: 使用其中的turtlesim包: 需要修改CMakelist和添加move.cpp 1☞move #include "ros/ros.h" #include "turtlesim/Pose.h" #include "geometry_msgs/Twist.h" #include "math.h" #include <sstream> ros::Subscriber sub
zhangrelay
2022/04/29
2890
ROS机器人从起点到终点(四)蓝桥云实践复现
[C#]获得WindowsForm上所有特定类型的控件
本文为原创文章,介绍了如何通过C#获得WindowsForm上所有特定类型的控件。首先,定义一个泛型方法ChildControls,该方法接受一个Control类型的参数control,并返回一个IEnumerable<TControl>类型的结果。然后,在泛型方法中,使用OfType方法筛选出control的子控件,并利用SelectMany方法将子控件中的每个元素再次递归调用ChildControls方法,最终得到所有特定类型的控件。该方法可以用于获取WindowsForm上所有特定类型的控件,包括子控件和布局控件等。","author":"无", "source":"C#
CNXY
2017/12/25
1.5K0
[C#]获得WindowsForm上所有特定类型的控件
路径查找器AI
问题源于我想建立一个游戏AI,它要能够定义一条从起点到终点的路径,同时避开路上的墙壁障碍物。为此,我写了一个C#库(path.dll),它允许定义一个二维空间(MAXX,MAXY),并为这个空间设立一些矩形的“墙“。在添加完所有的墙后,path类将计算能够绕过墙的AI所有“可见”的AI节点(可见指节点之间没有墙)之间是连接的。这个类实现了一个路径查找算法,使用C#的Delegates(委托)与AI节点实例进行通信。最后,使用这个O_O算法(扩展欧几里得算法)将会得到一个子类,它是所节点的下一个目的AI节点的集合。在示例图中,可以看到墙(橙色),AI NODES(红色),起点(蓝色)和终点(蓝色)。
东心木水
2018/01/29
1.4K0
路径查找器AI

相似问题

查找路径起点和终点周围的标记(LatLng)

10

查找街道起点和终点的坐标

10

计算起点和终点之间的坐标

21

轴的起点和终点之间的间距

11

查找路线起点和终点的地址

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文