999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于改進遺傳算法的坦克大戰(zhàn)游戲設計

2021-05-13 07:16:36梁品策王紹一于琪佳
現(xiàn)代計算機 2021年8期
關(guān)鍵詞:游戲

梁品策,王紹一,于琪佳

(北方工業(yè)大學信息學院,北京100144)

0 引言

在最近的幾年中,隨著中國電子計算機的飛速發(fā)展。游戲行業(yè)特別是對戰(zhàn)類游戲得到了飛速的發(fā)展。市場上類似《邊境》、《黑神話悟空》等佳作也走入了大眾的視野。但隨著現(xiàn)代圖形開發(fā)技術(shù)的發(fā)展,決定一款游戲的好壞不再決于游戲畫面的好壞,高可玩性也成為了一款游戲是否優(yōu)秀的重要指標。

無論是第一人稱對戰(zhàn)游戲還是策略對戰(zhàn)游戲,一個優(yōu)秀的游戲AI 將會極大地提升游戲的可玩性。但在目前的對戰(zhàn)游戲中,很少有利用遺傳算法的對AI 進行訓練的案例。有之前的研究中,有研究人員利用遺傳算法對FC 經(jīng)典游戲洛克人的游戲AI 進行訓練。在該實驗中研究人員通過不同AI 之間相互的戰(zhàn)斗,針對每個AI 的存活率、命中率等一系列標準篩選強大的個體。在經(jīng)歷了多次的訓練以及迭代后,新AI 可以對玩家的攻擊進行規(guī)避,并且擁有了更強的攻擊欲望以及攻擊精度。獲得了相較于原AI 更加具有挑戰(zhàn)性的游戲AI。該研究證明遺傳算法可以運用到游戲AI 的訓練中。但目前的研究中尚未有人將遺傳算法運用到三維對戰(zhàn)游戲中。本次研究中將制作一個簡易的三維坦克大戰(zhàn)游戲,并運用遺傳算法訓練其中的AI。

相較于二維游戲,三維游戲中AI 面對的環(huán)境相較于二維游戲更加復雜,所包含的行動也更加豐富,以移動為例,在二維游戲中,AI 只用操縱角色左右移動,但在三維游戲中,AI 不僅要操縱角色前進后退,還要操縱角色旋轉(zhuǎn),在更為復雜的游戲中,還要操縱角色的跳躍功能。若使用傳統(tǒng)遺傳算法將會導致訓練成本無限增大。因此在本實驗中將行為樹結(jié)構(gòu)應用于遺傳算法中,以此提升遺傳算法AI 的訓練效率。

遺傳算法訓練出優(yōu)秀的游戲AI 從而提高游戲可玩性將會是本研究的主要目標。

1 遺傳算法和行為樹

1.1 遺傳算法簡介

遺傳算法(Genetic Algorithm,GA)最早是由美國的John Holland 于20 世紀70 年代提出。它將達爾文進化論的原理引入編碼串集合中,通過對自然界中的動物基因變異,遺傳,交換等現(xiàn)象的模擬,在編碼串群體間進行有規(guī)律的但又具有一定隨機性的交換。隨著交換的進行,根據(jù)“優(yōu)勝劣汰”的原則,適應性高的個體被保留下來并重新組合,進而產(chǎn)生新的個體,直至產(chǎn)生最優(yōu)解。

基于傳統(tǒng)遺傳算法的AI 訓練的步驟如下:

(1)根據(jù)需求制定合適的數(shù)據(jù)結(jié)構(gòu),作為接下來實現(xiàn)算法的基因。

(2)明確獎勵機制,作為基因進行自然選擇的標準。

(3)確定遺傳算法的適應函數(shù),以及交叉概率、變異概率。

(4)隨機生成一定數(shù)量的樣本。

(5)對樣本使用適應函數(shù),計算出其在該環(huán)境下獲得的分數(shù)。

