• 沒有找到結果。

以搜尋為基礎的 電腦化問題策略解決

N/A
N/A
Protected

Academic year: 2021

Share "以搜尋為基礎的 電腦化問題策略解決"

Copied!
47
0
0

加載中.... (立即查看全文)

全文

(1)

以搜尋為基礎的

電腦化問題策略解決

國立臺南大學 黃國禎 數位學習科技系 教授

(2)

問題定義

(Problem

formulation)

 在問始運用電腦解決一個問題之前,首 先要能將問題清楚的在電腦中描述。  完整的問題描通常包含大量與問題特性 相關的資訊,而與這些資訊相關的知識 對於找到解答有很大的幫助。

(3)

問題與解題狀態的定義(Well-defined problems and

solutions)

 利用狀態空間來定義問題有兩個基本要

素:

1. 狀態(states) 2. 行動(actions)

(4)

問題與解題狀態的定義(Well-defined problems and

solutions)

 具體的表達方式如下:  初始狀態(initial state)。  可用的運算元(operator)的集合。  「狀態空間」(state space)  「路徑」(path):  「目標測試」(goal test)  「路徑成本」(path cost)

(5)

問題與解題狀態的定義(Well-defined problems and

solutions)

此圖稱為「有限狀態機器」

(Finite state machine)圖示 法,因為這個機器的狀態個數是 有限的。

有限狀態機器常用於程式語言

編譯器或其他電腦程式中,用來

(6)

解題狀態的評量

(Measuring

problem-solving performance)

 此圖為部分的有限狀態機器,用來測試 輸入的字串是否正確。 開始 H I L E I T R W G I E B not N not I not G not E 錯誤 成功 N <圖2.2> 用以辨識WHILE、WRITE和BEGIN的有限狀態機器

(7)

解題狀態的評量

(Measuring

problem-solving performance)

 我們可以把狀態空間想像成問題空間(Problem space),有些狀態是符合解決問題的中間部 分,另一些狀態則是符合答案的。  以下的猴子與香蕉問題可看成是一個問題空 間,只需要回應問題的“是”與“不是”,就能決 定下一個狀態。

(8)

解題狀態的評量

 跳下躺椅  移動梯子  把梯子移到香蕉下的 位置  爬上梯子  摘下香蕉 猴子在躺 椅上 猴子在地 板上 躺椅位於 香蕉下 躺椅不位 於香蕉下 猴子不在 梯子上 跳下躺椅 觀察到躺椅 在香蕉下 觀察到躺椅 不在香蕉下 觀察到猴子 不在梯子上 移動躺椅 猴子在梯 子上 梯子不位 於香蕉下 觀察到梯子 不在香蕉下 觀察到猴子 在梯子上 梯子在香 蕉下 觀察到梯子 在香蕉下 移動猴子 移動梯子 猴子在梯 子上 摘下香蕉 猴子成功 得到香蕉 爬上梯子 <圖2.3> 猴子拿香蕉的問題空間

(9)

解題狀態的評量

(Measuring

problem-solving performance)

 另一個圖形的應用是以探勘路徑找出問 題的解法,圖 (a)表現了旅行推銷員 (traveling Salesman)問題。 A B D

(10)

解題狀態的評量

(Measuring

problem-solving performance)

 圖 (b)表示了從A點出發的樹,其中正確 的路徑以粗線表示,如ABDCA或 ACDBA。 C B A D A C A B D B B C A B D C C D A B A C D B B C D C A (b) 搜尋路徑(粗線是解答路徑)

(11)

解題狀態的評量

(Measuring

problem-solving performance)

 一個狀態空間對於描繪結構不明確的問 題仍相當有用  結構不明確的問題是指很多不確定因素 的結合,這種不確定性可以用問題空間 精確表達。

(12)

解題狀態的評量

(Measuring

problem-solving performance)

 表2.1是可能的不確定因素及旅遊代理人必須 解決的問題。 我必須儘快出發 時間限制 我不知道怎麼可以籌到錢 狀態的可用運算元未知 我沒有足夠的錢去 中間的狀態不易實行 我只是想去旅遊,目的地並不重要 問題狀態不是離散的 我不確定要去哪裡 問題空間範圍未被介定 我在想到底要去哪裡 目標不明顯 客戶的反應 特徵 <表2.1> 旅遊非結構化問題的例子

