Skip to main content

No project description provided

Project description

Gym Environment for SpaRC Project


Description

A custom Gymnasium environment for SPaRC. The Game and Dataset was develop by: https://sparc.gipplab.org/ . This project allows LLM agents and humans to interact/play the puzzles used in SPaRC. For how the puzzles work also look up https://sparc.gipplab.org/ .


Arguments when creating the Gym Env:

  • puzzles(pd.DataFrame) The puzzles that should be used. The puzzles must come in the shape of https://sparc.gipplab.org/ .
  • render_mode(str) Optional, If render_mode='human' the Gym Environment will visualize every step using pygame. If no argumentpassed: no render mode activated.
  • traceback (bool) When set to True it allows the Agent to move back on his path, if False it does not. If argument not passed: traceback=False.
  • max_steps(int) Optional, the maximum amount of steps the Gym environment will runbefore it terminates. If no argument passed: max_steps=200.

Installation and Usage

how to use:

  • Either:
    • Run pip install Gym-Env-SPaRC
    • import gymnasium_env_for_SPaRC (and gymnasium)
    • make the gym using: env = gym.make("env-SPaRC-v0", puzzles=df, render_mode='human', traceback=False, max_steps=max_steps) (example)
    • and use the gym to your liking, examples how to use are in Final_Product.py or llm_host.py
  • or:
    • clone the repository
    • install the dependecies
    • Run Final_Product.py to play as a human or customize Final_Product.py or llm_host.py to your liking

Packages with Versions:

  • gymnasium>=0.28.1
  • numpy>=1.26.4
  • pygame>=2.2.0
  • pyyaml>=5.1
  • pandas>=2.2.1
  • huggingface-hub>=0.15.0
  • fsspec>=2024.1.1
  • chardet>=5.2.0

Environment Details

Action Space

  • Discrete(4): Represents the four possible moves:
    • 0: Right
    • 1: Up
    • 2: Left
    • 3: Down

Observation Space

  • Dict A Dictionary of:
    • base: Dict: A dictionary of 2D arrays representing the puzzle state:
      • "visited": Tracks visited cells.
      • "gaps": Represents gaps in the grid.
      • "agent_location": Current position of the agent.
      • "target_location": Goal position.
      • Additional keys for unique properties like "stars", "triangles", etc.
      • The 2D Arrays are of the shape of the puzzle and are One-hot Encoded
    • color: list: A 2D Array representing the colors of the properties.
      • 8 possible colors are represented with 1-8
      • 2D Array is of shape of the puzzle
    • additional_info: list A 2D Array with additional Info about the puzzle
      • 2D Array is of shape of the puzzle
      • Possible additional_info:
      • ID of the polyshape
      • Count of the Triangles

Reward System

  • Sparse Rewards:

    • Outcome Reward:
      • +1: For solving the puzzle.
      • 0: For intermediate steps.
      • -1: for Failing.
    • Normal Reward:
      • +1: For solving the puzzle.
      • -1: For Failing.
      • +0.01: For staying on a solution path on each step.
  • Note: The Reward from the step function is the Normal Reward, Outcome Reward can be found in the Info if needed.

Visualization

The environment uses pygame for rendering:

  • Agent: Blue square.
  • Target: Red square.
  • Gaps: Dark Green cells.
  • Visited cells: light Green cells.
  • Unique Properties:
    • Stars: colored star.
    • Square: colored square.
    • Triangles: Colored triangles with counts.
    • Polyshapes: Colored polygons.
    • Ylop: Colored Polygons with marker ylop.
    • Dots: Small black circles.

Folder Structure

  • Gym-Environment_for_SPaRC/ # Custom environment implementation
    • gymnasium_env/ # Core environment logic
      • init.py # Environment initialization
      • gym_env_for_SPaRC.py # Core environment logic
      • register_env.py # Environment registration
    • Final_Product.py # Main script for human interaction
    • llm_host.py # Example script for using the gym with a llm
    • human_play.py # Function for human play
    • parse_logs.py # Script to filter out the results of the created logfiles from llm_host.py
    • README.md # Project documentation

Acknowlegdments

Special thanks to Lars Benedikt Kaesberg (l.kaesberg@uni-goettingen.de) and Jan Philip Wahle for giving me the opportunity to do this Project aswell as supervising the Project.

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

gym_env_sparc-0.1.12.tar.gz (25.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gym_env_sparc-0.1.12-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file gym_env_sparc-0.1.12.tar.gz.

File metadata

  • Download URL: gym_env_sparc-0.1.12.tar.gz
  • Upload date:
  • Size: 25.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for gym_env_sparc-0.1.12.tar.gz
Algorithm Hash digest
SHA256 1d824bd8bbef6ea4848b8134ec10d927f7dccf56f0a85b7ba0a91705333e936c
MD5 1a2b1337aa59adf4a90a2d707325db61
BLAKE2b-256 b85483021bcdcac98be8e2bebbd3a9d7b65c97baa9fb3a612c746deb9d397d0a

See more details on using hashes here.

File details

Details for the file gym_env_sparc-0.1.12-py3-none-any.whl.

File metadata

  • Download URL: gym_env_sparc-0.1.12-py3-none-any.whl
  • Upload date:
  • Size: 22.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for gym_env_sparc-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 e6247080071a26e803b8a01f0225d433394b044f89cfbe3b86d5f1e2457caf54
MD5 d9f68fe5fc4d4a1175f0a2622b36e406
BLAKE2b-256 809391f17bfc7d99f8a888311f98642f15e20bd9d34499e0e4ce88d437696a59

See more details on using hashes here.

Supported by

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