• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python networkx.all_shortest_paths函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中networkx.all_shortest_paths函数的典型用法代码示例。如果您正苦于以下问题:Python all_shortest_paths函数的具体用法?Python all_shortest_paths怎么用?Python all_shortest_paths使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了all_shortest_paths函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_all_shortest_paths

 def test_all_shortest_paths(self):
     G = nx.Graph()
     nx.add_path(G, [0, 1, 2, 3])
     nx.add_path(G, [0, 10, 20, 3])
     assert_equal([[0, 1, 2, 3], [0, 10, 20, 3]],
                  sorted(nx.all_shortest_paths(G, 0, 3)))
     # with weights
     G = nx.Graph()
     nx.add_path(G, [0, 1, 2, 3])
     nx.add_path(G, [0, 10, 20, 3])
     assert_equal([[0, 1, 2, 3], [0, 10, 20, 3]],
                  sorted(nx.all_shortest_paths(G, 0, 3, weight='weight')))
     # weights and method specified
     G = nx.Graph()
     nx.add_path(G, [0, 1, 2, 3])
     nx.add_path(G, [0, 10, 20, 3])
     assert_equal([[0, 1, 2, 3], [0, 10, 20, 3]],
                  sorted(nx.all_shortest_paths(G, 0, 3, weight='weight',
                                               method='dijkstra')))
     G = nx.Graph()
     nx.add_path(G, [0, 1, 2, 3])
     nx.add_path(G, [0, 10, 20, 3])
     assert_equal([[0, 1, 2, 3], [0, 10, 20, 3]],
                  sorted(nx.all_shortest_paths(G, 0, 3, weight='weight',
                                               method='bellman-ford')))
开发者ID:jianantian,项目名称:networkx,代码行数:25,代码来源:test_generic.py


示例2: betweenness_centrality

def betweenness_centrality(network,weighted=False):

    betweenness = {}
    nodes = network.nodes()

    shortest_paths = {}
    for pre_lpu in nodes:
        shortest_paths[pre_lpu] = {}
        for post_lpu in nodes:
            if weighted:
                shortest_paths[pre_lpu][post_lpu] = list(nx.all_shortest_paths(network,pre_lpu,post_lpu,weight='weight'))
            else:
                shortest_paths[pre_lpu][post_lpu] = list(nx.all_shortest_paths(network,pre_lpu,post_lpu))

    for n in nodes:
        b = 0
        for pre_lpu in nodes:
            for post_lpu in nodes:
                if pre_lpu != post_lpu and pre_lpu != n and post_lpu !=n:
                    p = 0
                    pi = 0
                    for path in shortest_paths[pre_lpu][post_lpu]:
                        p+=1;
                        pi += n in path

                    ratio = float(pi)/p
                    b = b+ ratio 
        betweenness[n] = b
    return betweenness
开发者ID:AdamRTomkins,项目名称:libSpineML,代码行数:29,代码来源:create_drosophila_network.py


示例3: trunkroute

def trunkroute(G,nodelist): 
    nodes = len(nodelist)
    for i in range(0,(nodes-1)):
        startname = nodelist[i]
        endname = nodelist[i+1]
 
        try:
            #pathshort = nx.dijkstra_path(G,startname,endname,'weight')#下面的函数返回对象,这函数返回list,我还不会把对象变成list。
            pathshort = nx.all_shortest_paths(G,startname,endname,'weight') #加weight是按距离选择,选出一条最短路由。
            #psl=nx.dijkstra_path_length(G,startname,endname) #返回最短路径的长度距离。与用all_shortest_paths()函数取出的路径不太一样,是个疑问。
            pathshortseq = []
            pathshortseq = pathsequence(pathshort) #不用排序,但是排序函数可以脱去对象,生成list的Array。
            pathshortlong = []
            pathshortlong=pathadddistance(pathshortseq,G)#在节点之间加上最短距离数据。
            #displayformatpath(pathshort,psl)
            displayformatpath(pathshortlong,'Short') #将路由节点和距离显示在终端上。
            #trunkselectdisplay(pathshortseq)#加入光缆选择信息。最短长度。
        except nx.NetworkXNoPath:
            print '**********Short Route Attention! %s to %s have no route in this G.**********'%(startname.encode('GB2312'),endname.encode('GB2312'))
        try:
            pathall = nx.all_shortest_paths(G,startname,endname) #不加weight按照节点最少为最短,加weight是按距离选择。
            pathallseq = []
            pathallseq = pathsequence(pathall) #从路由组对象转换成arrar,并排序,返回arrar。
            #allnodedist = nx.all_pairs_dijkstra_path_length(G) #返回所有节点间的直连距离字典。转移到全局变量里。
            #pathallseqlong = pathadddistance(allnodedist,pathallseq) #给路由组分别加上距离int。返回带距离的路由array。
            pathallseqlong = []
            pathallseqlong = pathadddistance(pathallseq,G) #给路由组分别加上距离int。返回带距离的路由array。
            displayformatpath(pathallseqlong) #将节点名字传入函数,方便输出错误信息。
            #trunkselectdisplay(pathallseq)#加入光缆选择信息。最少节点。
        except nx.NetworkXNoPath:
            print '**********Route Attention! %s to %s have no route in this G.**********'%(startname.encode('GB2312'),endname.encode('GB2312'))
        #print pathshortseq
        #print pathshortlong
        if len(pathshortseq) != 0 and len(pathallseq) != 0 :
            trunkselectdisplay(pathshortseq,pathallseq)#加入光缆选择函数。
