Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -55,7 +55,7 @@ st.write("**Subjects:**", st.session_state.subjects)
|
|
| 55 |
st.write("**Teachers:**", st.session_state.teachers)
|
| 56 |
st.write("**Rooms:**", st.session_state.rooms)
|
| 57 |
|
| 58 |
-
# Timetable generation logic
|
| 59 |
def generate_timetable(subjects, teachers, rooms, time_slots, days):
|
| 60 |
model = cp_model.CpModel()
|
| 61 |
schedule = {}
|
|
@@ -109,15 +109,18 @@ def generate_timetable(subjects, teachers, rooms, time_slots, days):
|
|
| 109 |
solver = cp_model.CpSolver()
|
| 110 |
status = solver.Solve(model)
|
| 111 |
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
if solver.Value(var) == 1:
|
| 116 |
-
result.append(key)
|
| 117 |
-
return result
|
| 118 |
-
else:
|
| 119 |
return []
|
| 120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 121 |
# Time slots and days for timetable
|
| 122 |
time_slots = [f"{hour}:00 - {hour+1}:00" for hour in range(8, 18)] # 8 AM to 6 PM
|
| 123 |
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
|
|
|
|
| 55 |
st.write("**Teachers:**", st.session_state.teachers)
|
| 56 |
st.write("**Rooms:**", st.session_state.rooms)
|
| 57 |
|
| 58 |
+
# Timetable generation logic with debugging
|
| 59 |
def generate_timetable(subjects, teachers, rooms, time_slots, days):
|
| 60 |
model = cp_model.CpModel()
|
| 61 |
schedule = {}
|
|
|
|
| 109 |
solver = cp_model.CpSolver()
|
| 110 |
status = solver.Solve(model)
|
| 111 |
|
| 112 |
+
# Debugging: Print the solver status and results
|
| 113 |
+
if status != cp_model.OPTIMAL:
|
| 114 |
+
st.error(f"Solver failed to find a solution. Solver status: {status}")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
return []
|
| 116 |
|
| 117 |
+
result = []
|
| 118 |
+
for key, var in schedule.items():
|
| 119 |
+
if solver.Value(var) == 1:
|
| 120 |
+
result.append(key)
|
| 121 |
+
|
| 122 |
+
return result
|
| 123 |
+
|
| 124 |
# Time slots and days for timetable
|
| 125 |
time_slots = [f"{hour}:00 - {hour+1}:00" for hour in range(8, 18)] # 8 AM to 6 PM
|
| 126 |
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
|