def getEdgeRobustness(Graph): new = mst.Graph(Graph.V) new.graph = Graph.graph new.r = mRE.randomConnections(new, 1) efficiency = [] while True: try: new.dist() efficiency.append(eff.getEfficiency(new)) new.newConnection(1, 0) except IndexError: return mean(efficiency)
def main(): #Gets User input initial, groups = get_user_input() #, totalnodes, inc #Creates Plots according to user inputs numPlots = 1 #int(((totalnodes - initial)/inc)) + 1 fig, axs = plt.subplots(numPlots, sharex=True) fig.suptitle('Efficiency vs Edges at nodes') i = 0 #Loops user inputs so creates n starting points with nodes, for num1 in range(initial, initial + 1, 1): #totalnodes + 1, inc): g = mst.Graph(num1) g.newMST() edges = int((num1 * (num1 - 1)) / 2 - (num1 - 1)) + 1 interval = int(float(edges) * float(groups / 100)) Data = { 'Edges': list(range(1, edges, interval)), 'Efficiency': [], 'Efficiency Alt': [], # 'Network Connectivity': [], # 'Robustness': [], # 'Edge Robustness': [] } add_Network_Data(g, Data, interval) df = pd.DataFrame( Data, columns=[ 'Edges', 'Efficiency', 'Efficiency Alt', # 'Network Connectivity', 'Robustness', # 'Edge Robustness' ]) name = 'Nodes=' + str(num1) create_Graph(numPlots, axs, i, df, name) create_dataframe_folder(df, name) i += 1 #Shows final plot if len(sys.argv) > 1: plt.show()
import distances import cities import MST distances = distances.get_distances() cities = cities.get_cities() vertices = len(distances) graph = MST.Graph(vertices) for city, endpoints in distances.items(): for city2 in endpoints: graph.add_edge(city2['start_id'], city2['end_id'], city2['distance']) result, cost = graph.MST() print ("Edges of MST") for u, v, weight in result: print("%s <-> %s = ~%d km" % (cities[u]['name'], cities[v]['name'], weight)) print("Total Cost => " , cost)