vgoliber / QuantumJSP

A heuristic approach on how to optimally schedule jobs using D-Wave's quantum computer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Quantum Job Shop Scheduling Problem Solver

A heuristic approach on how to optimally schedule jobs using a quantum computer.

Publication can be found here.

NOTE: for a more efficient solution check out the "pyqubo" branch.
(works extremely slowly while using simulation instead of real qpu.)

Table of Contents

About The Project

Note: Numbers in bars represent jobs

Given a set of jobs and a finite number of machines, how should we schedule our jobs on those machines such that all our jobs are completed at the earliest possible time? This question is the job shop scheduling problem!

Getting Started

Prerequisites

  • python 3.5 or later
  • matplotlib (for results visualisation in charts.py)
pip3 install matplotlib

Installation

NOTE: If you are okay with using a simulator instead of a real QPU, jump to part 3.

  1. Get free API Key at https://www.dwavesys.com/take-leap
  2. Configure a solver at https://docs.ocean.dwavesys.com/en/latest/overview/dwavesys.html#dwavesys
  3. Clone the repo
git clone https://github.com/mareksubocz/QuantumJSP

Quick Start

python3 demo.py data/ft06.txt

References

D. Venturelli, D. Marchand, and G. Rojo, "Quantum Annealing Implementation of Job-Shop Scheduling", https://arxiv.org/abs/1506.08479v2

About

A heuristic approach on how to optimally schedule jobs using D-Wave's quantum computer


Languages

Language:Python 100.0%