使用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())
输出:
