39410 三管道聯合分發

終極密碼

遊戲規則:本遊戲為猜密碼的遊戲。密碼為0到100之間的其中1個整數,電腦會提示密碼的所在範圍,玩家必須在6次之內猜到密碼才能過關。
★ 終極密碼為0到100之間 ★
您共有六次機會

摘要: 104年度大學招生的主要三個管道是繁星、申請與考試分發。 繁星先放榜, 繁星錄取的學生有放棄機會, 落榜的學生可以參加後續的兩管道, 錄取而沒放棄的學生不能參加後續的兩管道, 錄取但放棄的學生只可以參加考試分發。 接著申請放榜, 落榜或放棄的學生才可以參加後續的考試分發管道。 分三階段進行招生作業, 耗時可觀, 本文討論三管道合併作業同時放榜的相關問題。

1. 引言

分發問題, 基本上是多對一的配對問題。 關於多對一的配對問題, Gale-Shapley 在討論大學分發時, 先從較簡單的一對一婚姻配對出發, 討論穩定配對概念。 接著, 推廣到大學分發, 並提出所謂的Gale-Shapley演算法, 運用該演算法, 求得對學生而言最佳榜單, 也就是所謂的學生榜。

Gusfield-Irving 討論大學分發所有穩定榜單之間的代數結構, 得到學生最喜歡的穩定榜單就是大學最不喜歡的穩定榜單之結論。

我國大學分發, 因為計算成績的方式完全由考試成績計算, 同分問題無法避免。 {GI}在面對同分問題時, 以抽籤方式強分高低。我國則採用: 假若最後一名多人同分造成錄取人數超過, 而且這些人都不錄取時錄取人數不足的狀況下, 允許增額錄取。

在考試分發單獨進行時, 姚瞻海 與楊宏章 有處理考試增額錄取, 也有處理特種生外加名額錄取的情形, 這都是 沒有討論的狀況。

第 2 節我們釐清分發問題的相關概念, 如名額、準耗、耗額、缺額、額滿、超額、錄取標準、合法榜、穩定榜等相關概念。 介紹的是簡化的三管道聯合分發情境。 第 3 節我們提出演算法~1, 並證明它在簡化的三管道聯合分發情境下會產生學生榜。 第 4 節討論簡化的三管道聯合分發情境可以怎樣擴充。 第 5 節討論三管道聯合分發的優點與缺點。

2. 概念

大學的入學管道主要有繁星 、申請 與考試分發 三個管道。 104年的作法, 先進行繁星分發, 再進行申請分發, 最後才進行考試分發。

三個管道分三次分發。繁星錄取的學生有放棄機會, 落榜的學生可以參加後續的兩管道, 錄取而沒放棄的學生不能參加後續的兩管道, 錄取但放棄的學生只可以參加考試分發。申請錄取的學生也有放棄機會, 落榜或放棄的學生才可以參加考試分發。

繁星與申請不足額的名額回流供考試分發管道使用。 舉例來說, $d$ 系有繁星名額 5 名, 申請名額 30 名, 全系名額 50 名, 而繁星錄取了 4 名, 申請錄取了 28 名, 則考試分發時, 有 $(50-5-30)+(5-4)+(30-28)=18$ 個名額可供使用。

因為分三個階段分發, 前兩階段的分發後都要留時間給學生考慮是否放棄, 再加上繳交志願卡的時間, 整個作業流程耗時甚長。

本文討論, 三個管道的成績都已出來, 學生只填一次志願卡, 三管道合併作業同時進行分發的相關問題。 三管道同時進行分發的一個優點是可節省大量時間。

2.1. 各管道錄取的優先順序

三管道同時進行分發, 必須訂出各管道錄取的優先順序, 否則會有多種榜單出現而無法取捨的狀況發生。

舉例來說, 三個考生 $a,b,c$ 都以 $d$ 系為第一志願, $d$ 系有繁星名額與申請名額各 1 個。 三名學生在 $d$ 系繁星排名順序為 $a,b,c$, 申請排名順序為 $a,c,b$。 $a$ 在繁星與申請中皆排名第 1 顯然必須錄取。 問題是, $a$ 若以繁星名額錄取, $c$可以第一志願由申請管道錄取, $b$ 無法以第一志願錄取。 同樣的, $a$ 若以申請名額錄取, $b$ 可以第一志願由繁星管道錄取, $c$ 無法以第一志願錄取。 產生兩種可能的榜單, 這兩種榜單, 前者對 $c$ 有利, 後者對 $b$ 有利。

因此, 若在考試前規定, 可錄取同一個系的多個管道時, 取繁星、申請、考試的較前管道。 無法以繁星管道錄取者, 才可以申請管道錄取, 無法以繁星及申請管道錄取者, 才可以考試管道錄取。 如此, 在前面的例子中, $a$ 兩種管道都可錄取, $a$ 必須以繁星管道錄取, $b,c$去競爭申請名額, 被錄取的是 $c$。 因管道順序是考前規定, $b,c$在各管道的排名是考後才產生, $b$ 無法在順序的規定產生時抗議。

104 年的考試分發 規定, 在自費校系中, 特種生無法以普通生身分錄取在該系者(所謂的考普管道), 才可以特種生身分用優待總分錄取在該系該類特種生的外加名額中(所謂的考外管道), 姚瞻海~{yao} 討論了此一場景:考普管道排在考外管道之前。