开发者ID:rainbowbridge2016,项目名称:trunkrouter,代码行数:35,代码来源:graphtheory.py


示例4: concrete_path_exists

    def concrete_path_exists(self, o1, o2):
        try:
            m1 = o1.leaf_model_name
            m2 = o2.leaf_model_name
        except AttributeError:
            # One of the nodes is not in the dependency graph
            # No dependency
            return False

        # FIXME: Dynamic dependency check
        G = self.model_dependency_graph[False]
        paths = all_shortest_paths(G, m1, m2)

        try:
            any(paths)
            paths = all_shortest_paths(G, m1, m2)
        except NetworkXNoPath:
            # Easy. The two models are unrelated.
            return False

        for p in paths:
            path_verdict = True
            src_object = o1
            da = None

            for i in range(len(p) - 1):
                src = p[i]
                dst = p[i + 1]
                edge_label = G[src][dst]
                sa = edge_label['src_accessor']
                da = edge_label['dst_accessor']
                try:
                    dst_object = getattr(src_object, sa)
                    if dst_object and dst_object.leaf_model_name != dst and i != len(
                            p) - 2:
                        raise AttributeError
                except AttributeError as e:
                    self.log.debug(
                        'Could not check object dependencies, making conservative choice', src_object = src_object, sa = sa, o1 = o1, o2 = o2)
                    return True
                src_object = dst_object

            if src_object and ((not da and src_object == o2) or (
                    da and src_object == getattr(o2, da))):
                return True

            # Otherwise try other paths

        return False
开发者ID:vpramo,项目名称:xos-1,代码行数:49,代码来源:event_loop.py


示例5: onDone

    def onDone(self, node, onDone):
        nodeidx = self.nodes.index(node)
        
        for (start, goal, execData) in node.getConnectedStartGoalPairs():
            self.connectivityGraph.add_node((nodeidx, start))
            self.connectivityGraph.add_node((nodeidx+1, goal))
            self.connectivityGraph.add_edge((nodeidx, start), 
                                            (nodeidx+1, goal), execData=execData)
            #print 'ADD', node, hash(start), hash(goal)
            if node == self.nodes[0]:
                #print 'N0', node
                self.connectivityGraph.add_edge('start', (nodeidx, start))
            if node == self.nodes[-1]:
                #print 'N1', node
                self.connectivityGraph.add_edge((nodeidx+1, goal), 'end')
        if nx.has_path(self.connectivityGraph, 'start', 'end'):
            for path in nx.all_shortest_paths(self.connectivityGraph, 'start', 'end'):
                #import IPython; IPython.embed()
                self.addConnectedStartGoalPair((path[1][1], path[-2][1], None))

        self.connectIdx(nodeidx)
        self.connectIdx(nodeidx+1)
        if self.isPaused() or self.isRunOnce():
            onDone()
            return
        if len(self.getConnectedStartGoalPairs()) == 0:
            self.components.subnode.chooseAndRun(onDone)
        else:
            onDone()
            return
开发者ID:ablasdel,项目名称:modular_action_planning,代码行数:30,代码来源:meta.py


示例6: compute_distance_on_graph