(13)

解題狀態的評量

(Measuring

problem-solving performance)

 問題空間讓我們更明確地了解一個結構 不明確的問題所具備的特徵,藉由描繪 這些特徵的參數以找到合適的解答。  在旅遊問題中,狀態的範圍並未被界 定,因為旅行者會有無限可能的目的 地。

(14)

解題狀態的評量

(Measuring

problem-solving performance)

 如果我們將每個讀數視為一個狀態,那 麼將會有無限個狀態,因為每個狀態都 是一個實數,而兩個實數間有無限個實 數。  相反的,數位的計量器讀數的範圍是被 清楚界定的,因為它的狀態是離散的。

(15)

解題狀態的評量

(Measuring

problem-solving performance)

 搜尋的效能至少可以用三種方法來評量: (1)它是否能找到答案? (2)它是否為好的答案? (3)需要找到解答的時間和空間的搜尋成本是 什麼?

(16)

狀態的選擇與執行

(Choosing

states and actions)

 初始狀態是「在新莊」而目標測試則是「是否在新 竹?」運作元則是對應於沿著兩個城市之間的路駕 車。 宜蘭 基隆 板橋 台北 桃園 新店 龍潭 三峽 淡水 三芝 汐止 竹東 新竹 苗栗 台中 彰化 新莊

(17)

狀態的選擇與執行

(Choosing

states and actions)

 問題解決真正重要的,是決定要用什麼

來描述狀態和動作,而什麼是可省略 的。

這種從描述中省略細節的過程稱為抽象

(18)

解題範例-以智慧盤遊戲為例

(the 8-puzzle problem)

 圖2.6是一3 x 3的智慧 盤,其中有8個標示數 字的方塊,以及一個 空格。  與空格相鄰的方塊可 以滑動到空格裡。 5 4 6 7 1 2 8 3 5 4 6 7 1 2 8 3 1 2 8 7 3 5 4 6 1 2 8 7 3 5 4 6 初始狀態 目標狀態 <圖2.6:3 x 3智慧盤>

(19)

解題範例-以智慧盤遊戲為例

(the 8-puzzle problem)

 一個重要的技巧是必須注意到,與其用「把四號方塊 移動到空格裡」這個操作,不如用「空格和它左邊的 方塊交換位置」的操作較為敏銳。這麼一來,會導致 下列公式:  狀態:狀態描述要能分辨八個方塊個別在九個方格中的位 置。為了效率起見,最好也包含空格的位置。  操作:空格向左、右、上、下移動。

(20)

解題範例-以智慧盤遊戲為例

(the 8-puzzle problem)

 智慧盤屬於排列組合系列的問題,這種 問題通常是NP-complete,亦即當問題中 的方格個數增加時,解決問題需要的時 間通常會以指數的次方成長。  其中15個方格的智慧盤問題常在人工智 慧中被作為測試新的搜尋演算法的標準 問題。

(21)

搜尋策略

(Searching

Strategies)

 對搜尋演算法的最簡單的詮釋方式,即 是以狀態空間中搜尋樹的建構過程來進 行說明。  其中由樹根直接展開的節點,標記為深 度是1;由深度是d的節點直接展開的節 點,標記為深度是d+1。

(22)

通用搜尋演算法

(General

search algorithm)

 圖2.7顯示通用搜尋演算法在建立從新莊 到新竹搜尋樹的展開路線。  區別出狀態空間和搜尋樹是很重要的。 在尋找城市路徑的問題上,雖然狀態空 間上僅有17個狀態,但卻有無限多的可 能路徑,因此在搜尋樹上會產生無限多 的節點。

(23)

通用搜尋演算法

(General

search algorithm)

新莊 新莊 基隆 板橋 台北 新莊 (a) 起始狀態 (b) 展開 新莊 (c) 展開 宜蘭

(24)

通用搜尋演算法

(General

search algorithm)

通用搜尋演算法:  GENERAL-SEARCH (問題描述, 策略) 傳回 解 答 或 宣告失敗 依初始狀態建立起始節點 重複以下的指令 IF 沒有可展開的節點 THEN傳回 宣告失敗 依據傳入的策略決定展開的節點 IF 有任何節點為目標節點then傳回 解答 ELSE 將展開後的節點加入搜尋樹中

