Skip to main content

MetaForge: A modular optimization framework for solving Job Shop Scheduling problems using metaheuristics and learning-based approaches.

Project description

🔧 MetaForge

MetaForge is a modular optimization framework for solving Job Shop Scheduling Problems (JSSP) using advanced metaheuristics and learning-based approaches.

🚀 From classic solvers like Tabu Search and Genetic Algorithms to modern DQN-based reinforcement learning and Neuroevolution — MetaForge brings it all together with clarity, structure, and fun.


🎯 Key Features

  • ✅ Support for classic OR-Library and custom JSON benchmark formats
  • 🧠 Modular solvers:
    • Tabu Search
    • Simulated Annealing
    • Genetic Algorithm
    • Ant Colony Optimization
    • Q-Learning
    • DQN (naive & replay-based)
    • Neuroevolution
  • 📊 Beautiful convergence plots, runtime comparisons, and Gantt chart visualizations
  • 📦 Easy packaging, CLI usage, and extension with new solvers
  • 🔬 Designed for researchers, students, and practitioners alike

🚀 Quick Start

1. Install MetaForge

pip install metaforge

Or clone locally for development:

git clone https://github.com/mageed-ghaleb/metaforge.git
cd metaforge
pip install -e .

2. Run a Solver

from metaforge.problems.benchmark_loader import load_job_shop_instance
from metaforge.metaforge_runner import run_solver

problem = load_job_shop_instance("data/benchmarks/ft06.txt")
result = run_solver("ga", problem, track_schedule=True)

print("Best Makespan:", result["makespan"])

3. Run All Solvers on All Benchmarks

python -m src.metaforge.utils.compare_solvers

Generates CSV, plots, and Gantt charts from data/benchmarks/.


4. Interactive Notebook

Explore MetaForge hands-on with our example notebook:

📓 MetaForge_Example.ipynb

It walks you through:

  • Loading benchmark problems
  • Running various solvers (TS, GA, DQN, etc.)
  • Plotting convergence + Gantt charts
  • Comparing performance across solvers

Perfect for experimentation, demos, and academic use.


📚 Documentation


🧠 Why MetaForge?

Most libraries focus only on one type of solver. MetaForge unifies traditional, bio-inspired, and learning-based approaches in one clean, extensible Python package — built for experimentation, benchmarking, and educational use.

Whether you're doing a thesis, publishing research, or solving real-world factory problems — MetaForge is your launchpad. 🚀


📈 Contributing

We're just getting started! Feel free to:

  • Suggest solvers, features, or dataset formats
  • Fork and extend
  • Submit pull requests with improvements

📄 License

MIT License — free for academic and commercial use.


👨‍💻 Author

Mageed Ghaleb
📧 mageed.ghaleb@gmail.com
🔗 LinkedIn
🔗 GitHub


Built with ❤️ for solvers, schedules, and scientific curiosity.

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

metaforge-1.0.0.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

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

metaforge-1.0.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file metaforge-1.0.0.tar.gz.

File metadata

  • Download URL: metaforge-1.0.0.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for metaforge-1.0.0.tar.gz
Algorithm Hash digest
SHA256 dfb85671f406677837d050d088f95fbdf6bdcba7d4dce36c87e123d4c3c5d92c
MD5 1f176577f4b81f9fc19b69c8e545a577
BLAKE2b-256 28f23a6b328a934001f71b39df00ae1f8d768d32b05108e876916e8d3b6a94bd

See more details on using hashes here.

File details

Details for the file metaforge-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: metaforge-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for metaforge-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b82a1a24bbb89eef61e57f65fd7a3fe10fcbb269b7f0492ed48b75cab4c3b90
MD5 91221eb72c8ff4666585e66c8ce90e89
BLAKE2b-256 e2e530a4850dc1b4bea7aea1dd57bbb54f0229c431cb7f888c6e0edc4d0c11b9

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