Skip to main content

Solving scheduling problems with constraint programming.

Project description

[!NOTE] This package is under development. Expect things to break significantly in versions v0.0.*.

PyJobShop logo

PyPI License CI DOC Codecov

PyJobShop is a Python library for solving scheduling problems with constraint programming. It currently supports the following scheduling problems:

  • Resource environments: single machines, parallel machines, hybrid flow shops, open shops, job shops, flexible job shops, renewable resources and non-renewable resources.
  • Constraints: release dates, deadlines, due dates, multiple modes, sequence-dependent setup times, no-wait, blocking, and precedence constraints.
  • Objective functions: minimizing makespan, total flow time, number of tardy jobs, total tardiness, and total earliness.

You can find PyJobShop on the Python Package Index under the name pyjobshop. To install it, simply run:

pip install pyjobshop

The documentation is available here.

[!TIP] If you are new to scheduling or constraint programming, you might benefit from first reading the introduction to scheduling and introduction to constraint programming pages.

Constraint programming solvers

PyJobShop uses OR-Tools' CP-SAT solver as its default constraint programming solver. We also support CP Optimizer - see our documentation for instructions on how to install PyJobShop with CP Optimizer.

Examples

We provide example notebooks that show how PyJobShop may be used to solve scheduling problems.

  • A short tutorial and introduction to PyJobShop's modeling interface, available here. This is a great way to get started with PyJobShop.
  • Notebooks solving the classical machine scheduling problems such as the hybrid flow shop (here) and the flexible job shop problem (here).
  • A notebook showing how to solve different project scheduling problems, here.

Contributing

We are very grateful for any contributions you are willing to make. Please have a look here to get started. If you aim to make a large change, it is helpful to discuss the change first in a new GitHub issue. Feel free to open one!

Getting help

Feel free to open an issue or a new discussion thread here on GitHub. Please do not e-mail us with questions, modelling issues, or code examples. Those are much easier to discuss via GitHub than over e-mail. When writing your issue or discussion, please follow the instructions here.

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

pyjobshop-0.0.2rc0.tar.gz (46.7 kB view details)

Uploaded Source

Built Distribution

pyjobshop-0.0.2rc0-py3-none-any.whl (60.5 kB view details)

Uploaded Python 3

File details

Details for the file pyjobshop-0.0.2rc0.tar.gz.

File metadata

  • Download URL: pyjobshop-0.0.2rc0.tar.gz
  • Upload date:
  • Size: 46.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.22

File hashes

Hashes for pyjobshop-0.0.2rc0.tar.gz
Algorithm Hash digest
SHA256 8bea4c3745e482ed331e0dabc96e0c48b11faa13e68682bdb1dbc765cd6193f2
MD5 9e6add0b33a4e2c7f2671a29fd53946c
BLAKE2b-256 ea4acd2c99ad9f0ef5e06d1d6d7f0f0a39f65cf774585ae15fb80c58b9ac81c0

See more details on using hashes here.

File details

Details for the file pyjobshop-0.0.2rc0-py3-none-any.whl.

File metadata

File hashes

Hashes for pyjobshop-0.0.2rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e690d0280da95d4f3105e849f608a5bbb2bff5ecfb25339124f46021e44c586
MD5 8f84743b8b42f78a9a6515edb63c0cd9
BLAKE2b-256 0fa8cc6957040834f2da419271fc8f0d05e3cbd9490c80db975918f8b7dfab1a

See more details on using hashes here.

Supported by

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