• 沒有找到結果。

第三章 實驗方法

3.5 阻擋行為學習

3.5.1 基礎阻擋行為學習

在 TORCS 中當後方車輛的速度大於前方車輛的時候,前方車輛會將自己的 路徑讓出來,讓後方車輛可以順利超過前方車輛。內建 AI 沒有阻擋後方車輛的 概念,所以在進行學習之前,我們需要先讓阻擋者知道自己是否已經被後方車輛 所超越。若在某個學習階段,當採取某一動作時,可以讓自己在一定時間中沒有 被後方車輛超越,則此次採取此行動的結果為成功。採取動作的間隔在這邊我們 設為 15 個 game tic,若在這 15 個 game tic 中沒有被對手超越,則此次動作回傳 為成功。

在進行這部份實驗時,除了一樣使用 berniw 作為阻擋者修改基礎,且此處 的最高速度也限制在 140~150 km/h 間,也沿用表格 3-2 中的輸入參數範圍來將 車子間的狀態區分成不同的 state 並對應三種動作,分別是:往左移動一單位、

往右移動一單位與維持現在行進方向。這個實驗中主要先以 TORCS 中內建的駕 駛 AI 作為超車者,依據不同的駕駛行為共挑出了 lliaw、tita、bt 三者來學習。其

中 lliaw 及 tita 這兩個駕駛 AI 其行為模式與 berniw 較相近,都是與前車有一小段 距離時,會將其速度降低並跟在前車後方尋找超車機會。較不同的地方是對於複 雜賽道時,兩者的路徑規畫會與 berniw 不同,但在此處因為賽道都較簡單,所 以不易看出其差異。而 bt 就如同前面也介紹過,是以開在賽道中線上為主的 AI。

在碰到要超車的情形時,會提前改變自己與賽道中線的偏移量。而測試賽道則是 先使用圖 3-1 中的長直線賽道。

圖 3-5 為阻擋行為學習時的平均回饋值。圖 3-5 中可以看出其平均回饋值都 較學習超車行為時低,這是由於阻擋行為時較容易發生撞毀的情況。而多次實驗 中,約經過 3000 次學習階段後,回傳的回饋值會趨於穩定。

圖 3-5:阻擋行為學習平均回饋

3.5.2 阻擋行為學習之轉移實驗

我們進行阻擋行為的學習時,如同 3.5.1 節中所提到的,共使用了三個不同

的駕駛 AI 作為學習對象,所以在進行轉移實驗時,直接組合這三個不同的學習 結果與對手 AI 來進行轉移實驗並統計其超車成功機率與時間分佈即可。而在這 個部份因為都是使用學習時間限制為 40 秒所得到的學習結果,經由初步的觀察 後發現,被超車時間容易集中在 40 秒後的區間中。推測可能是 40 秒過後容易進 入彎道,導致後車具有更大的超車空間且學習時間不足以讓阻擋者學到這段時間 裡所應採取的行為。所以我們另外針對這個現象,將學習時間拉長至 60 秒,並 觀察其超車時間的分佈。

3.5.3 學習阻擋與超車行為後在不同曲率半徑賽道與 TORCS 內建賽

道上之學習與實驗

在這節中,以重複 3.4.3 與 3.4.4 的實驗步驟為主,但在這個部分將學習演算 法及多個擁有不同彎道曲率半徑的軌道導入阻擋行為的學習中。最後再放到 TORCS 內建的賽道上進行測試,測試條件等等都與前面兩節中的實驗相同。阻 擋實驗中,作為對手的超車者,我們選定了在 3.5.1 節中學習後可以使阻擋者有 較好表現且行為模式與 berniw(作為 Q-learning 基底的駕駛 AI)較相似的 lliaw 以及經過 Q-learning 學習後的超車 AI 作為學習對象。並且,為了比較學習後的 阻擋成效,我們選擇了 Fully reactive blocker 作為最後結果的比較對象。

相關文件