書籍介紹
本書源自作者在國立臺灣大學資訊工程學系講授「電腦對局理論」多年之講義與研究成果,旨在透過解析棋牌對局的運算技巧,闡明電腦如何模擬人類的智慧行為。內容完整涵蓋單人益智遊戲至雙人對弈系統,從廣度、深度與啟發式搜尋演算法出發,逐步深入探討經典的 Alpha-Beta 剪枝、正反斥候演算法及同形表加速捷思法,並詳加剖析近年引領技術突破的蒙地卡羅樹搜尋,以及其與深度學習的整合應用。
此外,書中亦針對暗棋等隨機型對局、平行化運算、開局與殘局資料庫建置,乃至圖形歷史交互作用等進階主題進行透徹分析。
全書結合理論分析、上百幅圖解與演算法程式碼,兼具學理深度與工程實作視野,為電腦對局與人工智慧領域不可或缺的專業專書。
目次
序一(第一版) III
序二(第一版) V
再版序IX
致謝XI
第1章 電腦對局硏究概論 1
1.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 智慧簡述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 圖靈測試. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 對局硏究簡史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 18 世紀號稱第一個會下西洋棋的機器人. . . . . . . . . . . . . . . 5
1.3.2 西洋棋殘局自動機. . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 東方的相關硏究. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 電腦對局學術硏究簡史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.1 早期(1970年之前) . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 初期(1970 ∼ 1980年) . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.3 中期(1980 ∼ 1990年) . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.4 近期(1990 ∼ 2012年) . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.5 當代(2012年至今) . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 對局遊戲概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.1 對局分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5.1.1 以獲勝方式分. . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.1.2 以是否對稱分. . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.1.3 以資訊傳達的完整性分. . . . . . . . . . . . . . . . . . . 14
1.5.1.4 以玩家對於對局規則的掌握程度分. . . . . . . . . . . . . 14
1.5.1.5 以是否帶有機率性分. . . . . . . . . . . . . . . . . . . . . 14
1.5.2 計算複雜度(Computational complexity) . . . . . . . . . . . . . . 15
1.5.3 硏究新領域. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 相關期刊與會議. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7 結語和本書結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.8 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
第2章 單人對局之基礎搜尋演算法 21
2.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.2 本章常用名詞和定義. . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 暴力搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 廣度優先搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.2 廣度優先搜尋之改良:利用硬碟儲存佇列. . . . . . . . . . . . . . 27
2.2.3 深度優先搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.4 深度優先搜尋之改良:運用雙堆疊. . . . . . . . . . . . . . . . . . 32
2.2.5 深度優先搜尋之改良:限制搜尋的深度. . . . . . . . . . . . . . . 34
2.2.6 深度優先搜尋之改良:逐層加深. . . . . . . . . . . . . . . . . . . 34
2.2.7 深度優先搜尋之改良:深度限制及方向選擇. . . . . . . . . . . . . 37
2.2.8 雙向搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3 啟發式搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.1 A∗ 搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.2 考量總花費門檻值之深度優先搜尋. . . . . . . . . . . . . . . . . . 42
2.3.3 挑選著手排序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.3.4 逐層加深之深度優先及A∗ 演算法的結合. . . . . . . . . . . . . . . 44
2.3.5 利用IDA∗ 解15-puzzle . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
第3章 單人對局之進階搜尋演算法 49
3.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2 (n2−1)-puzzle 問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 15-puzzle 之狀態空間. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.1 基本性質. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.2 盤面奇偶性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.3 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.4 樣式資料庫. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.1 邊緣. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.2 改良邊緣數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5 24-puzzle 之解法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6 其他形式的啟發式函數設計. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.7 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.8 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
第4章 雙人對局概論 65
4.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2 本章常用名詞和定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3 對局程式棋力在1990年的估測. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4 雙人對局成果簡述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.1 收斂型對局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.2 發散型對局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.4.3 連接型對局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.5 10或11路六貫棋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.5.1 基本性質. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.5.2 策略盜用論點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.5.3 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.6 其他相關議題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6.1 對局複雜度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6.2 先手優勢. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.6.3 對局程式棋力估測. . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.6.4 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.7 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.8 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
第5章 由西洋棋概述雙人對局程式的設計 87
5.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.1.1 西洋棋棋規及相關知識. . . . . . . . . . . . . . . . . . . . . . . . . 87
5.1.2 對局複雜度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.2.1 對局樹複雜度. . . . . . . . . . . . . . . . . . . . . . . . . 89
5.1.2.2 狀態空間複雜度. . . . . . . . . . . . . . . . . . . . . . . 89
5.1.3 殘局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.1.4 布局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2 審局函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.1 完美審局函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2.2 近似審局函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2.2.1 子力價值. . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.2.2.2 棋盤狀態資訊. . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2.2.3 兵卒陣型. . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.2.2.4 王的安全性. . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.2.2.5 威脅與攻擊. . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2.3 審局函數之設計. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2.4 獲勝條件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.3 基於審局函數之搜尋策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.3.1 A 型策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.3.2 B 型策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.3.2.1 受迫走法. . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.3.2.2 寧靜搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3.2.3 其他特殊考量. . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4 對局程式撰寫技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4.1 盤面的基本資料結構. . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4.2 著手產生器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4.3 著手排序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.5 對弈、棋風及策略的變化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.6 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.7 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
第6章 Alpha-Beta 切捨演算法 109
6.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.1.1 位置與搜尋樹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.1.2 樹節點編號法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.2 最小最大化搜尋演算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.3 正反最大演算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.4 Alpha-Beta 切捨演算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.4.1 改進的契機. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.4.2 Alpha 剪枝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.4.3 Beta 剪枝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.4.4 立卽Alpha-Beta 切捨. . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.4.5 深層Alpha-Beta 切捨. . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.4.6 一般性Alpha-Beta 切捨演算法的實作. . . . . . . . . . . . . . . . . 126
6.4.7 搜尋順序與切捨之關係. . . . . . . . . . . . . . . . . . . . . . . . . 127
6.5 效能分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.5.1 最佳可預期之狀況. . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.5.2 關鍵節點之分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.5.3 各類節點間的關係. . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.5.4 定理6.6 的證明及Algorithm 26 的效率分析. . . . . . . . . . . . . 136
6.5.5 平均狀況之效率分析. . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.5.6 完美排序與最佳排序. . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.6 Alpha-Beta 搜尋的變形及性質. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.6.1 單邊淺層版Alpha-Beta 切捨F1 . . . . . . . . . . . . . . . . . . . . 141
6.6.2 硬式深層版Alpha-Beta 切捨F2 . . . . . . . . . . . . . . . . . . . . 142
6.6.3 軟式深層版Alpha-Beta 切捨F3 . . . . . . . . . . . . . . . . . . . . 143
6.6.4 演算法F2 與F3 的比較. . . . . . . . . . . . . . . . . . . . . . . . . 144
6.7 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.8 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
第7章 斥候與正反斥候 149
7.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.2 斥候演算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.2.1 基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.2.2 如何TEST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.2.2.1 TEST> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.2.2.2 TEST< . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.2.3 斥候演算法之實作. . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.3 斥候演算法的效能分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.3.1 TEST 和Alpha-Beta 切捨的搜尋節點數比較. . . . . . . . . . . . . 156
7.3.2 TEST 演算法拜訪之節點數. . . . . . . . . . . . . . . . . . . . . . . 158
7.3.3 完美排序樹中斥候演算法所拜訪之節點數. . . . . . . . . . . . . . 160
7.3.4 斥候演算法與Alpha-Beta 切捨演算法之比較. . . . . . . . . . . . . 161
7.3.5 斥候演算法之效能分析. . . . . . . . . . . . . . . . . . . . . . . . . 163
7.4 斥候和Alpha-Beta 切捨之結合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.4.1 Alpha-Beta 切捨和TEST 的關聯. . . . . . . . . . . . . . . . . . . . 164
7.4.2 以空區間搜尋代替TEST . . . . . . . . . . . . . . . . . . . . . . . . 165
7.4.3 正反斥候演算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.4.4 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
7.5 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
7.6 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
第8章 同形表和切捨捷思法 173
8.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.2 同形表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
8.2.1 同形表運作原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
8.2.1.1 何時可以使用歷史資料. . . . . . . . . . . . . . . . . . . 175
8.2.1.2 使用同形表尋獲資訊之演算法. . . . . . . . . . . . . . . 175
8.2.1.3 如何更新同形表. . . . . . . . . . . . . . . . . . . . . . . 176
8.2.2 加入同形表之Alpha-Beta 切捨演算法. . . . . . . . . . . . . . . . . 176
8.3 Zobrist 雜湊函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
8.3.1 理論基礎. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
8.3.2 雜湊函數之設計. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
8.3.3 錯誤叢集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
8.3.4 使用時之參數設定. . . . . . . . . . . . . . . . . . . . . . . . . . . 180
8.4 動態調整搜尋區間大小. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8.5 著手排序之改進. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.5.1 知識捷思法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
8.5.2 利用歷史資訊找出好的著手次序. . . . . . . . . . . . . . . . . . . 184
8.5.3 否議表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
8.5.4 殺手捷思法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
8.5.5 歷史捷思法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
8.5.6 實驗數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
8.6 動態調整搜尋深度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.6.1 虛手切捨. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.6.2 因著手較晚展開之搜尋裁減. . . . . . . . . . . . . . . . . . . . . . 195
8.7 動態搜尋延伸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.7.1 動態深度延伸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
8.7.2 寧靜搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
8.7.3 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
8.8 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
8.9 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
第9章 蒙地卡羅樹搜尋演算法 207
9.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
9.2 簡易圍棋規則. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
9.2.1 基本定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
9.2.1.1 棋串. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
9.2.1.2 氣. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
9.2.1.3 眼. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
9.2.1.4 虛手. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.2.1.5 叫吃. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.2.1.6 貼目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.2.1.7 打劫. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.2.2 一般規則. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.3 最初的演算法:MCSpure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
9.4 MCSpure 之首要問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
9.4.1 K 臂吃角子老虎問題. . . . . . . . . . . . . . . . . . . . . . . . . . 214
9.4.2 信賴上界. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
9.4.3 以標準差修正信賴上界值. . . . . . . . . . . . . . . . . . . . . . . 218
9.5 MCSpure 的第二個問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
9.5.1 優先樹擴展. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
9.5.2 蒙地卡羅最小最大化樹搜尋. . . . . . . . . . . . . . . . . . . . . . 220
9.5.3 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
9.6 信賴上界的樹搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.7 實作技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9.8 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.9 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
9.10 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
第10章 蒙地卡羅搜尋和領域獨立增強技巧之結合 229
10.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10.2 節點擴展策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10.3 漸進式剪枝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
10.3.1 實驗結果與討論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
10.3.2 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
10.4 手順不羈法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.4.1 實驗結果與討論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.4.2 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.5 模擬數值快速估計法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
10.5.1 其他綜合評估公式. . . . . . . . . . . . . . . . . . . . . . . . . . . 236
10.5.2 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
10.6 模擬退火法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
10.7 固定深度全展開. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
10.8 各種方法的整合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
10.9 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
10.10 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
第11章 蒙地卡羅樹搜尋和機器學習之結合 243
11.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
11.2 機器學習先備知識. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
11.2.1 盤面特徵. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
11.2.2 機器學習主要類型. . . . . . . . . . . . . . . . . . . . . . . . . . . 245
11.2.3 在蒙地卡羅樹搜尋中加入離線學習. . . . . . . . . . . . . . . . . . 247
11.2.4 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.3 基本機器學習架構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3.1 貝氏網路學習架構. . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3.2 成對比較機率模型. . . . . . . . . . . . . . . . . . . . . . . . . . . 249
11.3.2.1 常用模型. . . . . . . . . . . . . . . . . . . . . . . . . . . 249
11.3.2.2 Elo 的實作範例. . . . . . . . . . . . . . . . . . . . . . . . 250
11.4 成對比較機率模型之實作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.4.1 Maximization-Minorization 法. . . . . . . . . . . . . . . . . . . . . . 250
11.4.2 模擬平衡法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.4.3 模擬階段的使用與討論. . . . . . . . . . . . . . . . . . . . . . . . . 253
11.5 類神經網路與深度學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
11.5.1 類神經網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
11.5.2 深層類神經網. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
11.5.3 卷積神經網路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.5.4 監督式與強化式學習綜合法. . . . . . . . . . . . . . . . . . . . . . 258
11.5.5 擴展階段的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
11.5.6 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
11.6 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
11.7 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
第12章 隨機型對局之搜尋和切捨 263
12.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
12.2 實例探討. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
12.2.1 暗棋實例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.2.2 愛因斯坦棋實例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.3 隨機行爲節點的機率分佈. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
12.4 基礎暴搜演算法STAR0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
12.5 隨機行爲節點搜索的切捨理論基礎. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
12.6 切捨演算法STAR0.5 和STAR1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
12.6.1 均匀機率型之STAR0.5 . . . . . . . . . . . . . . . . . . . . . . . . . 273
12.6.2 均匀機率型之STAR1 . . . . . . . . . . . . . . . . . . . . . . . . . . 275
12.6.3 一般機率型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
12.6.4 最大公因數型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
12.7 隨機行爲節點的進一步切捨. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
12.7.1 STAR2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
12.7.2 STAR2.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
12.7.3 實驗數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
12.7.4 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
12.8 對隨機行爲節點進行蒙地卡羅樹搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
12.8.1 稀疏抽樣. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
12.8.2 稀疏抽樣理論依據. . . . . . . . . . . . . . . . . . . . . . . . . . . 299
12.9 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
12.10 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
第13章 平行化對局樹搜尋 301
13.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
13.2 平行化之評估. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
13.2.1 Amdahl 定律. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
13.2.2 超線性加速. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
13.3 共有記憶體之使用和管理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
13.4 平行化Alpha-Beta 切捨設計. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
13.4.1 主變化分割. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.4.2 弟節點等候. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
13.4.3 動態樹分割. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
13.5 平行化蒙地卡羅樹搜尋設計法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
13.5.1 葉節點平行化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
13.5.2 根節點平行化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
13.5.3 整體同步之樹平行法. . . . . . . . . . . . . . . . . . . . . . . . . . 313
13.5.4 局部同步之樹平行法. . . . . . . . . . . . . . . . . . . . . . . . . . 313
13.5.5 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
13.6 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
13.7 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
第14章 開局和殘局知識庫 317
14.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
14.2 開局庫. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
14.2.1 開局庫之需求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
14.2.2 開局庫製作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
14.2.3 開局庫之建構方式. . . . . . . . . . . . . . . . . . . . . . . . . . . 319
14.2.4 開局和中局的銜接. . . . . . . . . . . . . . . . . . . . . . . . . . . 320
14.2.5 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
14.3 殘局庫. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
14.3.1 回溯分析演算法概論. . . . . . . . . . . . . . . . . . . . . . . . . . 325
14.3.2 編碼解碼函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
14.3.3 回溯分析演算法理論基礎. . . . . . . . . . . . . . . . . . . . . . . 329
14.3.3.1 反覆前向檢查. . . . . . . . . . . . . . . . . . . . . . . . . 332
14.3.3.2 分層反向傳遞與前向檢查. . . . . . . . . . . . . . . . . . 333
14.3.3.3 反向傳遞與未知子節點計數法. . . . . . . . . . . . . . . 335
14.3.3.4 分層反向傳遞與未知子節點計數法. . . . . . . . . . . . . 336
14.3.4 回溯分析演算法之實作考量. . . . . . . . . . . . . . . . . . . . . . 338
14.3.5 回溯分析演算法之成果. . . . . . . . . . . . . . . . . . . . . . . . . 340
14.3.6 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
14.4 殘局知識一致性驗證. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
14.5 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
14.6 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
第15章 進階硏究課題選粹 345
15.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
15.2 圖形歷史交互作用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
15.2.1 循環和. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
15.2.2 循環勝. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
15.2.3 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
15.3 對手模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
15.3.1 不同審局函數的影響. . . . . . . . . . . . . . . . . . . . . . . . . . 351
15.3.2 處理和局時之特殊考量. . . . . . . . . . . . . . . . . . . . . . . . . 351
15.3.3 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
15.4 多人對局樹之搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
15.4.1 MAXn 演算法之切捨. . . . . . . . . . . . . . . . . . . . . . . . . . 354
15.4.2 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
15.5 硬體加速:以位元棋盤爲例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
15.5.1 常用指令集簡例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
15.5.2 位元棋盤的參個範例. . . . . . . . . . . . . . . . . . . . . . . . . . 359
15.5.2.1 計算圍棋棋盤上所有可能下的空白點位數目. . . . . . . 359
15.5.2.2 計算暗棋中棋盤上同色已翻出的所有棋子. . . . . . . . . 359
15.5.2.3 在黑白棋中找到同列或同行的所有棋子. . . . . . . . . . 359
15.5.3 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
15.6 證明數搜尋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
15.6.1 二元值對局樹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
15.6.2 證明數與反證數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
15.6.3 多元值對局樹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
15.6.4 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
15.7 其他進階硏究課題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
15.8 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
15.9 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
第16章 對局系統實作考量 371
16.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
16.2 資源使用考量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
16.2.1 時間資源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
16.2.1.1 量測時間. . . . . . . . . . . . . . . . . . . . . . . . . . . 371
16.2.1.2 時間配置. . . . . . . . . . . . . . . . . . . . . . . . . . . 372
16.2.1.3 背景思考. . . . . . . . . . . . . . . . . . . . . . . . . . . 373
16.2.1.4 其他考量. . . . . . . . . . . . . . . . . . . . . . . . . . . 373
16.2.1.5 延伸思考. . . . . . . . . . . . . . . . . . . . . . . . . . . 373
16.2.2 其他資源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
16.3 程式實作考量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
16.4 軟體工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
16.4.1 編譯器的最佳化選項. . . . . . . . . . . . . . . . . . . . . . . . . . 375
16.4.2 除錯工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
16.4.3 效率分析工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
16.4.4 軟體管理工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
16.4.5 軟體版本控管工具. . . . . . . . . . . . . . . . . . . . . . . . . . . 377
16.4.6 軟體整合發展環境. . . . . . . . . . . . . . . . . . . . . . . . . . . 378
16.5 實戰驗證分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
16.5.1 基本理論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
16.5.2 特例:沒有和局之對局. . . . . . . . . . . . . . . . . . . . . . . . . 381
16.6 結語. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
16.7 練習題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
附錄A 範例程式 385
1 找子節點中UCB 最大值者的程式範例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
2 建立及維護UCB 樹的相關程式範例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
3 操作UCB 樹的進階資料結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
4 暗棋相關程式範例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
參考文獻 401
中文索引 429
英文索引 439
編/著/譯者簡介
徐讚昇(Tsan-sheng Hsu)
中央研究院資訊科學研究所研究員
國立臺灣大學資訊工程學系兼任教授
主要研究領域為電腦對局理論及實作、演算法、圖論、資訊隱私及保護和資料密集運算
許舜欽(Shun-Chin Hsu)
國立臺灣大學資訊工程學系退休教授
主要研究領域為電腦對局理論及實作
陳志昌(Jr-Chang Chen)
臺北大學資訊工程學系教授
蔣益庭(Yi-Ting Chiang)
中原大學應用數學系助理教授
陳柏年(Bo-Nian Chen)
中原大學應用數學系助理教授
劉雲青(Yun-Ching Liu)
日本樂天首席機器學習工程師
張紘睿(Hung-Jui Chang)
國立東華大學資訊工程系助理教授
蔡數真(Sue-Chen Tsai)
臺大資訊工程所博士班
林庭羽(Ting-Yu Lin)
台灣國際航電工程師
范綱宇(Gang-Yu Fan)
台灣國際航電資料工程工程師
分類
- 書籍分類 :教育學習>大學出版
- 出版品分類:圖書
- 主題分類:
教育文化
- 施政分類:
教育及體育
其他詳細資訊
- 適用對象:成人(學術性)
- 關鍵詞:人工智慧,電腦遊戲,電腦程式設計
- 附件:無附件
- 頁/張/片數:496
授權資訊
- 著作財產權管理機關或擁有者:國立臺灣大學出版中心
- 取得授權資訊:聯絡處室:國立臺灣大學出版中心
姓名:吳育燐
電話:02-33665235
地址:台北市羅斯福路四段1號