• 沒有找到結果。

電腦對局遊戲(Computer Games)經過多年的發展,其人工智慧程式 已有逐步追上甚至超越人類的程度。能夠達到這樣的成就,各種輔助工 具軟體與環境絕對功不可沒。

另一方面,業界早已開始採用包含 OOP、agile programming[3]、

extreme programming[9][11][13][15]、test-driven programming[4][12][16]等 等各種開發技術,藉由軟體工程,我們能將學術用軟體也保持在一個容

1.1.1

棋譜編輯器(Game Record Editor)

過去我們為了六子棋[22][23]研究開發了一款編輯器程式,而在我們 開始進行圍棋、象棋等的研究後,它也被改成能適合其他棋類。

圖 1:棋譜編輯器

在發展其他棋類編輯器的過程中,我們發現在不同棋類間是有相當的 共通性,於是我們就希望能將編輯器改寫成能夠快速的改成適合其他棋 類的框架,使其他棋類能更容易的套用進來。

1.1.2

工作層級搜尋演算法(Job-Level Search Algorithm)

除了基本的棋譜閱覽功能,編輯器還支援連接到電腦對局桌機網格,

並能容易地創造工作、手動分派工作到網格系統內,甚至能夠將上述流

程根據工作層級搜尋演算法(Job-Level Search Algorithm)給自動化。

工作層級搜尋(Job-Level Search)是一種將演算法平行化的方法

(Methodology),是由吳教授等人提出[24],原本用於平行化證明數搜尋

(Proof Number Search)[1][2]的方法。後來發現工作層級搜尋(Job-Level Search)的概念是能夠套用在其他很多種演算法上,如蒙地卡羅樹搜尋

(Monte-Carlo Tree Search)[8]及 alpha-beta 搜尋[10]等。

有鑑於此,我們也希望各類演算法能快速的改用工作層級的方式,因 此在編輯器上,我們也期望提供一個框架使得工作層級搜尋演算法能夠 快速的發展。

1.1.3

電腦對局遊戲桌機網格(Computer Game Desktop Grid)

如上所述,電腦對局桌機網格[21]是用來提供遠端運算的平台,其由 三者所組成:仲介者(Broker)、工作者(Worker)、使用者(Client)。使 用者經由連線到仲介者送出工作,而仲介者再轉送工作給工作者;同樣 地,工作者的工作結果也會經由仲介者送回使用者。

圖 2:電腦對局遊戲桌機網格概念圖

過去已有一個能在 Windows 與 Linux 執行的工作者軟體,但其程式 碼是分別為 Windows 與 Linux 維護一份,如此導致工作者難以被轉移到 其他作業系統,且也造成維護的困難。

另外,由於在過去,電腦對局桌機網格並沒有錯誤容忍的能力,我們 便提出多重仲介者的構想,冀望使這平台能夠提供錯誤容忍、可延展、

以及負載平衡的能力,仲介者的修改主要在[14],此篇論文主要在說明包 含工作者與使用者(前面所提的編輯器即是使用者的一例)的終端兩方 之修改。我們也在這裡發現使用者與工作者是有著一些相似處。

因此,我們期望工作者能有一個方法來快速地轉移到其他作業系統,

並且能輕鬆地維護;另外在工作者與使用者間,也希望能重複利用它們 之間相似的模組。

1.2 研究目標

我們希望能提供一整套的軟體框架,使用它,發展者可以:

 簡單的發展各種棋類的棋譜編輯器。

 簡單的將工作者移植到各種作業系統上。

 簡單的快速發展各類工作層級搜尋演算法。

為了能提供上述功能,框架內包含下列元件:

 用來連接電腦對局桌機網格的函式庫。

 設計棋譜編輯器用的應用程式介面。

 支援工作層級搜尋演算法的應用程式介面。

 用以移植工作者至不同作業系統的應用程式介面。

1.3 本文大綱

在第一章我們會介紹此篇論文之研究動機與欲完成的目標,第二章中 則簡介過去開發的輔助工具與環境,第三章會說明我們的框架是如何設 計的,並在第四章搭配一些簡單的個案分析,說明套用這框架後開發會 變得有多容易,最後在第五章下一個結論,並說明未來的研究方向。

相關文件