96 年的考試分發 規定, 在自費校系中, 特種生無法以特種生身分用優待總分錄取在該系該類特種生的外加名額中, 才可以普通生身分錄取在該系, 楊宏章~ 討論了此一場景: 考外管道排在考普管道之前。

104 年的考試分發 中規定, 公費校系沒有外加名額, 普通生以加權總分、特種生以優待總分一起競爭該系名額。這樣, 特種生以優待總分與普通生的加權總分相互評比, 又沒有限制用優待總分錄取的人數, 當特種生人數較多時, 可能嚴重剝奪一般生的權益。 楊宏章 , 將所有特種生歸為一類, 有名額限制, 以優待總分彼此競爭, 這是所謂的考內管道。 考普管道, 所有學生用加權總分來評比。考內管道與考普管道共用系的名額, 考外管道則是使用外加名額。 在 中, 考內管道限定頂多一類, 而且考內與考外管道不能並存。

所以, 所謂的考試管道可細分成考內管道、考普管道、考外管道。 104 年的考試分發, 自費校系有考普管道、考外 $p$ 管道, 其中 $p\in P$, $P$ 為索引集。 公費校系只有一個管道, 即考普管道, 不過一般生以加權總分與特種生用優待總分互相評比。

往後, 繁星、申請、考內 $i$ ($i\in I$, 其中 $I$ 為索引集)、考普、考外 $p$ ($p\in P$, 其中 $P$ 為索引集) 等管道, 各個管道的錄取優先順序必須事先規定。

2.2. 名額的解讀

在 104 年的考試分發規定, 錄取的最後一名若有多人同分(這裡的同分, 指的是包含加權總分及各科參酌的同分)可增額錄取。 例如, $d$ 系的考試分發名額為 50 名, 結果 $d$ 系錄取 52 名考生, 其中總分最低者有三人以上, 是被允許的。

往後, 我們把名額限制裡的名額稱作「名額」或「限額」。

定義一: 入學管道為繁星、申請、考內、考外管道之一, 錄取學生集合 $S$, 定義 $S$ 的「準耗」為 $|S|$。