def compute_distance_on_graph(G, s_id, t_id):
    """ Computes the sum of the length in the shortest path between <tt>s</tt> and <tt>t</tt>.
    If the shortest path are more than one the shorter in edge lengths is considered
    <tt>return</tt> a double value of the length of the shortestpath between <tt>s</tt> and <tt>t</tt>
    """
    all_sp = list(nx.all_shortest_paths(G, source=s_id, target=t_id))

    min_sp = float("inf")

    for sp in all_sp:
        curr_length = 0
        for s_index in range(0, len(sp)-1):
            t_index = s_index+1

            s_id = sp[s_index]
            t_id = sp[t_index]

            s = G.node[s_id]
            t = G.node[t_id]

            curr_length += compute_euclidean_distance(s, t)

        min_sp = min(min_sp, curr_length)

    return min_sp
开发者ID:felicedeluca,项目名称:GraphMetrics,代码行数:25,代码来源:smoothness.py


示例7: all_shortest_paths

    def all_shortest_paths(self, source, target):
        """
        Generator which yields all shortest paths between the source
        and target types.

        Parameters:
        source   The source type.
        target   The target type.

        Yield: generator(steps)

        steps Yield: tuple(source, target, rules)

        source   The source type for this step of the information flow.
        target   The target type for this step of the information flow.
        rules    The list of rules creating this information flow step.
        """
        if self.rebuildgraph:
            self._build_graph()

        if source in self.G and target in self.G:
            try:
                paths = nx.all_shortest_paths(self.G, source, target)
            except nx.exception.NetworkXNoPath:
                pass
            else:
                for p in paths:
                    yield self.__get_steps(p)
开发者ID:fishilico,项目名称:setools,代码行数:28,代码来源:infoflow.py


示例8: get_minimal_pathway

 def get_minimal_pathway(self, g, source, target, steps_cut_off):
     vector_shortest = [s_path for s_path in nx.all_shortest_paths(g, source, target) if len(s_path) == steps_cut_off]
     random.shuffle(vector_shortest)
     try:
         return vector_shortest[0][1]
     except:
         return []
开发者ID:LucasSilvaFerreira,项目名称:game_hex,代码行数:7,代码来源:generate_graphs.py


示例9: findshortestpath

    def findshortestpath(self, startrotmat4, goalrotmat4, base):
        self.__addstartgoal(startrotmat4, goalrotmat4, base)

        # startgrip = random.select(self.startnodeids)
        # goalgrip = random.select(self.goalnodeids)
        startgrip = self.startnodeids[0]
        goalgrip = self.goalnodeids[0]
        self.shortestpaths = nx.all_shortest_paths(self.regg, source = startgrip, target = goalgrip)
        self.directshortestpaths = []
        # directshortestpaths removed the repeated start and goal transit
        try:
            for path in self.shortestpaths:
                print path
                for i, pathnode in enumerate(path):
                    if pathnode.startswith('start') and i < len(path)-1:
                        continue
                    else:
                        self.directshortestpaths.append(path[i-1:])
                        break
                for i, pathnode in enumerate(self.directshortestpaths[-1]):
                    if i > 0 and pathnode.startswith('goal'):
                        self.directshortestpaths[-1]=self.directshortestpaths[-1][:i+1]
                        break
        except:
            print "No path found!"
            pass
开发者ID:wanweiwei07,项目名称:pyhiro,代码行数:26,代码来源:regriptpp.py


示例10: main

def main(json_file, output_prefix, source, target):
    
    with open(json_file) as data_file:    
        data = json.load(data_file)

    G = json_graph.node_link_graph(data, directed=False)

    print "Finished Reading in Graph: {0}".format(datetime.datetime.now())

    id_seq = networkx.get_node_attributes(G, "sequence")

    seq_id = { seq : node_id for node_id, seq in id_seq.items()}

    print "Created inverse lookup table: {0}".format(datetime.datetime.now())

    if ',' in target:
        targets = target.split(',')

    for target in targets:
        paths = networkx.all_shortest_paths(G, seq_id[source], seq_id[target])

        with open("{0}_paths_{1}_{2}.txt".format(output_prefix, source, target), 'w') as o:
            for path in paths:
                o.write(",".join( [id_seq[node_id] for node_id in path ] ))
	        o.write("\n")

    print "Output paths: {0}".format(datetime.datetime.now())
开发者ID:arubenstein,项目名称:deep_seq,代码行数:27,代码来源:ShortestPaths.py


