Skip to main content

Description

This package comprises various algorithms for solving the Active Time Problem developed to this date. The following table provides a list of the implemented algorithms available in the subpackage schedulers and the corresponding articles where these algorithms were developed.

Scheduler Reference
LazyActivationSchedulerNLogN "A model for minimizing active processor time" (Chang et al., 2012)
LazyActivationSchedulerT "A model for minimizing active processor time" (Chang et al., 2012)
MatchingScheduler "A model for minimizing active processor time" (Chang et al., 2012)
DegreeConstrainedSubgraphScheduler "A model for minimizing active processor time" (Chang et al., 2012)
GreedyScheduler "Brief announcement: A greedy 2 approximation for the active time problem" (Kumar and Khuller, 2018)
GreedyIntervalsScheduler --
MinFeasScheduler "LP rounding and combinatorial algorithms for minimizing active and busy time" (Chang et al., 2017)
GreedyLocalSearchScheduler "Brief announcement: A greedy 2 approximation for the active time problem" (Kumar and Khuller, 2018)
GreedyLowestDensityFirstScheduler --
BruteForceScheduler Used for testing
LinearProgrammingScheduler "A model for minimizing active processor time" (Chang et al., 2012)
LinearProgrammingRoundedScheduler "LP rounding and combinatorial algorithms for minimizing active and busy time" (Chang et al., 2017)
BatchScheduler "Optimal batch schedules for parallel machines" (Koehler and Khuller, 2013)

Usage Examples

To create a job set, the subclasses of AbstractJobPool from the subpackage models are used. Different subclasses can be to represent different properties for the jobs in them, for example FixedLengthJobPool demands a fixed length from its jobs. The following example demonstrates the process of creating a job pool and adding a job to it:

from models import JobPool

job_pool = JobPool()
job_pool.add_job(release_time=5, deadline=8, duration=2)

To process the job pool, the subclasses of AbstractScheduler from the subpackage schedulers are used. To perform the processing, the job pool should be passed into the process function. The result of the function is the computed job schedule, which, if the problem instance is feasible, contains the information regarding the active time slots as well as individual schedules:

from schedulers import FlowMethod, GreedyScheduler

scheduler = GreedyScheduler(FlowMethod.PREFLOW_PUSH)
schedule = scheduler.process(job_pool, max_concurrency=2)

Metadata

Release files for active-time-scheduling 1.0.2

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

Source distribution (sdist)

Source distribution for active-time-scheduling 1.0.2
File Size Uploaded Provenance Actions
active-time-scheduling-1.0.2.tar.gz 21.0 kB Without provenance Details for active-time-scheduling-1.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for active-time-scheduling 1.0.2
File Interpreter ABI Platform Actions
active_time_scheduling-1.0.2-py3-none-any.whl Python 3 none any Details for active_time_scheduling-1.0.2-py3-none-any.whl

Total release size: 49.5 kB

Release files / active-time-scheduling-1.0.2.tar.gz

Download URL active-time-scheduling-1.0.2.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4fed043af4f72130889b183b6c67db1e245626311dee294f939de47ac9871b40
BLAKE2b-256 checksum
How to use checksums
53d1418e71ae7d2dbd692215fedff6faf0ff9f54d16de5c442f928b125669a2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.7

Release files / active_time_scheduling-1.0.2-py3-none-any.whl

Download URL active_time_scheduling-1.0.2-py3-none-any.whl
Size 28.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e25577a78c845b160fe0799eb3bd1f6169059425418d4a98eca539c1ece65bb5
BLAKE2b-256 checksum
How to use checksums
57c45eaf1dfbcc1c5c1c4976add68e497b775223b9f070d461728d2db6d6fa24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.7

Security for active-time-scheduling 1.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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