AI SmartSchedule
Tự động xếp thời khóa biểu & phân phòng học
⚙️ Constraint Solver + 🤖 AI Assistant
01 / 13
Bài toán đặt ra
02 / 13
📋 Ghép thủ công lớp, phòng, giảng viên — mất nhiều ngày
📂 Dữ liệu từ Excel, email, Zalo — dễ sai, dễ thiếu
💥 Một thay đổi nhỏ → hiệu ứng dây chuyền, vỡ lịch
😓 Khó kiểm tra hết xung đột trước khi công bố
Người dùng mục tiêu
03 / 13
🎓
Chuyên viên phòng đào tạo
Lập thời khóa biểu toàn trường / khoa
📝
Trợ lý khoa & Giáo vụ
Ghép lớp, giảng viên, phòng học
👤
Trưởng bộ môn
Xem tải giảng dạy của giảng viên
🏢
Người Quản lý cơ sở vật chất
Kiểm tra phân bổ phòng & thiết bị
Điểm đau cụ thể
04 / 13
⚠️ Trùng phòng, trùng giảng viên — khó phát hiện sớm khi dữ liệu phân tán
🏫 Phòng thiếu sức chứa hoặc thiếu thiết bị bắt buộc (lab, máy chiếu...)
🔍 Không có công cụ audit rõ ràng trước khi công bố lịch
❓ Khó giải thích vì sao lịch được xếp như vậy khi giảng viên hỏi
Giải pháp — 5 bước
05 / 13
📥
Import
→
✅
Validate
→
⚙️
CP-SAT Solve
→
📊
Dashboard
→
💬
AI Chat
💡 Solver quyết định tính hợp lệ — AI chỉ hỗ trợ giải thích & đề xuất thao tác, không tự sửa lịch
📥 Import dữ liệu từ Excel hoặc nhập tay
✅ Validate lỗi đầu vào — gợi ý sửa cụ thể, dừng nếu có lỗi cứng
⚙️ Solver CP-SAT sinh lịch — đảm bảo 0 xung đột cứng
📊 Dashboard xem lịch, conflict panel, export Excel/CSV
💬 AI chat giải thích & đề xuất sửa — backend validate trước khi áp dụng
Luồng demo sản phẩm
06 / 13
📁
Import Excel
→
✔️
Validate
→
⚡
Generate
🔎
Xem Conflict
→
💬
Chat & Repair
→
📤
Export
⚡ Sinh lịch dưới 3 giây
📜 Mỗi thay đổi tạo version mới — rollback dễ dàng
💾 Export Excel / CSV sẵn sàng
Kiến trúc hệ thống
07 / 13
🖥️
Next.js 14
Dashboard, TypeScript
🔌
FastAPI
REST API, CORS
🔧
Scheduling Service
Import, Validate, Export
⚙️
OR-Tools CP-SAT
Constraint Solver
💾
SQLite + JSON
Storage & Snapshots
🤖
LangGraph Agent
AI Chat Pipeline
Constraint Solver — Lõi kỹ thuật
08 / 13
x[s, t, r] ∈ {0, 1}
session s → timeslot t + phòng r
🔒 Hard constraints → lịch hợp lệ, 0 xung đột cứng
🔍 Pre-filter domain → giảm đáng kể search space
🎯 Soft objective → cân bằng tải, phòng vừa sĩ số
🩺 Diagnostics → giải thích nguyên nhân nếu vô nghiệm
AI Assistant — Hỗ trợ, không tự quyết
09 / 13
🗣️ Parse intent tiếng Việt tự nhiên (LangGraph)
📖 Giải thích lịch và lý do quyết định của solver
🔧 Đề xuất đổi lịch cục bộ (local repair)
✅ Backend validate constraints trước khi áp dụng
📜 Tạo version mới — rollback bất kỳ lúc nào
🛡️ AI không ghi database — chỉ đề xuất, backend mới validate & áp dụng
Kết quả đo được
10 / 13
0%
Hard Conflict
< 3s
Thời gian sinh lịch
100%
Tỷ lệ thành công
76/76
Tests Passed
✓
Sẵn sàng demo
Dataset mẫu: 30 lớp · 10 phòng · 12 giảng viên · 20 timeslots · 60 sessions
Công việc
Thủ công
SmartSchedule
Sinh lịch 30 lớp
2–3 ngày
< 3 giây
Kiểm tra xung đột
4–6 giờ
Tự động
Hard conflict
Còn sót
0%
Giải thích quyết định
Kinh nghiệm
Data + Constraints
Tác động thực tế
11 / 13
Công việc
Thủ công
SmartSchedule
Sinh lịch 30 lớp
2–3 ngày
< 3 giây
Kiểm tra xung đột
4–6 giờ
Tự động
Hard conflict rate
Còn lỗi sót
0%
Giải thích quyết định
Kinh nghiệm
Data + Constraints
🛡️ Human-in-the-loop — an toàn hơn LLM tự quyết trong bài toán ràng buộc
Hướng phát triển
12 / 13
🔐 Thêm auth / role cho user
👥 Multi-user, phân quyền theo khoa / trường
📋 Áp dụng cho website của trường, xếp lịch theo từng ngày cụ thể
Q&A
13/13
🙏
Cảm ơn mọi người đã lắng nghe