def example04(): g = DirectedGraph().from_adjacency_list(adjacency_list_2) print(g) rank = page_rank(g, algorithm="matrix") display_pagerank(rank) g.save("pr_matrix_2", "png", engine="dot", color_components=True, alphabetical=True)
def test_incidence_matrix_file(self): g = DirectedGraph(8) g.add_random_edges(15) before = g.to_adjacency_matrix() g.save("test", "im") g.load("test.im") after = g.to_adjacency_matrix() assert before == after
def example01(): g = DirectedGraph().from_adjacency_list(adjacency_list_1) print(g) rank = page_rank(g, algorithm="random_walk") display_pagerank(rank) g.save( "pr_random_walk_1", "png", engine="dot", color_components=True, alphabetical=True, )
def main(): print("Wywołanie:\n./lab05.py gen save_dir N\n./lab05.py ff save_dir") print("Sieć przykładowa: ./lab05.py gen example\n") if len(sys.argv) < 2: return if sys.argv[1] == "gen": save_dir = sys.argv[2] if save_dir == "example": print(f"Używanie sieci przykładowej (z input_5.pdf)") g = get_example() else: N = int(sys.argv[3]) print(f"Generowanie sieci przepływowej, N={N}") g = generate_network(N=N) prep_dir(save_dir) g.save(save_dir + "/G", file_format="am") g.save(save_dir + "/G", file_format="png", engine="dot") print(f"Zapisano do katalogu {save_dir}") elif sys.argv[1] == "ff": save_dir = sys.argv[2] g = DirectedGraph() g.load(save_dir + "/G.am") # odświeżenie diagramu w razie ręcznej edycji macierzy sąsiedztwa g.save(save_dir + "/G", file_format="png", engine="dot") print(f"Odczytano sieć przepływową z katalogu {save_dir}") f = ford_fulkerson(g, verbose=True) f_max = sum(weight for ((begin, end), weight) in f.items() if begin == 1) print(f"maksymalny przepływ: {f_max}") labels = {(e.begin, e.end): f"{f[(e.begin, e.end)]}/{e.weight}" for e in g.edges} g.save(save_dir + "/G-ff", file_format="png", engine="dot", edge_labels=labels)