matyama / makespan

Minimum makespan scheduler implemented in Rust
Apache License 2.0
2 stars 0 forks source link
makespan operations-research rust scheduling

makespan Maintenance

makespan

Makespan

This Rust library implements several solvers for task scheduling problems optimizing makespan.

Graham's notation

Definitions of scheduling problems in operations research commonly use Graham's notation a|b|c where

  1. a defines machine environment (resources)
  2. b denotes task/job characteristics
  3. c specifies the objective function that is to be minimized (note that this library focuses on optimizing the makespan C_max)

Covered scheduling problems

The module structure of this library follows a structure of the general taxonomy of scheduling problems and as mentioned above focuses on minimizing the makespan (C_max).

General constraints:

Single-processor

This class of scheduling problems considers single processing unit (resource).

Non-preemptive

This sub-class considers non-preemptive tasks and is covered by module sp. The list of problems and corresponding algorithms includes:

Multi-processor

This class of scheduling problems considers multiple processing units (resources).

Non-preemptive

This sub-class considers non-preemptive tasks and is covered by module mp. The list of problems and corresponding algorithms includes:

Preemptive

This sub-class considers preemptive tasks and is covered by module mp_pmtn. The list of problems and corresponding algorithms includes:

Resources

License and version

Current version: 0.3.0

License: MIT OR Apache-2.0