• 沒有找到結果。

矩形動態規劃最佳子序列

在文檔中 中 華 大 學 (頁 37-43)

第四章 動態覆蓋演算法

4.3 矩形動態規劃

4.3.1 矩形動態規劃最佳子序列

當使用矩行動態規劃的方法為環境找出較佳個數的機器人時,必定要先為環 境較小的區塊找出最少的機器人個數,否則無法為環境找出較佳的機器人個數。

再使用矩形動態規劃之前,我們要先用一些方法得知子環境中最佳的機器人個數,

以供為矩形動態規劃演算法為環境找出較佳的機器人個數來達成目標。以下我們 開始討論如何為子環境找出最少的機器人個數。

(1)當子環境為1 2 或 2 1 的矩陣時,我們可以很容易的清楚知道機器人只 是兩個點的來回,也就是機器人如只花兩步即可把這兩區塊走過,但因為機器人 有步數的限制,假定為S,所以只要將 S/2 取整數,在將得到的數字比較其中兩 塊區塊中最大的數字,如大於區塊中最大之數字,即代表此子環境只需一台機器 人即可達成目標,如不行就代表子環境是無法用一台機器人來達到目標。

所以得知當遇到1 2 或 2 1 的子環境時就用 S/2 此式子是否可大於此子環 境中的數字,看是否可用一台機器人即可以達到目標。如圖 38 所示。

31

圖 38. 1 2 或 2 1 的矩陣

假定圖 34 環境中的機器人限制的步數為 30,那就將 30 代入S/2 中,得出 的答案為15,而 22 減去 15 後為 7,17 減去 15 為 2,所以此子環境必須要兩台 機器人方可達成目標。當然1 2 或 2 1 的子環境因只有兩個區塊的關係,所以 機器人最多之數量為兩台,也就是當不管數字多大,只要分別有兩台機器人分別 各在一個區塊,就類似在那區塊中佈署靜態的感測器長時間持續的監控一樣,所 以間單的說當1 2 或 2 1 的子環境機器人最少的情況是一台,而最多為兩台。

(2)當x 或 1 的矩陣時,所討論的方式會比較特別,由於當機器人做巡 邏時如從某一起始點出發後必定還要回到此起始點,所以機器人在此類型矩陣巡 邏時,中間區塊的位置被機器尋訪的次數會是最外邊的兩個區塊的兩倍,原因如 圖39 所示。

圖 39. 1 的矩陣

圖 39 是1 的矩陣圖形,圖中的點代表機器人經過的次數,線為機器人 所走的路徑,當機器人從最左邊的區塊出發開始巡邏並走回當初的起始點,也就 是巡邏一圈,可以發現中間的兩個區塊會有兩個點,所以可以發現不管每個x 或1 的矩陣的中間區塊,機器人所經過的次數是兩個最外面之區塊的兩倍。

不只如此圖 39 雖為1 之矩陣圖形,但機器人從起始點出發後回到原本的起始 點的步數卻是為6 步並非為 4 步。在此可以得出一式子: f(x)= c[2+2(x-2)] S,x 為區塊個數,S 為機器人限制的步數,c 為機器人在限制的步數之內在 x 或 1 之的矩陣圖形可巡邏的圈數,然後每台機器人巡邏完一次的總步數要逼近機器人 所限制的步數。

從上面的式子可得知,機器人在限制的步數之內,最多可在這種x 或 1 之的矩陣圖形巡邏幾圈,假如x 為 4 時,S 為 30,帶入上述的式子,就可以很清 楚的知道一台機器人巡邏後可對1 之矩陣圖形可巡邏至 5 圈,使機器人對 1 之矩陣圖形巡邏四圈後對矩陣所造成的影響分別為;最外面的兩邊區塊可經過5 次,中間之區塊分別可經過10 次。由此可知,我們要先得知機器人可在矩陣圖 形中巡邏幾圈和機器人所限制的步數,方可知道每個區塊可被機器人經過的次

32

數。

可是在這之前只是考慮到一台機器人的情況,因為如果環境中是需要多台以 上的那就需要開始討論機器人巡邏的方式,因為當每個機器人巡邏方式不同所經 過的區塊不同,對區塊中的數字造成的影響當然會不一樣,而x 或 1 的矩 陣裡面會有多種的巡邏方式,如圖40 所示,在 3 1 或 1 3 的矩陣中巡邏的方式 就有8 種。

40. 機器人在 3 1 的矩陣中所有的巡邏方式

每種巡邏方式對子區塊所造成的影響,即是機器人對子區塊中每個區塊所經 過的次數,例如圖40 中,我們假設機器人限制的步數為 30,而圖 40 中左邊第 二個巡邏方式由左至右可被機器人經過的次數為14、28、14;圖 40 中間第一個 巡邏方式由左至右可被機器人經過的次數為32、29、7;圖 40 左邊第三個巡邏 方式由左至右可被機器人經過的次數為15、30、15。

