摘要:通過計(jì)算機(jī)對(duì)裝備供應(yīng)鏈系統(tǒng)進(jìn)行仿真,可以獲得許多寶貴的數(shù)據(jù),減少相應(yīng)的風(fēng)險(xiǎn),增強(qiáng)決策的科學(xué)性,提高戰(zhàn)時(shí)裝備供應(yīng)保障的科學(xué)化、現(xiàn)代化水平。文章構(gòu)建了基于Agent的裝備供應(yīng)鏈仿真模型,利用Swarm仿真平臺(tái)描述了Agent仿真模型,并運(yùn)用Java語言,實(shí)現(xiàn)了Swarm平臺(tái)下的Agent的交互。
關(guān)鍵詞:Agent;通用裝備供應(yīng)鏈;仿真模型
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1002-3100(2008)12-0032-03
Abstract:Through the supply chain system simulation, much valuable data will be get, the corresponding risk will be reduction and the scientific, modernization of supply in wartime the decision-making will be enhanced. This paper builds a simulation model for equipment supply chain based on Agent. To implement the interactions among Agents, the author describes the agent-based simulation model with Swarm, which is realized by using Java.
Key words: Agent; equipment supply chain; simulation model
0引言
裝備供應(yīng)鏈,是指武器裝備(包括其所配套的保障裝備、零部件、器材等)經(jīng)由生產(chǎn)、包裝、采購、存儲(chǔ)、運(yùn)輸、補(bǔ)給等環(huán)節(jié),最終抵達(dá)作戰(zhàn)部隊(duì)(最終用戶)的一個(gè)網(wǎng)絡(luò)式鏈條結(jié)構(gòu)。將武器裝備供應(yīng)鏈定義為武器裝備籌、儲(chǔ)、供的一個(gè)完整鏈條,有助于提高武器裝備供應(yīng)鏈的軍事和經(jīng)濟(jì)上的雙重效益。
然而,裝備供應(yīng)鏈系統(tǒng)不可預(yù)見性大,尤其是高技術(shù)條件下局部戰(zhàn)爭對(duì)戰(zhàn)時(shí)供應(yīng)鏈的要求高,使得裝備供應(yīng)鏈的規(guī)劃建設(shè)的難度增大。將計(jì)算機(jī)仿真技術(shù)運(yùn)用于裝備供應(yīng)鏈,建立裝備供應(yīng)鏈仿真系統(tǒng),通過計(jì)算機(jī)對(duì)裝備供應(yīng)鏈系統(tǒng)進(jìn)行仿真,可以獲得許多寶貴的數(shù)據(jù),減少相應(yīng)的投資風(fēng)險(xiǎn)和人力、物力、財(cái)力的浪費(fèi),增強(qiáng)決策的科學(xué)性,選擇最佳方案,使系統(tǒng)得到最優(yōu),對(duì)深入研究裝備供應(yīng)鏈管理起著積極的作用,將大大提高戰(zhàn)時(shí)裝備供應(yīng)保障的科學(xué)化、現(xiàn)代化水平。
1基于Agent的裝備供應(yīng)鏈仿真模型
該模型運(yùn)用intranet/internet將供應(yīng)鏈管理成員Agent聯(lián)系在一起,使裝備供應(yīng)鏈上的信息充分共享,并通過成員Agent的交互,使得裝備供應(yīng)鏈各個(gè)環(huán)節(jié)緊密聯(lián)系,以提高裝備供應(yīng)鏈的運(yùn)作效率(如圖1所示)。
該模型的體系結(jié)構(gòu)如下:
(1)Agent數(shù)目。先假定有3個(gè)供應(yīng)商Agent,1個(gè)運(yùn)輸單位Agent,1個(gè)財(cái)務(wù)Agent,2個(gè)庫存Agent,1個(gè)采購Agent,1個(gè)控制協(xié)調(diào)Agent和20個(gè)保障對(duì)象Agent。
(2)Agent之間的通信方式。采用分布式網(wǎng)絡(luò)系統(tǒng)中多個(gè)Agent模塊之間的通信方式,具體實(shí)現(xiàn)依賴于Swarm仿真平臺(tái)。
(3)Agent之間的通信協(xié)議。為了體現(xiàn)供應(yīng)鏈理論中信息共享的要求和程序?qū)崿F(xiàn)的簡單,我們采用黑板機(jī)制來實(shí)現(xiàn)重要信息的共享,并通過消息傳遞的方式進(jìn)行交互,這樣就要添加一個(gè)黑板Agent,它的作用就是實(shí)現(xiàn)共享信息的更新和發(fā)布。
(4)Agent之間的層次結(jié)構(gòu)原則上每個(gè)Agent都是自治的、獨(dú)立的實(shí)體。Agent之間沒有相互的制約關(guān)系,Agent之間相互聯(lián)系的行為是由Swarm仿真平臺(tái)上稱為時(shí)間表的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的。
(5)Agent之間的協(xié)調(diào)。供應(yīng)鏈系統(tǒng)中,盡管每個(gè)成員都具有自治性,但整個(gè)系統(tǒng)的物流、信息流和資金流都是在需求的拉動(dòng)下進(jìn)行流動(dòng)。在本系統(tǒng)中,事件的主線是這樣的:保障對(duì)象Agent將監(jiān)視到的裝備消耗信息發(fā)送給庫存Agent;庫存Agent根據(jù)保障對(duì)象的需求發(fā)出裝備出庫通知給控制協(xié)調(diào)Agent,同時(shí)發(fā)出運(yùn)輸通知給運(yùn)輸Agent;運(yùn)輸Agent接到通知運(yùn)送裝備給保障對(duì)象,并將信息反饋給控制協(xié)調(diào)Agent;控制協(xié)調(diào)Agent根據(jù)庫存情況做出需求計(jì)劃,并發(fā)送到采購Agent;采購Agent根據(jù)需求計(jì)劃制定裝備采購計(jì)劃,并向供應(yīng)商Agent發(fā)出訂單,同時(shí)向控制計(jì)劃Agent反饋信息;供應(yīng)商根據(jù)訂單供應(yīng)裝備,并發(fā)布信息給采購Agent;庫存Agent發(fā)出入庫通知給控制計(jì)劃Agent和財(cái)務(wù)Agent,財(cái)務(wù)Agent向供應(yīng)商放款。在這個(gè)主線之外,每個(gè)成員都還有自己的自治行為,如庫存Agent可以在控制計(jì)劃Agent的監(jiān)督下直接向供貨商發(fā)出訂單;控制計(jì)劃Agent可以根據(jù)供應(yīng)商的供貨情況進(jìn)行供應(yīng)商管理,并協(xié)調(diào)采購Agent改變采購計(jì)劃;采購Agent也可以直接向運(yùn)輸Agent發(fā)出請(qǐng)求等,這些行為之間及它們與主線順序之間是并行的。另外裝備供應(yīng)的特點(diǎn)要求各Agent的協(xié)作建立在相互信任的基礎(chǔ)上,所以本模型不考慮Agent之間的沖突。

