def set_random_loads(max_for_each_route): scheme_len = len(SystemBuilder.scheme.node) for route in SystemBuilder.routes: for k in range(int(random() * max_for_each_route)): dispatch_st_num = route.route_list[int(random() * route.length())] destination_is_founded = False counter = 0 while not destination_is_founded: counter += 1 assert counter < 999 destination_st_num = int(random() * scheme_len) + 1 try: way_length, way_list = nx.bidirectional_dijkstra( SystemBuilder.routes_scheme, dispatch_st_num, destination_st_num) new_growth_coeff = GrowthCoeff(RandomFunctions.growth_coef_func(), way_list) destination_is_founded = True SystemBuilder.growth_coeffs.append(new_growth_coeff) attr_name = SystemBuilder.ATTRIBUTE_GROWTH_LIST SystemBuilder.scheme.node[dispatch_st_num][attr_name].append(new_growth_coeff) except nx.exception.NetworkXError: pass except nx.exception.NetworkXNoPath: pass