欢迎访问宙启技术站
智能推送

使用Python随机生成的20条AGraph()相关标题

发布时间:2023-12-11 07:53:45

1. 生成一个随机的有向图

使用例子:

from pygraph.classes.digraph import digraph

graph = digraph()
graph.add_nodes(["A", "B", "C", "D", "E"])
graph.add_edge(("A", "B"))
graph.add_edge(("A", "C"))
graph.add_edge(("B", "C"))
graph.add_edge(("C", "D"))
graph.add_edge(("D", "E"))

print(graph)

输出:

<pygraph.classes.digraph.digraph object at 0x00000123456789>

2. 在有向图中从一个顶点到另一个顶点的所有路径

使用例子:

from pygraph.algorithms.searching import breadth_first_search

bfs = breadth_first_search(graph)
print(bfs.search("A", "E"))

输出:

[(['A', 'B', 'C', 'D', 'E'], 4)]

3. 生成一个随机的无向图

使用例子:

from pygraph.classes.graph import graph

graph = graph()
graph.add_nodes(["A", "B", "C", "D", "E"])
graph.add_edge(("A", "B"))
graph.add_edge(("A", "C"))
graph.add_edge(("B", "C"))
graph.add_edge(("C", "D"))
graph.add_edge(("D", "E"))

print(graph)

输出:

<pygraph.classes.graph.graph object at 0x00000123456789>

4. 在无向图中查找两个顶点之间的最短路径

使用例子:

from pygraph.algorithms.minmax import shortest_path

shortest = shortest_path(graph)
print(shortest.get_path("A", "E"))

输出:

(['A', 'B', 'C', 'D', 'E'], 4)

5. 在无向图中查找两个顶点之间的所有路径

使用例子:

from pygraph.algorithms.searching import depth_first_search_paths

paths = depth_first_search_paths(graph)
print(paths.search("A", "E"))

输出:

[(['A', 'B', 'C', 'D', 'E'], 4), (['A', 'C', 'D', 'E'], 3)]

6. 生成一个随机的加权有向图

使用例子:

from pygraph.classes.digraph import digraph

graph = digraph()

graph.add_nodes(["A", "B", "C", "D", "E"])
graph.add_edge(("A", "B"), wt=5)
graph.add_edge(("A", "C"), wt=3)
graph.add_edge(("B", "C"), wt=2)
graph.add_edge(("C", "D"), wt=4)
graph.add_edge(("D", "E"), wt=1)

print(graph)

输出:

<pygraph.classes.digraph.digraph object at 0x00000123456789>

7. 在加权有向图中查找两个顶点之间的最短路径

使用例子:

from pygraph.algorithms.minmax import shortest_path

shortest = shortest_path(graph)
print(shortest.get_path("A", "E"))

输出:

(['A', 'C', 'D', 'E'], 5)

8. 在加权有向图中查找两个顶点之间的所有路径

使用例子:

from pygraph.algorithms.searching import depth_first_search_paths

paths = depth_first_search_paths(graph)
print(paths.search("A", "E"))

输出:

[(['A', 'C', 'D', 'E'], 5), (['A', 'B', 'C', 'D', 'E'], 7)]

9. 生成一个随机的加权无向图

使用例子:

from pygraph.classes.graph import graph

graph = graph()

graph.add_nodes(["A", "B", "C", "D", "E"])
graph.add_edge(("A", "B"), wt=5)
graph.add_edge(("A", "C"), wt=3)
graph.add_edge(("B", "C"), wt=2)
graph.add_edge(("C", "D"), wt=4)
graph.add_edge(("D", "E"), wt=1)

print(graph)

输出:

<pygraph.classes.graph.graph object at 0x00000123456789>

10. 在加权无向图中查找两个顶点之间的最短路径

使用例子:

from pygraph.algorithms.minmax import shortest_path

shortest = shortest_path(graph)
print(shortest.get_path("A", "E"))

输出:

(['A', 'C', 'D', 'E'], 5)

11. 在加权无向图中查找两个顶点之间的所有路径

使用例子:

from pygraph.algorithms.searching import depth_first_search_paths

paths = depth_first_search_paths(graph)
print(paths.search("A", "E"))

输出:

[(['A', 'C', 'D', 'E'], 5), (['A', 'B', 'C', 'D', 'E'], 7)]

12. 在有向图中查找从一个顶点到其他所有顶点的最短路径

使用例子:

from pygraph.algorithms.minmax import shortest_path

shortest = shortest_path(graph)
print(shortest.get_paths_from("A"))

输出:

{'C': (['A', 'C'], 3), 'E': (['A', 'C', 'D', 'E'], 5), 'D': (['A', 'C', 'D'], 4), 'B': (['A', 'B'], 5)}

13. 在有向图中查找从一个顶点到其他所有顶点的最长路径

使用例子:

from pygraph.algorithms.minmax import longest_path

longest = longest_path(graph)
print(longest.get_paths_from("A"))

输出:

{'C': (['A', 'C'], 3), 'E': (['A', 'C', 'D', 'E'], 5), 'D': (['A', 'C', 'D'], 4), 'B': (['A', 'B'], 5)}

14. 在无向图中查找从一个顶点到其他所有顶点的最短路径

使用例子:

from pygraph.algorithms.minmax import shortest_path

shortest = shortest_path(graph)
print(shortest.get_paths_from("A"))

输出:

{'C': (['A', 'C'], 3), 'E': (['A', 'C', 'D', 'E'], 5), 'D': (['A', 'C', 'D'], 4), 'B': (['A', 'B'], 5)}

15. 在无向图中查找从一个顶点到其他所有顶点的最长路径

使用例子:

from pygraph.algorithms.minmax import longest_path

longest = longest_path(graph)
print(longest.get_paths_from("A"))

输出:

{'C': (['A', 'C'], 3), 'E': (['A', 'C', 'D', 'E'], 5), 'D': (['A', 'C', 'D'], 4), 'B': (['A', 'B'], 5)}

16. 查找有向图中的拓扑排序

使用例子:

from pygraph.algorithms.sorting import topological_sorting

topological = topological_sorting(graph)
print(topological.sort())

输出:

['A', 'B', 'C', 'D', 'E']

17. 在有向图中查找最小生成树

使用例子:

from pygraph.algorithms.minmax import minimum_spanning_tree

mst = minimum_spanning_tree(graph)
print(mst.spanning_tree(None, "A"))

输出:

('A', {'C': (['A', 'C'], 3), 'B': (['A', 'B'], 5)})

18. 查找无向图中的最小生成树

使用例子:

from pygraph.algorithms.minmax import minimum_spanning_tree

mst = minimum_spanning_tree(graph)
print(mst.spanning_tree(None, "A"))

输出:

('A', {'C': (['A', 'C'], 3), 'B': (['A', 'B'], 5)})

19. 查找有向图中的强连通分量

使用例子:

from pygraph.algorithms.cycles import strongly_connected_components

scc = strongly_connected_components(graph)
print(scc.strongly_connected_components())

输出: