Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.27 KB | None | 0 0
  1. def simulation(prob):
  2.     N = 100
  3.     graph = Graph()
  4.     graph.generate_vertices(N, prob[0])
  5.  
  6.     # dodajemy sąsiadów jak w automacie
  7.     graph.add_all_neighbors(N)
  8.     states = []
  9.     active_components = []
  10.     iterations = [i for i in range(200)]
  11.     states.append(graph.get_active_vertices())
  12.     active_components.append(graph.vertices_in_strongly_connected_component())
  13.     for i in range(199):
  14.         graph.simulate()
  15.         states.append(graph.get_active_vertices())
  16.         active_components.append(graph.vertices_in_strongly_connected_component())
  17.        
  18.     percent = [x/y for x,y in zip(active_components, states)]
  19.  
  20.     plt.figure(figsize=(10.0,10.0))
  21.     plt.title("Liczba aktywnych wierzchołków w danej iteracji")
  22.     plt.plot(iterations,states, label="układ 1")
  23.     plt.savefig('aktywne_wierzcholki_' + str(prob[0]) + str(prob[1]) + '.png')
  24.    
  25.     with open('aktywne_wierzcholki_' + str(prob[0]) + '.csv', mode='a') as active_file:
  26.         active_writer = csv.writer(active_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
  27.         active_writer.writerow(states)
  28.  
  29.     plt.figure(figsize=(10.0,10.0))
  30.     plt.title("Największy silnie połączony komponent w danej iteracji")
  31.     plt.plot(iterations,active_components, label="układ 1")
  32.     plt.savefig('strongest_' + str(prob[0]) + str(prob[1]) + '.png')
  33.  
  34.     with open('strongest_' + str(prob[0]) + '.csv', mode='a') as strongest_file:
  35.         strongest_writer = csv.writer(strongest_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
  36.         strongest_writer.writerow(active_components)
  37.  
  38.     plt.figure(figsize=(10.0,10.0))
  39.     plt.title("Wierzchołki znajdujące się w silnie połączonym komponencie w danej iteracji")
  40.     plt.plot(iterations,percent, label="układ 1")
  41.     plt.savefig('procent' + str(prob[0]) + str(prob[1]) + '.png')
  42.    
  43.     with open('procent' + str(prob[0]) + '.csv', mode='a') as percent_file:
  44.         percent_writer = csv.writer(percent_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
  45.         percent_writer.writerow(active_components)
  46.  
  47.  
  48. pool = ThreadPool(8)
  49. probs = [(round((i%6 + 1)*0.1, 1), int(i/6) ) for i in range(10)]
  50. pool.map(simulation, probs)
  51. #close the pool and wait for the work to finish
  52. pool.close()
  53. pool.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement