Tag: dijkstra

MongoDB + Neo4J与OrientDB与ArangoDB

我目前正在devise一个MMO浏览器游戏的阶段,游戏将包括一些实时位置的瓷砖地图(所以每个单元格的瓷砖数据)和一般的世界地图。 游戏引擎我更喜欢使用MongoDB作为持久数据的世界。 我也将实现一个航运模拟(我将在下面进行更多解释),它基本上是一个Dijkstra模块,我决定使用一个graphics数据库,希望它能使事情变得更简单,发现Neo4j是相当受欢迎的。 我对MongoDB + Neo4J的设置感到满意,但是后来发现OrientDB显然是MongoDB和Neo4J(两者都是好的),甚至还有MongoDB和Neo4J的VS页面。 关键是,我听说MongoDB丢失数据的一些恐怖故事(尽pipe还不确定),我没有那么奢侈。 而对于Neo4J,我并不是每年12K€“启动友好”成本的大粉丝,尽pipe我可能没有数百万顶点的数据库。 OrientDB似乎是一个可行的select,因为使用一个数据库解决scheme也可能有一些机会。 在这种情况下,一个合理的举动可能会跳到OrientDB,但它有一个小社区,并没有发现太多的评论,MongoDB和Neo4J是广泛使用的stream行工具,我担心,如果OrientDB是一个冒险。 我的第一个问题是,如果你有任何有关这些数据库的经验/意见。 第二个问题是图表数据库对于航运模拟更好。 使用的数据库有望计算从任何顶点到任何顶点的最便宜的路线并遍历它(经典Dijkstra)。 而且还要根据情况来改变权重,例如“国家B对A国实行禁运,所以任何来自A国的项目都不能通过B,在XYZ国家有洪水,所以没有陆路运输”等等。有望caching结果。 我期望不超过1000个顶点,但边缘很多。 如果问题有点模棱两可,请提前致谢,并提前道歉 PS:我在标题中join了ArangoDB,但是没有太多的机会看一下。 编辑截至2016年4月18日:评估对我的问题和发展战略的回应后,我决定使用ArangoDB,因为他们的路线图对我来说更有希望,因为他们显然不想增加大量炒作function。

Prim和Dijkstraalgorithm之间的区别?

Dijkstra和Prim的algorithm有什么区别? 我知道Prim会给MST,但是Dijkstra生成的树也会是MST。 那么究竟有什么区别?

为什么Dijkstra的algorithm使用减键?

Dijkstra的algorithm教给我的如下 while pqueue is not empty: distance, node = pqueue.delete_min() if node has been visited: continue else: mark node as visited if node == target: break for each neighbor of node: pqueue.insert(distance + distance_to_neighbor, neighbor) 但是我一直在做一些关于algorithm的阅读,我看到很多版本使用减less键而不是插入。 这是为什么,这两种方法有什么区别?

为什么使用Dijkstraalgorithm,如果广度优先search(BFS)可以更快地做同样的事情?

两者都可以用来find单一来源的最短path。 BFS运行在O(E + V),而Dijkstra运行在O((V + E)* log(V))。 另外,我见过Dijkstra在路由协议中使用了很多。 因此,为什么使用Dijkstraalgorithm,如果BFS可以更快地做同样的事情呢?

使用Dijkstraalgorithm的负权重

我想了解为什么Dijkstraalgorithm不能用负权重。 阅读最短path示例,我试图找出以下情况: 2 A——-B \ / 3 \ / -2 \ / C 从网站: 如果我们从A开始,那么Dijkstra的algorithm将select最小化d(A,A)+长度(边)的边(A,x),即(A,B)。 然后设d(A,B)= 2并select另一个边(y,C),使d(A,y)+ d(y,C)最小。 唯一的select是(A,C),它设置d(A,C)= 3。 但它从来没有find从A到B的最短path,通过C,总长度为1。 我不明白为什么使用下面的Dijkstra的实现,d [B]不会更新到1 (当algorithm到达顶点C时,它将在B上运行放松,看到d [B]等于2 ,并且因此将其值更新为1 )。 Dijkstra(G, w, s) { Initialize-Single-Source(G, s) S ← Ø Q ← V[G]//priority queue by d[v] while Q ≠ Ø do u ← Extract-Min(Q) S ← SU {u} for […]

Dijkstraalgorithm和A-Star如何比较?

我正在研究马里奥人工智能竞赛中的人,他们中的一些人使用A *(A-Star)Pathingalgorithm构build了一些漂亮的马里奥机器人。 替代文字http://julian.togelius.com/mariocompetition2009/screen1.png ( 马里奥A *机器人的video在行动 ) 我的问题是,A-Star与Dijkstra相比如何? 看着他们,他们看起来很相似。 为什么有人会用另一个呢? 特别是在游戏中的path?

为什么Dijkstraalgorithm不适用于负权重边缘?

有人可以告诉我为什么Dijkstra的单源最短pathalgorithm假定边缘必须是非负的。 我只谈论的不是负面的重量周期。