(6)根據(jù)得分對樣本進行淘汰。

(7)判斷AI 是否已經(jīng)訓練達到預期水平。

1.2 行為樹簡介

行為樹(Behavior Tree)是一種用于控制AI 決策行為的、包含了層級節(jié)點的樹狀數(shù)據(jù)結(jié)構(gòu),高層級的行為由各個低層級的分支行為組成。它通過類似于決策樹的樹形決策結(jié)構(gòu)來選擇當前環(huán)境下應該做出的具體行為。在每次執(zhí)行前,行為樹都會對整個行為樹進行一次深度遍歷,然后根據(jù)優(yōu)先級執(zhí)行行動。

行為樹的節(jié)點一般有三種狀態(tài):未激活、激活和執(zhí)行。每一個節(jié)點都有一個狀態(tài),對于組合節(jié)點的狀態(tài)就是其每個子狀態(tài)。這對于并行節(jié)點來說有點難以判定,因為多個子節(jié)點的狀態(tài)可能不相同。對此一般有兩種解決方案:

(1)當所有子節(jié)點執(zhí)行完畢后再返回狀態(tài);

(2)當?shù)谝粋€子節(jié)點結(jié)束后,則立刻返回狀態(tài)。

節(jié)點的狀態(tài)判定十分重要,一方面外界需要了解當前狀態(tài),以確定下一步采取的決策;另一方面,只有當所有的狀態(tài)執(zhí)行完畢后,行為樹才會進行更新行動。

2 基于行為樹的改進遺傳算法

2.1 對于輸入數(shù)據(jù)的處理

當一個AI 接收的信息過多時,遺傳算法的輸入將會不可避免的膨脹,從而導致算法占用大量的內(nèi)存。此時,模糊邏輯會起到極大的作用,依然以坦克AI 為例,如果每一種血量都算一個數(shù)據(jù)的話那么坦克輸入數(shù)據(jù)則會無限擴大,我們可以根據(jù)血量的不同將血量設定為高中低三個狀態(tài)。這將極大地避免內(nèi)存的占用。根據(jù)輸入數(shù)據(jù)的多少,可以組成一個1×n 矩陣。在本游戲中這將會是一個1×4 矩陣。對應坦克感知系統(tǒng)觀測到的四個數(shù)據(jù):①附近友軍數(shù)量,②附近敵軍數(shù)量,③自身血量高低,④最近友方據(jù)點是否安全。

輸入矩陣:X=[x1x2x3x4]。

2.2 行為樹節(jié)點處理

在默認的行為樹節(jié)點中每一個節(jié)點都擁有前置條件以此判斷該節(jié)點是否執(zhí)行,并激活子節(jié)點。但這也使行為樹整體失去了自我進化的能力。我們設定每一個節(jié)點擁有四個權(quán)重w,對應四個輸入的數(shù)據(jù)。四個輸入數(shù)據(jù)與四個權(quán)重一一相乘之后相加獲得最終數(shù)據(jù)y,由y 值判斷該節(jié)點是否被執(zhí)行。

每一個節(jié)點都將擁有一個1×4 的權(quán)重矩陣。

節(jié)點權(quán)重矩陣:w=[w1w2w3w4]

每一個坦克的行為樹,去除根節(jié)點和基本的選擇節(jié)點有5 個節(jié)點,相應的一個行為樹擁有一個5×4 的重矩陣。為每一個節(jié)點的權(quán)重矩陣的相加之和。

行為樹權(quán)重矩陣:W=[w11w12w12w14]

[w21w22w22w24]

[w31w32w32w34]

[w41w42w42w44]

[w51w52w52w54]

將輸入矩陣與行為樹的權(quán)重矩陣的轉(zhuǎn)置矩陣相乘獲得結(jié)果矩陣Y:

X*W.transpose=Y

Y 為一個1×5 的矩陣。

