Skip to main content

MILP-based scheduling for graduate visit days

Project description

Grad Visitor Scheduler

MILP-based scheduling utilities for graduate visit days.

This repository contains only public code and example data. It does not include any Notre Dame-specific data.

Install

pip install grad-visitor-scheduler

Solver setup:

  • HiGHS is installed by default via the highspy dependency.
  • To use CBC, install the solver binary with conda:
conda install -c conda-forge coincbc

Quickstart

from pathlib import Path
from grad_visit_scheduler import scheduler_from_configs, Mode, Solver

root = Path("examples")

s = scheduler_from_configs(
    root / "faculty_example.yaml",
    root / "config_basic.yaml",
    root / "data_fake_visitors.csv",
    mode=Mode.NO_OFFSET,
    solver=Solver.HIGHS,
)

s.schedule_visitors(
    group_penalty=0.1,
    min_visitors=0,
    max_visitors=4,
    min_faculty=1,
    max_group=2,
    enforce_breaks=True,
    tee=False,
    run_name="demo",
)

if s.has_feasible_solution():
    s.show_visitor_schedule(save_files=True)

Note: the examples/ folder referenced above is included in the repository, but it is not packaged on PyPI. If you installed from PyPI, clone the repo to access the example files.

Buildings

The run config defines exactly two buildings, and building_order declares which one is Building A vs Building B. Mode controls how movement between buildings is constrained:

  • Mode.BUILDING_A_FIRST: visitor starts in Building A, then may move to B
  • Mode.BUILDING_B_FIRST: visitor starts in Building B, then may move to A
  • Mode.NO_OFFSET: visitor may move either direction, but only with an empty slot

## Export DOCX

```python
from grad_visit_scheduler import export_visitor_docx

export_visitor_docx(s, "visitor_schedule.docx")

License

BSD-3-Clause

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

grad_visitor_scheduler-0.1.1.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grad_visitor_scheduler-0.1.1-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file grad_visitor_scheduler-0.1.1.tar.gz.

File metadata

  • Download URL: grad_visitor_scheduler-0.1.1.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for grad_visitor_scheduler-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4633fb6cf6f2c532c2d6c1f0e335fe6934522294862137800ab18c09bc7cd6bd
MD5 eb16b3aec68a1024b9edeb08ebe6158b
BLAKE2b-256 2a8f5ace3f40b072d60bab091fc75ffaa6209183a6aed3088187e55262ab85e3

See more details on using hashes here.

File details

Details for the file grad_visitor_scheduler-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for grad_visitor_scheduler-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ba7194664109d9aeae90b1928a29e640ff78b179835c1da605c616e848ae341c
MD5 769b98942667e193cd56a5bd132a8c36
BLAKE2b-256 026a14ac04c8be60c4b46bd5704b14321795f2a4b6d9e1ff48a1f0700dcbe340

See more details on using hashes here.

Supported by

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