而1 之矩陣因有四個區塊,所以機器人最少是一台,最多是四台,我們 也將所有機器人在1 之矩陣中所有巡邏的情況大致上全部列出,如圖 41 所示。

圖中最右列的巡邏狀況還要有左右顛倒,所以1 之矩陣所有的巡邏狀況共有 26 種。當得知所有的的巡邏方式後,也可得知機器人巡邏過後對子矩陣所造成 的影響,所以一開始即可用i 台機器人所有的巡邏方式對矩陣所造成的影響,然 後檢查是否有哪個巡邏方式可將裡面的數字歸零,如不可就用i+1 台機器人所有 的巡邏方式做檢查,直到可找出將子矩陣中的數字歸零為止。

33

41. 機器人在 4 1 的矩陣中所有的巡邏方式

一旦我們知道所有1 或 4 之矩陣的巡邏方式之後,在為子區塊找尋最 佳解時,就用這些巡邏情況逐一對照找出何種巡邏狀況可將子區塊的數字全部歸 零,因機器人在1 或 4 之矩陣中所有的巡邏方式全部列出已算是很困難的 工程了,所以只要是x 或 1 x 的矩陣,並且 x 的情況,我們就只好繼續切 割,切割到x 為止。

(3)當子環境為2 2 之矩陣圖形時,即是將機器人之步數 S/4 取整數,當得 到的答案只要比這四塊中最大之數字大時,就是代表此環境只需一台機器人,反 之就代表要一台以上的機器人,因2 2 之矩陣圖形有四個區塊,所以機器人最 多的數量為四,而一台以上的機器人對2 2 之矩陣圖形會產生如何的影響,除 了需事先得知機器人所限制的步數外,我們也要把一到四台的機器人在2 2 之 矩陣圖形中所有的巡邏方式給找出,全部的巡邏的方式有18 種,如圖 42 所示。

34

42. 機器人在 2 2 的矩陣中所有的巡邏方式

知道機器人在2 2 的矩陣中所有巡邏的方式和機器人所限制的步數後,就 可以計算出不管機器人使用何種巡邏方式對2 2 的矩陣中所有的區塊所尋訪的 次數,所以不管2 2 的矩陣中數字的大小如何,我們都可以非常的確定當矩陣 中的不管數字是多少,我們都可以找出最少的機器人,方可確定子環境所找出的 機器人數量是最佳解。

(4)再來我們就要開始探討如何為 2 3 和 3 2 之矩陣圖形找出最佳子序列,

在前面我們所提到的矩陣都會將所有可能的巡邏方式找出,但2 3 和 3 2 之矩 陣圖形的區塊有六塊,而機器人最多可達到六台,所以巡邏方式可能會非常多,

如把所有巡邏方式找出可能會非常吃力。這時我們首要檢查的方式不是馬上先行 切割,而是先去計算當一台機器人可否達成任務,也就是將機器人所限制的步數 S 除以 6,檢查得出來的數字是否全都大於六個區塊的任何一個數字,如果是即 代表此子區塊只要一台機器人可達成目標,因2 3 和 3 2 之矩陣只有六塊區塊,

所以當只有一台機器人時,不只是可將所有六個區塊都巡訪過,甚至有機會把每 個區塊中所需機器人拜訪的次數都以達成。直到以一台機器人都已檢查過後發現 無法只用一台機器人達成目標,我們才會進行切割,切割的方式是切成1 2 或

35

2 1 和 2 2 之矩陣圖形,然後因為會有兩種切法,所以會挑選出哪兩種切法機 器人總和的數量會較小,如圖43 所示,然後在用上述(1)和(3)的檢查方式去檢 查最佳子序列是為多少。

圖 43. 3 2 之矩陣再進行切割示意圖

透過以上的詳述可為矩形動態規劃中最佳子序列找出最佳個數的機器人,而 每個子區塊可先行用一台機器人是否可將子區塊中所有數字歸零,如不行就用兩 台的方式,並且將兩台所有的巡邏方式去比對看是否可將所有數字歸零,直到把 所有巡邏方式都進行比對後,發現還是無法將所有數字歸零方能增加機器人之數 量,直到為子區塊達成任務為止。所以矩形動態規劃有兩大原則要謹遵,第一x 或 1 的矩陣最多只能到四個區塊;第二而 2 3 或 3 2 之矩陣要先以一台機 器人方式做檢查看是否只需一台機器人就夠,如不行才能進行切割。

事實上我們只能提供上述所說的子區塊提供出最佳解,主要的原因是因為當 子區塊的區塊太多,而機器人之數量必定會需要更多,這時所有的巡邏狀況相對 會多更多,所以目前我們還無法退推算出更大的子區塊會有多少種巡邏方式,這 樣我們更無法得知機器人巡邏後所造成的影響,便無法確定確定出子區塊最佳的 機器人數量。以下是我們整理出可為矩形動態規劃提供出最佳子序列的子矩陣大 小圖表(圖 44)。

36

圖 44. 最佳子序列的子矩陣大小圖表

在文檔中 中 華 大 學 (頁 37-43)

相關文件