def Copy(env): n_env = helicopter.EnvMakerForestFire( init_pos_row=env.pos_row, init_pos_col=env.pos_col, n_row=env.n_row, n_col=env.n_col, p_tree=env.p_tree, p_fire=env.p_fire, moves_before_updating=env.moves_before_updating, reward_type=env.reward_type, reward_tree=env.reward_tree, reward_fire=env.reward_fire, reward_empty=env.reward_empty, reward_hit=env.reward_hit, sub_tree=env.sub_tree, sub_empty=env.sub_empty, sub_fire=env.sub_fire, sub_rock=env.sub_rock, sub_lake=env.sub_lake, ip_tree=env.ip_tree, ip_empty=env.ip_empty, ip_fire=env.ip_fire, ip_rock=env.ip_rock, ip_lake=env.ip_lake) n_env.grid = copy.deepcopy(env.grid) n_env.total_reward = copy.deepcopy(env.total_reward) n_env.total_hits = copy.deepcopy(env.total_hits) n_env.remaining_moves = copy.deepcopy(env.remaining_moves) return n_env
class ForestFireEnv0(gym.Env): metadata = {'render.modes': ['human']} # Parameters maker_params = {'env_mode': 'stochastic', 'n_row': 16, 'n_col': 16, 'p_tree': 0.100, 'p_fire': 0.005, 'init_pos_row': 8, 'init_pos_col': 8, 'termination_type': 'continuing', 'reward_type': 'cells', 'observation_mode': 'plain'} cell_symbols = {'tree': 0.77, 'empty': 0.66, 'fire': -1.0, 'rock': 0.88, 'lake': 0.99} substitution_effects = {'sub_tree': None, 'sub_empty': None, 'sub_fire': 'empty', 'sub_rock': None, 'sub_lake': None} reward_values = {'reward_tree': 0.0, 'reward_fire': -1.0, 'reward_empty': 0.0, 'reward_hit': None,} init_cell_probs = {'ip_tree': 0.75, 'ip_empty': 0.25, 'ip_fire': None, 'ip_rock': 0.00, 'ip_lake': None} # Instantiated Environment env = helicopter.EnvMakerForestFire(**maker_params, **cell_symbols, **substitution_effects, **reward_values, **init_cell_probs) def reset(self): return self.env.reset() def step(self, action): return self.env.step(action) def render(self): return self.env.render() def close(self): return self.env.close()
N_TRAIN = 15 N_STEPS = 20 N_SAMPLES = 30 K_Rollout = 3 * FREEZE LOOKAHEAD = 4 if __name__ == '__main__': env = helicopter.EnvMakerForestFire(n_row=N_ROW, n_col=N_COL, p_tree=P_TREE, p_fire=P_FIRE, init_pos_row=Init_Row, init_pos_col=Init_Col, moves_before_updating=FREEZE, tree=TREE, empty=EMPTY, fire=FIRE, reward_type=C_TYPE, reward_tree=C_TREE, reward_fire=C_FIRE, reward_empty=C_EMPTY, reward_hit=C_HIT, reward_step=C_STEP, reward_move=C_MOVE) H = heuristic.Heuristic_m1_v3 exp = rollout.Experiment(env, H, H_mode=13, N_TRAIN=N_TRAIN, N_STEPS=N_STEPS, N_SAMPLES=N_SAMPLES,
Init_Col = 7 #Helicopter initial col P_FIRE = 0.03 #Probability to turn a green cell into ared cell P_TREE = 0.1 #Probability to turn an empty cell into a green cell # Symbols for cells TREE = 0 FIRE = 2 EMPTY = 1 FREEZE = 8 #Movements of Helicopter after update Automata if __name__ == '__main__': #Create a new enviroment with initial parameters env = helicopter.EnvMakerForestFire(n_row=N_ROW, n_col=N_COL, p_tree=P_TREE, p_fire=P_FIRE, init_pos_row=Init_Row, init_pos_col=Init_Col, moves_before_updating=FREEZE, tree=TREE, empty=EMPTY, fire=FIRE) # First observation observation = env.reset() #Create a copy of enviroment with initial observation env_1 = Copy(env) observation_1 = observation # Making checkpoints checkpoint_env = env.make_checkpoint() checkpoint_env_1 = env_1.make_checkpoint()