當行為樹的節(jié)點被激活后尋找Y 中的對應數(shù)據(jù),當Y 中的對應數(shù)據(jù)大于4,則執(zhí)行該節(jié)點。

2.3 遺傳算法的運用

本研究利用遺傳算法改進行為樹,其具體步驟為:

(1)設定算法的基本參數(shù)。

(2)以行為樹的權(quán)重矩陣作為染色體。

(3)設定獎勵機制。

戰(zhàn)斗結(jié)束后,獲勝的一方獲得100 分獎勵。若在600 秒之內(nèi)獲勝,則根據(jù)剩余時間給予獲勝方額外分數(shù),并減少失敗方分數(shù)。為了加快訓練速度,可以設置一些比較具有攻擊性的獎勵機制如雙方每擁有1 個據(jù)點便獲得20 分,并根據(jù)雙方造成的傷害獲得分數(shù)。這樣將會鼓勵更加激進的坦克組,避免雙方采取龜縮戰(zhàn)術(shù)導致死局。

(4)初始化

在訓練開始之前,初始化20 個行為樹組,每組含有7 個行為表,對應7 個坦克。隨后行為樹組隨機分為5 組,5 組之間進行對戰(zhàn)。獲得初始樣本。

(5)遺傳與變異

保留得分最高的8 個行為表組,將剩余12 個中的8個進行變異:其行為表中的行為有1/4 的幾率變?yōu)槠渌袨椤JS? 個通過得分最高的8 個行為表組兩兩交配獲得:即新的行為表的每一個行為有一般幾率來自父方,一般幾率來自女方。最后將所有樣本的得分清零。

(6)測試

游戲分為漫游模式以及游玩模式,在漫游模式下,玩家可以觀測不同樣本之間的對戰(zhàn)過程,在游玩模式下,玩家可以指定一組樣本與得分最高的樣本進行對戰(zhàn),并親自控制一輛坦克參與到游戲當中。查看訓練的樣本是否已經(jīng)達到預期。若已經(jīng)達到預期則可以停止訓練。若不符合預期則繼續(xù)進行遺傳與變異與測試適應度兩個流程。

圖1 遺傳算法流程圖

3 坦克大戰(zhàn)游戲設計與實現(xiàn)

3.1 游戲設定以及機制

本研究將制作一款簡易的3D 坦克大戰(zhàn)游戲。本該游戲是基于Unity3D 開發(fā)的一款可以用于PC 端的坦克對戰(zhàn)游戲。

游戲勝利機制:設定對戰(zhàn)雙方各擁有7 輛坦克進行對戰(zhàn),若玩家加入可操控一輛坦克。場上擁有5 個據(jù)點,坦克接近據(jù)點后可以占領據(jù)點,占領了全部據(jù)點的一方將會取得勝利。為了防止在訓練中出現(xiàn)死局,設定600 秒時間限制,600 秒過后擁有據(jù)點數(shù)較多的一方獲勝。

坦克單位設定:每個坦克單位擁有100 點血量。可以進行攻擊,當坦克攻擊時,坦克將會射出子彈。子彈碰撞到坦克后,坦克的血量將會減少,為了增加一些對戰(zhàn)的策略性,我們設定當坦克的正前方受到傷害時,減少10 點血量。當坦克的側(cè)面受到傷害時,減少20點血量。當坦克的后方受到傷害時,減少40 點血量。

坦克感知系統(tǒng):坦克擁有簡單的視覺系統(tǒng)。可以觀測到坦克周圍友軍和敵軍的數(shù)量。坦克還有簡單的感知系統(tǒng),當受到傷害后坦克可以判斷傷害的方向。

3.2 構(gòu)建坦克AI

游戲基礎的坦克AI 基于行為樹系統(tǒng)。坦克的觀察并接收環(huán)境數(shù)據(jù),并根據(jù)此做出行為判斷,明確坦克在該行為下將會執(zhí)行那些行為。

