diff --git a/examples/flatland_2_0_example.py b/examples/flatland_2_0_example.py index 4078f78fdf378b8d6b25f5d1d1f1af294d0e65eb..1d3c5191d6984428bbbeaf0840926576f69549f4 100644 --- a/examples/flatland_2_0_example.py +++ b/examples/flatland_2_0_example.py @@ -37,7 +37,7 @@ env = RailEnv(width=50, max_tracks_in_city=4, ), schedule_generator=sparse_schedule_generator(), - number_of_agents=200, + number_of_agents=10, stochastic_data=stochastic_data, # Malfunction data generator obs_builder_object=GlobalObsForRailEnv(), remove_agents_at_target=True diff --git a/flatland/envs/schedule_generators.py b/flatland/envs/schedule_generators.py index 2b572bfe646220ede95c761237641607a9708348..0a4e7e3b56b89eac520b4f923e2451e307fc3dbd 100644 --- a/flatland/envs/schedule_generators.py +++ b/flatland/envs/schedule_generators.py @@ -74,11 +74,15 @@ def sparse_schedule_generator(speed_ratio_map: Mapping[float, float] = None) -> # Set target for agent start_city = agent_start_targets_nodes[agent_idx][0] target_city = agent_start_targets_nodes[agent_idx][1] - agent_orientation = (agent_start_targets_nodes[agent_idx][2] + np.random.choice([0, 2])) % 4 + start_city_idx = np.random.randint(len(train_stations[start_city])) start = train_stations[start_city][start_city_idx] target_station_idx = np.random.randint(len(train_stations[target_city])) target = train_stations[target_city][target_station_idx] + agent_orientation = (agent_start_targets_nodes[agent_idx][2] + 2 * start[1]) % 4 + if not rail.check_path_exists(start[0], agent_orientation, target[0]): + agent_orientation = (agent_orientation + 2) % 4 + print(rail.check_path_exists(start[0], agent_orientation, target[0])) agents_position.append((start[0][0], start[0][1])) agents_target.append((target[0][0], target[0][1]))