本研究中規劃設計出一個坦克對戰射擊遊戲,遊戲中有玩家可以自行操控的坦克 以及具有模糊增強式學習人工智慧的NPC坦克,其遊戲規則如下:
NPC坦克要從任意大小的地圖中某一啟始點出現,目標為到達某些終止點,玩家 可以從任意處攻擊NPC坦克,但是在地圖中會有些玩家不可擊破的牆壁,這些牆壁可 能是隨機產生或是玩家設定,因此,NPC坦克就會藉由這些牆壁來躲過玩家的攻擊,
並且學到最安全的一條路線來擊敗玩家,其過程如圖八所示。
圖五為一個N*N 大小的地圖,紅色框框所示就是 NPC 坦克,而玩家則是在地圖下 方黑色框框中的坦克,可以左右自由移動,紅色S 點代表 NPC 坦克的初始出現地點,
A1~A5 代表可以阻擋玩家攻擊的牆,紅色箭頭代表 NPC 坦克的目標,只要移動通過最 下面的底線,就算NPC 坦克勝利。
圖 八、遊戲概念圖 的軟硬體設備如下:
本研究的實驗平台
OS: Windows Vista Home Premium
CPU:Intel Core 2 Duo processor T5500(1.6GHz,2MB L2 cache) RAM:2GB
Software:Adobe Flash CS3 Pro
27
4.3 前導實驗
1. 加入增強式學習
在製作遊戲之前,本研究先做了一個前導實驗,想利用的簡單的實驗平台來找出最適 的函數,再將此一實驗結果運用在實際製作的遊戲之中,前導實驗利用flash與action script 2.0當成實驗平台設計工具,創造了一個在3*3地圖中具有簡化SARSA演算法學 習能力的NPC坦克,如圖九。
圖 九、前導實驗圖
3*3 NPC
在此實驗中設定了一個 的地圖,在地圖的右上方為 坦克的啟始點(紅色框白色 S字處),而地圖的左下方則是終止點(老鷹圖處),NPC坦克只能往左或往下走,因此 會有六種不同的策略,如表六。
28
表 六、坦克移動策略表 Q-value值的大小計來算出不同條路線的選取機率,Q-value值越大則會代表著選到該 路線的機會越大,直到只剩下一條路線時,該遊戲才會結束,再將其數據紀錄之。
而在此實驗中的獎懲函數值如表七,其中各值大小為本研究自訂,因應本實驗給予每 條路線的初始值為五十,因此在設定函數數值時,以加減十來測試,在多次實驗之後,
發現對於撞到炸彈或順利走到終點此兩種狀態應該給予較高的獎懲值,相對的其他兩種 情形則需要比較低的獎懲值,因此在本實驗中分別設定為撞到炸彈或走到終點之獎懲值 的一半,也就如表七所示。
表 七、獎懲函數
狀態s R(s)
1.坦克撞到炸彈,該條策略 -10
2.坦克撞到炸彈,別條策略 +5
3.坦克順利走到終點,該條策略 +20 4.坦克順利走到終點,別條策略 -10
在實驗的過程中,本研究發現講懲的設定與增強式學習的效率有很大的關係,如果提 高獎懲值將對提高效率有正向的影響,但是如果設定不當,將造成無法學習到最佳策略 的結果,如表八,當坦克順利撞到炸彈後別條策略的獎懲提高到 10,就會造成如圖十 所示,當回合數非常大時仍然無法學到最佳策略(本研究以一百回合當做最大值,超過 則認為此設定失敗)。
表 八、失敗的獎懲函數
狀態s R(s)
1.坦克撞到炸彈,該條策略 -10
2.坦克撞到炸彈,別條策略 +10
3.坦克順利走到終點,該條策略 +20 4.坦克順利走到終點,別條策略 -10
30
十、
圖 增強式學習失敗圖
並且發現如果以固定的獎懲值,將無法表現出路線的危險程度,當某一路線不斷 的撞到炸彈時,增加固定的值並不合理,應該要以模糊函數來計算獎懲值,如果一直 撞到炸彈時,代表此一策略是非常危險的,應該要給予更高的懲罰。
2. 加入模糊理論
經由實驗的結果,本研究用模糊理論來改善此一實驗。首先,用某一危險函數來 做計算,Xi為該條路線的危險變數,初始值為 ,當碰到炸彈時該路線危險變數為0 Xi=Xi+1,若連續碰到兩次則Xi=Xi+2,若連續碰到三次則Xi=Xi+3,最多+3,也就是 說如果同一條路線中連續碰撞多次炸彈,就代表該路線非常危險,危險變數累加速度 越快,反之,其他j=i條路線的危險變數Xj=Xj-1,且一樣有累加的效果,最多 。-3
31
九( 屬 函 數(fuzzy membership function)則 利用最基本的三角隸屬函數 (Pieczy ski and Obuchowicz 2004)( 十一)圖 ,而f=µ(x)的算式如算式六:
此一算式所計算出來的危險模糊函數來替代原本固定的獎懲值,新的模糊獎懲函數如 表十,因為 期望值為f 0.5,所以新的模糊獎懲函數R’為原本固定獎懲函數RR二倍再乘 上f,例如原本第一條獎懲為-10,新的獎懲值就為-20*f,以此類推。
表 十、模糊獎懲函 數
狀態s R(s)
1.坦克撞到炸彈,該條策略 -20*f 2.坦克撞到炸彈,別條策略 +10*f 3.坦克順利走到終點,該條策略 +40*f 4.坦克順利走到終點,別條策略 -20*f
兩個實驗結果比較如圖十二及表十一。可以看出加入模糊獎懲後,NPC坦克只要 約 26 回合就可以學到唯一的一條路線,比起原本未加入前的固定獎懲快了約 20 回合,明顯的提高學習效率。
圖 十二、前導實驗結果圖
33
表 十一、實驗結果數據 mean 54.6 25.6667 success rate 0.56 0.67
E1:固定獎懲 E2:模糊獎懲
表十一中的成功率(success rate)代表在所有回合中,成功走到終點的機率(成 功走到終點次數/總回合次數),如果以每十回合來看 E1 實驗的成功次數,則如
在此一實驗中可以看出,模糊理論確實可以明顯的提高增強式學習的效率,而 且不只是提高效率,也許可以利用模糊邏輯來控制其難易度的調整,因此實驗 除 了 使 用 基 本 的 三 角 隸 屬 模 糊 函 數 , 也 利 用 了 高 斯 隸 屬 函 數(Gaussian membership function )來比較兩者的差別(Pieczy ski and Obuchowicz 2004)。高 斯隸屬函數算式如公式七: (fuzzification factor) ,其型狀如圖十三所示(c=5,s=2,m=2):
圖 十三、高斯隸屬函數圖
(s ) 圖 十四、模糊隸屬函數圖 不同
36
m ( c=10 s=5 m=3,5,7) 如果只改變 的話,如圖十五所示 以 , , :
(m ) 圖 十五、模糊隸屬函數圖 不同
高斯隸屬函數所呈現的表現較符合本研究所期望的智能表現,本研究所期 望的智能表現並非是直線提高其危險程度,而是要根據不同的需求,去改變其 學習的效果,例如如果目前希望一個後知後覺的NPC,那應該要如圖十四中6 號曲線(黃色)所呈現的結果,相反的如要一個學習能力很強大的NPC,就要 與s m兩值都提高,如圖十四中1 號曲線的結果 或是更加垂直 。因此本研究期望( ) 可以利用不同參數值的隸屬函數,可以用來做為調整難度的機制。
37
4.5 實驗結果
根據前三節所討論,本研究想探討不同模糊隸屬函數參數值與不同的獎懲值大小設定 對於結果的影響,將不同的值代入實驗中,並紀錄NPCs坦克需要多少回合才能學到唯 一的路線,得到的結果中發現,原本預期依照不同的模糊參數值(s m ) NPCs與 值 , 會有 不同的行為模式,藉此可以調整遊戲的難度,但經過實驗發現,模糊參數值的調整並 不能達到原本的預期,在不同的參數設定下,只會影響數據的穩定性,而不會形成不 同的行為表現,反而是不同的獎懲設定對於NPCs行為模式影響程度較大,如圖十六所 示及說明。
圖 十六、模糊函數實驗結果圖
s=3,5 m=3,5 1 號( ) m=3
圖十中,從所有結果挑出 與 來呈現, 藍色 線條代表模糊參數值
s=3 2 號( ) m=3 s=5
與 的四種不同獎懲值下的結果,同理, 紅色 線條是 與 的四種結果,3 號(綠色 線條是) m=5與s=3的四種結果,4 號(黑色 線條是) m=5與s=5的四種結果。而 A,B,C,D四 點 則 是 代 表 在 該 模 糊 參 數 下 的 四 種 獎 懲 值 參 考( 4.3節 , 分 別 為) (40,20,20,10)、(40,20,20,0)、(40,15,20,10)與(40,20,20,5),其中第一個數值為坦克順利 走到終點,該條策略所增加的值,第二個數值為坦克順利走到終點,別條策略所減少
38
,Y軸為當坦克學到唯一一條路線所需的回合數。
從圖中可以看出,改變不同的模糊函數,並不能藉由函數的改變來改變學習的模式 的不同,但是當s與m兩者參數都增加的情型下,會讓NPCs坦克的學習效果越一致,也 就是不受到不同獎懲設定的影響。另外,改變獎懲的大小會直接影響學習的表現(學習 的快與慢),當坦克撞到炸彈,別條策略所增加的值越少,學習越快,這也是合理的行 為,但是如果太少雖然學的比較快,但也表示坦克就會減少嘗試其他路線的機會,如此 一來當環境改變時NPC坦克可能就不懂得如何應變,因此從以上結果可以看出,不同的 需求會有不同的參數值,換句話說,在不同類型的遊戲環境下,會有不同的參數設定。
雖然從結果可以看出模糊函數並不能改變行為模式,但是整體而言,模糊獎懲的結 果會比固定獎懲更有效率(學習的回合數較少),因此雖然從實驗結果無法得到調整難度 機制的方法,但是利用模糊獎懲的增強式學習還是會比固定獎懲的傳統增強式學習更有 效率。此外,如果是不同類型的遊戲,可能需要不同的學習曲線,像是第一人稱射擊遊 戲與即時戰略類型中,NPCs 需要的可能是比較穩定的學習曲線,讓 NPCs 可以從與玩 家互動中穩定的學習,不會讓玩家突然覺得強度變化太大,不可預測;但是像是運動或 動作類型遊戲可能需要變化較大的學習曲線,這類型的遊戲對於強度的敏感度較低,畢 竟人類本來就會有失誤的情形產生,在這種類型遊戲中,如果NPCs 突然做變強或變弱 並不會讓玩家覺得奇怪,反而只會覺得NPCs 只是產生失誤,但是整體而言並不會造成 影響。
39
4.6 遊戲呈現與遊戲結果
在實際的遊戲上,本研究利用魔獸爭霸三的編輯器做出一個實際可以玩的遊戲,
魔獸爭霸三為Blizzard公司在2000年所發表製作的遊戲,遊戲中附有遊戲編輯器(world editor,圖十七)來讓玩家自己設計自己想要的關卡,可以發表在遊戲官方伺服器戰網 (Battle net,圖十八)之上,讓所有玩家玩到自己設計的圖,因為其功能非常齊全,因 此受到玩家的愛戴,創造出許多小遊戲,如圖如當下很紅的Dota TD、 等等小遊戲都是 從玩家自行設計進而發表在戰網上面,許多遊戲甚至成為經典且被視為一種新的遊戲
魔獸爭霸三為Blizzard公司在2000年所發表製作的遊戲,遊戲中附有遊戲編輯器(world editor,圖十七)來讓玩家自己設計自己想要的關卡,可以發表在遊戲官方伺服器戰網 (Battle net,圖十八)之上,讓所有玩家玩到自己設計的圖,因為其功能非常齊全,因 此受到玩家的愛戴,創造出許多小遊戲,如圖如當下很紅的Dota TD、 等等小遊戲都是 從玩家自行設計進而發表在戰網上面,許多遊戲甚至成為經典且被視為一種新的遊戲