Question: python code, please help me fix the error, and there is no graph after run the code CODE: import numpy as np import Assignment2 import
python code, please help me fix the error, and there is no graph after run the code

CODE:
import numpy as np import Assignment2 import random import copy import time import random import pandas as pd import time import matplotlib.pyplot as plt import sys INF = 99999999 def random_graph(num_vertices, max_cost): cm = [[0]*num_vertices for i in range(num_vertices)] for i in range(num_vertices): for j in range(num_vertices): if i == j: cm[i][j] = INF else: cm[i][j] = random.randint(1, max_cost) return cm def init_dist(matrix): dist = copy.deepcopy(matrix) n = len(dist) for i in range(n): dist[i][i] = 0 return dist def to_table(matrix): n = len(matrix) table = [[] for i in range(n)] for i in range(n): for j in range(n): if matrix[i][j] dist[src][x] + matrix[x][y]: dist[src][y] = dist[src][x] + matrix[x][y] return dist # def dijkstra_apsp_table(matrix): # n = len(matrix) # dist = init_dist(matrix) # for src in range(n): # dist[src][src] = 0 # used = [False] * n # for i in range(n): # x = find_min(dist[src], used) # used[x] = True # for y in range(n): # if not used[y] and dist[src][y] > dist[src][x] + matrix[x][y]: # dist[src][y] = dist[src][x] + matrix[x][y] # return dist def print_matrix(matrix): print(np.array(matrix)) print("") def print_table(table): n = len(table) for i in range(n): print(i, table[i]) def mini_test(): n = 10 matrix = random_graph(n, 99) print_matrix(matrix) table = to_table(matrix) print_table(table) dist = floyd_apsp(matrix) print("Floyd") print_matrix(dist) dist = bellman_ford_apsp(matrix) print("Bellman Ford") print_matrix(dist) dist = dijkstra_apsp(matrix) print("Dijkstra") print_matrix(dist) def run_algs(algs, sizes, trials): dict_algs = {} for alg in algs: dict_algs[alg.__name__] = {} for size in sizes: for alg in algs: dict_algs[alg.__name__][size] = 0 for trial in range(1, trials + 1): matrix = random_graph(size, 99) if size == sizes[0]: print("Matrix") print_matrix(matrix) for alg in algs: start_time = time.time() dist = alg(matrix) if size == sizes[0]: print(alg.__name__) print_matrix(dist) end_time = time.time() net_time = end_time - start_time dict_algs[alg.__name__][size] += 1000 * net_time return dict_algs def plot_times(dict_algs, sizes, trials, algs, title, file_name): alg_num = 0 plt.xticks([j for j in range(len(sizes))], [str(size) for size in sizes]) for alg in algs: alg_num += 1 d = dict_algs[alg.__name__] x_axis = [j + 0.05 * alg_num for j in range(len(sizes))] y_axis = [d[i] for i in sizes] plt.bar(x_axis, y_axis, width=0.05, alpha=0.75, label=alg.__name__) plt.legend() plt.title(title) plt.xlabel("Size") plt.ylabel("Time for " + str(trials) + " trials (ms)") plt.savefig(file_name) plt.show() def print_times(dict_algs): pd.set_option("display.max_rows", 500) pd.set_option("display.max_columns", 500) pd.set_option("display.width", 1000) df = pd.DataFrame.from_dict(dict_algs).T print(df) def main(): # mini_test() assn = "Assignment7" sizes = [10*i for i in range(1, 11)] algs = [floyd_apsp, bellman_ford_apsp, dijkstra_apsp] trials = 10 title = "Runtime of APSP Algorithms" dict_algs = run_algs(algs, sizes, trials) print_times(dict_algs) plot_times(dict_algs, sizes, trials, algs, title, assn + '.png') if __name__ == "__main__": main() Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