坦克接收的信息包括:①附近友軍數(shù)量,②附近敵軍數(shù)量,③自身血量高低,④最近友方據(jù)點是否安全。

游戲中的坦克行為樹結(jié)構(gòu)如圖2 所示。

圖2 坦克行為樹

3.3 游戲截圖

圖3

圖4

4 結(jié)語

在最初的幾次子代中,攻守雙方大多是毫無意義的采取龜縮戰(zhàn)術(shù)。在經(jīng)過幾輪的自然選擇后,已經(jīng)出現(xiàn)了具有了一定的攻擊欲望的得分比較高的樣本。在經(jīng)過幾十代的自然選擇后攻守雙方出現(xiàn)了合作意識,出現(xiàn)了集體進攻以及集體防御的趨勢。相信在系統(tǒng)的繼續(xù)繁衍下,每個樣本將會更加智能。

然而這一方法依然有缺陷,由于其訓練時間與每次游戲的時長成正相關(guān),若游戲時長不斷增長其訓練的時間成本也必然攀升。對此,可考慮在下一步的改進中加入多線程訓練,進而克服此類問題。

猜你喜歡
游戲
做游戲
夜間游戲
游戲
送信游戲
數(shù)獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
第八章 直接逃出游戲
小學科學(2015年6期)2015-07-01 14:30:14
游戲五計算
主站蜘蛛池模板: 欧美成人在线免费| 国产精品黄色片| 国产精品亚洲一区二区在线观看| 一级毛片免费不卡在线视频| 日本三级精品| 国产精品亚洲片在线va| 亚洲AⅤ波多系列中文字幕| 制服无码网站| 91亚洲视频下载| 精品国产成人高清在线| 天天综合网在线| 国产精品内射视频| 日韩麻豆小视频| www欧美在线观看| 色网站免费在线观看| 欧美专区在线观看| 中文字幕亚洲另类天堂| 午夜欧美在线| 国产福利小视频高清在线观看| 欧美a网站| 色婷婷成人| 国产精品嫩草影院av| 大乳丰满人妻中文字幕日本| 久草网视频在线| 一区二区在线视频免费观看| 好紧太爽了视频免费无码| 亚洲乱伦视频| 91无码人妻精品一区二区蜜桃| 中文字幕人成人乱码亚洲电影| 国产精品v欧美| 久草国产在线观看| 亚洲天堂网在线观看视频| 亚洲黄色视频在线观看一区| 国产精品久久久精品三级| 亚洲天堂2014| 精品亚洲欧美中文字幕在线看| 欧美无专区| 国产网站一区二区三区| 综合社区亚洲熟妇p| 成人在线不卡视频| 在线看片免费人成视久网下载| 国产一级做美女做受视频| 91色国产在线| 久久无码高潮喷水| 日本91在线| 亚洲一级毛片| 99热这里只有精品免费国产| 91视频青青草| 高清无码不卡视频| 国产区在线观看视频| 久久久噜噜噜| 天堂岛国av无码免费无禁网站| 欧美精品导航| 国产欧美高清| 午夜福利网址| 亚洲婷婷丁香| 伊人天堂网| 免费不卡视频| 精品国产Av电影无码久久久| 宅男噜噜噜66国产在线观看| 日本手机在线视频| 一级爆乳无码av| 日韩欧美高清视频| 92午夜福利影院一区二区三区| 毛片手机在线看| 精品国产黑色丝袜高跟鞋| 91欧美在线| 亚洲AV无码一区二区三区牲色| 欧美精品啪啪一区二区三区| 欧美日本激情| 国产二级毛片| 99re免费视频| 亚洲伊人电影| 国产精品第5页| 国产a在视频线精品视频下载| 亚洲高清无码精品| 国产精品偷伦视频免费观看国产 | 麻豆精品视频在线原创| 欧美精品成人一区二区在线观看| 午夜限制老子影院888| 亚洲91在线精品| 亚洲天堂在线免费|