定義二: 入學管道為繁星、申請、考內、考外管道之一, 名額 $q$, 錄取學生集合 $S$, 定義 $S$ 的「耗額」為 $$u(q,S)=\left\{\begin{array}{lcl} q, &\quad~& \mbox{當 $S$ 的準耗 $\gt q$ 且 $S$ 中扣除最低分者後準耗小於 $q$,} \\ S\mbox{ 的準耗,} & &\mbox{其他情形。}\end{array}\right. $$

用耗額來解讀名額限制, 指的是錄取集合的耗額不得超過該管道的名額, 而不是準耗不能超過名額。

2.3. 考原管道名額

我們把考內管道與考普管道合併, 叫做考原管道。 假設 $d$ 系名額 2 名, 內含繁星名額 1 名, 沒有考內管道。 但因同分問題繁星錄取了 2 名, 此時剩下的考原管道名額是多少? 是 2-1(繁星耗額)=1, 還是 2-2(繁星錄取人數)=0?

若是採用後者, 會發生問題。舉例如下, 只有 $A$、$B$ 兩系, 各有名額 2 名, 內含繁星名額 1名。 學生只有甲、乙、丙、丁、戊五人, 甲乙丙三人的志願序為 $A$, $B$, 丁戊兩人的志願序為 $B$, $A$。 五人的各管道成績排名如下表:

A系繁星 A系考試 B系繁星 B系考試
乙丙
乙丙
丙丁

例如, A 系的考試排名, 甲最佳, 戊次之, 乙丙兩人同分又次之, 丁墊底。甲只有考試成績, 其餘四人繁星考試兩種成績都有。 我們來看看應該如何分發。 丁的第一志願為 B 系, 在 B 系繁星管道排名第一, 必定錄取在B系繁星。 後面, 我們證明, 不管戊有沒有分發到 A 系繁星, 都會產生矛盾。

假設戊分發在 A 系繁星, 則 A 系繁星不能再錄取他人, 甲的第一志願為 A 系考試且考試成績排名第一, 甲必須錄取在 A 系考試管道。 B 系考試管道中, 排名第一的甲已經錄取在第一志願的 A 考試, 排名第二的戊已經錄取在 A 系繁星, 剩下來乙排名最前面, 乙分發在第二志願的 B 系考試。 這種榜單戊會抗議, 因為戊的第一志願 B 系, 在 B 系考試管道錄取了一個比戊差的乙, 這種榜單是不可行的。

假設戊沒分發到 A 系繁星, 則乙丙二人都可分發到第一志願的 A 系繁星。 甲雖然在第一志願的 A 系考試第一, 可是 A 系的名額已被乙丙兩人佔滿。 甲只好錄取在第二志願的 B 系考試。這樣的榜單, 戊會提出抗議, 因為戊落榜了, 可是他的第二志願 A 系繁星錄取了比他差的乙丙, 這種榜單是不可行的。

如此, 前面考原管道名額的計算方式若採用後者會發生無法處理的狀況。 只好採用前者, 考原管道的名額為系名額減去繁星的耗額再減去申請的耗額。 這樣的話, 前面的例子, 乙丙第一志願分發到 A 系繁星, 甲分發到第一志願 A 系考試, 丁分發到第一志願 B 系繁星, 戊分發到第一志願 B 系考試, 所有的人都是第一志願。

往後, 考原管道名額為系名額減去繁星的耗額再減去申請的耗額。 當然, 考原管道的耗額不得超過其名額。

定義3. 定義考原管道錄取集合 $S$ 的準耗 $:$ $S$ 內各考內管道耗額之總和再加上考普管道的人數。

定義4. 考原管道名額 $q$, 錄取學生集合 $S$, 定義 $S$ 的耗額為 $$u(q,S)=\left\{\begin{array}{lcl} q,&\quad~ & \mbox{當 $S$ 的準耗 $\gt q$ 且 $S$ 中扣除最低分者後之準耗 $\lt q$} \\ S\mbox{ 的準耗,} && \mbox{其他情形}\end{array}\right. $$ 註$:$ $S$ 的最低分者, 可能屬於考內或考普管道, 也可能考內、考普都有。

2.4. 成分系及其名額

校系 $d$ 的入學有多個管道, 每個管道可想成一個「成分系」。有很多種名額, 整個系有一個系名額$q_d$, 繁星、申請、考內 $i$、考外 $p$ 各有其名額, 這些名額是事先規定的, $q_d$應該不小於繁星、 申請、考內 $i$ 各管道名額的總和。

考普管道沒有所謂的名額, 考普管道與所有考內管道合併, 叫做考原管道。 考原管道的名額, 定義成系名額減掉繁星耗額再減掉申請耗額。

只要繁星、申請、考原、考內 $i$ 各管道的耗額不超過各自的名額, 繁星、申請、考原耗額的加總就不會超過 $q_d$, 這些彰顯了名額的意義。

相對於成分系, 原來的系叫做「原始系」, 同一原始系的成分系間以姊妹系或姊妹管道互相稱呼。 相對於考原系這個由考普與所有考內系合併的「複成分系」, 其他的成分系叫「單成分系」。

成分系的耗額小於名額時叫做「未額滿」或「缺額」, 等於時叫做「額滿」, 大於名額時叫做「超額」, 超額是不被允許的。

往後, 「系」通常指的是成分系。 容易混淆處, 再用原始系、成分系來區分。

2.5. 繁星比序

104 年繁星推薦簡章~ 規定, 一個推薦學校, 向同一大學同一學群, 頂多推薦兩名。 同一學群內, 在第一輪比序錄取時, 同一推薦學校頂多錄取一名。 採取的原則是, 除非推薦第一名沒錄取, 否則不能錄取第二名。 這隱含了在所有比序中, 推薦名次為第一比序, 後面才是各系自訂的比序順序。

第一輪有缺額時, 才進行第二輪的比序, 此時同一推薦學校頂多錄取一名的限制取消。

在第一輪比序時, 同一推薦學校頂多錄取一名, 有其意義, 讓更多的學校, 有學生用繁星管道進大學。 舉例來說, 學群內有 A, B 兩系, 各有1個名額。 甲中學推薦第一名 a, 推薦第二名 b, 乙中學推薦第一名 c, 推薦第二名 d。 a,c 只填志願 A 系, b,d 只填志願 B 系。 成績比序如下表:

名次 A系 B系
1 a b
2 c d

純粹比序來錄取的話, 錄取的是同一推薦學校的 $a,b$ 兩人, 是成績較佳的兩人。 規定同一推薦學校頂多錄取一名時, 錄取的是 $a,d$ 兩人, 是分散學校的兩人。

但是, 三管道合併分發後, 繁星兩輪分發不可行, 而且同一推薦學校頂多錄取一名的規定也沒有意義。 假設, 前面例子中的 $b,d$ 仍然只有一個志願 $B$ 系。 此時, $B$ 系繁星錄取 $b$ 或 $d$ 受 $a(c)$ 是否錄取於繁星管道的影響, 然而 $a(c)$ 沒錄取繁星可能是因為 $a(c)$ 錄取在更前志願的非繁星管道的緣故。 前述分散學校的意義喪失, 因此, 三管道合併分發, 繁星的比序採用純粹比序較為合理。

往後, 繁星的比序採用純粹比序, 推薦名次為第一比序, 後面接著繁星成分系自訂的比序順序。

2.6. 競爭成績

校系分為公費與自費。學生分為一般生與特種生。不同管道在比成績時使用的是不同的成績。 繁星管道比的是推薦名次加上各系訂出來的比序成績, 第一比序為推薦學校的推薦排名。申請管道比的是各系算出來的申請總成績。 104 年公費系考普管道, 一般生用加權總分加上參酌比序, 特種生用優待總分加上參酌比序, 混在一起評比。 104 年自費系的考普管道, 一般生與特種生都用加權總分加上參酌比序來評比。 104 年自費系的外加管道, 同類特種生用優待總分加上參酌比序來評比。不管哪一管道, 用來相互評比以便擇優錄取的成績都用「競爭成績」稱呼之, 競爭成績簡稱「成績」。

兩個競爭成績 $x,y$ 之間, 用 $x\gt y$ (或 $y\lt x$) 代表 $x$ 優於 $y$; 用 $x=y$ 代表 $x,y$ 同分;用 $x\ge y$ 代表 $x\gt y$ 或 $x=y$。

另外, 我們創造一個競爭成績 $\Xi$, 並規定任何一個學生的競爭成績優於 $\Xi$。

2.7. 衍生志願序

考生填志願卡, 只寫各原始系的順序, 這個志願序以後稱之為原始志願序。 將原始志願序的每個志願系加以修改, 改成該生在該志願系所參加且通過檢定的各管道所對應的單成分系。 同一原始系有多個單成分系的話, 依據事先規定的錄取優先順序填列, 叫做衍生志願序。

假設, 某特種生的第一志願為 $A$ 系, 第二志願為 $B$ 系, $A,B$兩系都沒考內管道, 該生在 $A$ 系有參加繁星、申請、考試且都通過檢定, 在 $B$ 系有參加申請、考試且都通過檢定。 假設規定的錄取優先順序為繁星、申請、考普、考外, 那麼該生的衍生志願序為 $A$ 繁星、 $A$ 申請、 $A$ 考普、 $A$ 考外、$B$ 申請、$B$ 考普、$B$ 考外。

對考生來說, 在意的是錄取哪個系而不在意以哪個管道錄取, 所以衍生志願序, 對考生而言, 與原始志願序沒甚麼差別。 但因前面規定各管道錄取的優先順序, 故將原始志願序改成衍生志願序, 在後面的討論中, 將可看到衍生志願序的功用。

若榜單 $M$ 同時符合

1. 學生 $s$ 錄取在單成分系 $d$, 則 $s$ 通過該成分系的檢定, $d$ 在 $s$ 的衍生志願序中,

2. 各個繁星、申請、考內 $i$、考原、考外 $p$ 成分系都沒有超額錄取。

則稱 $M$ 為合法榜。

定義6. 針對榜單, 我們定義各成分系的「錄取標準」(或稱「錄標」)。 成分系為繁星、申請、考原時, 其錄取標準為 $$ \left\{\begin{array}{lcl} \Xi,&\quad~ & \mbox{本管道缺額時;}\\ \mbox{本管道錄取生的最低分,} &&\mbox{本管道額滿時。}\\ \end{array}\right. $$ 考普管道的錄取標準為姊妹考原管道的錄取標準。 成分系為考內$i$、考外$p$管道時, 其錄取標準為 $$ \left\{\begin{array}{lcl} \mbox{姊妹考原管道的錄標,} & &\mbox{本管道缺額時;}\\ \mbox{max(姊妹考原管道的錄標, 本管道錄取生的最低分),} &\quad~&\mbox{本管道額滿時。}\\ \end{array}\right. $$

若學生 $s$ 在單成分系 $d$ 的競爭成績不低於 $d$ 系的錄取標準, 除非錄取在更前志願, 根據成績擇優錄取原則, 應該錄取在 $d$ 系。 若學生 $s$ 在單成分系 $d$ 的競爭成績低於 $d$ 系的錄取標準, 根據不得超額原則, 不得錄取在 $d$ 系~{star104,apply104,drt104}。

定義7. 在合法榜 $M$ 中, 若單成分系 $d$、考生 $s$ 同時滿足

$s$ 通過 $d$ 的檢定標準, $d$ 在$s$ 的志願序中;

$s$ 落榜或 $s$ 錄取的成分系 $d'$ 之衍生志願在 $d$ 之後;

$s$ 的競爭成績不低於 $d$成分系的錄標。

則稱 $(d,s)$ 為 $M$ 的阻撓對 (blocking pair)。 這裡阻撓對的定義與 Gale-Shapley~, Gusfield-Irving~中的 blocking pair 有相當的改變與調整。

定義8.存在阻撓對的合法榜叫做「非穩定榜」。 不存在阻撓對的合法榜叫做「穩定榜」。

很明顯的, 若榜單 $M$ 為非穩定榜, 一旦公布必遭其阻撓對 $(d,s)$ 的抗議。 $s$ 可以錄取在比錄取系 $d'$ 更前志願的 $d$ 成分系。 若 $d$ 與 $d'$ 不是姊妹系, $s$ 會抗議:$s$應該錄取在更前志願的原始系。 若 $d$ 與 $d'$ 是姊妹系, 則 $s$ 應該錄取在較前錄取優先順序的成分系, 違背了各管道的錄取順序原則。

因此, 榜單最起碼的要求, 它必須是穩定榜。穩定榜的定義, 闡釋了擇優錄取原則、管道錄取順序原則、不得超額原則。

2.8. 驗榜

合法榜單 $M$ 公布之後。 學生可以自己驗榜。

驗榜的方法如下。 檢查所有比自己錄取成分系更前志願的成分系(落榜的情況, 則是所有成分系), 應該都要符合: 自己在該系的競爭成績低於該系的錄取標準。

若有一學生 $s$ 檢查時, 發現有一成分系 $d$ 不符合上述情況, $(d,s)$ 就構成 $M$ 的阻撓對。換句話說, 所有學生驗榜都不成問題的榜單就是穩定榜。 不是穩定榜的話, 最少有一個學生會驗出問題。

3. 分發演算法

聯合分發演算的情境: 每一學生有一衍生志願序, 該生已通過志願序每一成分系的檢定且成績也已確定。

演算法1. 由主程式、調整繁星暫取名單、調整申請暫取名單、調整考內暫取名單、調整考外暫取名單、調整考普暫取名單等六個程式組成。 在演算過程中, 一個學生會在未錄取與暫錄取之間切換, 每一成分系有暫取名單或稱「暫取集」, 暫取集會隨進程變化, 學生一旦加入暫取名單, 身分變成暫錄取, 一旦從暫取名單移除, 身分變成未錄取。主程式裡有一 while 迴圈, while 迴圈的每一迴完成時, 暫取狀況形成暫時榜單, 每個系有暫取名單。 對應於正式榜單, 暫時榜單也有對應的暫時錄取標準, 簡稱「暫標」。 演算結束時, 暫時榜單就是本演算所得的榜單, 暫取名單就是錄取名單, 暫標就是錄取標準。

主程式如下:

將每一學生設定成未錄取, 志願序中每一志願設定為有效。 每一成分系暫取集為空集合, 這是暫時榜單。 由暫時榜單, 算出每一系的暫取標準(「暫標」), 全是 $\Xi$。 while 有未錄取的學生 $s$ 的志願序中, 存在有效志願
  選取 $s$ 的第一有效志願系 $d$, 將 $d$ 變成無效志願
  if $s$ 在 $d$ 系的競爭成績不低於 $d$ 系暫標
    用$z,a,i,g,G,p$ 分別代表 $d$ 姊妹繁星、申請、考內 $i$、考普、考原、考外 $p$ 系
    用$S_z,S_a,S_i,S_g,S_G,S_p$ 分別代表 $z,a,i,g,G,p$ 的暫取集
    if ($d$ 就是 $z$)
      調整繁星暫取名單
    else if ($d$ 就是 $a$)
      調整申請暫取名單
    else if ($d$ 就是 $i$)
      調整考內暫取名單 ($i$)
    else if ($d$ 就是 $p$)
      調整考外暫取名單 ($p$)
    else if ($d$ 就是 $g$)
      調整考普暫取名單 (加入$s$)   

調整考外暫取名單 ($p$)的步驟如下:


令 $x=S_p$耗額, $S'_p=S_p$
令 $S_p=S_p\cup{s}$ 註: 將 $s$ 加入暫取集
令 $y=S_p$ 耗額
if ($x\lt p$ 系名額){
  if ($x\lt y\lt p$ 系名額) {
    註: $p$ 暫標維持為 $G$ 暫標
  } else if ($x\lt y=p$ 系名額){
    註: $p$暫標由 $G$ 暫標變成 $S_p$ 最後一名的成績, 顯然不會變小
  }註: 此時, $y\gt p$ 系名額的狀況不會發生
} else if ($x=p$系名額) {註: 舊 $p$ 暫標為 $S'_p$ 最後一名的成績
  if ($y=p$系名額){
    註: 加入 $s$ 後的 $S_p$ 不須移除任何學生, $p$ 暫標不變
  } else if ($y\gt p$ 系名額){註: 此時, $s$ 成績大於舊 $p$ 暫標
    移除 $S_p$ 最後一名(包括同名者)(最後一名的成績就是舊 $p$ 暫標)
    註: 新 $p$ 暫標為新的 $S_p$ 最後一名的成績, $p$ 暫標變大
  }
} 註: $x\gt p$ 系名額的狀況不會發生

調整繁星暫取名單的步驟如下:


令 $x=S_z$耗額, $S'_z=S_z$
令 $S_z=S_z\cup{s}$ 註: 將 $s$ 加入暫取集
令 $y=S_z$ 耗額
if ($x\lt z$ 系名額){
  if ($x\lt y\lt z$ 系名額) {
    註: $z$暫標維持為$\Xi$
  } else if ($x\lt y=z$ 系名額){
    註: $z$ 暫標由 $\Xi$ 變成 $S_z$ 最後一名的成績, 顯然變大
  }註: 此時, $y\gt z$ 系名額的狀況不會發生
} else if ($x=z$系名額) { 註: 舊 $z$ 暫標為 $S'_z$ 最後一名的成績
  if ($y=z$ 系名額){
    註: 加入$s$ 後的 $S_z$ 不須移除任何學生, $z$ 暫標不變
  } else if ($y\gt z$ 系名額){註: 此時, $s$ 成績大於舊 $z$ 暫標
    移除 $S_z$ 最後一名(包括同名者)(最後一名的成績就是舊 $z$ 暫標)
    註: 新 $z$ 暫標為新的 $S_z$ 最後一名的成績, $z$ 暫標變大
  }
} 註: $x\gt z$ 系名額的狀況不會發生
令 $y=S_z$ 耗額
if ($x\lt y$)

   調整考普暫取名單 ($G$ 名額縮減1)

調整申請暫取名單的步驟:與調整繁星暫取名單的步驟類似, 省略。

調整考內暫取名單 ($i$)的步驟如下:


令 $x=S_i$ 耗額, $S'_i=S_i$, $S'_G=S_G$
令 $S_i=S_i\cup{s}$ 註: 將 $s$ 加入暫取集
令 $y=S_i$ 耗額
if ($x\lt i$ 系名額){
  if ($x\lt y\lt i$ 系名額) {
    註: $i$ 暫標維持為 $G$ 暫標
  } else if ($x\lt y=i$ 系名額){
    註: $i$暫標由 $G$ 暫標變成 $S_i$ 最後一名的成績, 顯然不會變小
  }註: 此時, $y\gt i$ 系名額的狀況不會發生
} else if ($x=i$系名額) { 註: 舊 $i$ 暫標為 $S'_i$ 最後一名的成績
  if ($y=i$ 系名額){
    註: 加入 $s$ 後的 $S_i$ 不須移除任何學生, $i$ 暫標不變
  } else if ($y\gt i$ 系名額){註: 此時, $s$ 成績大於舊 $i$ 暫標
    移除 $S_i$ 最後一名(包括同名者)(最後一名的成績就是舊 $i$ 暫標)
    註: 新 $i$ 暫標為新的 $S_i$ 最後一名的成績, $i$ 暫標變大
  }
} 註: $x\gt i$ 系名額的狀況不會發生
令 $y=S_i$ 耗額
if ($x\lt y$) {
  令 $S_G = S'_G$
  調整考普暫取名單(加入 $s$)
}

調整考普暫取名單 (原因)步驟如下:


if (原因為加入$s$){
  令 $x=S_G$ 耗額, $S'_G=S_G$
  令 $S_G=S_G\cup{s}$ 註: 將 $s$ 加入 $G$ 暫取集
  令 $y=S_G$耗額
  if ($x\lt G$系名額){
    if ($x\le y\lt G$系名額) {
      註: $G$ 暫標維持為 $\Xi$
    } else if ($x\lt y=G$ 系名額){
      註: G暫標由 $\Xi$ 變成 $S_G$ 最後一名的成績, 顯然變大
    }註: 當 $x\lt G$ 系名額時, $y\gt G$ 系名額的狀況不會發生
  } else if ($x=G$ 系名額) { 註: 舊 $G$ 暫標為 $S'_G$ 最後一名的成績
    if ($y=G$ 系名額){
      註: 加入$s$ 後的 $S_G$不須移除任何學生, $G$ 暫標不變
    } else if ($y\gt G$ 系名額){註: 此時, $s$ 成績大於舊 $G$ 暫標
      移除 $S_G$ 最後一名(包括同名者)(最後一名的成績就是舊 $G$ 暫標)
      註: 新 $G$ 暫標為新的 $S_G$ 最後一名的成績, $G$暫標變大
    }註: 沒有其他狀況
  } 註: $x\gt G$ 系名額的狀況不會發生
} else if (原因為名額縮減1){
  令 $x=S_G$ 準耗
  令 $n$為縮減後之 $G$ 名額。註: 縮減前的名額為$n+1$
  if ($x\lt n$){
    註: 名額縮減前後都是缺額狀態, 不必有任何動作
  } else if ($x=n$ 系名額) {註: 縮減前缺額, 縮減後額滿
    註: 舊$G$暫標為$\Xi$, 新 $G$ 暫標為 $S_G$ 最後一名的成績, $G$暫標變大
  } else {註: 名額縮減前是額滿狀態
    if (名額縮減後超額) {
      移除 $G$ 中最後一名者。註: 舊 $G$ 暫標為移除前最後一名成績
      註: 新 $G$ 暫標為移除後最後一名成績, $G$ 暫標變大
    }else
      註: 不必有任何動作
  }
} 註: 不會有其他原因
if (前半段過程中 $G$ 暫標有變大) {
  if (任何 $S_p$ 中有學生成績低於新 $G$ 暫標) {註:舊 $p$ 暫標低於新 $G$ 暫標
    移除 $S_p$中成績低於新 $G$ 暫標的學生。註:新 $p$ 暫標即新 $G$ 暫標, 新 $p$ 暫標變大
  }
  if (任何舊 $S_i$ 中有學生成績低於新 $G$ 暫標) {註:舊$i$暫標低於新$G$暫標
    註:那些學生在前半段已經移除, 新 $i$ 暫標即新 $G$ 暫標, 新 $i$ 暫標變大
  }
}

引理1. 演算法~1 進行中, 每一次的暫取標準的改變都是變得更大

證明: 演算法~1 的註解中就已證明。$\Box$

定理1. 演算法~1 所得的榜 $M_0$ 為穩定榜。

證明: 演算中, 每一迴圈結束時, 各管道都不會超額, 所以 $M_0$ 為合法榜。

設 $(d,s)$為 $M_0$ 的阻撓對, 由阻撓對的條件 2, 在演算法的過程中的某一迴圈, $s$ 或因成績低於當時的 $d$ 暫標而無法進入 $d$ 系暫取名單, 或因成績低於當下 $d$ 系新暫標而從 $d$ 系暫取名單中移除。換句話說, $s$ 的成績低於當下 $d$ 系的暫標。由前面引理, 我們知道, $s$ 的成績低於演算結束時 $d$ 系的暫標(也就是錄取標準), 與阻撓對的條件3矛盾, 故 $M_0$ 為穩定榜。 $\Box$

定義9. 若學生 $s$ 在某一穩定榜 $M$ 中錄取於 $d$ 系, 則稱 $(d,s)$ 為穩定對。

兩個穩定榜 $M_1,M_2$, 若學生 $s$ 在 $M_1$ 中錄取的系, 志願排在 $M_2$ 中錄取的系之前, 我們說, $s$ 比較喜歡$M_1$ 榜; 若學生 $s$ 在 $M_1$ 中錄取的系與 $M_2$ 中錄取的系相同, 我們說, $s$ 一樣喜歡 $M_1$ 與 $M_2$ 榜。 若有多個穩定榜, 有沒有可能不同的學生較喜歡不同的穩定榜, 這是我們要去面對的問題。

定義10. 若所有的學生共同最喜歡同一個穩定榜 $M$, 則稱 $M$ 為學生榜。

學生榜是否存在是個問題。 不過顯然的, 若存在學生榜, 則唯一。

定理2. 演算法~1 所得的榜 $M_0$ 為學生榜。

證明: 我們用反證法來加以證明。假設 $M$ 為穩定榜, 學生 $s$ 喜歡 $M$ 榜甚於 $M_0$ 榜, $M$ 榜將 $s$ 錄取在 $d$系, $M_0$ 榜將 $s$ 錄取在 $d$ 系更後志願的 $d'$ 系或落榜, 我們想辦法來找到矛盾。

在 $M_0$ 的演算法~1 過程, $s$ 曾在某一次的 while 迴圈中被 $d$ 系拒絕在暫取名單之外, 理由是 $s$ 的成績低於當時 $d$系的錄取標準而無法進入暫取名單, 或因 $d$ 系的錄取標準因更新而提高導致被從暫取名單中移除。換句話說, $s$ 在演算法的某一迴圈, 被他的穩定對夥伴 $d$ 所拒絕。若有許多迴圈, 有學生被穩定對夥伴所拒絕, 我們可以假設, $s$ 被 $d$ 拒絕是在其中最早的迴圈, 該迴圈我們稱為 $l$ 迴圈。

$d$ 的姊妹成分系中, 用 $z,a,i,g,G,p$ 分別代表繁星、申請、考內、考普、考原、考外成分系。迴圈 $l$ 結束時刻, 有一個暫取榜單 $N$, 用 $S_z,S_a,S_i,S_g,S_G,S_p$ 分別代表$N$榜中 $z,a,i,g,G,p$ 的暫取集; $T_z, T_a, T_i, T_g,$ $T_G, T_p$ 分別代表 $M$ 榜 $z,a,i,g,G,p$ 的錄取集。各種成分系暫標都是指暫取榜單$N$, 錄標都是指榜單$M$。 先證明一些性質, 這些性質與$s$錄取在哪個成分系無關:

1.$S_z,S_a,S_i,S_g,S_p$ 裡的學生 $s'$ 所暫取的系, 是 $s'$ 在所有穩定榜中可以錄取的最前志願系。 證明:根據 $l$ 迴圈的定義, $s'$ 在暫取集中出現, 代表在 $s'$ 在 $l$ 迴圈以前不曾被穩定對夥伴所拒絕, 所以比暫取系更前的志願系都不會是穩定對的夥伴。

2.$S_z$ 的耗額不超過$T_z$ 的耗額。 證明:若 $T_z$ 額滿, 顯然成立。故只要討論 $T_z$ 未額滿的狀況即可, 此時 $z$錄標為 $\Xi$。假設學生$s'\in S_z-T_z$, 則 $z$沒錄取 $s'$, 根據前項, $s'$ 錄取在 $z$ 系更後的志願或落榜。 $(z,s')$ 是 $M$ 榜的阻撓對, 矛盾。因此 $S_z\subseteq T_z$, 故$S_z$ 的耗額不超過$T_z$ 的耗額。

3.$S_a$ 的耗用名額不超過$T_a$ 的耗用名額。 同理可證。

4.$N$榜$G$系名額不低於 $M$榜$G$系名額。 由定義與前兩項可證。

5.若$G$暫標$\gt G$錄標, 則

  (a)$S_g\subseteq T_g$ 證明:若 $s'\in S_g-T_g$, 則 $s'$成績$\ge G$暫標$\gt G$錄標$=g$錄標。此時, $(g,s')$為$M$榜阻撓對, 故 $S_g\subseteq T_g$。

  (b)若$T_i$未額滿, 則$S_i\subseteq T_i$。 證明:若 $s'\in S_i-T_i$, 則 $s'$成績$\ge G$暫標$\gt G$錄標$=i$錄標。此時, $(i,s')$為$M$榜阻撓對, 故 $S_i\subseteq T_i$。

  (c)$S_i$耗額$\le T_i$耗額 證明:若$T_i$額滿, 顯然$S_i$耗額$\le T_i$耗額。若$T_i$未額滿, 由前項 $S_i\subseteq T_i$, 因此$S_i$耗額$\le T_i$耗額。

  (d)若 $T_i$額滿且$S_iot\subseteq T_i$, 則$T_i$最低分大於$S_i$最低分。 證明:由條件, 存在 $s'\in S_i-T_i$。若$T_i$最低分不大於$S_i$最低分, 則$s'$成績$\ge S_i$最低分$\ge T_i$最低分。 如此, $(i,s')$ 為 $M$ 榜阻撓對, 得證。

回到主題, $(d,s)$ 如第一段所述。依據 $d$ 系的管道類別進行後續的論證。

1. $d=z$:$s\in T_z-S_z$。 $s$ 在 $l$ 迴圈被 $S_z$ 排除在外, 代表 $S_z$ 額滿, 且 $s$ 的成績低於 $S_z$系最低分。 因為 $s\in T_z$, 代表最少有一 $s'\in S_z-T_z$, 否則 $T_z$超額。此$s'$ 沒錄取在$z$系, 只好錄取在比 $z$ 系更後的志願或落榜。但在$z$系, $s'$ 的成績高於 $s$, 而且 $s\in T_z$, 故$(z,s')$是 $M$的阻撓對。

2. $d=a$:與前面的論證相同。

3. $d=p$:$s \in T_p-S_p$, 若存在$s'\in S_p-T_p$, 則 $s'$成績$\gt s$成績, 而$s\in T_p$, 此時$(p,s')$為$M$的阻撓對, 故$S_p\subseteq T_p$。 因為$s$被$S_p$排除, 分下面兩種情況討論。

  (a) $S_p$額滿且$S_p$最低分高於$s$成績的狀況:$T_p\supseteq S_p\cup {s}$, 故$T_p$超額, 矛盾。

  (b) $s$的成績$\lt G$暫標的情況:此時, $S_G$額滿, 且 $G$暫標$\gt s$成績$\ge G$錄標。由前面段落的性質~5 , $T_G$準耗$=$所有考內$T_i$耗額總和$+|T_g|\ge $所有考內$S_i$耗額總和$+|S_g|=S_G$準耗$\ge N$榜$G$名額$\ge M$榜$G$名額。 用$T'_G$代表$T_G$移除成績等於$G$錄標的學生後之集合。$S_G$裡的學生成績都大於$G$錄標, 又由性質~5 , $S_g$全部留在$T'_G$裡。 同樣的道理, $T_i$未額滿時, 對應的$S_i$也全部留在$T'_G$裡。$T_i$額滿且$S_i\subseteq T_i$時, 對應的$S_i$也全部留在$T'_G$裡。 $T_i$額滿且$S_iot\subseteq T_i$時, $T_i$全部留在$T'_G$裡。所以$T'_G$準耗仍然不低於$M$榜$G$名額, 所以$T_G$超額, 得矛盾。

4. $d=i$:與前項 $d=p$ 時的論證相同。

5. $d=g$:此時, $s \in T_g-S_g$, $G$暫標$\gt s$成績$\ge G$錄標。接著的論證與 $d=p$ 時的(3b )論證相同。

所有情況都得到矛盾, 故 $M_0$ 為學生榜。 $\Box$

我們以演算法~1 所得的學生榜為正式榜單。

4. 分發情境的推廣

前面的討論是較簡化的分發情境, 在下面略為複雜的情況, 只要略加調整, 用演算法~1 仍然可得學生榜。

1. 每一個原始系, 除了考普管道, 其他管道都可從缺, 管道的錄取優先順序必須事先給定, 考內管道與考普管道可以同時存在。

2. 不同原始系的特種生類別, 不管是考外還是考內, 都可以不同。

3. 104年繁星~, 原住民可選擇以一般生或原住民身分參加, 選擇原住民身分參加的話, 以外加名額方式錄取。 只要把繁星管道細分成「一般繁星」與「繁星外加」兩個管道, 一個考生僅可以將一般繁星與繁星外加中的一個放在衍生志願序中。

4. 104年申請~, 原住民與離島考生, 不能以一般生身分錄取者可以用外加名額錄取。 我們只要把申請管道細分成「一般申請」與「申請外加」兩管道, 考生志願衍生成一般申請、申請外加即可。 因為外加錄取的考生沒有規定競爭成績不得低於一般申請的最低標準, 與考普、考內、考外管道間的關係相比, 情況相對簡單。

5. 考試管道中, 假如護理系限制男生錄取的人數。可以想成男生衍生志願只有考內管道, 女生只有考普管道, 男女生都沒加分。

6. 若政策上允許, 同時具有原住民與退伍軍人身分者, 兩種考外管道可同時參加, 只要將兩考外管道都列入衍生志願序即可。

5. 三管道聯合分發的優點與缺點

5.1. 優點

1.三管道的成績都出來之後, 三管道聯合分發, 因學生榜的存在, 不會有高分低就的問題。

2.省時間。

5.2. 缺點

三管道的成績都出來之後, 三管道聯合分發。因為學生在各管道的排名相當透明, 許多組織會提供落點分析。 填志願時, 相當多的考生, 熱門的考量往往凌駕適性的思維, 導致將越熱門的科系排在越前志願。可想而見的結局是, 學生大多錄取在錄標略低於自己成績的校系而非適合自己性向發展的校系。如此,

相當程度破壞了申請制度中讓大學多元選才的功能。

相當程度破壞了繁星制度讓錄取生分散落在較多中學的功能。

熱門的校系越熱門, 冷門的校系越冷門, 不利於校系往有特色的方向發展。

絕大部分的學生, 因為越多管道越多機會, 大多會參加考試管道。考試管道純以考試成績取才, 學生只好分分計較。因為分分計較, 只好將所有時間用來準備考試, 不管多麼瑣碎的零碎知識也要強記硬背, 嚴重浪費年輕學子的青春與活力。

參考資料

Gale, David and Lloyd Shapley:"College Admissions and the Stability of Marriage", American Mathematical Monthly, 69 (1962), 9-15. Dan Gusfield and Robert W. Irving: "The Stable Marriage Problem : Structure and Algorithms", The MIT Press, 1989. 姚瞻海: 聯合分發數學模式的研究 $:$ 限制名額與保護名額, 淡江大學博士論文, 2003。 大學招生委員會聯合會: 95學年度大學考試入學分發招生簡章, 2006。 大學招生委員會聯合會: 96學年度大學考試入學登記分發相關資訊, 2007。 楊宏章: 考試分發制的可行分發模式, 考試學刊, 3, (2007), 27-58。 大學招生委員會聯合會: 104學年度大學考試入學分發招生簡章, 2015。 大學招生委員會聯合會: 104學年度大學繁星推薦入學招生簡章, 2015。 大學招生委員會聯合會: 104學年度申請入學分發簡章, 2015。

---本文作者為台大數學系退休副教授---