• 沒有找到結果。

研究背景與動機

在文檔中 智慧型個人導覽系統 (頁 8-0)

2 (Institute for Information Industry, 2013)是一個針對來臺灣旅遊的外國遊客所設計 的應用程式,此應用程式提供其所在位置周邊主要之景點資訊,使用者點選欲前

3

圖 1.1 Smart Tourism Taiwan App 介面 1.2 研究目的

目前 Google Play 商店中,路線規劃 App 無法讓使用者依照對景點之喜好評 分進行路線規劃,亦無法提供於各景點停留時間之估計。本研究目的為建立一針 對臺北自遊人之智慧型個人導覽系統,藉由雲端運算系統,結合路線規劃之數學 模型、Google Maps API 之輔助、Android 平台之使用及應用程式之設計,進行更 完整、客製化之路線規劃。

1.3 研究流程

在確立研究動機與目的後,針對其需求,參考先前之架構並加以改善,設計 出適合本研究之流程架構圖,圖 1.2 為本研究流程架構圖,重要步驟說明如下:

1. 確立研究主題方向。

2. 文獻蒐集與回顧:由網路、圖書館書籍、期刊論文資源蒐集資料,加以分 析與整合。

3. 設計雲端運算系統架構:設計系統架構,以及系統內各部分之連接方式。

4. 發展演算法:針對導覽問題的特性,參考各式文獻,並設計演算法。

5. 撰寫程式與資料庫測試:根據所設計的演算法流程,以程式語言撰寫演算 法,並進行資料庫的測試,修改演算法與模型。

6. 設計手機應用程式:以程式語言撰寫手機應用程式–智慧型導覽系統。

7. 建構雲端運算系統:建構雲端系統,如伺服器之建立以及連結。

8. 應用程式測試:進行程式測試。

9. 說明成果與貢獻:提出研究結論、分析與建議,作為後續研究方向。

4 確立研究主題方向

文獻蒐集與回顧

設計雲端運算系統架構

發展演算法

撰寫程式與資料庫測試

設計手機應用程式

應用程式測試

說明成果與貢獻 建構雲端運算系統

圖 1.2 研究流程架構圖

5

第 2 章 文獻探討

此章節針對本研究相關的文獻,進行探討與整理,其中包含雲端運算系統、

越野問題(Orienteering Problem)、通用啟發式演算、Google Maps API 以及 Android 平台。

2.1 雲端運算系統

雲端一詞來自工程師在繪製網路配置圖時,習慣將網際網路以一朵雲代表,

不論是雲端或網際網路,都不是一個實體。自然界中的雲擁有循環、延展、靈活 的特性,而網際網路的架構正符合這些特點,同樣的資源可在不同的電腦之間循 環流通;不論是 Scale-up 或是 Scale-out 架構的雲端運算都具有其不同特性的延展 性,同時具備網際網路的靈活性,需要時取得資源,若不需要時亦不會佔用過多

- Amazon EC2

PaaS

1. SaaS (Software as a Service):指可透過雲端立即取得商業軟體、應用軟 體之服務,同時取代以往使用者須一次性購買軟體的方式,以有使用才 需付費的方式,減少一般使用者軟體支出的開銷,及軟體版本更新後又 須重新下載的麻煩。

2. PaaS (Platform as a Service):以提供一雲端軟體研發平台為服務,使開 發者擁有一致的開發環境及雲端設備資源的 APIs,開發人員也能透過 這些 APIs 存取雲端設備的資源,無須去詳細瞭解這些設備,也提升了 對 SaaS 的開發速度。

6

3. IaaS (Infrastructure as a Service):以透過雲端提供資源設備為服務,如處 理器、儲存設備、網路等,讓使用者不需管理、維護以及更新硬體設備,

可任意建構、安裝所需的作業系統、應用程式。

2.2 越野問題

越野問題(Orienteering Problem; OP)的名稱起源於越野運動比賽(Chao et al., 1996)。此遊戲中,各參賽者於特定的控制點(specified control point)出發,嘗試 於限定的時間框( time frame )內,盡可能經過最多關卡; 而每個關卡皆具特定的分 數,參賽者的目標為最大化分數總和。越野問題為頂點的選擇與於選定頂點中決 定最短 Hamiltonian 路徑之結合; 就因果關係而言,越野問題可被視為背包問題

