當前位置: 首頁>>代碼示例>>Python>>正文


Python networkx.edge_dfs方法代碼示例

本文整理匯總了Python中networkx.edge_dfs方法的典型用法代碼示例。如果您正苦於以下問題:Python networkx.edge_dfs方法的具體用法?Python networkx.edge_dfs怎麽用?Python networkx.edge_dfs使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在networkx的用法示例。


在下文中一共展示了networkx.edge_dfs方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: adjust_edge_perturb_radii

# 需要導入模塊: import networkx [as 別名]
# 或者: from networkx import edge_dfs [as 別名]
def adjust_edge_perturb_radii(frcs,
                              graph,
                              perturb_factor=2):
    """Returns a new graph where the 'perturb_radius' has been adjusted to account for 
    rounding errors. See train_image for parameters and returns.
    """
    graph = graph.copy()

    total_rounding_error = 0
    for n1, n2 in nx.edge_dfs(graph):
        desired_radius = distance.euclidean(frcs[n1, 1:], frcs[n2, 1:]) / perturb_factor

        upper = int(np.ceil(desired_radius))
        lower = int(np.floor(desired_radius))
        round_up_error = total_rounding_error + upper - desired_radius
        round_down_error = total_rounding_error + lower - desired_radius
        if abs(round_up_error) < abs(round_down_error):
            graph.edge[n1][n2]['perturb_radius'] = upper
            total_rounding_error = round_up_error
        else:
            graph.edge[n1][n2]['perturb_radius'] = lower
            total_rounding_error = round_down_error
    return graph 
開發者ID:vicariousinc,項目名稱:science_rcn,代碼行數:25,代碼來源:learning.py

示例2: verify_nx_for_tutorial_algorithms

# 需要導入模塊: import networkx [as 別名]
# 或者: from networkx import edge_dfs [as 別名]
def verify_nx_for_tutorial_algorithms(self, tree, g):
        # traversing upwards
        for u in tree.leaves():
            path = []
            v = u
            while v != tskit.NULL:
                path.append(v)
                v = tree.parent(v)

            self.assertSetEqual(set(path), {u} | nx.ancestors(g, u))
            self.assertEqual(
                path,
                [u] + [n1 for n1, n2, _ in nx.edge_dfs(g, u, orientation="reverse")],
            )

        # traversals with information
        def preorder_dist(tree, root):
            stack = [(root, 0)]
            while len(stack) > 0:
                u, distance = stack.pop()
                yield u, distance
                for v in tree.children(u):
                    stack.append((v, distance + 1))

        for root in tree.roots:
            self.assertDictEqual(
                {k: v for k, v in preorder_dist(tree, root)},
                nx.shortest_path_length(g, source=root),
            )

        for root in tree.roots:
            # new traversal: measuring time between root and MRCA
            for u, v in itertools.combinations(nx.descendants(g, root), 2):
                mrca = tree.mrca(u, v)
                tmrca = tree.time(mrca)
                self.assertAlmostEqual(
                    tree.time(root) - tmrca,
                    nx.shortest_path_length(
                        g, source=root, target=mrca, weight="branch_length"
                    ),
                ) 
開發者ID:tskit-dev,項目名稱:tskit,代碼行數:43,代碼來源:test_highlevel.py

示例3: getStartNodes

# 需要導入模塊: import networkx [as 別名]
# 或者: from networkx import edge_dfs [as 別名]
def getStartNodes(self):
        """ Get a list of nodes that do not overlap when traversed.
        """
        edgeNodes = self.getExteriorNodes()
        for node in edgeNodes:
            for prev, n in nx.edge_dfs(self.G, source=node):
                if n in edgeNodes:
                    edgeNodes.remove(n)
        return edgeNodes

    # Intersection dict 
開發者ID:brianhuey,項目名稱:vissim,代碼行數:13,代碼來源:osm_to_vissim.py

示例4: createIntersectionDict