2基于Swarm平臺(tái)的裝備供應(yīng)鏈仿真模型描述
用Swarm仿真平臺(tái)模擬裝備供應(yīng)鏈的兩項(xiàng)任務(wù):①在裝備供應(yīng)鏈環(huán)境中仿真裝備的訂購構(gòu)成。②評(píng)估裝備供應(yīng)鏈的訂購性能。
下面用統(tǒng)一建模語言(UML)中的類圖描述模型所涉及的Agent之間的繼承關(guān)系,(如圖2所示)。
其中SCObject是一個(gè)抽象類,作為所有封裝了對(duì)象的標(biāo)識(shí)及相關(guān)操作,余下見表1。
Swarm采用對(duì)Agent的行為排列行為列表的方式實(shí)現(xiàn)對(duì)系統(tǒng)中并行交互的模擬過程。在模型的實(shí)現(xiàn)過程中本文將管理分為6個(gè)時(shí)間步驟,在每個(gè)步驟里分別實(shí)現(xiàn)如表2中的行為。
原則上,當(dāng)一個(gè)行為涉及到多個(gè)Agent時(shí),該行為對(duì)應(yīng)的方法實(shí)現(xiàn)在提出行為的Agent類中。Swarm提供了相應(yīng)的調(diào)度機(jī)制,使得模擬過程中上述步驟依次得到執(zhí)行。為了更好的模擬這些Agent在現(xiàn)實(shí)生活中的行為,對(duì)于具有多個(gè)實(shí)例的Agent、Swarm支持按照隨機(jī)的序列方式調(diào)用他們。
3基于Swarm平臺(tái)的Agent的交互與實(shí)現(xiàn)
由于java正在成為最為流行的、跨平臺(tái)的面向?qū)ο缶幊陶Z言,所以它已成為Swarm重點(diǎn)支持的編程語言。Swarm從其2.0.1版就開始支持java,其主要實(shí)現(xiàn)技術(shù)是提供了一組java接口(存在于Swarm的java包中,Swarm的所有特征都包含在該包內(nèi)),這些接口可直接調(diào)用Swarm內(nèi)核中的功能(對(duì)用戶透明),用戶只要在自己的java程序中調(diào)用這些接口即可。
仿真程序一般的啟動(dòng)方法是SCS_Obsever中的main方法。main是一個(gè)類方法,在模型運(yùn)行時(shí)首先被調(diào)用,是Swarm仿真程序的入口。
(1)初始化Swarm。
(2)創(chuàng)建ObserverSwarm。
(3)在實(shí)例本身上調(diào)用BuildObjects。
(4)在1中激活頂層Swarm(頂層的Swarm在1中被激活)。
(5)仿真運(yùn)行。
上述過程的基本代碼如下所示:
import swarm.Globals;
import swarm.defobj.Zone;
public class Startsupple
{
public static void main(String[]args)
{
ObserverSwarm displaySwarm;
//Swarm initialization:all Swarm apps must call this first.
Globals.env.initSwarm(\"supple\",\"2.1\",\"supple@santafe.edu\",args);
displaySwarm=(ObserverSwarm)Globals.env.lispAppArchiver.getWithZone$key(
Globals.env.globalZone,\"displaySwarm\");
displaySwarm.buildObjects();
displaySwarm.buildActions();
displaySwarm.activateIn(1);
//Now start the displaySwarm and the control panel it
//provides.
displaySwarm.go();
//The user has pressed Quit.Drop everything and return.
displaySwarm.drop();
}
}
4總結(jié)

作為一種復(fù)雜系統(tǒng)的新的研究手段,近年來基于Agent的供應(yīng)鏈仿真引起了國內(nèi)外學(xué)者的關(guān)注,仿真的方法不依據(jù)抽象的假想,而是依據(jù)系統(tǒng)的實(shí)際結(jié)構(gòu)和組成已經(jīng)對(duì)系統(tǒng)調(diào)研分析所獲得的數(shù)據(jù)建立起來的動(dòng)態(tài)模型,這種模型既表達(dá)了系統(tǒng)的物理特征又有其邏輯特征,更貼近實(shí)際,更便于對(duì)系統(tǒng)進(jìn)行分析。通過仿真,可以依據(jù)仿真模型的運(yùn)行效果,修改參數(shù),反復(fù)仿真,這樣系統(tǒng)仿真的方法可以看成是一種間接的優(yōu)化方法。
參考文獻(xiàn):
[1] 楊西龍,等. 戰(zhàn)時(shí)軍事物流仿真研究[J]. 系統(tǒng)仿真學(xué)報(bào),2005(9):18-20.
[2] 胡睿,陳德軍. 基于多Agent的供應(yīng)鏈系統(tǒng)建模與實(shí)現(xiàn)[J]. 武漢理工大學(xué)學(xué)報(bào),2007(4):35-38.
[3] 高軍,崔世娟. 武器裝備供應(yīng)鏈管理[M]. 北京:國防工業(yè)出版社,2007.
[4] 黃超. 基于Agent的供應(yīng)鏈管理系統(tǒng)建模與仿真[D]. 武漢:華中科技大學(xué)(碩士論文),2005.
[5] 高翔,林杰. 基于Agent的供應(yīng)鏈仿真系統(tǒng)建模與實(shí)施研究[J]. 同濟(jì)大學(xué)學(xué)報(bào),2006(3):15-17.