文章出處

注:本次成績排行榜是針對結對項目二的點評分數

作業要求

http://www.cnblogs.com/easteast/p/7604534.html

評分細則

(1)有貼生成得最“好”的數據鏈接(5'),并詳細解釋了"數據生成"程序的原理與所考慮的因素。(10')
(2)數據建模及匹配程序的思路及實現方式方面,給分點主要在幾個方面:是否有清晰明了的框架圖或結構圖(10’),算法的理論基礎或源自的相似問題,對原始算法做出的改進等(10'),建模時考慮了哪些因素,是如何把這些因素綜合進算法的(10')。
(3)代碼規范方面只要給出結對時采用的代碼規范,比如變量與方法的命名,接口約定等均可得分(5')
(4)結果評估方面,主要從三方面評分:是否提出了合理的評價結果的方式,比如從學生滿意度,社團滿意度等多重指標都可(8'),是否從得到的結果預測與評估算法的局限性(6’),是否針對不同輸入數據的場景進行了實驗,觀察算法的穩定性與通用性(6')。
(5)已經嘗試過結對編碼,你一定很多話要說。請發表結對感受,以及兩個人對彼此結對中的閃光點或建議的分享。(10‘)

作業情況總結

本次結對項目是所有個人作業里整體質量最差的一次,滿分100分的情況下整體平均分只有48分。小于60分的同學占整體的2/3,唯一一個上80分的同學是陳翔同學。綜合大家在博客里的抱怨來看,本次作業沒有完成好主要有幾個原因:(1)結對作業的日期放在了國慶假期,但很多同學很早就制定好了出行計劃,沒辦法與小伙伴結對編程。許多組作業開始的時間很晚,所以質量不佳。這個助教也與棟哥商量過,明年會盡量避免這種情況。(2)許多同學一開始不知道作業采用的JSON格式是一種通用數據格式,于是自己編寫了Parser,花了很多無用功;(3)大部分同學在編程方面花費了許多時間,但在題意的理解上卻沒有下功夫。這個題目并不是一個板上釘釘的唯一解問題,而是一個開放性的問題。它的本意就是希望大家在綜合考慮現實世界的情況下,用數據生成程序生成一些與現實世界分布相近的數據。舉個栗子,現實世界中不同部門熱度不同,所以會大概率出現80%的學生選擇20%的部門的情況,這是在數據生成部分應當考慮的。在生成模擬現實世界的數據后,同學們再設計一套匹配的算法去優化一些參數,這些參數可以是部門的滿意度,可以是學生的滿意度,也可以它們的加權和。因為存在著學生志愿與部門渴求的矛盾性,匹配程序里面一定會有一些權衡,這也是我們希望同學們重點去闡述與在博客中描述的部分:如何處理這些需要權衡之處?怎樣的優化目標是好?為什么說這樣的優化目標就好,有數據佐證嗎?希望同學們可以從這里得到一些新的啟發,對這個問題有一次全新的認識。

本次結對項目大部分同學都是用部門挑選人的方式來遍歷挑選,挑選主要參考因素權重計算的分值。對于這樣做的小組我有一個統一的問題要問:這樣的算法是穩定的么?是不是先挑選人的部門更有利呢?這樣做的小組可以思考一下。有一部分小組采用的是穩定婚姻算法的改良版來完成作業,從最終評估的結果來看效果并不理想。第1組的同學采用了網絡最大流最小流的方法來完成作業,算法思路很有意思,可惜程序運行不出來結果,有興趣的老師或同學可以點擊下方小組鏈接查看。

本次作業也無疑對測試提出了很大的挑戰:開放性的問題也就意味著我們不能用傳統的標準答案來衡量大家匹配算法的好壞。而實際上,我們最終采用的是群體決策結果為評價標準的做法。選擇一份對現實世界建模做得較好的輸入文件,收集所有小組程序運行結束后的輸出文件,這樣就得到了每位同學對于每個部門招到哪些學生的期望。將所有同學的結果合并為一份結果,按照出現次數從高到低排序,就得到了小組們群體決策下每個部門錄取同學的優先級。再然后,利用理想錄取優先級表對各個小組的實際匹配結果進行打分,打分的具體公式受信息搜索領域MRR(Mean Reciprocal Rank)的啟發,用如下公式表示小組在部門\(i\)的匹配得分:
\[score_{ij} = c / rank_{term_{ij}} ( j =1,2,..n) \]
其中\(term_{ij}\)指小組匹配結果中第\(i\)個部門錄取的第\(j\)個同學,\(rank_{term_{ij}}\)指該同學在理想優先級表中所處的位置,\(c\)為常數。

這個公式顯式的意義是:如果大家都覺得同學A應該被部門B錄取(\(rank_{A}\)很低,因為優先級很高,靠前),小組匹配的結果中部門B確實錄取了同學A,那么匹配程序的得分應當高些;如果大家都覺得同學A不應該被部門C錄取(\(rank_{A}\)很高,因為優先級很低,靠后),小組匹配的結果中部門C卻錄取了同學A,那么匹配程序的得分應當低些。

本次項目測試選擇的是陳翔同學設計的輸入文件(需要下載驗證的同學下載后更改后綴為txt即可),在此也強烈推薦他的博客,博客的結構、匹配的方法和建模的思路都非常值得大家學習。當然也有不少同學在本次項目測試中得到了低分甚至0分,助教復核過了所有程序,列出各個組出錯的原因如下:

分組 出錯原因
1 死循環,沒有錯誤信息
2 Json格式不對
4 所有都是unlucky boy
5 沒有Github項目地址
8 沒有輸出文件
9 java.lang.UnsupportedClassVersionError: main/Main : Unsupported major.minor version 52.0
11 沒有輸出文件
19 所有都是unlucky boy
25 沒有test.exe
27 所有都是unlucky boy
28 項目崩潰,停止運行
29 運行崩潰
31 輸出的是空白,沒有實質內容
32 崩潰退出
33 無可執行文件

得分明細

分組 學號 12.1 12.2 12.3 12.4 12.5 12.6 12.7 總分
1 500 10 18 5 8 5 0 0 46
1 908 10 18 5 8 5 0 10 36
2 102 10 18 3 5 6 3 0 45
2 409 10 18 3 5 6 3 0 45
3 118 6 8 1 3 2 0 0 20
3 509 6 8 0 1 4 0 5 14
4 106 11 20 5 12 8 5 0 61
4 634 6 15 5 0 5 5 0 36
5 433 0 10 4 0 10 0 0 24
5 109 0 4 0 0 4 0 0 8
6 308 15 25 5 12 10 5 0 72
6 113 15 18 5 10 10 5 0 63
7 142 15 22 4 10 8 7 0 66
7 216 15 21 4 10 8 7 0 65
8 209 15 26 5 20 10 5 0 81
8 316 15 22 5 16 10 5 0 73
9 245 12 23 5 10 6 0 0 56
9 210 10 18 1 12 5 0 0 46
10 212 9 22 2 10 6 20 0 69
10 240 9 17 2 10 7 20 0 65
11 220 9 10 5 5 2 0 0 31
11 344 9 10 5 5 2 0 0 31
12 232 8 22 4 8 7 13 0 62
13 243 12 15 5 11 6 0 5 44
13 642 12 14 5 11 6 0 5 43
14 306 0 0 0 0 0 14 0 14
14 314 0 0 0 0 0 14 0 14
15 339 8 12 2 3 4 16 0 45
15 309 7 12 0 3 4 16 0 42
16 310 9 17 5 6 7 13 0 57
16 124 9 17 5 6 7 13 10 47
17 312 12 18 2 10 8 10 0 60
17 340 12 10 2 0 8 10 0 42
18 315 13 20 5 12 5 11 0 66
18 332 13 20 5 12 5 11 30 36
19 324 14 25 5 5 6 5 0 60
19 411 14 25 5 5 6 5 0 60
20 328 4 18 2 0 4 12 0 40
20 337 0 15 2 2 3 12 0 34
21 331 7 17 3 8 8 11 0 54
21 430 7 13 3 8 8 11 0 50
22 333 9 22 5 10 2 13 0 61
23 517 15 18 5 10 4 11 0 63
23 336 15 12 5 10 4 11 0 57
24 427 6 18 4 1 8 14 0 51
24 341 6 12 4 1 5 14 15 27
25 404 8 21 5 16 8 0 0 58
25 443 8 21 5 16 8 0 0 58
26 412 8 9 5 0 8 0 0 30
26 414 8 9 5 0 8 0 0 30
27 424 13 20 5 12 6 5 0 61
27 513 13 20 5 12 6 5 10 51
28 442 15 25 5 17 10 0 0 72
28 522 15 25 5 17 10 0 0 72
29 506 13 20 5 10 6 0 0 54
29 529 8 12 4 3 3 0 0 30
30 541 12 22 5 14 10 11 0 74
30 512 10 14 5 6 5 11 0 51
31 641 10 10 5 3 4 0 0 32
31 513 6 10 5 3 4 0 0 28
32 537 12 20 5 0 9 0 5 41
32 518 10 20 5 0 9 0 5 39
33 533 10 12 5 0 7 0 0 34
33 538 10 12 5 0 7 0 0 34
34 610 11 16 5 6 4 20 0 62
34 609 8 12 5 6 3 20 0 54
35 614 10 19 5 9 10 10 0 63
35 627 10 17 5 9 8 10 0 59
36 626 12 18 4 7 8 18 0 67
36 643 12 18 4 6 8 18 0 66
37 631 10 18 5 8 7 11 0 59
37 629 10 14 5 8 7 11 0 55
38 630 12 15 5 6 6 11 0 55
38 644 12 15 5 6 6 11 0 55
125 0 0

注:各項對應內容:

  • 12.1:好的數據與生成原理(15')
  • 12.2:數據建模匹配程序思路與實現(30')
  • 12.3:代碼規范(5')
  • 12.4:結果評估(20')
  • 12.5:結對感受(10')
  • 12.6:項目測試得分(20')
  • 12.7:扣分,這里主要是指因為博文的高度重復而導致的扣分,以先發博客的人為原創作者為準。

得分排行榜


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()