haileyhalimj@gmail.com
commited on
Commit
·
951e634
1
Parent(s):
bded803
daily mode deleted
Browse files- README.md +8 -7
- optimization_results.py +1 -2
- src/config/optimization_config.py +0 -2
README.md
CHANGED
|
@@ -1,14 +1,15 @@
|
|
| 1 |
# Supply Roster Optimization Tool
|
| 2 |
|
| 3 |
-
A Python-based tool for optimizing supply roster scheduling using linear programming.
|
| 4 |
|
| 5 |
## Features
|
| 6 |
|
| 7 |
-
-
|
|
|
|
| 8 |
- Support for multiple product types and shift patterns
|
| 9 |
- Configurable constraints for labor costs and productivity
|
| 10 |
- OR-Tools integration for optimization
|
| 11 |
-
- Streamlit
|
| 12 |
|
| 13 |
## Project Structure
|
| 14 |
|
|
@@ -42,11 +43,11 @@ pip install -r requirements.txt
|
|
| 42 |
## Usage
|
| 43 |
|
| 44 |
```bash
|
| 45 |
-
#
|
| 46 |
-
|
| 47 |
|
| 48 |
-
#
|
| 49 |
-
streamlit run
|
| 50 |
```
|
| 51 |
|
| 52 |
## Dependencies
|
|
|
|
| 1 |
# Supply Roster Optimization Tool
|
| 2 |
|
| 3 |
+
A Python-based tool for optimizing weekly supply roster scheduling using linear programming.
|
| 4 |
|
| 5 |
## Features
|
| 6 |
|
| 7 |
+
- **Weekly optimization** with employee scheduling
|
| 8 |
+
- **Hierarchy-aware production ordering** (prepacks → subkits → masters)
|
| 9 |
- Support for multiple product types and shift patterns
|
| 10 |
- Configurable constraints for labor costs and productivity
|
| 11 |
- OR-Tools integration for optimization
|
| 12 |
+
- Streamlit web interface for visualization and configuration
|
| 13 |
|
| 14 |
## Project Structure
|
| 15 |
|
|
|
|
| 43 |
## Usage
|
| 44 |
|
| 45 |
```bash
|
| 46 |
+
# Start the web interface (main entry point)
|
| 47 |
+
streamlit run app.py
|
| 48 |
|
| 49 |
+
# Alternative: Run configuration page directly
|
| 50 |
+
streamlit run config_page.py
|
| 51 |
```
|
| 52 |
|
| 53 |
## Dependencies
|
optimization_results.py
CHANGED
|
@@ -925,8 +925,7 @@ def display_input_data_inspection():
|
|
| 925 |
|
| 926 |
with col1:
|
| 927 |
st.write("**Schedule Mode:**")
|
| 928 |
-
|
| 929 |
-
schedule_mode = DAILY_WEEKLY_SCHEDULE
|
| 930 |
st.write(f"• Planning mode: {schedule_mode}")
|
| 931 |
|
| 932 |
st.write("**Evening Shift Mode:**")
|
|
|
|
| 925 |
|
| 926 |
with col1:
|
| 927 |
st.write("**Schedule Mode:**")
|
| 928 |
+
schedule_mode = "weekly" # Fixed to weekly only
|
|
|
|
| 929 |
st.write(f"• Planning mode: {schedule_mode}")
|
| 930 |
|
| 931 |
st.write("**Evening Shift Mode:**")
|
src/config/optimization_config.py
CHANGED
|
@@ -415,7 +415,6 @@ def get_max_hour_per_shift_per_person():
|
|
| 415 |
# - MAX_HOUR_PER_SHIFT_PER_PERSON
|
| 416 |
# - KIT_LINE_MATCH_DICT
|
| 417 |
# - MAX_PARALLEL_WORKERS
|
| 418 |
-
# - DAILY_WEEKLY_SCHEDULE
|
| 419 |
# - EVENING_SHIFT_MODE
|
| 420 |
|
| 421 |
# Keep these complex getters that access DefaultConfig or have complex logic:
|
|
@@ -522,7 +521,6 @@ def get_max_parallel_workers():
|
|
| 522 |
# MAX_PARALLEL_WORKERS = get_max_parallel_workers() # REMOVED - was causing stale data!
|
| 523 |
# maximum number of workers that can work on a line at the same time
|
| 524 |
|
| 525 |
-
DAILY_WEEKLY_SCHEDULE = "daily" # daily or weekly ,this needs to be implementedin in if F_x1_day is not None... F_x1_week is not None... also need to change x1 to Fixedstaff_first_shift
|
| 526 |
|
| 527 |
# Fixed staff constraint mode
|
| 528 |
# Options:
|
|
|
|
| 415 |
# - MAX_HOUR_PER_SHIFT_PER_PERSON
|
| 416 |
# - KIT_LINE_MATCH_DICT
|
| 417 |
# - MAX_PARALLEL_WORKERS
|
|
|
|
| 418 |
# - EVENING_SHIFT_MODE
|
| 419 |
|
| 420 |
# Keep these complex getters that access DefaultConfig or have complex logic:
|
|
|
|
| 521 |
# MAX_PARALLEL_WORKERS = get_max_parallel_workers() # REMOVED - was causing stale data!
|
| 522 |
# maximum number of workers that can work on a line at the same time
|
| 523 |
|
|
|
|
| 524 |
|
| 525 |
# Fixed staff constraint mode
|
| 526 |
# Options:
|