(Knapsack Problem; KP)及旅行銷售員問題(Travelling Salesperson Problem ; TSP)

兩者之結合。而 OP 問題之目標為在 TSP 問題嘗試最小化旅行時間或距離時,同 時最大化分數總和。此外,在 OP 問題中,不需經過每一個頂點,在選定之頂點 中決定最短路徑,有助於達到在可用時間中經過最多的頂點。

OP 問題也被稱為選擇性旅行銷售員問題(Selective Salesperson Problem)

(Gendreau et al., 1998; Laporte & Martello, 1990; Thomadsen & Stidsen, 2003)、最大 收集問題(Maximum Collection Problem)(Butt & Cavalier, 1994; Kataoka & Morito, 1988)以及銀行搶劫問題(Bank Robber Problem)(Arkin et al., 1998)。在過去十年 中,OP 問題被當成原型使用於許多具挑戰性的實際應用,也發表了許多精確的

7

2.3 通用啟發式演算法

通用啟發式演算法(Metaheuristic)(Boussaïd et al., 2013) 一般用來求解組合 最佳化之問題,為求在合理時間內求得近似最佳解。常用之五種通用啟發式演算 法分別為模擬退火法、禁忌搜尋法(Tabu Search;TS)、基因演算法(Genetic Algorithms;GA)、粒子群最佳化演算法(Particle Swarm Optimization;PSO)以 及蟻群最佳化演算法(Ant Colony Optimization;ACO),以下將簡短敘述這幾種 常用的啟發式演算法。

2.3.1 禁忌搜尋法

禁忌搜索法的思想最早由美國科學家 Fred Glover 提出(Glover, 1986),它是對 局部領域搜索的一種進階方法,是一種全局逐步尋優演算法,模擬人類具有記憶 而衍生出許多強健性的演算法,如反應式禁忌搜索演算法(Reactive Tabu Search algorithm)(Battiti & Tecchiolli, 1994)。

過 度 的 遵 守 禁 忌 , 可 能 會 導 致 錯 失 最 佳 解 , 因 此 必 須 搭 配 期 望 法 則 (Aspiration Criteria),以便讓禁忌解有再度被選擇的機會。期望法則為增加的中期 記憶體結構(intermediate-term memory structures),可大大改善搜索過程。使用 禁忌串列雖可防止有吸引力的移動,即便此移動沒有導致搜索陷入無限迴圈的風 險,或致使搜索過程全面停滯的可能,但是,我們沒有任何理由阻止能得到較先 前佳的解的移動。因此,期望法則為一套可用以替代禁忌限制的法則,即若移動 為禁忌串列所禁止,然在符合期望法則的情況下,移動還是可被允許的。

8

2.3.2 模擬退火法

在組合最佳化問題中,模擬退火法為蒙地卡羅演算法(Monte Carlo method)

的推廣,且已被成功地應用於一些不連續或連續的最佳化問題。退火是一種物理 過程,一金屬物體在加熱至一定的溫度後,它的所有分子在狀態空間中自由運動。

然而隨著溫度的下降,這些分子將逐漸停留在不同的狀態。在溫度最低時,分子 則以一定的結構重新排列,而分子的分布以波茲曼(Boltzamnn)概率分布 (Kirkpatrick et al., 1983)。

