https://github.com/damnpan/esa-mso
https://github.com/damnpan/esa-mso
gurobi-optimization julia python
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/damnpan/esa-mso
- Owner: damnpan
- Created: 2024-08-07T04:39:16.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-07T04:54:14.000Z (almost 2 years ago)
- Last Synced: 2025-03-15T12:15:14.722Z (over 1 year ago)
- Topics: gurobi-optimization, julia, python
- Language: Jupyter Notebook
- Homepage:
- Size: 164 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Operations Scheduling
**Julia Code for ESA and MSO Project**
Using Gurobi optimiser to create a small dimension (<50 jobs) operations scheduling optimiser.
- inputs:
- variables:
- Job id
- Job name
- Job duration
- Number of jobs
- Job predecessor-successor pairs
- Number of work centers
- Number of machines
- Final job(s) id (otherwise assumed to be last job)
- Due date for final job(s)
- outputs:
- Gantt chart
- Start and end times of each job and machine assignment
- Bar chart
- Distribution of machine assignment
This code is designed to take in two types of input files, applied use cases and test cases. Applied use cases tend to be more linear in nature, and contain more details such as job names and specific machinery, in addition, there might be long processing times (in days/months). Test case data is used to explore the extreme cases of the scheduling program, it often has more complex input BOM trees, but smaller and more uniform processing times.
Use case notes: the time frame of the scheduler inherently has no units, thus it can be adapted as needed for short/long processes.
Note on files in this folder:
*'ready for testing.py'* -> this file is used to create test data, using a specified m, n and number of jobs.
*'final_code.ipynb'* -> this file is run in Julia version 1.1, using Gurobi Academic License
*'pressure_tank.xlsx'* -> data file containing the BOM for a real use case, data sourced by our group.
*'testing.xlsx'* -> test case example, produced by the *'ready for testing.py'* file. This is a 9x9 BOM with 50 jobs.
*'BOM combined.xlsx'* -> integration with GROUP 4's BOM, using randomised duration times.
*'LETSA Hueristic model.ipynb'* -> check against LETSA heuristic to determine accuracy and optimality of Julia MILP
**ES02 Group 5**