edges_cars_dic[item] = [] obstacles_list = [] obstacle_node_id_list = [] pair_node_id_list = [] cars_list = [] goal_time_list = [] moving_distance_list = [] # create obstacles print("### create obstacles started ###") while True: for i in range(number_of_obstacles): obstacle_lane_id, obstacle_node_id = find_obstacle_lane_and_node() obstacle = Obstacle(obstacle_node_id, obstacle_lane_id) obstacle.init(DG) obstacles_list.append(obstacle) cars_list.append(obstacle) edges_cars_dic[(edge_lanes_list[obstacle_lane_id].node_id_list[0], edge_lanes_list[obstacle_lane_id].node_id_list[1] )].append(obstacle) if nx.is_weakly_connected(DG) == True: break print("### create obstacles ended ###") print("### create cars started ###") # create cars DG_copied2 = copy.deepcopy(DG) for i in range(len(obstacle_node_id_list)): if DG_copied2.has_edge(pair_node_id_list[i], obstacle_node_id_list[i]): DG_copied2.remove_edge(pair_node_id_list[i],