Skip to main content

A completely new version of ddop. New name to be specificed.

Project description

ddopai

Install

pip install ddopai

What is ddopai?

To be written.

What is the difference to Gymnasium and how to convert Gymnasium Environments?

To make any enviroment compatible with mushroomRL and other agents defined within ddopai, there are some additional requirements when defining the environment. Instead of inheriting from gym.Env, the environment should inherit from ddopai.envs.base.BaseEnvironment. This base class provides some additional necessary methods and attributes to ensure compatibility with the agents. Below are the steps to convert a Gym environment to a ddopai environment. We strongly recommend you to also look at the implementation of the NewsvendorEnv (nbs/20_environments/21_envs_inventory/20_single_period_envs.ipynb) as an example.

1. Initialization and Parameter Setup

  • In the __init__ method of your environment, ensure that any environment-specific parameters are added using the set_param(...) method. This guarantees the correct types and shapes for the parameters.
  • Define the action and observation spaces using set_action_space() and set_observation_space() respectively. These should be called within the __init__ method, rather than defining the spaces directly.
  • In the __init__, and MDPInfo object needs to be created mdp_info = MDPInfo(self.observation_space, self.action_space, gamma=gamma, horizon=horizon_train)

2. Handling Train, Validation, Test, and Horizon

  • Implement or override the train(), val(), and test() methods to configure the correct datasets for each phase, ensuring no data leakage. The base class provides these methods, but you may need to adapt them based on your environment.
  • Update the mdp_info to set the horizon (episode length). For validation and testing, the horizon corresponds to the length of the dataset, while for training, the horizon is determined by the horizon_train parameter. If horizon_train is "use_all_data", the full dataset is used; if it’s an integer, a random subset is used.

3. Step Method

  • The step() method is handled in the base class, so instead of overriding it, implement a step_(self, action) method for the specific environment. This method should return a tuple: (observation, reward, terminated, truncated, info).
  • The next observation should be constructed using the get_observation() method, which must be called inside the step_() method. Make sure to correctly pass the demand (or equivalent) to the next step to calculate rewards.

4. Pre- and Post-Processing

  • Action post-processing should be done within the environment, in the step() method, to ensure the action is in the correct form for the environment.
  • Observation pre-processing, however, is handled by the agent in MushroomRL. This processing takes place in the agent’s draw_action() method.

5. Reset Method

  • The reset() method must differentiate between the training, validation, and testing modes, and it should consider the horizon_train parameter for training.
  • After setting up the mode and horizon, call reset_index() (with an integer index or "random") to initialize the environment. Finally, use get_observation() to provide the initial observation to the agent.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ddopai-0.0.7.tar.gz (94.9 kB view details)

Uploaded Source

Built Distribution

ddopai-0.0.7-py3-none-any.whl (109.6 kB view details)

Uploaded Python 3

File details

Details for the file ddopai-0.0.7.tar.gz.

File metadata

  • Download URL: ddopai-0.0.7.tar.gz
  • Upload date:
  • Size: 94.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for ddopai-0.0.7.tar.gz
Algorithm Hash digest
SHA256 2f45a2e8575125abc1f17d071e46f11320c8e7fdb2c237d5392b96f0ffaea60b
MD5 ddb96f25b70f6cceeab5bb643d10c189
BLAKE2b-256 f064f952866250f8b6a859d6e17d300b0745c3cf29391c300e1201f7f4edbdaf

See more details on using hashes here.

File details

Details for the file ddopai-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: ddopai-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 109.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for ddopai-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f4a3f0befe5eaba0e3dbf26fba1e481a306449115607389bea256ece2478e18b
MD5 edaf4ddf51129275c7b5fb0dfcdddf24
BLAKE2b-256 05c54321ecad9c81c28bbacacfa69a8ec43374d6bdf5a6db080b44da75fac43f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page