怕老婆的小蝌蚪 · 新纪元与“追魂砂”——《新纪元》中的时间与战 ...· 6 月前 · |
满身肌肉的遥控器 · 关于公布2023年度国家自然科学基金申请项目 ...· 6 月前 · |
伤情的火锅 · Lost Life APK 4 + MOD ...· 10 月前 · |
任性的开心果 · 香港女神 HongKongDoll ...· 12 月前 · |
我正在尝试弄清楚如何使用C#的QuickGraph创建一个新的无向加权图实例。
我的目标是创建一个无向加权图,其中填充了随机数量的节点和随机生成的开始和结束节点,这些节点的最短路径可以使用广度优先搜索算法找到。
文档没有太多内容,所以如果有人能提供任何帮助,我们将不胜感激。
发布于 2011-06-14 22:27:05
理查德,QuickGraph不会为你做任何这些事情,它只提供你可以订阅的事件。通过订阅这些事件,您可以做出相应的响应。从公认缺乏深度优先搜索的QuickGraph文档(是的,我知道您正在做的是BFS而不是DFS,但是如何订阅事件的概念是相同的):
在开始计算之前在每个顶点上调用
顺便说一下,打开Reflector并查看QuickGraph.Algorithms.Observers。使用不同的方法比使用BFS更容易满足您的最短路径要求。
发布于 2010-08-03 04:42:19
目前还没有关于这个算法的文档;但是有一个下一个最好的东西(或者甚至更好的东西):单元测试!
如果您下载QuickGraph源代码,并找到
BreadthFirstAlgorithmSearchTest.BreadthFirstSearchAll()
,您将看到该算法的示例用法,该算法在测试项目中的所有有向图上运行。
发布于 2020-01-25 01:41:58
在Github上有一个简短的线程,其中有一个有用的基本示例,说明如何设置BFS并从中获得一些结果。
特定于您的应用程序的其他详细信息(创建随机图等)显然不在本例中。
来源: https://github.com/YaccConstructor/QuickGraph/issues/189#issuecomment-487493207
下面是一个完整的示例:
UndirectedGraph g= new UndirectedGraph();g.AddVerticesAndEdge(new UndirectedGraph(g);var UndirectedGraph();var rootVertex = "0";using (observer.Attach(algo)) { algo.Compute(rootVertex);} var targetVertex = "3";bool foundPath = observer.TryGetPath(targetVertex,out IEnumerable path);
然后,路径将包含两条边:
:"0"->"2“1:"2"->"3"
https://stackoverflow.com/questions/2348251
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287