• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第五章 詴題生成操作範例

5.1:問題描述

本研究專注於演算法領域的問題生成,在第二章分析完演算法的特徵以及製作方 式後,接下來的目的是盡可能的在可行範圍內允許使用者自訂詴題特徵,並提供多種 讓使用者儲存生成結果的方式。並且為了避免使用者不夠了解題目相關的特性,在輸 入參數上過於極端導致詴題不夠理想或是無法生成詴題,必頇先制定好參數的建議值 以及說明。

根據演算法的特性來決定哪些參數是使用者可以自行決定的,通常詴題特性相似 的演算法所能讓使用者決定的參數也會較為類似,例如圖形相關的演算法通常都可以 指定總節點數以及總邊數,而文字相關的演算法通常是指定文字是否重複以及範圍。

除此之外某些演算法會因為其計算的過程,而有著較為特殊的參數可以設定。例如 Dijkstra 最短路徑演算法的計算過程會是畫一張表,並且逐步的對每個點觀察,持續對 表進行更新,最後完成的表便為解答,此時更新表的次數就與題目的難易度與花費時 間息息相關,越高的表更新次數會花費越多的時間與心力來完成這道詴題。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

5.2:選擇問題與輸入參數

圖 5-1:網頁範例圖

當使用者進入本研究所設計的頁面後,首先選擇製作何種演算法之詴題,接下來 會被引導至該演算法的頁面。此頁面會告知此演算法的相關資訊,並出現表單供使用 者設定參數。一開始會有預設的參數,此預設參數將與大多詴題的數據差距不大,所 以於此預設參數附近的數字來當作參數製作詴題通常都可以成功製作出題目。

然而當參數過於極端或是無法配合時,可能會導致生成詴題花費過多時間或是無 法產生題目的狀況。所以本研究將對參數做一些限制,這些限制並非是為了限制出題 者的自由,而是為了降低生成詴題出錯的機率。例如:圖形詴題中設定點的數量不可 大於邊的數量(否則將導致無法產生圖形)、樹狀圖的樹高不能過高(否則會花費過多時 間進行計算)等等的設定來對參數設限。使用經過我們設置限制後的詴題生成工具,使 用者不需要擔心所設置的參數是否能成功生成詴題,因為不能大多生成詴題的狀況已 經被我們預先排除,使用者可以輕鬆的設置參數並製作詴題。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

5.3:結果呈現

當使用者選擇好所希望的參數以後,接下來 Clingo 便會開始進行求解。求解過程 中所花費的時間會與演算法本身的複雜度以及使用者所設置的參數有關。構築較為簡 單的演算法在生成二十左右的詴題約數十秒的時間,但是構築較為複雜的演算法(例如 生成霍夫曼樹),會因為 Clingo 窮舉的特徵,只要參數稍微多一些,花費時間便成指 數成長,導致生成少量題目也可能需花費上百秒的時間。

當 Clingo 計算完後,會將計算完以後的數據傳到後台,接下來經過本系統的文字 生成以及使用 Graphviz 生成圖片以後,如圖片 5-2 那樣呈現在網頁上供使用者觀看,

如此一來便完成詴題生成的手續。使用者可以對列出來的個別詴題進行下載的動作,

或是選擇直接全部詴題進行打包下載,如此一來便可得到符合使用者所希望的詴題,

且過程並不需要花費使用者多少心力與時間。

圖 5-2:結果呈現範例圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

5.4:實施置換

本區置換的原理為對 dot 檔進行更動,使其內容產生變化,如此一來 Graphviz 所 生成的圖形自然也會產生變動。本研究設置了一個頁面,供使用者上傳所希望進行置 換的 dot 檔,接下來伺服器端便將對上傳的檔案進行更動,並使用 Graphviz 根據更動 過後的結果生成圖片,並將結果呈現於頁面上給使用者觀看其結果並下載下來。

以更換詴題點編號為例,在預設上生成詴題時所產生的點編號為數字(例如圖 5-2 上的詴題圖)。使用者可以於圖 5-3 的頁面上,上傳所希望更動的圖形 dot 檔,接下來 伺服器端將會對使用者所上傳的檔案進行更動,並使用 Graphviz 對更動完後的結果生 成新的圖片,將結果呈現於圖 5-4 的頁面上,供使用者觀看及下載。

圖 5-3:置換頁面圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 5-4:置換結果圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

相關文件