The collection of reinforcement learning environments developed for the Artificial Intelligence course at the Department of Computer Science and Engineering, Kangwon National University.
Project description
KNU Gymnasium, or Kymnasium for Reinforcement Learning Environments
Welcome to Kymnasium! This project is a collection of reinforcement learning environments developed for the Artificial Intelligence course at the Department of Computer Science and Engineering, Kangwon National University.
About the Project
Kymnasium provides a simple and effective platform for students to learn, implement, and test reinforcement learning algorithms. The environments are designed to be straightforward, allowing you to focus on the core concepts of RL. This project is inspired by Gymnasium.
Environments
- Alkkagi: A Korean traditional game where the objective is to flick your stones to knock the opponent's stones off the board.
- Avoid Blurp: An environment where the agent must learn to avoid free-fall enemies.
- Grid Adventure: A classic grid-world environment where the agent navigates a maze to reach a goal.
- Grid Survivor: A grid-world environment where the agent must survive for as long as possible.
Getting Started
Installation
pip install kymnasium
Implement Your Agent
To train your own agent, you need to override 'kymnasium.Agent' and implement three methods as below:
from src import kymnasium as kym
# Your agent logic goes here
class YourAgent(kym.Agent):
def act(self, observation: any, info: dict):
# Replace this with your agent's action selection logic return env.action_space.sample()
pass
@classmethod
def load(cls, path: str) -> 'kym.Agent':
# Load a pre-trained agent
pass
def save(self, path: str):
# Save the trained agent
pass
Basic Training loop
import gymnasium as gym
# Train the agent for 100 episodes
EPISODES = 100
# Path for saving your agent
PATH_AGENT = './agent.pkl'
agent = YourAgent()
# Create the environment
env = gym.make(
id="kymnasium/GridAdventure-FullMaze-26x26-v0", # Environment ID
render_mode='rgb_array', # or 'human',
obs_type='custom', # or 'image'
bgm=False # or True for playing background music
)
for _ in range(EPISODES):
observation, info = env.reset()
done = False
while not done:
action = agent.act(observation, info)
observation, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
done = True
# Here writes any training logic
# Close the environment
env.close()
# Save your agent
agent.save(PATH_AGENT)
Live Evaluation of Your Agent
from src import kymnasium as kym
evaluator = kym.LocalEvaluator(
env_id="kymnasium/GridAdventure-FullMaze-26x26-v0", # Environment ID
agent=YourAgent.load(PATH_AGENT), # Your trained agent
render_mode='human', # 'render_mode' should be 'human' for live evaluation
obs_type='custom', # or 'image'
bgm=True # 'bgm' should be 'True' for live evaluation
)
evaluator.run()
Manual Play
If you want to manually play the environment, see below:
from grid_adventure import ManualPlayWrapper
agent = ManualPlayWrapper(
env_id='kymnasium/GridAdventure-FullMaze-26x26-v0',
render_mode='human', # 'render_mode' should be 'human' for manual play
)
agent.play()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kymnasium-1.1.1-py3-none-any.whl.
File metadata
- Download URL: kymnasium-1.1.1-py3-none-any.whl
- Upload date:
- Size: 7.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94ccdf5882eca1b2ea0f1d4b395634bf11bd251c764f99a6e76dab943b403bef
|
|
| MD5 |
6e0c61af8fc926bf41a0c4e4715bd3e3
|
|
| BLAKE2b-256 |
c50f11a9c9737eafd1c61482c2174fee164d8f1e59162125b8379691e45fd3cc
|