利用 SA 搜尋目標式的最佳解時,須以一虛構溫度參數 T(temperature 度。在反覆搜索的過程中,由於剛開始時接受惡化移動(deteriorating move)的 機率較高,T 降低的可能性較大,則 T 會逐漸下降。

2.3.3 基因演算法

基 因 演 算 法 是 眾 所 皆 知 且 最 廣 為 使 用 的 演 化 計 算 技 術 ( Evolutionary Computation Technique),於 1970 年代早期由密西根大學的 John Henry Holland 及其學生(Holland, 1975),將其應用模擬遺傳因子來研究適應性中的人工問題。

此方法的概念衍生於達爾文「適者生存」的原則,模擬生物進化過程的計算模型。

9

2.4 Google Maps API

API,全名為 Application Programming Interface(應用程式介面),通常為系 統廠商,為了讓第三方開發者得以額外開發應用程式以強化他們的產品,所推出 各種 Libraries,如存取顯示系統功能的 Surface Manager、關聯式資料庫系統 SQLite、

網頁瀏覽器引擎 Web Kit 等,其中分離了一塊 Android Runtime 區塊內有 Core Libraries 以及 Dalvik Virtual Machine,Android 透過這兩個元件能更有效率的執行 Java 程式。Application Framework 層提供了開發者一個完整、統一的應用程式介 面,如常見的控制項 Button、TextView 或是嵌入式瀏覽器等。最上層 Application 就是各種基本的 Java 應用程式,讓使用者一開始就有基本的應用程式使用,如瀏 覽器、照相機等。

10 Application

Home Contacts Phone Browser 0

Application Frameworking

Surface Manager Media Framework SQLite

OpenGL|ES FreeType WebKit

SGL SSL Libc

Android Runtime

Core Liraries Dalvik VM

圖 2.2 Android 系統架構

11

要開發 Android 系統程式,就須先了解 Android 如何為智慧裝置作業系統管 理有限記憶體而使用的生命週期機制,現今作業系統為了提供使用者快速操作多 種功能,大多都使用多工處理的作業系統,可同時執行不同程式,但在智慧行動 裝置上,不如 PC 般擁有大量的系統記憶體,當同時執行過多程式或記憶體為正 確釋放,而導致記憶體不足時,系統將變緩慢或運作不正常。

一個啟動的 Activity 都將經過固定的生命週期如圖 2.3,依特性主要可以將其 分成四種狀態:

圖 2.3 Android Activity Lifecycle

12

Active/Running: 當使用者啟動一個應用程式或一個 Activity,程式會處於 Active 狀態,從啟動開始會經過 onCreate、onStart 最後到 onResume 完成啟動。

從圖 2.3 流程可以看到除了正常啟動 Activity 會進入此狀態外,還有可能從 onRestart 及 onPause 會到 Active 狀態,就是在當前 Activity 可能是從其他地方被 喚回或是重新取得焦點時。

Paused: Paused 狀態會在當前 Activity 暫時失去焦點時,不論是跳出小視 窗導致當前 Activity 暗掉,或是其他程式突然跳出使得當前 Activity 處於暫時 無法操作的狀態,就會觸發 onPause 進到 Paused 狀態。

Stopped: 如果當前 Activity 將焦點的控制權給其他 Activity,當前 Activity 不再動作時就會觸發 onStop 進到 Stopped 狀態。 Dead/Destroyed:當 Activity 被終止或是處於 Stopped 的狀態下被系統自行結束以回收記憶體,就會觸發 onDestroy 進到此狀態。

Dead/Destroyed: 當 Activity 被終止或是處於 Stopped 的狀態下被系統自行 結束以回收記憶體,就會觸發 onDestroy 進到此狀態。

13

第 3 章 系統架構與規劃

此章節將提到本研究系統中各部分之設計,包含 3.1 節、3.2 節及 3.3 節所敘 述的雲端運算系統之架構、規劃、環境及流程,3.4 節為 OP 問題之數學模型建 構,以及運用模擬退火法撰寫之最佳化演算法,並設計一田口實驗以找出適合之 參數數值,3.5 節及 3.6 節則分別提及利用 Google Maps API 所建構之資料庫,與 Android 應用程式之設計。其中 3.4 節與 3.6 節中更詳盡的內容將置於之後的 第 4 章、第 5 章與第 6 章節。

3.1 雲端運算系統架構與規劃

系統架構如圖 3.1 所示,應用程式使用者端(Client)可透過智慧型手機之 Android 系統執行應用程式。使用者輸入資料後,透過網路連接並將需運算之資 訊傳輸至伺服器端(Server),由 Server 呼叫 PHP 主程式,至資料庫中取得景點

系統架構如圖 3.1 所示,應用程式使用者端(Client)可透過智慧型手機之 Android 系統執行應用程式。使用者輸入資料後,透過網路連接並將需運算之資 訊傳輸至伺服器端(Server),由 Server 呼叫 PHP 主程式,至資料庫中取得景點

在文檔中 智慧型個人導覽系統 (頁 8-0)

相關文件