Skip to content

Fix #501: Add PrecedenceConstrainedScheduling model#626

Open
zazabap wants to merge 3 commits intomainfrom
issue-501-precedence-constrained-scheduling
Open

Fix #501: Add PrecedenceConstrainedScheduling model#626
zazabap wants to merge 3 commits intomainfrom
issue-501-precedence-constrained-scheduling

Conversation

@zazabap
Copy link
Collaborator

@zazabap zazabap commented Mar 13, 2026

Summary

  • Add PrecedenceConstrainedScheduling satisfaction problem model (Garey & Johnson A5 SS9)
  • Unit-length tasks with precedence constraints, m processors, deadline D
  • Satisfaction problem: does a valid schedule exist?

Fixes #501

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Mar 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.62%. Comparing base (d309549) to head (f4dd731).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #626      +/-   ##
==========================================
+ Coverage   96.61%   96.62%   +0.01%     
==========================================
  Files         218      220       +2     
  Lines       29352    29499     +147     
==========================================
+ Hits        28357    28504     +147     
  Misses        995      995              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

zazabap and others added 2 commits March 13, 2026 08:05
Add satisfaction problem for scheduling unit-length tasks on m
processors by deadline D with precedence constraints (Garey & Johnson
A5 SS9, Ullman 1975).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@zazabap
Copy link
Collaborator Author

zazabap commented Mar 13, 2026

Implementation Summary

Changes

  • src/models/misc/precedence_constrained_scheduling.rs — New model: satisfaction problem for scheduling unit-length tasks on m processors by deadline D with precedence constraints
  • src/unit_tests/models/misc/precedence_constrained_scheduling.rs — 12 unit tests: basic, evaluation (valid/invalid/edge cases), brute force, serialization
  • src/models/misc/mod.rs — Register module and re-export
  • src/models/mod.rs — Add to top-level re-exports
  • problemreductions-cli/src/dispatch.rs — Add load_problem and serialize_any_problem dispatch arms
  • problemreductions-cli/src/problem_name.rs — Add lowercase alias resolution

Deviations from Plan

  • Added input validation: num_processors > 0 and deadline > 0 assertions when num_tasks > 0 (quality review finding)
  • Used 0-indexed time slots {0, ..., D-1} instead of issue's 1-indexed {1, ..., D} — standard representation choice

Open Questions

  • Complexity string uses brute-force bound "deadline ^ num_tasks". No well-known refined exact algorithm exists for general PCS with variable m.
  • Paper entries (display-name + problem-def) deferred to separate PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Model] PrecedenceConstrainedScheduling

1 participant