Skip to content

Latest commit

 

History

History
86 lines (65 loc) · 2.99 KB

CONTRIBUTING.md

File metadata and controls

86 lines (65 loc) · 2.99 KB

Contributing to MountainCar

We welcome contributions from the community to enhance the MountainCar repository! Whether it's fixing bugs, adding new features, improving documentation, or suggesting ideas, your contributions are valuable. Follow the guidelines below to contribute effectively.


How to Contribute

1. Fork the Repository

  • Click on the "Fork" button at the top right of the repository page to create your own copy.

2. Clone Your Fork

  • Clone your forked repository to your local machine:
    git clone https://github.com/<your-username>/MountainCar.git
  • Replace <your-username> with your GitHub username.

3. Create a New Branch

  • Create a new branch for your feature or bug fix:
    git checkout -b feature-name
  • Use a descriptive name for your branch (e.g., improve-q-table-visualization).

4. Make Changes

  • Implement your changes or additions to the code.
  • Ensure your code is well-documented and follows the project structure.
  • Test your changes thoroughly using the provided scripts.

5. Commit Your Changes

  • Stage and commit your changes:
    git add .
    git commit -m "Describe your changes (e.g., Enhance reward visualization in training metrics)"

6. Push to Your Branch

  • Push your changes to your forked repository:
    git push origin feature-name

7. Submit a Pull Request

  • Go to the original repository on GitHub and click on the "New Pull Request" button.
  • Select your branch and provide a detailed description of your changes.
  • Submit your pull request for review.

Code of Conduct

By participating in this project, you agree to uphold our Code of Conduct. Be respectful, inclusive, and collaborative in all interactions.


Tips for Contributing

  1. Check the Issues tab to find bugs or feature requests you can work on.
  2. Keep your commits clean, concise, and related to a single task.
  3. Avoid committing unrelated changes or files.
  4. Regularly pull updates from the main repository to keep your fork in sync:
    git pull upstream main

Project Structure

  1. MountainCar/:
    • MountainCar.py: Script for rendering the trained agent and observing its performance.
    • MountainCarAlgorithm.py: Core Q-learning algorithm for training the agent.
    • Visualize_q_table.py: Scripts to visualize training metrics and analyze the Q-table.
  2. ModelData/:
    • Contains the pre-trained Q-table (q_table.pkl) and training metrics (training_metrics.pkl).
    • If you prefer, you can run MountainCar/MountainCarAlgorithm.py to generate your own Q-table and metrics.

Getting Help

If you have questions about contributing, feel free to:

  1. Open an issue in the repository.
  2. Reach out via the contact information provided in the repository.

Thank you for contributing to MountainCar! Together, we can tackle this classic reinforcement learning challenge.