Skip to main content

🔧 MetaForge

MetaForge is a modular Python toolkit for solving Job Shop Scheduling Problems (JSSP) using classic metaheuristics and modern reinforcement learning methods.

🚀 From Tabu Search and Genetic Algorithms to Deep Q-Networks (DQN) and Neuroevolution — MetaForge brings together the best of optimization and AI in one clean, extensible framework.


🎯 Key Features

  • ✅ Solve classic benchmark problems (OR-Library, JSON)
  • 🧠 Built-in solvers:
    • Tabu Search (TS)
    • Simulated Annealing (SA)
    • Genetic Algorithm (GA)
    • Ant Colony Optimization (ACO)
    • Q-Learning
    • DQN (with and without replay buffer)
    • Neuroevolution
  • 📊 Beautiful convergence and Gantt chart visualizations
  • 🤖 Reinforcement Learning support out-of-the-box
  • 🧪 Designed for research, education, and real-world production scheduling

📦 Installation

From PyPI:

pip install metaforge

From GitHub (latest):

pip install git+https://github.com/Mageed-Ghaleb/MetaForge.git

📁 Quick Start

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

# Load a benchmark from URL
url = "https://raw.githubusercontent.com/Mageed-Ghaleb/MetaForge/main/data/benchmarks/ft06.txt"
problem = load_job_shop_instance(url)

# Run a solver
result = run_solver("ts", problem)

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

📊 Visualizations

from metaforge.utils.visualization import plot_gantt_chart
schedule = result["schedules"][-1]
plot_gantt_chart(schedule, num_machines=problem.num_machines, num_jobs=len(problem.jobs))

📓 Notebooks

Name Description Launch
MetaForge_Quick_Start.ipynb Light demo: install, run, visualize Open In Colab
MetaForge_Complete_Testing.ipynb Full testing suite across all solvers Open In Colab

📚 Documentation


🧠 Why MetaForge?

Most libraries focus on one type of solver. MetaForge unifies traditional algorithms and deep reinforcement learning into one clean package. Whether you’re teaching, publishing, or scheduling in a factory — MetaForge is your launchpad. 🚀


🔧 Benchmarks Supported

  • FT06, FT10, FT20 (OR-Library)
  • LA01–LA05
  • JSON format coming soon

📈 Contributing

We're just getting started! Feel free to:

  • Suggest solvers or enhancements
  • Fork and extend
  • Submit PRs — code, docs, notebooks, anything

📄 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.


🔎 Keywords (for discoverability)

MetaForge is designed for:

  • Job Shop Scheduling Problems (JSSP)
  • Metaheuristics (Tabu Search, Genetic Algorithm, ACO, SA)
  • Reinforcement Learning in Scheduling (Q-Learning, DQN)
  • Production Scheduling Optimization
  • Flexible Flowshops & Real-world Scheduling
  • Benchmark Comparisons and Solver Visualization

Metadata

Release files for metaforge 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for metaforge 1.0.3
File Size Uploaded
metaforge-1.0.3.tar.gz 20.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for metaforge 1.0.3
File Interpreter ABI Platform
metaforge-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 44.9 kB

Release files / metaforge-1.0.3.tar.gz

Download URL metaforge-1.0.3.tar.gz
Size 20.7 kB
Tags Source
SHA-256 checksum
How to use checksums
adc544b35a3d12e46cd8ac1dbf0f521fdf37787f5b6d3d1e497d961acd738a25
BLAKE2b-256 checksum
How to use checksums
1080804a188eab66788ab089bc32f13b04b57993bd853bcfb384f62b3accc45c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / metaforge-1.0.3-py3-none-any.whl

Download URL metaforge-1.0.3-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0ea81ee64432863fe2cd603aafd878e746eb65959b85e3ec0548864b1b6f0da6
BLAKE2b-256 checksum
How to use checksums
962487bd29cb5b9235327678079f309ad73c114e20a98e600f8941598eec2e39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page