(25)

先寬後深搜尋策略

(Breadth-first search)

 在這個策略中,根節點會先被展開,然 後再展開被根節點展開的所有節點,接 著再展開它們的後繼者等。  在寬度優先的搜尋樹中,所有在深度為d d+1的節點早

(26)

先寬後深搜尋策略

(Breadth-first search)

 寬度優先搜尋法可以用先前介紹的通用 搜尋演算法來開發,只要運用一個佇列 函數(Queuing function)將新展開的狀態 放入佇列的最後面: function BreadthFirst-Search (問題描述) 傳回 解答 或 宣告失敗 傳回 GENERAL-SEARCH (問題描述, 新展開的狀態放入佇列的最後面)

(27)

先寬後深搜尋策略

(Breadth-first search)

 寬度優先搜尋法是一個非常系統化的策略,因為它會 先考慮所有長度為1的路徑,然後是那些長度為2的路 徑…等。  如果有解答,寬度優先搜尋法會很快的發現它;  而如果有多個解答,寬度優先搜尋法將會先發現最小 路徑的目標。

(28)

先深後寬搜尋策略

(Depth-first search)

 深度優先搜尋法總是先展開一棵搜尋樹 中位於最深一層的節點,只有當遇到末 端節點時,才會回溯到上一層,並展開 另一個較淺層的節點。

(29)

先深後寬搜尋策略

(Depth-first search)

 深度優先搜尋法在實作時可應用通用搜 尋法,將新展開的節點放在佇列的前 面: function DEPTH-FIRST-SEARCH (問題描述) 傳回 解答 或 宣告失敗 傳回GENERAL-SEARCH (問題描述, 新展開的狀態放入佇列的最前面)

(30)

先深後寬搜尋策略

(Depth-first search)

 由於新展開的節點是最深的,它的後繼

(31)

先深後寬搜尋策略

(Depth-first search)

 深度優先搜尋法的缺點為,它可能會陷 在錯誤的路徑中。  因此深度優先搜尋法可能會無法從錯誤 的選擇路徑中恢復到靠近搜尋樹頂端的

(32)

先深後寬搜尋策略

(Depth-first search)

 即使有較淺層的解答存在時,搜尋將可 能持續向更深層的方向展開。  若無適當的控制,深度優先搜尋法將陷 在無窮迴圈,即使最終會找到解答路 徑,而這些路徑可能比最佳路徑長。

(33)

最佳解優先搜尋策略(best-first search)

 這個搜尋法只是根據最佳化的評估函數 來選擇下一個搜尋的節點。  當評估函數的準確度愈高,則愈可能找 到最佳的節點  反之,評估函數可能無作用,甚至可能

(34)

最佳解優先搜尋策略(best-first search)

 它使用一些估計解答成本的測量方式, 並設法朝最低成本的方向進行搜尋。  了使搜尋更精確,因此估計解答成本的 測量必須加上到達結束狀態的路徑成本 估計。

(35)

最佳解優先搜尋策略(best-first search)

 以下為使用通用搜尋演算法來描述「最 佳解優先搜尋法」的方式: function BEST-FIRST-SEARCH (問題描述, 評估函數) 傳回 解答 或 宣告失敗 順序函數 ← 依評估函數決定的節點展開順序 傳回GENERAL-SEARCH (問題描述, 順序函數)

(36)

最佳解優先搜尋策略(best-first search)

 以井字遊戲為例,若電腦是“o”,對手是“x”,且 評估函數定義為:  F(x)=同一行及對角線的其他空白個數1 +同一行及對角線的“o”個數2+ Y(X)  Y(X)= 0 若該一行及對角線的“x”個數為0 = –1 若該一行及對角線的“x”個數為1 = 4 若該一行及對角線的“x”個數為2

(37)

最佳解優先搜尋策略(best-first search)

 假設目前的盤面狀況如下:  一開始全部都是空格 A6 A5 A4 A3 A2 A1

(38)

最佳解優先搜尋策略(best-first search)