示例11: baconise

def baconise(g, actorA, actorB):
	actorA = actorA.replace("_", " ")
	actorB = actorB.replace("_", " ")

	if not(actorA in g.nodes()):
		actorA = findClosest(g, actorA)

	if not(actorB in g.nodes()):
		actorB = findClosest(g, actorB)

	lists = nx.all_shortest_paths(g, actorA, actorB)
	lista = lists.next()
	i = 1
	actors = []
	while not(lista is None):
		try:
			printPath(g, lista)
			lista = lists.next()
			actors = actors +lista
			i = i+1
		except StopIteration:
			break

	print "found " + str(i) + " paths of length " + str(len(lista))
	return list(set(actors))
开发者ID:gkotsis,项目名称:baconpedia,代码行数:25,代码来源:baconise.py


示例12: shortest_paths

 def shortest_paths(self, v1, v2):
     try:
         l = nx.shortest_path_length(self.graph, v1, v2)
         paths = nx.all_shortest_paths(self.graph, v1, v2)
     except:
         paths = []
     return paths
开发者ID:kwerenda,项目名称:role-mining,代码行数:7,代码来源:XNetwork.py


示例13: _calculate_shortest_paths

    def _calculate_shortest_paths(self, env, action_size):
        s_next_s_action = {}
        G = nx.DiGraph()

        for s in range(env.n_locations):
          for a in range(action_size):
            next_s = env.transition_graph[s, a]
            if next_s >= 0:
              s_next_s_action[(s, next_s)] = a
              G.add_edge(s, next_s)

        best_action = np.zeros((env.n_locations, action_size), dtype=np.float)
        for i in range(env.n_locations):
          if i == env.terminal_state_id:
            continue
          if env.shortest_path_distances[i, env.terminal_state_id] == -1:
            continue
          for path in nx.all_shortest_paths(G, source=i, target=env.terminal_state_id):
            action = s_next_s_action[(i, path[1])]
            best_action[i, action] += 1

        action_sum = best_action.sum(axis=1, keepdims=True)
        action_sum[action_sum == 0] = 1  # prevent divide-by-zero
        shortest_path_actions = best_action / action_sum

        return shortest_path_actions
开发者ID:amusingchao,项目名称:learngit,代码行数:26,代码来源:dagger_policy_generators.py


示例14: all_shortest_paths

    def all_shortest_paths(self, source, target):
        """
        Generator which yields all shortest paths between the source
        and target types.

        Parameters:
        source   The source type.
        target   The target type.

        Yield: generator(steps)

        steps Yield: tuple(source, target, rules)

        source   The source type for this step of the information flow.
        target   The target type for this step of the information flow.
        rules    The list of rules creating this information flow step.
        """
        s = self.policy.lookup_type(source)
        t = self.policy.lookup_type(target)

        if self.rebuildsubgraph:
            self._build_subgraph()

        self.log.info("Generating all shortest information flow paths from {0} to {1}...".
                      format(s, t))

        with suppress(NetworkXNoPath, NodeNotFound):
            # NodeNotFound: the type is valid but not in graph, e.g.
            # excluded or disconnected due to min weight
            # NetworkXNoPath: no paths or the target type is
            # not in the graph
            for path in nx.all_shortest_paths(self.subG, s, t):
                yield self.__generate_steps(path)
开发者ID:TresysTechnology,项目名称:setools,代码行数:33,代码来源:infoflow.py


示例15: getAllPaths

def getAllPaths():
    #import matplotlib.pyplot as plt
    
    g = nx.read_weighted_edgelist("hb.txt")   
    
    #print g["ASPA0085"]["HOHA0402"]
    
    
         
    fp = open("allpaths.txt", 'w')
    
    try:
        counter = 1
        for eachPath in nx.all_shortest_paths(g, u"ASPA0085", u"GLUA0194"):
            if not isValidPath(eachPath):
                continue
            fp.write("path%d" % counter)
            for eachResidue in eachPath:
                fp.write('%10s' % eachResidue)
            fp.write('\n')
            counter += 1
    except nx.exception.NetworkXNoPath:
        fp.write("No connected pathway\n")
    finally:
        fp.close()
开发者ID:zxiaoyao,项目名称:br_pscript,代码行数:25,代码来源:setuphbrun.py


