Source code for verigym.environments.explicitenv
from typing import Optional, Any
import gymnasium as gym
from numpy.typing import NDArray
from verigym.environments.base_explicitenv import BaseExplicitEnv
from verigym.environments.verigymenv import VeriGymEnv
from verigym.environments.transition_func import TransitionFunction
from verigym.environments.reward_func import RewardFunction
from verigym.environments.state_distributions import StateDistribution
[docs]
class AbstractedExplicitEnv(BaseExplicitEnv):
abstraction_map: Any
original_env: VeriGymEnv
observation_space: gym.spaces.Discrete
action_space: gym.spaces.Discrete
def __init__(
self,
nr_states: int,
nr_actions: int,
initial_state_distr: StateDistribution | NDArray, # gets converted to StateDistr if it isn't one
transition_function: TransitionFunction,
reward_function: RewardFunction,
nr_rewards: int = 1,
abstraction_map=None,
original_env: VeriGymEnv = None,
render_mode: Optional[str] = None,
dummy_terminal_state: int = None
):
super().__init__(
nr_states=nr_states,
nr_actions=nr_actions,
initial_state_distr=initial_state_distr,
transition_function=transition_function,
reward_function=reward_function,
nr_rewards=nr_rewards,
render_mode=render_mode,
dummy_terminal_state=dummy_terminal_state,
)
self.abstraction_map = abstraction_map
self.original_env = original_env
[docs]
def get_abstraction_map(self):
return self.abstraction_map