若由電腦先下,則  F(A1)=(2+2+2) 1 + (0+0+0) 2 + (0+0+0) = 6  F(A2)=(2+2) 1 + (0+0) 2 + (0+0) = 4  F(A3)=(2+2+2) 1 + (0+0+0) 2 + (0+0+0) = 6  F(A4)=(2+2) 1 + (0+0) 2 + (0+0) 2 = 4  F(A5)=(2+2+2+2) 1 + (0+0+0) 2 + (0+0+0) = 8  F(A6)=(2+2) 1 + (0+0) 2 + (0+0) = 4  F(A7)=(2+2+2) 1 + (0+0+0) 2 + (0+0+0) = 6  F(A8)=(2+2) 1 + (0+0) 2 + (0+0) 2 = 4  F(A9)=(2+2+2) 1 + (0+0+0) 2 + (0+0+0) 2 = 6

(39)

最佳解優先搜尋策略(best-first search)

 因此電腦選擇A5;若對手選擇A1,則盤面狀 況如下: A6 O A4 A3 A2 X

(40)

最佳解優先搜尋策略(best-first search)

依同樣的評估函數,可算出  F(A2)=(1+1) 1 + (1+0) 2 + (-1+0) = 3  F(A3)=(1+1+2) 1 + (0+1+0) 2 + (-1+0+0) = 5  F(A4)=(1+1) 1 + (1+0) 2 + (0-1) = 3  F(A6)=(1+2) 1 + (1+0) 2 + (0+0) = 5  F(A7)=(1+1+2) 1 + (0+1+0) 2 + (-1+0+0) = 5  F(A8)=(1+2) 1 + (1+0) 2 + (0+0) = 5  F(A9)=(0+2+2) 1 + (0+1+0) 2 + (0-1+0) = 5

(41)

最佳解優先搜尋策略(best-first search)

 由此可知,A3、A6、A7、A8 及A9都是不錯的 選擇,假設電腦選擇A3;若對手選擇A7,則 盤面狀況如下: A6 O A4 O A2 X

(42)

最佳解優先搜尋策略(best-first search)

依同樣的評估函數,可算出  F(A2)=(0+1) 1 + (1+1) 2 + (-1+0) = 4  F(A4)=(0+1) 1 + (0+1) 2 + (4+0) = 7  F(A6)=(1+1) 1 + (1+1) 2 + (0+0) = 6  F(A8)=(1+1) 1 + (0+1) 2 + (-1+0) = 3  F(A9)=(1+0+1) 1 + (0+1+1) 2 + (-1+0+0) = 5

(43)

最佳解優先搜尋策略(best-first search)

因此電腦選擇A4;若對手選擇A6,則盤面狀況 如下: X O O O A2 X

(44)

最佳解優先搜尋策略(best-first search)

依同樣的評估函數,可算出  F(A2)=(0+1) 1 + (1+1) 2 + (-1+0) = 4  F(A8)=(1+1) 1 + (0+1) 2 + (-1+0) = 3  F(A9)=(1+0+0) 1 + (0+1+1) 2 + (-1+0-1) = 3

(45)

最佳解優先搜尋策略(best-first search)

因此電腦選擇A2;若對手選擇A8,則盤面狀況如 下: A9 X X X O O O O X

(46)

概念啟發式(Meta Heuristic)演

算法

 引導搜尋程序的策略  簡單的區域搜尋方法  複雜的學習程序  以廣域搜尋的技巧避開陷入區域最佳解  例如:基因演算法(Genetic Algorithms)與禁忌搜尋法(Tabu Search)。

(47)

概念啟發式搜尋策略示意圖

O b je ct fu n cti o n Current solution exploration

參考文獻

相關文件

單一菜色與地區搜尋 ( 兩種二選一 ) 交叉搜尋 (4 種可同時 )/QR 碼搜尋.

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

•  三分搜在有水平線的情況下,如果可以確定水平線的地方一定是 答案的話,才可以用三分搜找極值。..

這些問題目前尚未找到可以在 polynomial time 內解決的 algorithm.. 這些問題目前尚未被證明無法在 polynomial time

閱讀前 先瀏覽課文《太陽》,在不明白的地 方做標記,然後查字典、詞典,或上 網搜尋資料,完成自學筆記。.

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

媒體可以說是內容、資訊最大的生產者,但受制於 國際社交媒體及搜尋平台的經營手法,本地主流媒 體在發展網上業務時,面對不公平的競爭。 這些