楊 建,王 萍,于雅鑫,高買軍
(長(zhǎng)安大學(xué) 電子與控制工程學(xué)院,西安 710064)
RoboCup是由哥倫比亞大學(xué)的Mackworth 教授于1992年提出,現(xiàn)已發(fā)展成為最高水平和最大規(guī)模的機(jī)器人賽事之一[1],RoboCup2D 仿真比賽作為RoboCup中歷史最悠久的聯(lián)賽之一,取得了巨大的成功,并激勵(lì)了世界各地的許多研究人員每年都從事這個(gè)項(xiàng)目.
2 D 仿真比賽還提供了一個(gè)重要的實(shí)驗(yàn)平臺(tái),人工智能研究人員一直在使用這個(gè)平臺(tái)進(jìn)行各種領(lǐng)域的研究,包括多智能體系統(tǒng)中的合作、協(xié)調(diào)和協(xié)商.許多人類足球的戰(zhàn)術(shù)策略都被用到2D 比賽中,例如進(jìn)攻、防守、傳球、陣型戰(zhàn)術(shù)等,對(duì)球隊(duì)的優(yōu)化也變得多樣化,目前對(duì)RoboCup2D的研究不斷加快,為智能仿真機(jī)器人技術(shù)的發(fā)展做出了巨大的貢獻(xiàn).
目前的球隊(duì)策略改進(jìn)主要有兩種方法:直接編碼方法和數(shù)據(jù)驅(qū)動(dòng)方法.直接編碼方法主要是對(duì)球隊(duì)底層策略進(jìn)行改進(jìn).陳糧[2]將數(shù)學(xué)模型的泛函分析應(yīng)用到區(qū)域協(xié)防策略中.張毅等[3]提出雙五角星陣型策略和26 分區(qū)進(jìn)攻策略.蔡軍等[4]通過(guò)預(yù)測(cè)模型對(duì)守門員和后衛(wèi)的防守站位進(jìn)行分析.張彥鐸等[5]提出一種新的基于預(yù)測(cè)的射門方法.Chen 等[6]提出了一種基于多群體蟻群優(yōu)化的進(jìn)攻策略.陳冰等[7]提出了“單獨(dú)進(jìn)攻”和“合作進(jìn)攻”兩種進(jìn)攻模式.李敏等[8]提出了一種不同角色、不同分區(qū)的有針對(duì)性的防守策略.周奕麗等[9]對(duì)RoboCup的傳球策略進(jìn)行了研究.
數(shù)據(jù)驅(qū)動(dòng)方法利用強(qiáng)化學(xué)習(xí)和數(shù)據(jù)提取來(lái)對(duì)球隊(duì)進(jìn)行優(yōu)化.Akiyama 等[10]將強(qiáng)化學(xué)習(xí)應(yīng)用于球隊(duì)的決策模塊中,利用神經(jīng)網(wǎng)絡(luò)對(duì)球員進(jìn)攻和防守進(jìn)行優(yōu)化.陳冰等[11]用強(qiáng)化學(xué)習(xí)對(duì)Agent2D 底層的動(dòng)作鏈機(jī)制進(jìn)行優(yōu)化.陳榮亞等[12]采用馬爾可夫決策過(guò)程對(duì)RoboCup2D的人墻站位和球員傳球進(jìn)行分析.李學(xué)俊等[13]用強(qiáng)化學(xué)習(xí)對(duì)搶球球員的決策進(jìn)行研究.章惠龍等[14]將Q 學(xué)習(xí)應(yīng)用于RoboCup2D 比賽的前場(chǎng)進(jìn)攻決策中.在數(shù)據(jù)提取方法方面,宋園等[15]對(duì)仿真2D日志文件進(jìn)行分析,并將其應(yīng)用到進(jìn)攻跑位策略設(shè)計(jì)中.余培[16]從日志文件中提取球員傳球數(shù)據(jù),用多元逐步回歸對(duì)邊界球進(jìn)行了分析.秦鋒等[17]從日志文件中提取球員傳球數(shù)據(jù),用偏最小二乘法對(duì)其進(jìn)行了分析,得出長(zhǎng)傳對(duì)比賽結(jié)果影響最大的結(jié)論.程澤凱等[18,19]對(duì)陣型文件解析,探索球隊(duì)攻守態(tài)的判定優(yōu)化因素,對(duì)球隊(duì)的陣型和進(jìn)攻決策進(jìn)行分析.
針對(duì)上述方法,直接編碼方法修改代碼所耗費(fèi)的時(shí)間少,具有快速性的特點(diǎn),使用數(shù)據(jù)驅(qū)動(dòng)方法的球隊(duì)的實(shí)力更強(qiáng),但數(shù)據(jù)驅(qū)動(dòng)方法需要提取大量的數(shù)據(jù)樣本,并需要訓(xùn)練學(xué)習(xí)多次才能得出結(jié)論.本篇文章采取直接編碼方法運(yùn)用于球隊(duì)底層中.對(duì)球隊(duì)的防守和進(jìn)攻問(wèn)題進(jìn)行分析,提出多人防守策略和三角進(jìn)攻策略,并在RoboCup2D 平臺(tái)進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明所設(shè)計(jì)的策略是可行有效的.
本文是針對(duì)Agent2D 底層代碼來(lái)進(jìn)行討論,并對(duì)相關(guān)代碼進(jìn)行分析.在Agent2D的底層中,球員有幾種常見(jiàn)的模型,感知模型、世界模型、決策分析模型等.球員通過(guò)視覺(jué)和聽(tīng)覺(jué)等感知模型獲取這些信息,在獲取信息過(guò)程中會(huì)受到噪聲的影響,造成信息偏差;球員的決策分析模型分析世界模型中的信息來(lái)決策要執(zhí)行的動(dòng)作;世界模型記載從聽(tīng)覺(jué)模型中接收的球場(chǎng)信息.球員智能體結(jié)構(gòu)設(shè)計(jì)如圖1所示.
圖1 球員智能體結(jié)構(gòu)設(shè)計(jì)圖
在Agent2D 底層中決策模型中用統(tǒng)一的決策文件來(lái)控制角色球員的有球決策和無(wú)球決策.有球狀態(tài)的決策分析框架結(jié)構(gòu)如圖2所示.
圖2 有球狀態(tài)的決策框架
通過(guò)分析bhv_basic_offensive_kick.cpp 可以得出,在執(zhí)行有球決策時(shí),首先判斷是否適合傳球,并調(diào)用進(jìn)行判斷,如果此時(shí)適合傳球并且距離自己最近的防守球員的距離小于設(shè)定某個(gè)值,則調(diào)用Body_Pass::execute(agent)將球傳出去.離自己最近的對(duì)手距離自己為5 個(gè)單位,表示很安全,直接調(diào)用Body_Dribble 帶球;帶球速度比較快可以調(diào)用Body_HoldBall()來(lái)控制球.最后就是執(zhí)行射門,如果自己處于越位線,向?qū)Ψ竭吔翘咔蛘{(diào)用Body_KickToCorner 將球踢到球門的邊角,沒(méi)有越位的話調(diào)用Body_AdvanceBall()直接向前踢球,評(píng)價(jià)射門是否最優(yōu)主要取決于射門點(diǎn)的選取,如果這一部分區(qū)域內(nèi)沒(méi)有防守隊(duì)員或是防守隊(duì)員最少,就選取這個(gè)點(diǎn)作為射門點(diǎn).
無(wú)球狀態(tài)的決策分析框架結(jié)構(gòu)如圖3所示.
圖3 無(wú)球狀態(tài)的決策框架
通過(guò)分析bhv_basic_move.cpp 得出,在執(zhí)行無(wú)球決策時(shí),首先判斷當(dāng)球在對(duì)方球員腳下,我方球員是否離球近,當(dāng)我方球員離球比較近,我方球員可以采取攔截球的方式,調(diào)用Body_Intercept;當(dāng)我方球員離球比較遠(yuǎn),跑到陣型中自己本來(lái)的指定位置,即Home_pos,調(diào)用Body_GoToPoint 方法;如果沒(méi)有回到陣型指定位置就將身子轉(zhuǎn)向球,調(diào)用Body_TurnToBall 函數(shù).當(dāng)對(duì)方持球并且可能進(jìn)行進(jìn)球時(shí)球員要采取鏟球的方式進(jìn)行防守,調(diào)用Bhv_BasicTackle.
在RoboCup2D 仿真比賽中,球場(chǎng)上情況復(fù)雜,球員在通信的過(guò)程中,需要對(duì)球場(chǎng)周圍環(huán)境進(jìn)行分析制定相應(yīng)的策略.因此,對(duì)球場(chǎng)進(jìn)行區(qū)域劃分,根據(jù)球的位置將球場(chǎng)分為我方禁區(qū)、防守區(qū)、進(jìn)攻區(qū)和對(duì)方禁區(qū),如圖4所示.
圖4 球場(chǎng)區(qū)域劃分
防守分為單人防守和多人防守.單人防守是指當(dāng)對(duì)方球員持球進(jìn)攻時(shí),我方負(fù)責(zé)防守的球員處于有利位置,可以搶斷球.多人防守是指當(dāng)對(duì)方球員持球進(jìn)攻時(shí)我方并沒(méi)有球員處于好的防守位置,這時(shí)我方派出2 名以上球員去搶斷.對(duì)方球員逐漸接近我方球門時(shí),我方部分防守球員應(yīng)該快速回防,靠近球門,封住敵方可能進(jìn)攻的方向來(lái)阻礙對(duì)方進(jìn)攻,其他隊(duì)友去接近持球的球員,迫使對(duì)方傳球,這樣對(duì)方球員丟球的機(jī)會(huì)增加.
3.2.1 多人防守的模型構(gòu)建
將單人防守區(qū)域投影到二維平面上,它將變?yōu)橐粋€(gè)近似的圓形.多人防守的空間意義是防守的連續(xù)性.這樣,單人防守的“圓形”形成了多人防守區(qū)域.如圖5所示.
圖5 多人防守區(qū)域平面圖
在確保防守空間連續(xù)性的情況下,多人防守形成m和n兩點(diǎn).
其中,Dmn表示多人防守的防線,di表示防守球員防守區(qū)域圓形直徑的距離,k表示防守球員的數(shù)量.
3.2.2 多人防守策略的實(shí)現(xiàn)
具體的防守策略形成算法描述如下:
Step 1.如果滿足單人防守的條件,到Step 2,否則到多人防守Step 6;
Step 2.檢測(cè)球和對(duì)方接球球員的距離,找出攔截點(diǎn),如果攔截點(diǎn)存在到Step 3,否則到Step 6;
Step 3.如果到達(dá)攔截點(diǎn)成功,則到Step 4,失敗到Step 5;
Step 4.如果搶到球,調(diào)用傳球的指令,退出防守策略;
Step 5.如果沒(méi)有獲得球,則到Step 1;
Step 6.和隊(duì)友通信,進(jìn)行多人協(xié)作防守.
球員進(jìn)行防守跑位,如圖6所示,defence-radius定義所規(guī)定防守球員跑位的精確位置.
圖6 防守?cái)r截圖
防守球員跑位的精確位置是以我方球門中心為圓心,defence-radius為半徑的圓弧上,也在球和我方球門中心的連線上,width為場(chǎng)地長(zhǎng)度,球的位置坐標(biāo)為(m1,n1),防守?cái)r截點(diǎn) (dm1,dn1) 可以由式(2)計(jì)算:
單人防守如圖7(a)所示,當(dāng)對(duì)方持球球員將球傳給對(duì)方接球球員時(shí),我方球員1 檢測(cè)球和對(duì)方接球球員速度和方向,并計(jì)算出最佳攔截點(diǎn),然后快速移動(dòng),直到到達(dá)攔截點(diǎn)并控球?yàn)橹?多人防守如圖7(b)所示,當(dāng)對(duì)方多名球員帶球進(jìn)攻時(shí),我方派出球員1和球員2 去逼搶對(duì)方持球球員,當(dāng)對(duì)方持球球員想給對(duì)方接球球員1 號(hào)和2 號(hào)傳球時(shí),我方球員3 號(hào)和4 號(hào)進(jìn)行跑位防守.
圖7 防守示意圖
根據(jù)第3.1 節(jié)對(duì)球場(chǎng)定義,球進(jìn)入進(jìn)攻區(qū)域時(shí),球會(huì)被識(shí)別出進(jìn)攻狀態(tài),圖8為三角進(jìn)攻策略實(shí)現(xiàn)流程圖,該策略以球的位置坐標(biāo)作為決策參考,并根據(jù)球的位置信息來(lái)判斷球場(chǎng)上的情況.如果判斷我方處于控球狀態(tài),則執(zhí)行進(jìn)攻策略;否則,應(yīng)執(zhí)行防守策略.在我方執(zhí)行進(jìn)攻策略的過(guò)程中,首先應(yīng)根據(jù)球與球門的位置關(guān)系,獲取球員的位置坐標(biāo)和擊球角度;其次選擇出三角形進(jìn)攻策略中核心進(jìn)攻球員和輔助進(jìn)攻球員,最后執(zhí)行動(dòng)作選擇決策.
圖8 三角進(jìn)攻策略流程圖
3.3.1 進(jìn)攻射門示意圖
三角進(jìn)攻策略射門示意圖如圖9所示,當(dāng)我方球員在場(chǎng)上持球進(jìn)攻的時(shí)候,另外兩名球員迅速的向其靠近,3 個(gè)人在場(chǎng)上形成不同形狀的任意三角形,當(dāng)對(duì)方防守球員上前對(duì)我方持球進(jìn)攻的球員進(jìn)行防守的時(shí)候,將球傳給其他兩名球員,然后自己在重新跑位,使3 個(gè)人重新形成三角形的隊(duì)形.進(jìn)攻最重要的能力是射門和進(jìn)球,射門成功率是影響進(jìn)球的主要因素.
圖9 射門示意圖
圖9中藍(lán)色圓圈表示對(duì)方防守球員,橙色圓圈表示我方進(jìn)攻球員,黑色矩形表示對(duì)方球門.進(jìn)攻球員要把球踢入黑色矩形內(nèi),才算取得進(jìn)球.將射門成功率shot-success(d,e,f,g)定義為:
其中,d表示最近的射門的距離,e表示進(jìn)攻球員射門的視角,f表示進(jìn)攻球員的能力指數(shù),g表示防守球員的干擾因數(shù).
其中,(p,q) 點(diǎn)是進(jìn)攻球員所在位置的坐標(biāo),(p1,q1)和(p2,q2)分別表示兩個(gè)球門柱的位置坐標(biāo).
3.3.2 球員角色分配策略
在執(zhí)行三角進(jìn)攻策略的過(guò)程中,球員們根據(jù)自己在不同的時(shí)間段遇到的不同的問(wèn)題而采取不同的動(dòng)作.因此,要賦予他們適當(dāng)?shù)慕巧?以便他們可以在比賽中充分發(fā)揮作用.本文主要根據(jù)球員與球的位置和擊球角度來(lái)選擇核心進(jìn)攻球員和輔助進(jìn)攻球員,將對(duì)方主要防守球員、對(duì)方球門中心和球定義為a,b,c.核心進(jìn)攻球員的選擇如圖10所示.
圖10 核心進(jìn)攻球員選擇圖
在圖10中,我方3 名球員與球的位置關(guān)系和擊球角度關(guān)系為:
其中,μ 表示常數(shù),它的作用是把距離和角度統(tǒng)一在同一個(gè)數(shù)量級(jí)上.σ1、σ2表示加權(quán)相關(guān)系數(shù),它們反映了我方球員與球之間的距離和擊球角度對(duì)進(jìn)攻的重要性,且 σ1+σ2=1 .DH1c、DH2c、DH3c表示我方球員和球之間的距離,α、β、γ 表示我方球員行動(dòng)的方向與球和球員連線的夾角.
根據(jù)我方球員在球場(chǎng)上不同時(shí)刻與球的位置和角度關(guān)系,計(jì)算出k1、k2和k3.根據(jù)其中的最小值,可以得到與球的位置和角度關(guān)系最佳的球員,為核心進(jìn)攻球員.
當(dāng)我方核心進(jìn)攻球員的進(jìn)攻受到阻礙時(shí),要將球傳給我方的其他球員.因此,如何選擇主要的輔助進(jìn)攻球員也變得很重要,主要的輔助進(jìn)攻球員的選擇如圖11所示.
在圖11中,我方2 名球員與對(duì)方主要防守球員、對(duì)方球門中心的位置關(guān)系:
圖11 主要輔助進(jìn)攻球員選擇圖
其中 σ1、σ2表示加權(quán)相關(guān)系數(shù),反映了我方球員與對(duì)方主要防守球員、對(duì)方球門中心的距離對(duì)主要輔助進(jìn)攻球員的選擇的重要性,且 σ1+σ2=1.DH2a、DH3a分別表示我方球員與對(duì)方主要防守球員的距離.DH2b、DH3b分別表示我方球員和對(duì)方球門中心的距離.
根據(jù)在場(chǎng)上我方2 號(hào)和3 號(hào)球員與核心進(jìn)攻球員不同時(shí)刻的位置關(guān)系分別求出k4和k5,根據(jù)其中的最小值,可以得到與核心進(jìn)攻球員位置關(guān)系最佳的球員,這名球員就是主要的輔助進(jìn)攻球員.
3.3.3 球員的動(dòng)作選擇
核心進(jìn)攻球員可以執(zhí)行運(yùn)球、傳球和射門動(dòng)作.影響核心進(jìn)攻球員的動(dòng)作選擇的因素如圖12所示.
圖12 影響核心進(jìn)攻球員的動(dòng)作選擇的因素
將影響核心進(jìn)攻球員選擇動(dòng)作的變量作為輸入變量定義如下:
其中,m1、m2表示核心進(jìn)攻球員執(zhí)行射門和傳球動(dòng)作被對(duì)方主要防守球員攔截的概率,dx、dx1表示對(duì)方主要防守球員到球與對(duì)方球門中心連線、我方主要輔助進(jìn)攻球員連線的距離,dy和dx1表示球到垂足之間的距離.m3、m4、m5分別表示球、核心進(jìn)攻球員和主要輔助進(jìn)攻球員與對(duì)方球門中心的位置與角度關(guān)系,Dbc、DH1b、DH2b表示球、核心進(jìn)攻球員和主要輔助進(jìn)攻球員與對(duì)方球門中心的距離,θbc、θbH1、θbH2表示球、核心進(jìn)攻球員和主要輔助進(jìn)攻球員與對(duì)方球門中心的夾角.m6、m7表示核心進(jìn)攻球員和主要輔助進(jìn)攻球員與對(duì)方主要防守球員之間的位置和角度關(guān)系,DH1a、DH2a表示核心進(jìn)攻球員和主要輔助進(jìn)攻球員與對(duì)方主要防守球員的距離,θaH1、θaH2表示核心進(jìn)攻球員主要輔助進(jìn)攻球員與對(duì)方主要防守球員的夾角.
主要輔助進(jìn)攻球員可以進(jìn)行跑位、掩護(hù)動(dòng)作.影響輔助進(jìn)攻球員的動(dòng)作選擇因素如圖13所示.
圖13 影響輔助進(jìn)攻球員的動(dòng)作選擇的因素
將影響主要輔助進(jìn)攻球員選擇動(dòng)作變量作為輸入變量定義如下:
其中,m8、m9表示主要輔助進(jìn)攻球員與對(duì)方球門中心和球的位置和角度關(guān)系,DH2b、DH2c表示主要輔助進(jìn)攻球員與對(duì)方球門中心和球的距離,θbH2、θcH2表示主要輔助進(jìn)攻球員與對(duì)方球門中心和球的夾角.m10、m11表示主要輔助進(jìn)攻球員與核心進(jìn)攻球員和對(duì)方主要防守球員的位置和角度關(guān)系,DH2H1、DH2a表示主要輔助進(jìn)攻球員與核心進(jìn)攻球員和對(duì)方主要防守球員之間的距離,θH1H2、θaH2表示主要輔助進(jìn)攻球員與核心進(jìn)攻球員和對(duì)方主要防守球員之間的夾角.
本文是在比賽官方使用的平臺(tái)RoboCup2D 仿真平臺(tái)上進(jìn)行仿真實(shí)驗(yàn)的,根據(jù)文獻(xiàn)[20]使用Ubuntu 16.04搭建Linux 系統(tǒng)并下載安裝RoboCup2D 仿真平臺(tái)和相關(guān)依賴庫(kù).將上述策略添加到Agent2D 底層代碼中,在RoboCup2D 仿真平臺(tái)上測(cè)試結(jié)果.實(shí)驗(yàn)的目的是檢驗(yàn)策略改進(jìn)對(duì)底層動(dòng)作的影響,根據(jù)實(shí)驗(yàn)結(jié)果,判斷改進(jìn)策略對(duì)提高球隊(duì)自身能力是否有效.
RoboCup2D 仿真平臺(tái)使用的是服務(wù)器/客戶端模式.仿真平臺(tái)主要有Client (客戶端)、Server (服務(wù)器)和Monitor (監(jiān)視器)3 部分,Client 來(lái)模擬球員和球的運(yùn)動(dòng),比賽的雙方各有11 個(gè) Client,每一個(gè)Client 都控制一名場(chǎng)上的球員;Server 控制看場(chǎng)上球員的行為,主要用來(lái)與Client 交互信息,仿真球員的運(yùn)動(dòng),控制比賽的進(jìn)程;Monitor 來(lái)將虛擬環(huán)境場(chǎng)景展示給參賽者,參賽者看到的信息有雙方球隊(duì)的名稱、比分、球員和足球.比賽后一般使用Logplayer 來(lái)觀看比賽生成的錄像,通過(guò)錄像來(lái)分析球隊(duì)的長(zhǎng)處和不足、球隊(duì)的戰(zhàn)術(shù)策略,這對(duì)提升球隊(duì)實(shí)力非常重要.圖14為RoboCup2D平臺(tái)結(jié)構(gòu)圖.
圖14 RoboCup2D 平臺(tái)結(jié)構(gòu)
本論文進(jìn)行了大量的仿真實(shí)驗(yàn),首先是Agent2D底層代碼的球隊(duì)和將多人防守策略和三角進(jìn)攻策略加入Agent2D 代碼后的球隊(duì)進(jìn)行50 場(chǎng)比賽測(cè)試;然后將數(shù)據(jù)驅(qū)動(dòng)方法的YuShan、WrightEagle、UVA 等球隊(duì)的底層代碼作為測(cè)試隊(duì)伍,與加入多人防守策略和三角進(jìn)攻策略前后的Agent2D 底層代碼的球隊(duì)分別進(jìn)行20 場(chǎng)的比賽測(cè)試.仿真實(shí)驗(yàn)結(jié)果說(shuō)明多人防守策略和三角進(jìn)攻策略具有一定的有效性,在處于進(jìn)攻和防守狀態(tài)下,能夠加強(qiáng)協(xié)作能力,最終有效提升球員進(jìn)攻和防守協(xié)作中的決策能力.
表1為Agent2D 底層代碼球隊(duì)和加入多人防守和三角進(jìn)攻策略優(yōu)化后的Agent2D 代碼球隊(duì)的仿真實(shí)驗(yàn)結(jié)果,可以看出,采用多人防守策略和三角進(jìn)攻策略優(yōu)化后的球隊(duì)獲勝率略高于優(yōu)化前的球隊(duì).
表1 加入策略優(yōu)化前后Agent2D 底層球隊(duì)測(cè)試結(jié)果
加入多人防守和三角進(jìn)攻策略優(yōu)化前后的Agent2D底層代碼的球隊(duì)與YuShan、WrightEagle、UVA 等球隊(duì)仿真實(shí)驗(yàn)結(jié)果表2所示.
表2 策略優(yōu)化前后Agent2D 底層代碼球隊(duì)與數(shù)據(jù)驅(qū)動(dòng)底層代碼球隊(duì)測(cè)試結(jié)果
從表2可以得出兩點(diǎn)結(jié)論:(1)Agent2D 底層代碼的基本策略比較簡(jiǎn)略,在對(duì)方球隊(duì)的協(xié)作緊密的情況下很難采取有效的措施.加入多人防守策略和三角進(jìn)攻策略優(yōu)化后的Agent2D 底層代碼球隊(duì)與數(shù)據(jù)驅(qū)動(dòng)方法的YuShan、WrightEagle、UVA 等球隊(duì)進(jìn)行比賽的獲勝場(chǎng)次比優(yōu)化前有所提升,獲勝場(chǎng)次增加率為75%、100%和50%.(2)數(shù)據(jù)驅(qū)動(dòng)方法的球隊(duì)的實(shí)力更強(qiáng),但數(shù)據(jù)驅(qū)動(dòng)方法需要對(duì)比賽數(shù)據(jù)進(jìn)行提取、學(xué)習(xí)和挖掘球員的信息特征,而直接編碼方法只需要觀看比賽錄像,發(fā)現(xiàn)球隊(duì)的不足之處,直接對(duì)底層模塊的代碼進(jìn)行修改,減少了對(duì)球員數(shù)據(jù)提取、學(xué)習(xí)和訓(xùn)練的時(shí)間,具有快速性的特點(diǎn).
表3為測(cè)試過(guò)程中各球隊(duì)的平均被進(jìn)球數(shù).從表3的數(shù)據(jù)看出加入多人防守和三角進(jìn)攻策略后的Agent2D底層球隊(duì)相對(duì)于原始的Agent2D 底層球隊(duì),進(jìn)攻和防守實(shí)力都有所提升.
表3 平均被進(jìn)球數(shù)統(tǒng)計(jì)
針對(duì)單一的防守和進(jìn)攻方式的特點(diǎn),本文對(duì)防守和進(jìn)攻策略進(jìn)行優(yōu)化,在Agent2D 底層進(jìn)行了以下改進(jìn):
(1)提出了多人防守策略,在保持單人防守的前提下,當(dāng)對(duì)方持球進(jìn)攻,我方并沒(méi)有球員處于好的防守位置,我方派出至少2 名球員去搶斷攔截,增加了對(duì)方丟球的機(jī)會(huì),提高了我方的防守效率.
(2)提出了三角進(jìn)攻策略,當(dāng)我方處于進(jìn)攻狀態(tài),由球和球門的位置關(guān)系,選擇出核心過(guò)的球員和輔助進(jìn)攻球員,組成一個(gè)三角進(jìn)攻小組,核心進(jìn)攻球員進(jìn)行帶球、傳球和射門動(dòng)作,輔助進(jìn)攻球員進(jìn)行跑位和掩護(hù)動(dòng)作,提高了我方的控球率和進(jìn)攻效率.
仿真結(jié)果表明,加入多人防守策略和三角進(jìn)攻策略的球隊(duì)的勝率和場(chǎng)均進(jìn)球都有所提升.多人防守策略和三角進(jìn)攻策略可以有效的提高我方球隊(duì)的防守和進(jìn)攻效率.在后續(xù)研究中,可以將直接編碼方法和數(shù)據(jù)驅(qū)動(dòng)方法同時(shí)應(yīng)用于球隊(duì)中,進(jìn)一步加強(qiáng)球員的決策能力.