我有大约3500个防洪设施,我想将其表示为确定流路径的网络(基本上是有向图).我目前正在使用SqlServer和CTE递归检查所有节点及其上游组件,只要上游路径不分叉,这就可以工作.然而,由于增加了上游复杂性,一些查询比其他查询指数长得多,即使它们在物理上不太远(即两个或三个"下游"段).在某些情况下,我会在杀死查询之前让它超过十分钟.我正在使用一个简单的双列表,一列是设施本身,另一列是第一列中列出的设施的上游设施.
我尝试使用当前工具添加索引以帮助加快速度,但这没有任何区别.并且,对于图中可能的连接,任何节点可以具有多个上游连接,并且可以从多个"下游"节点连接.
当然有可能在数据中有循环,但我还没有找到一种好的方法来验证这一点(除了CTE查询报告最大递归计数命中时;这些很容易修复).
所以,我的问题是,我存储这些信息是错误的吗?有没有比CTE更好的方法来查询上游点?
我想函数生成来自n个元素的List的所有元素的k组合.请注意,我正在寻找组合,而不是排列,并且我们需要一个改变k的解决方案(即,对循环进行硬编码是禁止的).
我正在寻找一个优雅的解决方案,b)可以用VB10/.Net 4.0编码.
这意味着a)需要LINQ的解决方案是可以的,b)使用C#"yield"命令的解决方案不是.
组合的顺序并不重要(例如,词典编纂,格雷码,什么是你),如果两者发生冲突,优雅优于表现.
(OCaml的和C#解决方案,这里将是完美的,如果他们能在VB10进行编码.)
我正在寻找一种在PHP中绘制有向图的方法.(如http://upload.wikimedia.org/wikipedia/commons/0/08/Directed_acyclic_graph.png).我希望它能像GD一样输出图像来创建图形图像.
我在这上面搜索了很多,但我只能找到很多用于绘制图形的库(带条等),而不是有向图.
PS我试过通过system()使用dot(linux程序),但不幸的是我没有权限在服务器上这样做.此外,我没有权利在服务器上安装PHP扩展和类似的东西,所以它应该使用普通的PHP(理想情况下只包括一个文件).
提前致谢.
我有一个非常大的(2.5GB,55百万节点)XML文件,格式如下:
<TopNode>
<Item id = "Something">
<Link>A link</Link>
<Link>Another link</Link>
<Link>One More Link</Link>
</Item>
<Item id = "Something else">
<Link>Some link</Link>
<Link>You get the idea</Link>
</Item>
</TopNode>
Run Code Online (Sandbox Code Playgroud)
我想将其扁平化为以下SQL表:
-----------------------------------------
| Item | Link |
-----------------------------------------
| Something | A link |
| Something | Another link |
| Something | One More Link |
| Something Else | Some Link |
| Something Else | You get the idea |
|----------------|----------------------|
Run Code Online (Sandbox Code Playgroud)
我正在使用SQL2008,如果这有所作为.
什么是最简单,最有效的方法(最好使用SQL Server/.NET堆栈)从A点到B点,记住涉及的文件大小?
.net ×1
algorithm ×1
combinations ×1
graph-theory ×1
graphics ×1
linq ×1
php ×1
rdbms ×1
sql ×1
sql-server ×1
vb.net ×1
xml ×1