1 of 13

AI SmartSchedule

Tự động xếp thời khóa biểu & phân phòng học

⚙️ Constraint Solver + 🤖 AI Assistant

01 / 13

2 of 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ố

3 of 13

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ị

4 of 13

Đ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

5 of 13

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

6 of 13

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

7 of 13

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

8 of 13

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

9 of 13

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

10 of 13

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

11 of 13

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

12 of 13

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ể

13 of 13

Q&A

13/13

🙏

Cảm ơn mọi người đã lắng nghe