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
游戲五計算
主站蜘蛛池模板: 国产女人喷水视频| 91在线丝袜| 亚洲另类国产欧美一区二区| 制服丝袜在线视频香蕉| 国产亚洲高清视频| 网友自拍视频精品区| 国产一区自拍视频| 一级毛片免费不卡在线视频| 久久久精品国产SM调教网站| 色婷婷亚洲综合五月| 国产一级精品毛片基地| 制服无码网站| 免费观看男人免费桶女人视频| 91成人免费观看| 韩国v欧美v亚洲v日本v| 成人免费网站在线观看| 五月激情综合网| 99热这里都是国产精品| 国产精品免费露脸视频| 国产麻豆精品在线观看| 久久精品91麻豆| 极品性荡少妇一区二区色欲| 国产成人综合亚洲网址| 青青热久免费精品视频6| 国产亚洲视频中文字幕视频| 无码电影在线观看| 三上悠亚精品二区在线观看| 色综合成人| 一本一本大道香蕉久在线播放| 国产青青操| 国产一区二区精品福利| 国产成人1024精品| 日本五区在线不卡精品| 国产91高跟丝袜| 日本高清有码人妻| 亚洲欧美成aⅴ人在线观看| 天天综合网站| 亚洲一区第一页| 日韩第九页| 国产毛片基地| 久久精品人人做人人爽97| 67194成是人免费无码| 伊人国产无码高清视频| 天堂成人在线视频| 天堂在线www网亚洲| 亚洲中文字幕国产av| 国产超碰在线观看| 五月婷婷激情四射| 国内老司机精品视频在线播出| 日韩高清一区 | 朝桐光一区二区| 亚洲综合经典在线一区二区| 久久久受www免费人成| 国产熟女一级毛片| 久久免费观看视频| 久久无码av三级| 99热这里只有精品免费| 亚洲欧美精品在线| 亚洲日韩久久综合中文字幕| 精品久久蜜桃| 国产精品无码翘臀在线看纯欲| 四虎成人在线视频| 亚洲国产成人精品一二区| 欧美一级爱操视频| 人妻出轨无码中文一区二区| 日韩欧美网址| 国产亚洲精品精品精品| 伊人久久大香线蕉aⅴ色| 久青草网站| 国产精品永久免费嫩草研究院| 亚洲最新在线| 婷婷六月综合网| 亚洲无码日韩一区| 秋霞一区二区三区| 中文国产成人久久精品小说| 亚洲美女一级毛片| 亚洲免费成人网| 久久久亚洲色| 尤物在线观看乱码| 日本三级欧美三级| 国产女同自拍视频| 一级毛片在线免费看|