# 需要導入模塊: import networkx [as 別名]
# 或者: from networkx import edge_dfs [as 別名]
def createIntersectionDict(self):
        """ Use depth-first search to map intersection nodes and lane widths.
            Input: graph, startNode
            Output: dictionary mapping of intersection nodes
        """
        intersections = {}
        for fromN, toN in nx.edge_dfs(self.G):
            if self.isIntersection(toN):
		print 'Processing intersection %d' %(int(toN))
                intersections[toN] = self.getIntersection(toN)
        return intersections

    # Ways dict 
開發者ID:brianhuey,項目名稱:vissim,代碼行數:15,代碼來源:osm_to_vissim.py

示例5: createWaysDict

# 需要導入模塊: import networkx [as 別名]
# 或者: from networkx import edge_dfs [as 別名]
def createWaysDict(self):
        """ Begin with startNode and traverse the graph, collecting the nodes
            of each way. When a new way is encountered, start a new list of
            nodes. When a new intersection is encountered, pass the list of
            ways to the getWay function for processing.
            Input: graph, startNode
            Output: dictionary used for creating VISSIM links
        """
        waysDict = {}
        ways = []
        nodes = []
        prevAttr = None
        currAttr = None
        
        for fromN, toN in nx.edge_dfs(self.G):
            currAttr = self.G.edge[fromN][toN]
            print 'createWaysDict : fromN %s toN %s ' %(fromN,toN)
            #print currAttr['highway']
            if currAttr['highway'] not in self.roadTypes:
                continue
            if self.isIntersection(fromN):
                ways.append(nodes)
#                print ways
                waysDict.update(self.getWay(ways))
                ways = []
                nodes = []
            elif self.isNewWay(fromN, toN, prevAttr):
                ways.append(nodes)
                nodes = []
            nodes.append(fromN)
            nodes.append(toN)
            prevAttr = currAttr
            if self.isExterior(toN):
                ways.append(nodes)
                self.getWay(ways)
        ways.append(nodes)
        waysDict.update(self.getWay(ways))
        return waysDict

    # XY dict - translate nodes from ways dict to X,Y points including lane
    # offsets 
開發者ID:brianhuey,項目名稱:vissim,代碼行數:43,代碼來源:osm_to_vissim.py

示例6: depends_on

# 需要導入模塊: import networkx [as 別名]
# 或者: from networkx import edge_dfs [as 別名]
def depends_on(self, *, include_filters=True, recursive=False, include_fakes=True):
        def gen_actions(include_filters=include_filters, include_fakes=include_fakes):
            task_strings = self.declaration_line.split(":", 1)[1].split()

            task_name_index_tuples = [
                (self.bf.find_chunk(task_name=s), s) for s in task_strings
            ]

            for i, task_string in task_name_index_tuples:

                if task_string.startswith("@"):
                    if include_filters:
                        yield TaskFilter(task_string, bf=self.bf)
                elif i is None:
                    if include_fakes:
                        yield FakeTaskScript(task_string, bf=self.bf)
                else:
                    # Otherwise, create the task.
                    yield TaskScript(chunk_index=i, bf=self.bf)

        actions = [t for t in gen_actions()]

        if recursive:
            graph = {}
            actions = []

            edge_view = networkx.edge_dfs(self.bf.graph, self, orientation="original")

            for parent, child, _ in edge_view:
                if parent not in graph:
                    graph[parent] = [child]
                else:
                    if child not in graph[parent]:
                        graph[parent].append(child)

            for task in graph:
                for action in graph[task]:
                    for dep_action in graph.get(action, []):
                        actions.append(dep_action)
                    actions.append(action)

        # Remove filters, if requested to do so.
        if not include_filters:
            _actions = []
            for action in actions:
                if not isinstance(action, TaskFilter):
                    _actions.append(action)

            actions = _actions

        # Remove duplicates from the list.
        _actions = []
        for action in actions:
            if action not in _actions:
                _actions.append(action)
        actions = _actions

        return actions 
開發者ID:kennethreitz-archive,項目名稱:bake,代碼行數:60,代碼來源:bakefile.py


注:本文中的networkx.edge_dfs方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。