示例16: get_degree_of_separation_visualisation

    def get_degree_of_separation_visualisation(self, author1, author2):
        
        if author1 == '' or author2 == '':
            return Graph()
        
        if author1 == author2:
            return Graph()
        
        # Compute all the shortest paths from author1 to author2
        try:
            list_of_paths = all_shortest_paths(self.authors_graph, self.author_idx[author1], self.author_idx[author2])
        except NetworkXError as e:
            return "Not found"

        g = Graph()
        # Add the shortest paths to the graph
        try:
            for path in list_of_paths:
                g.add_path(path)
        except NetworkXNoPath as e:
            return Graph()

        # Add attributes to nodes
        for i in g.nodes():
            g.node[i]['name']=self.authors[i].name
        print g.nodes(data=True)
        return g
开发者ID:JeffriesAgile,项目名称:comp61542-2014-lab,代码行数:27,代码来源:database.py


示例17: shortestInOutPaths

def shortestInOutPaths(model, input, output):
    shortestPaths = []
    inputnodes = []
    outputnodes = []
    colCount = 0

    for i in input.T:
        if i.any() == 1 and not colCount in inputnodes:
            inputnodes.append(colCount)
        colCount = colCount + 1

    colCount = 0
    for i in output.T:
        if i.any() == 1 and not colCount in outputnodes:
            outputnodes.append(colCount)
        colCount = colCount + 1


    for i in inputnodes:
        for o in outputnodes:
            #if i != o: NOT SURE?!?!?!!?!??!?!?!?
                #from perturbed to the inputs
            shortestPaths.append(networkx.all_shortest_paths(model.myGraph, i, o))

    return shortestPaths
开发者ID:falquaddoomi,项目名称:disting,代码行数:25,代码来源:graphTools.py


示例18: sorted_paths

def sorted_paths(graph, station, order_node):
    """Return a list of all paths from station to order_node, but sorted"""
    shortest_length = len(nx.shortest_path(graph, station, order_node))
    all_paths = list(filter(lambda s: len(s) < shortest_length + 5,
            nx.all_shortest_paths(graph, station, order_node)))
    all_paths.sort(key=len)
    return (path for path in all_paths)
开发者ID:rayhogenson,项目名称:awap,代码行数:7,代码来源:player.py


示例19: run

 def run(self):
     while True:
         flow = yield self.src.store.get()
         #print flow
         if flow.des == self.src.id:
             flow.end_time = self.env.now
             self.out.store.put(flow)
             #print flow,
             #print " -> arriving time %.8f" % self.env.now
             continue
         # compute the next hop
         
         paths = nx.all_shortest_paths(self.topo,self.src.id,flow.des)
         next_hops = []
         for path in paths:
             if len(path)>1:
                 next_hops.append(path[1])
         next_hop = random.choice(next_hops)
         #print next_hop,
         # forwarding to next_hop
         target = self.src.id
         for sw in self.god.all_nodes:
             if sw.id == next_hop:
                 target = sw
                 break
         #print target
         if target:
             flow.src = target.id
             yield self.env.timeout(flow.size*1.0/self.rate)
             target.store.put(flow)
开发者ID:JerryWang304,项目名称:DCTopologies,代码行数:30,代码来源:ElementsInDC.py


示例20: do_path

	def do_path(self, args):
		"Display the shortest path between two nodes"

		arglist = args.split(" ")

		if arglist[0] and arglist[1]:
			#Grab the args
			node1=arglist[0].upper()
			node2=arglist[1].upper()
		else:
			print "[-] Error: Args Needed"

		#ensure they exist
		if G.has_node(node1) and G.has_node(node2):
			if (nx.has_path(G,node1,node2)):
				print "[*] Shortest Paths from %s to %s" %(node1,node2)
				#Get the shortest paths
				paths = nx.all_shortest_paths(G, node1, node2)

				#Print all paths in pretty format
				for p in paths:
					outputpath = "[*] "
					for n in p:
						outputpath+=n+" -> "
					print outputpath[:-4]
			else:
				print "[-] No path exist :("
		else:
			print "[-] Node %s or %s does not exist :(" % (node1, node2)
开发者ID:0x90shell,项目名称:DomainTrustExplorer,代码行数:29,代码来源:trust_explorer.py



注:本文中的networkx.all_shortest_paths函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python networkx.all_simple_paths函数代码示例发布时间:2022-05-27
下一篇:
Python networkx.all_pairs_shortest_path_length函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap