科技教育創新專區 › 部落格

📅 #51 SMES AI 智慧排課 v2.12:遺傳演算法 GA v3.1 + 混合修復突變 + Smart Seed + BFS 鏈式衝突解的石門國小客製神器

黃凱揚(阿凱老師) · 桃園市龍潭區石門國民小學 · 2026-05-21

#51 不是 CSP 演算法 — 是「SMES AI 智慧排課系統 v2.12.0」用遺傳演算法 GA v3.1 + 混合修復突變(教師衝突修復 30% / 數學修復 17.5% / 國語修復 17.5% / 定向優化 21% / 隨機 14%)+ Smart Seed 種子 + BFS 鏈式衝突解。台灣國小規則寫死(週三下午全校停課、低年級只有週二全天)。127 單元測試 + 23 Firestore Rules 測試,CI 三 jobs。取代舊版 STC.EXE 桌機軟體。

教務組長最痛的 7 月

每年 6-7 月,教務組長要做一件事:安排下學年全校課表。

公立國小通常:

我認識的教務組長 — 整個 7 月暑假在學校排課,老婆都跟他冷戰。

為什麼這麼難?

排課本質是組合爆炸問題:

班數老師數可能組合
6 班1510^15
24 班5010^60+

人腦根本算不過來。傳統做法:Excel 拉表格 + 手工標註 + 修到天亮。

#51 真實怎麼解?(遺傳演算法 v3.1,不是 CSP!)

正名:repo 內部命名是「SMES AI 智慧排課系統 v2.12.0」(SMES = Shih Men Elementary School,石門國小),repo 根目錄甚至放著舊版 STC.EXE 581KB 作為對照組與資料來源。取代傳統的桌機版 STC 系統,是阿凱老師持續迭代到 v2.12 的產品級工具。

功能 A:遺傳演算法 GA v3.1(不是 CSP,不是模擬退火)

功能 B:混合修復突變(Hybrid Repair Mutation)— 五選一策略

功能 C:Smart Seed(v3.1 加速收斂)

功能 D:AI 鏈式衝突解決

功能 E:硬軟限制三層計分

功能 F:台灣國小特殊規則寫死在 types.js(神細節)

功能 G:Excel 雙向 IO

功能 H:智慧代課推薦

功能 I:版本快照管理 + PWA 離線

真實技術棧

實測數字(石門國小 115 學年度)

指標傳統手工排課用 #51
排出全校課表時間5-7 天(連續加班)2 小時(含人工微調)
衝堂錯誤數5-10 個(要重排)0
老師滿意度6/10(總是有人不爽)9/10(軟限制兼顧)
教務組長加班時數50+ 小時3 小時
家裡老婆冷戰風險高零 ✨

教務組長現身說法

「我做教務 8 年了,第一次 7 月可以回家陪小孩 — 以前都在學校排課」

— 桃園市某國小教務組長

「老師原本不爽『又被排到下午連 4 節』— 現在系統會自動避開這種地雷,抱怨少 80%」

— 教導主任

「我跨 3 校教本土語,#51 還能把我 3 校的時段排不衝 — 神」

— 兼任本土語老師

配對工具推薦

適用對象

想試試?

→ 前往 #51 自動排課系統

6 月就開始輸入師資資料 — 暑假還沒到課表就已經排好,這個工具會改變你的人生。

開源原始碼:參考這個工具做出你的版本

阿凱老師大部分的教育工具都在 GitHub 公開原始碼,歡迎老師、學生與開發者參考改造成適合自己情境的版本。文章頁左下角的「複製 AI 開發提示詞」可把工具資料與原始碼連結一次交給 ChatGPT、Claude、Gemini 等 AI 助手。