DEV Community

Cover image for How to create FrozenLake random maps
Rodolfo Mendes
Rodolfo Mendes

Posted on • Originally published at reinforcementlearning4.fun

2 1

How to create FrozenLake random maps

Besides providing our custom map using the desc parameter, it's also possible to create random maps for the Frozen Lake environment, as shown in the code below:

# frozen-lake-random-maps-ex1.py
import gym

env = gym.make("FrozenLake-v0", desc=None, map_name=None)
env.reset()
env.render()

By setting both the parameters desc and map_name to None, the environment will be created using a random 8x8 map. However, it's not possible to create a random map of custom size using only the make method. But we can work around this limitation by importing the generate_random_map() function from the frozen_lake module and passing its output to the desc parameter:

# frozen-lake-random-maps-ex2.py
import gym
from gym.envs.toy_text.frozen_lake
    import generate_random_map

random_map = generate_random_map(size=20, p=0.8)

env = gym.make("FrozenLake-v0", desc=random_map)
env.reset()
env.render()

The generate_random_map() function provides us much more flexibility. The function receives two parameters: size and p. The parameter size expects an integer representing the side of the grid, resulting in a size x size map, whereas the p parameter is the probability of occurring a frozen tile, and is used to set the proportion between frozen tiles and holes.

Conclusion

The FrozenLake environment provided with the Gym library has limited options of maps, but we can work around these limitations by combining the generate_random_map() function and the desc parameter. The use of random maps it's interesting to test how well our algorithm can generalize.

References

Examples:
https://github.com/rodmsmendes/reinforcementlearning4fun/tree/master/frozen-lake-random-maps

Introduction to the Frozen Lake game:
https://reinforcementlearning4.fun/2019/06/09/introduction-reinforcement-learning-frozen-lake-example/

Using the Frozen Lake environment:
https://reinforcementlearning4.fun/2019/06/16/gym-tutorial-frozen-lake/

Installing OpenAI Gym:
https://reinforcementlearning4.fun/2019/05/24/how-to-install-openai-gym/

OpenAI Gym project homepage:
https://gym.openai.com

Billboard image

Synthetic monitoring. Built for developers.

Join Vercel, Render, and thousands of other teams that trust Checkly to streamline monitor creation and configuration with Monitoring as Code.

Start Monitoring

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay