建?;A(chǔ)理論
科學(xué)實(shí)驗(yàn)是人們改造自然和認(rèn)識社會的基本活動與主要手段。科學(xué)實(shí)驗(yàn)有兩種途徑: 其一是在實(shí)際系統(tǒng)進(jìn)行試驗(yàn),謂之實(shí)物試驗(yàn)或物理試驗(yàn); 其二是利用模型完成試驗(yàn),叫做模型研究或系統(tǒng)仿真(即模擬)。
模型與模型研究的概念由來已久,可以追溯到古代仿鳥飛行和按比例樣板造船,只是在計(jì)算機(jī)出現(xiàn)之后才在此基礎(chǔ)上產(chǎn)生了系統(tǒng)仿真科學(xué)與技術(shù)。模型至今是科技工作者最常談?wù)摰闹匾茖W(xué)術(shù)語之一,它是相對于現(xiàn)實(shí)世界或?qū)嶋H系統(tǒng)而言的。在系統(tǒng)仿真中,被研究的實(shí)際系統(tǒng)或未來的假定系統(tǒng)叫做原型,而原型的等效替身則稱之為模型。
在科學(xué)實(shí)驗(yàn)和理論研究中,基于如下主要兩方面原因而產(chǎn)生了建模與仿真: ①由于某種原因,如系統(tǒng)過于復(fù)雜,實(shí)驗(yàn)現(xiàn)場有毒、有害、不安全、受限制、不經(jīng)濟(jì)等不宜或者不能在實(shí)際系統(tǒng)上進(jìn)行試驗(yàn); ②人們往往希望在產(chǎn)生實(shí)際系統(tǒng)(一般指人工系統(tǒng))之前或?qū)?shí)際系統(tǒng)未來能夠預(yù)測出它們的性能、功能和行為。
一個(gè)有效模型必須能夠反映原型的主要表征、特性及功能,并具有如下基本性質(zhì): 普遍性(或等效性)、相對精確性、可信性、異構(gòu)性及通過性。
(1)普遍性是指一個(gè)模型可能與多個(gè)系統(tǒng)具有相似性,即一種模型通??梢悦枋龆鄠€(gè)相似系統(tǒng)。
(2)相對精確性是指模型的近似度和精度都不可超出應(yīng)有限度和許可條件。這是因?yàn)?,過于粗糙的模型將失去原型的過多信息和特性,而變得無用; 太精確的模型則往往造成模型相當(dāng)復(fù)雜而導(dǎo)致研究困難,甚至終不得其解。就此而言,模型應(yīng)具有考慮諸多條件折中下的精確性。
(3)可信性表明模型必須經(jīng)過校核、驗(yàn)證和確認(rèn),即進(jìn)行所謂的VV&A活動,使之具有滿意的可信度。
(4)異構(gòu)性是指對于同一個(gè)系統(tǒng),模型可以具有不同的形式和結(jié)構(gòu),即模型不是唯一的。
(5)通過性,即模型可視為“黑箱”,通常能夠利用輸入/輸出實(shí)驗(yàn)數(shù)據(jù)辨識出它的結(jié)構(gòu)和參數(shù)。
實(shí)質(zhì)上仿真是對真實(shí)世界的模擬,所有的定義都有一個(gè)基本共同觀點(diǎn): 仿真是基于模型進(jìn)行的。
8.2.1 建?;A(chǔ)
8.2.1.1 建模的一般原則
為了有效地進(jìn)行計(jì)算機(jī)仿真,必須首先根據(jù)仿真的目的,對需要進(jìn)行仿真的系統(tǒng)建立起可信的系統(tǒng)模型。系統(tǒng)模型是對現(xiàn)實(shí)世界中事物的抽象,對事物的過程進(jìn)行數(shù)學(xué)或邏輯上的描述。在這種抽象的過程中需要經(jīng)過一定程度的簡化并依賴于部分假設(shè)。建立一個(gè)準(zhǔn)確的系統(tǒng)模型是進(jìn)行計(jì)算機(jī)仿真的前提和必要條件。
在模型建立中,一般要遵循以下基本原則。
(1)簡單性。從實(shí)用的觀點(diǎn)看,由于在建模過程中忽略了一些次要因素和某些非可測變量的影響,因此,實(shí)際的模型已是一個(gè)簡化了的近似模型。一般而言,在實(shí)用的前提下,模型越簡單越好。
(2)清晰性。一個(gè)復(fù)雜的系統(tǒng)是由許多子系統(tǒng)組成的,因此對應(yīng)的系統(tǒng)模型也是由許多子模型構(gòu)成的。在子模型之間除為了研究目的所必需的信息聯(lián)系外,互相耦合要盡可能少,結(jié)構(gòu)要盡可能清晰。
(3)相關(guān)性。模型中應(yīng)該只包括系統(tǒng)中與研究目的有關(guān)的那些信息。例如,對一個(gè)空中調(diào)度系統(tǒng)的研究,只需要考慮飛行的方位航向,而無須涉及飛機(jī)的飛行姿態(tài)。雖然與研究目的無關(guān)的信息包括在系統(tǒng)模型中可能不會有很大危害,但是,因?yàn)樗鼤黾幽P偷膹?fù)雜性,從而使得在求解模型時(shí)增加額外的工作,所以應(yīng)該把與研究目的無關(guān)的信息排除在外。
但是,實(shí)際系統(tǒng)中到底哪些信息是本質(zhì)的,哪些信息是非本質(zhì)的,這要取決于所研究的問題。例如,為了制定大型企業(yè)的生產(chǎn)管理計(jì)劃,模型就不必反映各生產(chǎn)裝置的動態(tài)特性,但必須反映產(chǎn)品質(zhì)量、銷售和庫存原料量等變化情況。也就是說,各裝置的動態(tài)特性對這種模型來說是非本質(zhì)的。相反,為了實(shí)現(xiàn)各生產(chǎn)裝置的最佳運(yùn)行,模型就必須反映各裝置內(nèi)部狀態(tài)變化的、詳細(xì)的生產(chǎn)過程動態(tài)特性。這時(shí),各裝置的動態(tài)特性就變成本質(zhì)的了??梢姡P退从车膬?nèi)容將因其使用的目的不同而不同。
對實(shí)際系統(tǒng)而言,模型一般不可能考慮系統(tǒng)的所有因素。從這個(gè)意義上講,所謂模型可以說是按照系統(tǒng)的建模目的所作的一種近似描述。研究者必須承認(rèn),如果模型的輸出響應(yīng)y(k)和實(shí)際系統(tǒng)的輸出響應(yīng)y(k)“幾乎必然”處處相等,記作y(k) →—a.s.y(k),(a.s.意思是almost surely),那么應(yīng)該說所建立的模型就是滿意的了。當(dāng)然,如果要求模型越精確,模型就會變得越復(fù)雜。相反,如果適當(dāng)降低模型的精度要求,只考慮主要因素而忽略次要因素,模型就可以簡單些。這就是說,建立實(shí)際系統(tǒng)的模型時(shí),存在著精確性和復(fù)雜性這一對矛盾,找出這兩者的折中解決方法往往是實(shí)際系統(tǒng)建模的關(guān)鍵。
(4)準(zhǔn)確性。建立系統(tǒng)模型時(shí),應(yīng)該考慮所收集的用以建立模型的信息的準(zhǔn)確性,包括確認(rèn)所對應(yīng)的原理和理論的正確性和應(yīng)用范圍,以及檢驗(yàn)建模過程中針對系統(tǒng)所作的假設(shè)的正確性。例如,在建立導(dǎo)彈飛行動力學(xué)模型時(shí),應(yīng)將導(dǎo)彈視為一個(gè)剛體而不是一個(gè)質(zhì)點(diǎn),同時(shí)要注意導(dǎo)彈在高超聲速運(yùn)動中的特殊性。如果僅考慮導(dǎo)彈的射程問題,導(dǎo)彈在大氣中的運(yùn)動可以作相應(yīng)的簡化,如果是考慮導(dǎo)彈的命中精度問題,就不能作這樣的簡化。
(5)可辨識性。模型結(jié)構(gòu)必須具有可辨識的形式。所謂可辨識性是指系統(tǒng)的模型必須有確定的描述或表示方式,而在這種描述方式下與系統(tǒng)性質(zhì)有關(guān)的參數(shù)必須是唯一確定的解。若一個(gè)模型結(jié)構(gòu)中具有無法估計(jì)的參數(shù),則此模型就無實(shí)用價(jià)值。
(6)集合性。建立模型還需要進(jìn)一步考慮的一個(gè)因素,是能夠把一些個(gè)別的實(shí)體組成更大實(shí)體的程度,即模型的集合性。例如,對防空導(dǎo)彈系統(tǒng)的研究,除了能夠研究每枚導(dǎo)彈的發(fā)射細(xì)節(jié)和飛行規(guī)律之外,還可以綜合計(jì)算多枚導(dǎo)彈發(fā)射時(shí)的作戰(zhàn)效能。
8.2.1.2 相似理論
相似理論是系統(tǒng)仿真學(xué)科的最主要的基礎(chǔ)理論之一。相似現(xiàn)象是客觀世界中普遍存在的一種現(xiàn)象。例如,在天體系統(tǒng)中,行星間的自轉(zhuǎn)運(yùn)動和軌道運(yùn)動具有相似性; 在生物系統(tǒng)中,動物與動物之間、動物與人之間對應(yīng)的器官結(jié)構(gòu)與功能相似,信息獲取和處理方法相似; 在建筑工程中,供水與供電系統(tǒng)間存在相似性。甚至在系統(tǒng)內(nèi)部不同層次之間也可能存在相似性。
相似學(xué)是一門研究客觀世界中相似規(guī)律及其應(yīng)用的技術(shù)科學(xué)。它從系統(tǒng)科學(xué)角度研究相似問題,以客觀世界中的相似現(xiàn)象以及不同類型、不同層次系統(tǒng)間相似特性的形成原理及應(yīng)用為研究對象,尋求從本質(zhì)上統(tǒng)一認(rèn)識客觀世界中各種相似現(xiàn)象的形成原理及內(nèi)在聯(lián)系,為相關(guān)的工程實(shí)踐活動提供新的科學(xué)理論基礎(chǔ)。
1. 相似原理
仿真依據(jù)的是相似性原理,而相似與否取決于所要研究的問題。相似方式主要有空間相似、時(shí)間相似、功能相似、動態(tài)特性相似和信息相似等。
(1)空間相似。根據(jù)序結(jié)構(gòu)定律,當(dāng)系統(tǒng)空間序結(jié)構(gòu)存在共同性時(shí),系統(tǒng)之間就表現(xiàn)出相似性??臻g相似是一種最基本的相似方式。例如,幾何學(xué)里的相似多邊形之間的相似就屬于空間相似。
仿真系統(tǒng)中對外形結(jié)構(gòu)的仿真就是一種空間相似。例如,在坦克駕駛模擬器中,駕駛座艙的外形尺寸要盡量與實(shí)車相一致,各種儀表、開關(guān)、按鈕的形狀和空間位置也要盡量與實(shí)車相一致。
(2)時(shí)間相似。根據(jù)序結(jié)構(gòu)定律,當(dāng)系統(tǒng)時(shí)間序結(jié)構(gòu)存在共同性時(shí),系統(tǒng)之間也表現(xiàn)出相似性。例如,許多植物的生長都經(jīng)歷生根、發(fā)芽、成長、開花、結(jié)果等幾個(gè)階段,這種相似就是時(shí)間相似。
仿真中對時(shí)間相似的運(yùn)用也比比皆是。以坦克射擊模擬器為例,實(shí)車在炮手按動發(fā)射按鈕與聽到爆炸聲之間有一定的時(shí)間間隔,那么在仿真中這個(gè)時(shí)間間隔就要盡量與實(shí)車相一致,過長或過短都會導(dǎo)致仿真的逼真度下降。
(3)功能相似。根據(jù)序結(jié)構(gòu)定律,當(dāng)系統(tǒng)功能序結(jié)構(gòu)存在共同性時(shí),系統(tǒng)之間也表現(xiàn)出相似性。例如,計(jì)算機(jī)根據(jù)預(yù)先編制的程序,可以完成數(shù)學(xué)運(yùn)算、邏輯推理等人腦完成的工作,具備了人腦的部分功能,在計(jì)算機(jī)與人腦之間就形成了一定的相似性。這種相似就是功能相似。
從本質(zhì)上講,仿真就是對原型系統(tǒng)部分功能的模擬。仿真系統(tǒng)與原型系統(tǒng)的數(shù)學(xué)模型是相似的,這種相似決定了二者功能的相似性。計(jì)算機(jī)生成兵力(Computer Generated Force,CGF)與原型系統(tǒng)之間在智能方面的相似性也屬于功能相似的范疇。
(4)動態(tài)特性相似。兩種不同的物理系統(tǒng),如果它們的動態(tài)方程相似,其運(yùn)動規(guī)律就相似。例如,由剛體、線性彈簧和阻尼器構(gòu)成的簡單機(jī)械系統(tǒng)和由集中參數(shù)LRC元件構(gòu)成的電系統(tǒng)是兩個(gè)截然不同的物理系統(tǒng),但它們的動態(tài)方程是相似的,都可以用二階線性微分方程的形式來描述,兩個(gè)系統(tǒng)之間就存在相似性。這種相似就是動態(tài)特性相似。
動態(tài)方程相似的系統(tǒng),其動態(tài)特性就相似,這是控制系統(tǒng)仿真的理論基礎(chǔ)。要對一個(gè)控制系統(tǒng)進(jìn)行仿真,首先要建立該系統(tǒng)的數(shù)學(xué)模型,再通過某種算法將其轉(zhuǎn)化為仿真模型,用計(jì)算機(jī)來解算,以此研究原型系統(tǒng)的運(yùn)動規(guī)律。
(5)信息相似。根據(jù)信息定律,當(dāng)系統(tǒng)信息作用存在共同性時(shí),系統(tǒng)之間也表現(xiàn)出相似性。例如,許多種動物都靠發(fā)出不同的叫聲向同伴傳遞不同的信息,信息傳遞方式的相似就決定了這些動物之間存在相似性。這種相似就是信息相似。
仿真中最典型的信息相似就是人在回路仿真系統(tǒng)人機(jī)(或人與虛擬環(huán)境)信息交互與原型系統(tǒng)人機(jī)(或人與真實(shí)環(huán)境)信息交互之間的相似,包括運(yùn)動感覺信息相似、視覺信息相似、聽覺信息相似、觸覺信息相似等。
2. 相似方法
實(shí)現(xiàn)相似的方法也是多種多樣的,下面給出幾種常用的方法。
(1)模式相似方法。模式相似方法又包括統(tǒng)計(jì)決策法和句法(或結(jié)構(gòu))方法。
(2)模糊相似法。如果說概率統(tǒng)計(jì)是研究一級不確定性問題,那么模糊理論則是研究雙重或多級不確定性問題。仿真系統(tǒng)在很多情況下確實(shí)存在模糊問題,需要用模糊相似方法來分析仿真系統(tǒng)與真實(shí)系統(tǒng)的相似程度(精度)。
(3)組合相似方法。在仿真系統(tǒng)中,即使各個(gè)部件和子系統(tǒng)均已獲得精度足夠高的相似處理,已經(jīng)滿足各自的性能指標(biāo),但未必能保證系統(tǒng)的整體性能滿足要求,故有必要對各子系統(tǒng)建立組合相似模塊并進(jìn)行綜合補(bǔ)償處理,形成組合相似方法,以適應(yīng)不同模態(tài)和不同情況的需要。在半實(shí)物仿真系統(tǒng)中,某些物理量的模擬由于需要的技術(shù)和投入比較大,可以采用數(shù)學(xué)相似加物理相似的方法進(jìn)行處理。比如激光光斑特性仿真、紅外成像特性仿真等需要通過數(shù)學(xué)相似建立目標(biāo)本身的光學(xué)特性、大氣傳輸特性數(shù)學(xué)模型實(shí)現(xiàn)物理相似,配合物理終端效應(yīng)設(shè)備進(jìn)行半實(shí)物仿真。還比如在進(jìn)行導(dǎo)引頭半實(shí)物仿真中,在需要滿足彈體姿態(tài)運(yùn)動、導(dǎo)彈運(yùn)動、目標(biāo)運(yùn)動相似關(guān)系時(shí),可以采用組合相似處理方法,如將導(dǎo)彈運(yùn)動、目標(biāo)運(yùn)動復(fù)合為彈目運(yùn)動。
(4)坐標(biāo)變換相似方法。坐標(biāo)變換相似法是研究空中運(yùn)動體系統(tǒng)不可缺少的一種方法,經(jīng)常用于飛行器狀態(tài)數(shù)學(xué)模型中,在視景系統(tǒng)的相似變換中更是常用。比如轉(zhuǎn)臺的坐標(biāo)系和轉(zhuǎn)臺上的測量器件的坐標(biāo)系不一致時(shí),需要對驅(qū)動轉(zhuǎn)臺的信號作坐標(biāo)變換,因?yàn)樵趶楏w方程中解算出的姿態(tài)角為歐拉系(偏航、俯仰、滾轉(zhuǎn)的旋轉(zhuǎn)關(guān)系),而隨轉(zhuǎn)臺結(jié)構(gòu)形式、測量器件在轉(zhuǎn)臺上的安裝方式、工作原理的不同,驅(qū)動轉(zhuǎn)臺的角度需作相應(yīng)坐標(biāo)變換。
3. 相似方法的實(shí)現(xiàn)
(1)時(shí)間與邏輯相似。采用實(shí)時(shí)仿真算法和仿真計(jì)算機(jī)實(shí)現(xiàn)數(shù)學(xué)模型的實(shí)時(shí)解算,目前仿真步長可以到1ms。采用數(shù)字光纖通信網(wǎng)絡(luò)實(shí)現(xiàn)仿真設(shè)備間的數(shù)字通信,確保仿真系統(tǒng)信號傳輸延遲控制在毫秒級。
(2)幾何相似。即空間幾何關(guān)系相似,如一個(gè)空間運(yùn)動體有六個(gè)自由度,一般采用三軸轉(zhuǎn)臺實(shí)現(xiàn)三個(gè)姿態(tài)角運(yùn)動仿真,在實(shí)現(xiàn)姿態(tài)角運(yùn)動仿真時(shí),需要根據(jù)轉(zhuǎn)臺結(jié)構(gòu)形式采用合適的坐標(biāo)轉(zhuǎn)換方法。質(zhì)心運(yùn)動一般采用數(shù)學(xué)模型仿真,但也有讓轉(zhuǎn)臺在一個(gè)、兩個(gè)方向?qū)崿F(xiàn)平動,從而實(shí)現(xiàn)二維的質(zhì)心運(yùn)動仿真; 對兩個(gè)相對運(yùn)動的空間運(yùn)動體,一般來講,姿態(tài)運(yùn)動各自獨(dú)立模擬,而兩個(gè)三維質(zhì)心運(yùn)動可以組合為一個(gè)三維質(zhì)心運(yùn)動。
另外一個(gè)是仿真對象內(nèi)的部件(也可以認(rèn)為是獨(dú)立的仿真子實(shí)體)的相對幾何關(guān)系相似,一般靜態(tài)的相對幾何關(guān)系為安裝關(guān)系,如運(yùn)動體中陀螺、線加速度在運(yùn)動體中的相對安裝關(guān)系,這種關(guān)系會影響到部件的力學(xué)環(huán)境,即運(yùn)動體和部件的力學(xué)環(huán)境不一樣。
(3)環(huán)境相似。指使仿真對象在仿真空間所受的環(huán)境影響,與其在外部物理空間所受到的環(huán)境影響一致,這些環(huán)境因素包括了可以對仿真對象的狀態(tài)、性能產(chǎn)生影響的各種因素。
①力學(xué)環(huán)境。一般包含慣性空間的重力環(huán)境、受力環(huán)境等; 重力環(huán)境不需仿真,直接由幾何相似即可保證; 受力環(huán)境比較復(fù)雜,一般有運(yùn)動體的動力學(xué)環(huán)境(空氣、流體動力學(xué))、運(yùn)動體部件(力學(xué)環(huán)境敏感器件)的受力環(huán)境,如車輛發(fā)動機(jī)受的地面摩擦力矩、飛行器執(zhí)行機(jī)構(gòu)受的鉸鏈力矩、飛行器氣壓表受的大氣壓力等。對于受力環(huán)境仿真一般要根據(jù)實(shí)際情況通過加載器來實(shí)現(xiàn)。而根據(jù)受力特性的不同分為主動加載和被動加載兩種,被動加載指加載的大小與受力對象的狀態(tài)有關(guān),而受力對象的狀態(tài)又受加載力影響。
②光學(xué)環(huán)境。指仿真對象或其部件和敏感到的光學(xué)環(huán)境。如人體、機(jī)器人視覺的光學(xué)環(huán)境,導(dǎo)彈光學(xué)導(dǎo)引頭的光學(xué)環(huán)境,空間運(yùn)動體的光學(xué)敏感器件的光學(xué)環(huán)境。按照光學(xué)敏感器件的不同,一般相應(yīng)采用視景仿真器、電視圖像目標(biāo)/環(huán)境模擬器、紅外目標(biāo)/環(huán)境模擬器、紅外成像目標(biāo)模擬器、激光目標(biāo)/環(huán)境模擬器等來實(shí)現(xiàn)光學(xué)環(huán)境相似。
③電磁環(huán)境。指仿真對象或其他部件和敏感到的電磁環(huán)境。如導(dǎo)彈射頻導(dǎo)引頭的電磁環(huán)境,魚雷聲吶的聲學(xué)環(huán)境。一般采用相應(yīng)的目標(biāo)/環(huán)境模擬器技術(shù)來實(shí)現(xiàn)。
8.2.1.3 仿真三要素
從一般意義上講,系統(tǒng)仿真可以被理解為對一個(gè)已經(jīng)存在或尚不存在但正在開發(fā)的系統(tǒng)進(jìn)行研究的過程中,為了了解系統(tǒng)的內(nèi)在特性,必須進(jìn)行一定的實(shí)驗(yàn)。而由于系統(tǒng)不存在或其他一些原因,無法在原系統(tǒng)上直接進(jìn)行實(shí)驗(yàn),只能設(shè)法構(gòu)造既能反映系統(tǒng)特征又能符合系統(tǒng)實(shí)驗(yàn)要求的系統(tǒng)模型,并在該系統(tǒng)模型上進(jìn)行實(shí)驗(yàn),以達(dá)到了解或設(shè)計(jì)系統(tǒng)的目的。由此可以看出,系統(tǒng)仿真本質(zhì)上是由三個(gè)要素構(gòu)成的,即系統(tǒng)、系統(tǒng)模型和仿真。系統(tǒng)是問題的本源,是系統(tǒng)分析的目的; 仿真是解決問題達(dá)到目的的手段; 而系統(tǒng)模型則是連接系統(tǒng)和實(shí)驗(yàn)之間的橋梁。
顯然,系統(tǒng)仿真是一項(xiàng)社會實(shí)踐活動。凡是包含系統(tǒng)、系統(tǒng)模型和仿真三個(gè)要素的活動都可以廣義地理解為系統(tǒng)仿真活動。聯(lián)系這三個(gè)要素的有三個(gè)基本活動: 系統(tǒng)模型建立、仿真模型建立和仿真實(shí)驗(yàn)。圖8-1描述了計(jì)算機(jī)仿真三要素及三個(gè)基本活動的關(guān)系。
圖8-1 計(jì)算機(jī)仿真三要素及三個(gè)基本活動關(guān)系圖
建?;顒邮峭ㄟ^對實(shí)際系統(tǒng)的觀測和檢測,在忽略次要因素及不可檢測變量的基礎(chǔ)上,用物理或數(shù)學(xué)的方法進(jìn)行描述,從而獲得實(shí)際系統(tǒng)的簡化近似模型。仿真模型反映了系統(tǒng)模型同仿真器或計(jì)算機(jī)之間的關(guān)系,能為仿真器及計(jì)算機(jī)所接受并在其上運(yùn)行。仿真實(shí)驗(yàn)就是將系統(tǒng)的仿真模型置于計(jì)算機(jī)上運(yùn)行的過程。系統(tǒng)仿真是通過實(shí)驗(yàn)來研究實(shí)際系統(tǒng)的一種技術(shù),通過仿真活動可以弄清系統(tǒng)內(nèi)在結(jié)構(gòu)變量和環(huán)境條件的影響。
1. 系統(tǒng)
系統(tǒng)仿真的研究對象是具有獨(dú)立行為規(guī)律的系統(tǒng)。所謂系統(tǒng)是指相互聯(lián)系又相互作用著的對象的有機(jī)組合。從廣義上講,系統(tǒng)的概念是非常廣闊的,大到無垠的宇宙世界,小到分子原子。
根據(jù)系統(tǒng)的物理特征可以將系統(tǒng)劃分為兩大類,即工程系統(tǒng)和非工程系統(tǒng)。所謂非工程系統(tǒng)是指自然和社會在發(fā)展過程中形成的,被人們在長期的生產(chǎn)勞動和社會實(shí)踐中逐漸認(rèn)識的系統(tǒng)。例如社會、經(jīng)濟(jì)、管理、交通、生物系統(tǒng)等屬于非工程系統(tǒng)。所謂工程系統(tǒng)是指人們?yōu)闈M足某種需要或?qū)崿F(xiàn)某個(gè)預(yù)定的功能,利用某種手段構(gòu)造而成的系統(tǒng)。工程系統(tǒng)的例子非常多,如機(jī)械、電氣、動力、化工、武器系統(tǒng)等。
對于一個(gè)系統(tǒng)來說,不論它是大還是小,都必然存在三個(gè)要素,即實(shí)體、屬性和活動。所謂實(shí)體是指組成系統(tǒng)的具體對象。例如,在商品銷售系統(tǒng)中的實(shí)體有經(jīng)理、部門、商品貨幣、倉庫等。系統(tǒng)中的各個(gè)實(shí)體既具有一定的相對獨(dú)立性,又相互聯(lián)系構(gòu)成一個(gè)整體。所謂屬性是指實(shí)體所具有的每一項(xiàng)有效特性。例如,商品的屬性有生產(chǎn)日期、進(jìn)貨價(jià)格、銷售日期、售價(jià)等。所謂活動是指隨著時(shí)間的推移,在系統(tǒng)內(nèi)部由于各種原因而發(fā)生的變化過程。例如零售商品價(jià)格的增長等。
系統(tǒng)是在不斷地運(yùn)動、發(fā)展、變化的。由于組成系統(tǒng)的實(shí)體之間相互作用而引起實(shí)體屬性的變化,使得在不同的時(shí)刻,系統(tǒng)中的實(shí)體和實(shí)體屬性都可能會有所不同,這種變化通常用狀態(tài)的概念來描述。在任意給定時(shí)刻,系統(tǒng)中實(shí)體、屬性以及活動的信息總和稱為系統(tǒng)在該時(shí)刻的狀態(tài)。用于表示系統(tǒng)狀態(tài)的變量稱為狀態(tài)變量。
系統(tǒng)不是孤立存在的。自然界中的一切事物都在相互聯(lián)系和相互影響。任何一個(gè)系統(tǒng)都可能由于系統(tǒng)之外出現(xiàn)的變化而受到影響。這種對系統(tǒng)的活動結(jié)果產(chǎn)生影響的外界因素稱為系統(tǒng)的環(huán)境。在對一個(gè)系統(tǒng)進(jìn)行分析時(shí),必須考慮系統(tǒng)所處的環(huán)境,而首要的便是劃分系統(tǒng)與其所處環(huán)境之間的邊界。系統(tǒng)邊界包圍系統(tǒng)中的所有實(shí)體。
系統(tǒng)邊界的劃分在很大程度上取決于系統(tǒng)研究的目的。例如在商品銷售系統(tǒng)中,如果僅考慮商品倉庫庫存量的變化情況,那么系統(tǒng)只需包括采購部門、倉庫以及銷售部門即可。但若要研究商品進(jìn)貨與銷售的關(guān)系時(shí),系統(tǒng)中還要包括市場調(diào)查部門,因?yàn)樯唐蜂N售狀況及對進(jìn)貨的影響這部分職能是由該部門完成的。
同時(shí),系統(tǒng)在某些條件下是可以分解的。也就是說,構(gòu)成系統(tǒng)的某個(gè)實(shí)體本身也可以看成為一個(gè)單獨(dú)的系統(tǒng)來進(jìn)行分析研究,這個(gè)系統(tǒng)稱為原系統(tǒng)的一個(gè)子系統(tǒng)或分系統(tǒng)。系統(tǒng)研究包括系統(tǒng)分析、系統(tǒng)綜合和系統(tǒng)預(yù)測等方面。研究系統(tǒng)首先需要描述清楚所研究系統(tǒng)的實(shí)體、屬性、活動及環(huán)境。因?yàn)橄到y(tǒng)的概念不僅與實(shí)體有關(guān),而且與研究者的目的有關(guān),只有在對實(shí)體、屬性、活動、環(huán)境作了明確的描述之后,系統(tǒng)才是確定的。
2. 模型
系統(tǒng)模型可以定義為: 為了達(dá)到系統(tǒng)研究的目的,用于收集和描述系統(tǒng)有關(guān)信息的實(shí)體。
模型是對相應(yīng)的真實(shí)對象和真實(shí)關(guān)系中那些有用的和令人感興趣的特性的抽象; 是對系統(tǒng)某些本質(zhì)方面的描述; 它以各種可用的形式提供被研究系統(tǒng)的信息。模型描述可視為是對真實(shí)世界中的物體或過程相關(guān)信息進(jìn)行形式化的結(jié)果。模型在所研究系統(tǒng)的某一側(cè)面具有與系統(tǒng)相似的數(shù)學(xué)描述或物理描述。從某種意義上說,模型是系統(tǒng)的代表,同時(shí)也是對系統(tǒng)的簡化。另一方面,模型應(yīng)足夠詳細(xì),以便從模型的實(shí)驗(yàn)中取得關(guān)于實(shí)際系統(tǒng)的有效結(jié)論。一般來說,系統(tǒng)模型的結(jié)構(gòu)具有相似性、簡單性、多面性等性質(zhì)。
3. 仿真
給出一個(gè)系統(tǒng)的數(shù)學(xué)模型之后,有時(shí)用分析手段就可以求解系統(tǒng)有關(guān)的信息,但是當(dāng)不能應(yīng)用分析法的時(shí)候,就需要應(yīng)用仿真求解。
與應(yīng)用數(shù)學(xué)分析方法求解問題相比較,仿真求解問題的缺點(diǎn)是很明顯的,即它只能給出問題的特解而不能給出問題的通解。然而,能用數(shù)學(xué)分析法求解的問題的范圍畢竟是有限的。用數(shù)學(xué)分析法求解問題時(shí),要對系統(tǒng)加以抽象和近似處理,以使模型適于用數(shù)學(xué)分析方法求解。在許多方面,理想情況下是把仿真的應(yīng)用作為已經(jīng)得到的、但過于簡化的數(shù)學(xué)分析解答的一種補(bǔ)充。
系統(tǒng)、模型與仿真三者之間有著十分密切的關(guān)系,系統(tǒng)是研究對象,模型是系統(tǒng)特性的抽象描述,仿真則包含建立模型及對模型進(jìn)行試驗(yàn)兩個(gè)過程,通過對模型的實(shí)驗(yàn)以達(dá)到研究系統(tǒng)的目的。
8.2.1.4 仿真分類
在模型研究中,為方便起見,需要對系統(tǒng)仿真模型進(jìn)行分類,一般可以按如下原則分類:
(1)根據(jù)模型的類型,系統(tǒng)仿真可以分成物理仿真、數(shù)學(xué)仿真和物理—數(shù)學(xué)仿真。
物理仿真是按照實(shí)際系統(tǒng)的物理性質(zhì)構(gòu)造系統(tǒng)的物理模型,并在物理描述模型上進(jìn)行實(shí)驗(yàn)的過程。
數(shù)學(xué)仿真是在對系統(tǒng)進(jìn)行抽象,并將其特性用數(shù)學(xué)關(guān)系式加以描述得到系統(tǒng)的數(shù)學(xué)模型的基礎(chǔ)上,對數(shù)學(xué)模型進(jìn)行實(shí)驗(yàn)的過程; 數(shù)學(xué)仿真也稱為計(jì)算機(jī)仿真。
半實(shí)物仿真是把系統(tǒng)的一部分寫成數(shù)學(xué)模型,而另一部部分則構(gòu)造其物理模型,然后將它們連接成系統(tǒng)模型進(jìn)行實(shí)驗(yàn),就稱為物理—數(shù)學(xué)仿真,是數(shù)學(xué)仿真與物理仿真的結(jié)合甚至實(shí)物聯(lián)合起來進(jìn)行實(shí)驗(yàn)的過程,也稱為半實(shí)物仿真。
物理仿真的優(yōu)點(diǎn)是直觀且形象化,但建模周期長、花費(fèi)大。數(shù)學(xué)仿真的特點(diǎn)是經(jīng)濟(jì)、方便。計(jì)算機(jī)為數(shù)學(xué)模型的建立與實(shí)驗(yàn)提供了較大的靈活性,目前數(shù)學(xué)仿真一般就是在計(jì)算機(jī)上建立系統(tǒng)的數(shù)學(xué)模型并進(jìn)行實(shí)驗(yàn)。因此數(shù)學(xué)仿真通常也稱為計(jì)算機(jī)仿真。
(2)根據(jù)仿真中所用計(jì)算機(jī)的類型,計(jì)算機(jī)仿真又可以分為模擬仿真、數(shù)字仿真和混合仿真。
模擬仿真是基于數(shù)學(xué)模型相似原理上的一種方法,仿真的主要工具是計(jì)算機(jī),模擬仿真的特點(diǎn)是直觀、運(yùn)算速度快,但精度較差。
數(shù)字仿真基于數(shù)值計(jì)算原理,仿真的主要工具是數(shù)字計(jì)算機(jī)和仿真軟件。數(shù)字仿真自動化程度高,具有復(fù)雜邏輯判斷的能力,而且可以獲得較高的精度。混合仿真是將模擬仿真和數(shù)字仿真相結(jié)合的一種方法,仿真的主要工具是混合計(jì)算機(jī)系統(tǒng)?;旌戏抡婕?zhèn)淠M仿真和數(shù)字仿真的優(yōu)點(diǎn),可以快速地進(jìn)行多次仿真研究,因此特別適用于參數(shù)尋優(yōu)、統(tǒng)計(jì)分析等方面的應(yīng)用,尤其是在復(fù)雜系統(tǒng)的實(shí)時(shí)仿真方面體現(xiàn)出極大的優(yōu)越性。
(3)從仿真實(shí)現(xiàn)的角度來看,系統(tǒng)模型特性可分為兩大類,一類稱為連續(xù)系統(tǒng),另一類稱為離散事件系統(tǒng)。由于這兩類系統(tǒng)固有運(yùn)動規(guī)律的不同,因而描述其運(yùn)動規(guī)律的模型形式就有很大的差別。相應(yīng)地,系統(tǒng)仿真技術(shù)也分為兩大類: 連續(xù)系統(tǒng)仿真和離散事件系統(tǒng)仿真。
連續(xù)系統(tǒng)是指系統(tǒng)的狀態(tài)隨時(shí)間連續(xù)變化的系統(tǒng)。這里要注意有些連續(xù)系統(tǒng)如數(shù)據(jù)采集系統(tǒng)的狀態(tài)數(shù)據(jù)是在離散時(shí)間點(diǎn)上獲得的,是非連續(xù)的,但其狀態(tài)本身則是連續(xù)變化的。連續(xù)系統(tǒng)的模型可以用一組連續(xù)的方程描述。
離散事件系統(tǒng)的特點(diǎn)是系統(tǒng)的狀態(tài)變化只在離散的時(shí)間點(diǎn)上發(fā)生,且發(fā)生時(shí)刻往往是隨機(jī)的,系統(tǒng)的狀態(tài)變化是由隨機(jī)事件驅(qū)動的。
(4)按仿真時(shí)間與實(shí)際時(shí)間的比例關(guān)系分為: 實(shí)時(shí)仿真(仿真時(shí)間標(biāo)尺等于自然時(shí)間標(biāo)尺)、超實(shí)時(shí)仿真(仿真時(shí)間標(biāo)尺小于自然時(shí)間標(biāo)尺)和亞實(shí)時(shí)仿真(仿真時(shí)間標(biāo)尺大于自然時(shí)間標(biāo)尺)。
實(shí)時(shí)仿真: 仿真時(shí)鐘與實(shí)際時(shí)鐘完全一致,也就是模型仿真的速度與實(shí)際系統(tǒng)運(yùn)行的速度相同。當(dāng)被仿真的系統(tǒng)中存在物理模型或?qū)嵨飼r(shí),必須進(jìn)行實(shí)時(shí)仿真,例如各種訓(xùn)練仿真器就是這樣,有時(shí)又稱在線仿真。
亞實(shí)時(shí)仿真: 仿真時(shí)鐘慢于實(shí)際時(shí)鐘,對于仿真速度要求不苛刻的情況下均是亞實(shí)時(shí)仿真。例如大多數(shù)系統(tǒng)離線研究與分析,有時(shí)也稱為離線仿真。
超實(shí)時(shí)仿真: 仿真時(shí)鐘快于實(shí)際時(shí)鐘,例如大氣環(huán)流的仿真以及交通系統(tǒng)的仿真。
(5)按對象的性質(zhì)分為: 宇宙飛船仿真、化工系統(tǒng)仿真、經(jīng)濟(jì)系統(tǒng)仿真等。
8.2.1.5 離散事件系統(tǒng)建模方法
離散事件系統(tǒng)建模方法有著與連續(xù)系統(tǒng)截然不同的特點(diǎn)。離散事件系統(tǒng)的時(shí)間不是連續(xù)變化的,而系統(tǒng)的狀態(tài)僅在一些離散的時(shí)刻上由于隨機(jī)事件的驅(qū)動而發(fā)生變化。由于狀態(tài)是離散變化的,而引發(fā)狀態(tài)變化的事件是隨機(jī)發(fā)生的,因此這類系統(tǒng)的模型很難用數(shù)學(xué)方程來描述。隨著系統(tǒng)科學(xué)和管理科學(xué)的不斷發(fā)展及其在軍事、航空航天、計(jì)算機(jī)集成制造和國民經(jīng)濟(jì)各領(lǐng)域中應(yīng)用的不斷深入,逐步形成一些與連續(xù)系統(tǒng)不同的建模方法,其主流是流程圖和網(wǎng)絡(luò)圖。本章先介紹離散事件系統(tǒng)中常用的隨機(jī)數(shù)的產(chǎn)生與檢驗(yàn)方法,然后介紹離散事件系統(tǒng)建模方法的兩種圖示方法(實(shí)體流圖法和活動周期圖法)和一種網(wǎng)絡(luò)圖方法(Petri網(wǎng)法)。
在介紹方法之前,先簡要介紹一下離散事件系統(tǒng)中要用到的一套建模術(shù)語和離散事件系統(tǒng)建模結(jié)構(gòu)。
狀態(tài)只是在離散時(shí)間點(diǎn)上發(fā)生變化,而且這些離散的時(shí)間點(diǎn)一般是不確定的(隨機(jī)的),這類系統(tǒng)的仿真稱為離散事件系統(tǒng)仿真。
離散事件系統(tǒng)和連續(xù)系統(tǒng)在性質(zhì)上是完全不同的,這類系統(tǒng)中的狀態(tài)在時(shí)間上和空間上都是離散的,像交通管理、計(jì)算機(jī)網(wǎng)絡(luò)、各種通信系統(tǒng)和社會經(jīng)濟(jì)系統(tǒng)等都屬于離散事件系統(tǒng)。該類系統(tǒng)中,各事件以某種順序或在某種條件下發(fā)生,并且大都屬于隨機(jī)性的,或者是由于隨機(jī)的輸入,或者是由于系統(tǒng)元素的屬性值作隨機(jī)變化,使得難以用常規(guī)的方法去研究它們。
在連續(xù)系統(tǒng)的數(shù)字仿真中,時(shí)間通常被分割成均等的或非均等的間隔,并以一個(gè)基本的時(shí)間間隔計(jì)時(shí); 而離散事件系統(tǒng)的仿真則經(jīng)常是面向事件的,時(shí)間指鐘往往不是按固定的增量向前推進(jìn),而是由于事件的推動而隨機(jī)遞進(jìn)的。
在連續(xù)系統(tǒng)仿真中,系統(tǒng)模型是由表征系統(tǒng)變量之間關(guān)系的方程來描述的,仿真的結(jié)果表現(xiàn)為系統(tǒng)變量隨時(shí)間變化的時(shí)間歷程; 在離散事件系統(tǒng)仿真中,系統(tǒng)變量是反映系統(tǒng)各部分相互作用的一些事件,系統(tǒng)模型則是反映這些事件的數(shù)集,仿真結(jié)果是產(chǎn)生處理這些事件的事件歷程。
由于離散事件系統(tǒng)固有的隨機(jī)性,對這類系統(tǒng)的研究往往十分困難。經(jīng)典的概率及數(shù)理統(tǒng)計(jì)理論、隨機(jī)過程理論雖然為研究這類系統(tǒng)提供了理論基礎(chǔ),并能對一些簡單系統(tǒng)提供解析解,但對工程實(shí)際中的大量系統(tǒng),只有依靠計(jì)算機(jī)仿真技術(shù)才能提供較為完整的結(jié)果。
1. 離散事件系統(tǒng)建模與仿真的基本概念
(1)實(shí)體(entity)。實(shí)體是組成系統(tǒng)的個(gè)體,為系統(tǒng)的三要素(實(shí)體、屬性、活動)之一。在離散事件系統(tǒng)中,實(shí)體可分為兩大類: 臨時(shí)實(shí)體和永久實(shí)體。
在系統(tǒng)中只存在一段時(shí)間的實(shí)體稱做臨時(shí)實(shí)體。這類實(shí)體由系統(tǒng)外到達(dá)并進(jìn)入系統(tǒng),然后通過系統(tǒng),最終離開系統(tǒng)。疏散中的人員顯然是臨時(shí)實(shí)體,它們按照一定的規(guī)律經(jīng)過安全門疏散,經(jīng)過排隊(duì)等候后即離開系統(tǒng)。永久性地駐留系統(tǒng)建模與仿真在系統(tǒng)中的實(shí)體稱為永久實(shí)體。疏散中的建筑物是永久實(shí)體,只要系統(tǒng)處于活動狀態(tài),這些實(shí)體就存在,或者說,永久實(shí)體是系統(tǒng)處于活動的必要條件。
臨時(shí)實(shí)體按一定規(guī)律不斷地到達(dá)系統(tǒng),在永久實(shí)體作用下通過系統(tǒng),最后離開系統(tǒng),整個(gè)系統(tǒng)呈現(xiàn)動態(tài)過程。
(2)屬性(attribute)。屬性是實(shí)體特征的描述,也稱為描述變量,一般是實(shí)體所擁有的全部特征的一個(gè)子集,用特征參數(shù)或變量表示。
選用哪些特征參數(shù)作為實(shí)體的屬性與仿真目的有關(guān),一般可參照以下原則選取。
①便于實(shí)體的分類。例如,將疏散模型中的人員性別(男、女)作為屬性考慮,可將“人員”實(shí)體分為兩類。
②便于實(shí)體行為的描述。例如,將飛機(jī)的飛行速度作為屬性考慮,便于對“飛機(jī)”實(shí)體的行為(如兩地間的飛行時(shí)間)進(jìn)行描述。
③便于排隊(duì)規(guī)則的確定。例如,生產(chǎn)線上待處理工件的優(yōu)先級水平有時(shí)需要作為“工件”實(shí)體的屬性考慮,以便于“按優(yōu)先級排隊(duì)”規(guī)則的建立與實(shí)現(xiàn)。
(3)狀態(tài)(state)。狀態(tài)是對實(shí)體活動的特征狀況的劃分,其表征量為狀態(tài)變量。如在理發(fā)店服務(wù)系統(tǒng)中“顧客”有“等待服務(wù)”、“接受服務(wù)”等狀態(tài),“服務(wù)員”有“忙”和“閑”等狀態(tài)。狀態(tài)可以作為動態(tài)屬性進(jìn)行描述。
(4)活動(activity)。離散事件中的活動,通常用于表示兩個(gè)可以區(qū)分的事件之間的過程,它標(biāo)志著系統(tǒng)狀態(tài)的轉(zhuǎn)移。例如,顧客到達(dá)事件與顧客開始接受服務(wù)事件之間可稱為一個(gè)活動,該活動使系統(tǒng)的狀態(tài)(隊(duì)長)發(fā)生變化。顧客開始接受服務(wù)事件與顧客服務(wù)結(jié)束事件之間也可以稱為一個(gè)活動,它使隊(duì)長減1,使服務(wù)員由忙變閑?;顒涌偸桥c一個(gè)或幾個(gè)實(shí)體的狀態(tài)相對應(yīng)。
(5)事件(event)。事件就是引起系統(tǒng)狀態(tài)發(fā)生變化的瞬間操作或行為。由于事件的發(fā)生會導(dǎo)致狀態(tài)的變化,而實(shí)體的活動可以與一定的狀態(tài)相對應(yīng),因此可以用事件來標(biāo)示活動的開始與結(jié)束。
在一個(gè)系統(tǒng)中往往有許多類事件,而事件的發(fā)生一般與某一類實(shí)體相聯(lián)系,某一類事件的發(fā)生還可能會引起其他事件的發(fā)生,或者使另一類事件的條件成立等。為了實(shí)現(xiàn)對系統(tǒng)中的事件進(jìn)行管理,仿真模型中必須建立事件表,表中記錄每一個(gè)已經(jīng)發(fā)生的或者將要發(fā)生的事件類型、發(fā)生時(shí)間以及與該事件相聯(lián)系的實(shí)體的有關(guān)屬性等。
在仿真模型中,由于是依靠事件來驅(qū)動,除了系統(tǒng)中固有事件(又稱為系統(tǒng)事件)外,還有所謂“程序事件”,它用于控制仿真進(jìn)程。
圖8-2 事件、活動、進(jìn)程間的關(guān)系示意圖
(6)進(jìn)程(process)。進(jìn)程由若干個(gè)有序事件及若干個(gè)有序活動組成。一個(gè)進(jìn)程描述了它所包括的事件及活動之間的相互邏輯關(guān)系及時(shí)序關(guān)系。事件、活動、進(jìn)程三者之間的關(guān)系可用圖8-2表示。
(7)仿真鐘。仿真鐘用于表示仿真時(shí)間的變化。在連續(xù)系統(tǒng)中,將連續(xù)模型進(jìn)行離散化而成為仿真模型時(shí),仿真時(shí)間的變化基于仿真步長的確定,可以是定步長,也可以是變步長。在離散事件動態(tài)系統(tǒng)中,引起狀態(tài)變化的事件的發(fā)生時(shí)間是隨機(jī)的,因而仿真鐘的推進(jìn)步長完全是隨機(jī)的; 而且,在兩個(gè)相鄰發(fā)生的事件之間系統(tǒng)狀態(tài)不會發(fā)生任何變化,因而仿真鐘可以跨過這些“不活動”周期。從一個(gè)事件發(fā)生時(shí)刻直接推進(jìn)到下一個(gè)事件發(fā)生時(shí)刻,仿真鐘的推進(jìn)呈現(xiàn)跳躍性,推進(jìn)的速度具有隨機(jī)性。可見,仿真模型中時(shí)間控制部件是必不可少的,以便按一定規(guī)律來控制仿真鐘的推進(jìn)。仿真鐘的推進(jìn)方法如下。
①事件調(diào)度法(事件增量法)。按下一最早發(fā)生事件的發(fā)生時(shí)間推進(jìn)。
在事件調(diào)度法中,事件表按事件發(fā)生時(shí)間先后順序安排事件。時(shí)間控制部件始終從事件表中選擇具有最早發(fā)生時(shí)間的事件記錄,然后將仿真鐘修改到該事件發(fā)生時(shí)刻。對每一類事件,仿真模型有相應(yīng)的事件子程序。每一個(gè)事件記錄包含該事件的若干個(gè)屬性,其中事件類型是必不可少的,要根據(jù)事件類型調(diào)用相應(yīng)的事件子程序。在事件子程序中,處理該事件發(fā)生時(shí)系統(tǒng)狀態(tài)的變化,進(jìn)行用戶所需要的統(tǒng)計(jì)計(jì)算; 如果是條件事件,則應(yīng)首先進(jìn)行條件測試,以確定該事件是否能發(fā)生; 如果條件不滿足,則推遲或取消該事件。該事件子程序處理完后返回時(shí)間控制部件。這樣,事件的選擇與處理不斷地進(jìn)行,仿真鐘不斷地從一個(gè)事件發(fā)生時(shí)間推進(jìn)到下一最早發(fā)生事件的發(fā)生時(shí)間,直到終止仿真的條件或程序事件發(fā)生時(shí)停止仿真。
②固定增量法。早期的離散事件仿真中采用此方法,其類似于連續(xù)系統(tǒng)的等步長方法策略。現(xiàn)簡要說明如下。
選擇適當(dāng)?shù)臅r(shí)間單位T作為仿真時(shí)鐘推進(jìn)時(shí)的增量,每推進(jìn)一步作如下處理: 若該步無事件發(fā)生,則仿真鐘再推進(jìn)一個(gè)單位時(shí)間T; 若該步內(nèi)若干事件發(fā)生,則認(rèn)為這些事件均發(fā)生在該步的結(jié)束時(shí)刻。為便于進(jìn)行各類事件處理,用戶必須規(guī)定當(dāng)出現(xiàn)這種情況時(shí)各類事件處理的優(yōu)先順序。
這種方法的缺點(diǎn)是顯而易見的。首先,仿真鐘每推進(jìn)一步,均要檢查事件表以確定是否有事件發(fā)生,增加了執(zhí)行時(shí)間; 其次,該步任何事件的發(fā)生均認(rèn)為發(fā)生在這一步的結(jié)束時(shí)刻,如果T選擇較大,則會引入較大的誤差; 而且要求用戶事先確定各類事件的處理順序,增加了建模的復(fù)雜性。
固定增量推進(jìn)法主要用于系統(tǒng)事件發(fā)生時(shí)間具有極強(qiáng)的周期性的模型,如定期訂貨的庫存系統(tǒng),以年、月為單位的經(jīng)濟(jì)計(jì)劃系統(tǒng)等。
(8)統(tǒng)計(jì)計(jì)數(shù)器(counter)。連續(xù)系統(tǒng)仿真的目的是要得到狀態(tài)變量的動態(tài)變化過程并由此分析系統(tǒng)的性能。離散事件系統(tǒng)的狀態(tài)變量隨著事件的不斷發(fā)生也呈現(xiàn)出動態(tài)變化過程,但仿真的主要目的不是要得到這些狀態(tài)變量是如何變化的,因?yàn)檫@種變化是隨機(jī)的。某一次運(yùn)行得到的狀態(tài)變化過程只不過是隨機(jī)過程的一次取樣,因而如果進(jìn)行另一次獨(dú)立的仿真運(yùn)行所得到的變化過程可能完全是另一種情況,所以它們只有在統(tǒng)計(jì)意義下才有參考價(jià)值。在仿真模型中,需要有一個(gè)統(tǒng)計(jì)計(jì)數(shù)部件,以便統(tǒng)計(jì)系統(tǒng)中的有關(guān)變量。
(9)隊(duì)列(queue)。處于等待狀態(tài)的實(shí)體序列。在離散事件系統(tǒng)建模時(shí),隊(duì)列可作為一種特殊實(shí)體對待。在售票處、入口、電梯等地方人群有時(shí)候自動出現(xiàn)排隊(duì)行為。
2. 離散事件系統(tǒng)建模結(jié)構(gòu)
任何一種仿真方法都必須提供一種描述模型動態(tài)行為的手段和方法,即建模結(jié)構(gòu),建模結(jié)構(gòu)反映了仿真方法組織狀態(tài)轉(zhuǎn)移過程中執(zhí)行的動作或操作的方式。每種仿真方法都決定了自己特有的建模結(jié)構(gòu),都要求建模人員把整個(gè)系統(tǒng)的操作(動作)劃分成自己的基本構(gòu)建塊(或代碼塊)。傳統(tǒng)的仿真方法與事件、活動、過程概念密切相關(guān),每一種構(gòu)建塊都是一個(gè)與狀態(tài)轉(zhuǎn)移有關(guān)的動作(操作的程序塊)。程序塊的執(zhí)行和交互由控制結(jié)構(gòu)處理。根據(jù)建模機(jī)理的不同,目前離散事件仿真的建模結(jié)構(gòu)主要可分為以下五類。
(1)事件建模。即事件調(diào)度(event scheduling,ES)建模方法,ES的基本構(gòu)建塊是事件子程序,ES首先要確定引起系統(tǒng)狀態(tài)發(fā)生改變的事件,然后把與該事件有關(guān)的所有狀態(tài)改變組織在一個(gè)代碼塊中,即事件子程序。它包括與這些狀態(tài)改變有關(guān)的所有要執(zhí)行的動作,所有條件測試均在相應(yīng)的子程序內(nèi)完成。包括狀態(tài)改變所需資源的測試,以及事件發(fā)生所釋放的資源等。
(2)活動建模。即活動掃描(activity scanning,AS)建模方法,AS的基本構(gòu)建塊是活動。AS首先確定系統(tǒng)要執(zhí)行的活動,它描述系統(tǒng)由于狀態(tài)的改變而執(zhí)行的動作,描述分兩部分: ①條件,即執(zhí)行活動所必須滿足的條件; ②動作,即描述活動所執(zhí)行的操作集合。這些操作只有當(dāng)條件滿足時(shí)才能執(zhí)行,因而活動的描述非常類似于AI中的規(guī)則。
(3)過程建模。即過程交互(process interaction,PI)建模方法,PI的基本構(gòu)建塊是過程,PI的基本思想是認(rèn)為模型應(yīng)描述一個(gè)實(shí)體流經(jīng)系統(tǒng)的生命周期過程,按順序描述一個(gè)實(shí)體在它的整個(gè)生命周期中所經(jīng)歷各個(gè)階段,以及在每個(gè)階段應(yīng)執(zhí)行的動作,每個(gè)過程都是一個(gè)單獨(dú)的代碼塊,并與其他過程進(jìn)行交互。交互由控制結(jié)構(gòu)控制,在仿真中每個(gè)實(shí)體按自己的過程描述相繼通過各個(gè)階段。直到由于某些原因而被停止,從而產(chǎn)生一定的延遲,這時(shí)控制轉(zhuǎn)移到其他過程,一旦滿足某些條件,延遲被解除,控制又返回該過程,則實(shí)體繼續(xù)向前移動,因此過程要詳細(xì)地描述它的阻塞點(diǎn)和重新激活點(diǎn),以便能正確地控制過程之間的交互。
(4)對象建模。即面向?qū)ο蟮?object oriented,OO)建模方法,在面向?qū)ο蟮慕7椒ㄖ校5幕緲?gòu)建模塊是代表系統(tǒng)中實(shí)體的對象,對象封裝了實(shí)體的所有屬性、特征、事件和行為,它們是現(xiàn)實(shí)中真實(shí)對象的一種計(jì)算機(jī)抽象。面向?qū)ο蠓椒ú粌H僅是一種程序設(shè)計(jì)技術(shù),而且是一種新的思維方式,是一種完全不同于傳統(tǒng)功能設(shè)計(jì)的方法。面向?qū)ο蟮姆椒殡x散事件仿真提供了一種新的建模途徑,它試圖使用戶能夠以應(yīng)用領(lǐng)域熟悉的、直觀的對象概念來建立仿真模型,建模觀點(diǎn)與人們認(rèn)識現(xiàn)實(shí)世界的思維方式一致。傳統(tǒng)的仿真建模方法利用事件、活動或過程的概念建立仿真模型,面向?qū)ο蟮姆抡鎰t通過構(gòu)成系統(tǒng)的對象來建立模型,在結(jié)構(gòu)上對象的抽象層次更高,在概念上對象更接近于現(xiàn)實(shí)世界,而且對象具有模塊性、封裝性、局部性、可重用性等顯著特點(diǎn)。因此,與傳統(tǒng)的仿真方法相比,面向?qū)ο蟮姆抡娼>哂懈蟮撵`活性,更強(qiáng)的建模能力,而且構(gòu)造的模型容易理解、交流,便于修改、擴(kuò)充和維護(hù)。面向?qū)ο蟮姆抡嬉恢笔墙┠攴抡嫜芯款I(lǐng)域的熱點(diǎn)之一。
(5)建模。即基于Agent(agent based,AB)的建模方法,它是隨著DAI技術(shù)的發(fā)展而逐漸興起的新建模分析技術(shù)。在這種建模結(jié)構(gòu)中,Agent成為仿真模型的基本構(gòu)成元素。Agent可以理解為具有完整計(jì)算能力的智能主體,它具有認(rèn)知、推理、決策、規(guī)劃、通信以及協(xié)作等行為能力和特征,是有別于對象的一種更高層次的建模概念。在基于Agent的仿真建模中,建模人員是以賦予知識與技能的形式來賦予Agent一定的行為特征和智能,并以Agent組織的形式來構(gòu)筑模型; 在仿真中,通過Agent之間自主的交互、協(xié)作行為來模擬現(xiàn)實(shí)系統(tǒng)的行為。
基于Agent的仿真建模技術(shù)是一種新興的面向智能體的建模與仿真技術(shù),可以說,它繼承了對象建模的一般形式和所有優(yōu)點(diǎn),并且由于建模元素具有更高的主動性和智能性,使得這種建模方法能夠?qū)崿F(xiàn)更加復(fù)雜、傳統(tǒng)方法無法完成的仿真建模分析,例如對人類的學(xué)習(xí)、合作、協(xié)商等行為的模擬,對自然、生態(tài)中的演化行為的仿真等。另外,由于Agent本身具有完整的計(jì)算能力,所以仿真模型在結(jié)構(gòu)上和控制方式上與其他方法有很大差別,具有更靈活的實(shí)現(xiàn)形式,并且能夠充分利用計(jì)算機(jī)系統(tǒng)的并行計(jì)算和分布式計(jì)算能力,使仿真系統(tǒng)具有更強(qiáng)大的仿真能力?;贏gent的仿真建模技術(shù),已經(jīng)成為當(dāng)前仿真技術(shù)領(lǐng)域的一個(gè)主要研究方向。
3. 離散事件系統(tǒng)仿真的一般步驟
離散事件系統(tǒng)仿真研究的一般過程類似于連續(xù)系統(tǒng)仿真,它包括系統(tǒng)建模、確定仿真算法、建立仿真模型、設(shè)計(jì)仿真程序、運(yùn)行仿真程序、輸出仿真結(jié)果并進(jìn)行分析等。下面僅就離散事件系統(tǒng)仿真中的一些特殊問題進(jìn)行討論。
(1)系統(tǒng)建模。離散事件系統(tǒng)的模型一般可以用流程圖或網(wǎng)絡(luò)圖的方式來描述。它們都反映了臨時(shí)實(shí)體在系統(tǒng)內(nèi)部經(jīng)歷的過程、永久實(shí)體對臨時(shí)實(shí)體的作用以及它們之間的邏輯關(guān)系。系統(tǒng)建模方法: 實(shí)體流圖法、活動周期圖法、Petri網(wǎng)。
(2)選擇仿真算法。離散事件系統(tǒng)的仿真算法包括兩方面的內(nèi)容,其一是如何產(chǎn)生所需的隨機(jī)變量,其二是采用怎樣的仿真方法對離散事件系統(tǒng)進(jìn)行仿真,即仿真策略、仿真的方法,主要有事件調(diào)度法、活動掃描法、進(jìn)程交互法、三階掃描法(三階段法)等。
(3)建立仿真模型。根據(jù)已確定的仿真算法,建立被仿真系統(tǒng)的計(jì)算機(jī)模型(變量定義及程序流程)。它是系統(tǒng)狀態(tài)轉(zhuǎn)移的動態(tài)描述,因此首先要定義系統(tǒng)的狀態(tài)變量,這要根據(jù)系統(tǒng)的內(nèi)部結(jié)構(gòu)及仿真研究的目的來確定。即使是同一系統(tǒng),仿真研究的目的不同,系統(tǒng)狀態(tài)可能不同。
在離散事件系統(tǒng)中,狀態(tài)的變化是由事件引起的,因此,要在定義系統(tǒng)狀態(tài)的基礎(chǔ)上定義系統(tǒng)事件及其有關(guān)屬性。以事件調(diào)度法為例,事件類型及發(fā)生時(shí)間是必要的屬性之一,其他還包括對事件處理的規(guī)則,是FIFO還是LIFO,或者是別的什么規(guī)則,以便按實(shí)際系統(tǒng)要求進(jìn)行處理。在活動掃描法及進(jìn)程交互法中,還要定義活動及進(jìn)程,以便按活動或進(jìn)程的觀點(diǎn)來建立仿真模型。
仿真鐘是仿真模型中必不可少的部件,它的推進(jìn)方法決定于仿真算法。
(4)設(shè)計(jì)仿真程序。仿真程序是模型的實(shí)現(xiàn),可以自己編寫或采用仿真語言編程,如GPSS、SLAM、SIMAN。
(5)仿真結(jié)果分析。由于離散事件系統(tǒng)固有的隨機(jī)性,每次仿真運(yùn)行所得到的結(jié)果僅僅是隨機(jī)變量的一次取樣,那么仿真結(jié)果的可信性如何,如何提高仿真結(jié)果的置信水平,這些問題在這類系統(tǒng)仿真中占有突出的地位。
離散事件系統(tǒng)仿真結(jié)果分析可分為終止型仿真(仿真運(yùn)行長度事先已確定)輸出數(shù)據(jù)的分析、穩(wěn)態(tài)型仿真(僅運(yùn)行一次,但時(shí)間足夠長)輸出數(shù)據(jù)的分析和系統(tǒng)方案比較。
8.2.1.6 面向?qū)ο蠼?/p>
面向?qū)ο蠹夹g(shù)與仿真相結(jié)合,形成了一種新的建模、仿真方法——面向?qū)ο蟮慕Ec仿真方法(Object Oriented Modelling&Simulation,OOMS)。它是一種框架化、層次化和模塊化的建模與仿真方法,有利于提高模型的封裝性、靈活性、重用性、可擴(kuò)展性和可維護(hù)性,在各個(gè)領(lǐng)域得到了廣泛的應(yīng)用。
OOMS根據(jù)系統(tǒng)的對象及其相互作用關(guān)系來構(gòu)造仿真模型。仿真模型的對象通常表示了實(shí)際系統(tǒng)的實(shí)體,從而彌補(bǔ)了模型與實(shí)際系統(tǒng)之間的差距,而且面向?qū)ο蟮姆抡?,其分析、設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)的觀點(diǎn)與人們認(rèn)識系統(tǒng)的自然思維方式極為一致,因而增加了仿真研究的直觀性和易理解性。面向?qū)ο蟮姆抡婢哂锌蓴U(kuò)充性和可重用性,為仿真大規(guī)模的復(fù)雜系統(tǒng)提供了極為方便的手段。面向?qū)ο蟮姆抡嫒菀讓?shí)現(xiàn)與計(jì)算機(jī)圖形學(xué)、人工智能、專家系統(tǒng)與決策科學(xué)的結(jié)合,從而可以形成新一代面向?qū)ο蟮慕7抡姝h(huán)境。
面向?qū)ο蠹夹g(shù)o Object-oriented technology)是20世紀(jì)90年代軟件工程發(fā)展的關(guān)鍵及焦點(diǎn)技術(shù)。它精心選取并有機(jī)地集中了在它之前出現(xiàn)的系統(tǒng)層次分割法、自頂向下法、結(jié)構(gòu)化程序設(shè)計(jì)方法、抽象數(shù)據(jù)類型法和結(jié)構(gòu)數(shù)據(jù)類型法的精華,充分體現(xiàn)了軟件工程的三種基本思想:模塊化、信息隱蔽與抽象,較好地解決了軟件部件化和重用性問題,從而提高了軟件的可靠性、可維護(hù)性和生產(chǎn)率。
1. 面向?qū)ο蟾拍?/p>
面向?qū)ο蟮乃枷胧紫瘸霈F(xiàn)在程序設(shè)計(jì)語言中,隨著研究與應(yīng)用的不斷深入與發(fā)展,它以良好的機(jī)制和能力受到人們的普遍重視?,F(xiàn)在面向?qū)ο蠹夹g(shù)已經(jīng)滲透和應(yīng)用到諸多復(fù)雜的工程領(lǐng)域,如面向?qū)ο筌浖こ?、面向?qū)ο笮畔⒐芾硐到y(tǒng)、面向?qū)ο蟛僮飨到y(tǒng)、面向?qū)ο髮<蚁到y(tǒng)、面向?qū)ο箝_發(fā)工具、面向?qū)ο笥脩艚缑嬉约懊嫦驅(qū)ο蠓抡?。基于面向?qū)ο笏枷肱c方法的技術(shù)許多可以直接或間接地應(yīng)用到面向?qū)ο蠓抡嬷?,特別是面向?qū)ο筌浖こ讨械腛OA、OOD和OOPD作為面向?qū)ο蠓抡娴挠袡C(jī)組成部分。
(1)面向?qū)ο蟮幕靖拍睢?/p>
①對象(object)?!皩ο蟆币辉~的含義很廣,客觀世界中的任何事物在一定的前提下都可以成為認(rèn)識的對象。為了研究對象,必須用某種形式去表示對象。對象本身有動靜兩個(gè)方面的內(nèi)容需要表示: 靜的一面指的是對象的種類所屬,動的一面指的是對象的行為活動。屬性和活動是相互影響的,屬性界定了對象的可能活動,而活動又能改變對象自身的屬性狀態(tài)。同時(shí),對象之間存在相互作用與依存關(guān)系。因此,對象表示包括三個(gè)方面: 屬性、活動、關(guān)聯(lián)關(guān)系。在計(jì)算機(jī)內(nèi)部,對象通??捎萌M來表示: 對象<接口,數(shù)據(jù),操作>。
其中,接口描述對象與其他對象的關(guān)系,數(shù)據(jù)描述對象的屬性,操作描述對象的行為活動。
②面向?qū)ο?object-oriented)?!懊嫦?qū)ο蟆笨蓮氖澜缬^、方法論和實(shí)現(xiàn)技術(shù)三個(gè)方面去理解。其一,“面向?qū)ο蟆笔且环N認(rèn)識客觀世界的世界觀,這種世界觀將客觀世界視為由許多對象構(gòu)成的,每個(gè)對象都有自己的內(nèi)部狀態(tài)和運(yùn)動規(guī)律,不同的對象間的相互聯(lián)系和相互作用構(gòu)成了完整的客觀世界; 其二,“面向?qū)ο蟆笔菑慕Y(jié)構(gòu)組織描述客觀世界的一種方法,該方法的基本著眼點(diǎn)是構(gòu)或客觀世界的基本成分——對象; 其三,“面向?qū)ο蟆笔窃谟?jì)算機(jī)上實(shí)現(xiàn)模擬客觀世界的一種技術(shù)。模擬的實(shí)現(xiàn)是將客觀對象抽象為概念對象,再轉(zhuǎn)換成相應(yīng)的計(jì)算機(jī)對象。
從面向?qū)ο蟮挠^點(diǎn)去認(rèn)識客觀世界,用面向?qū)ο蟮姆椒ㄈッ枋隹陀^世界,用面向?qū)ο蟮募夹g(shù)在計(jì)算機(jī)上去實(shí)現(xiàn)客觀世界,就構(gòu)成了“面向?qū)ο蟆钡耐暾x。
③消息(message)。消息是描述對象間的相互作用的一種方式。在面向?qū)ο蠓椒ㄖ校瑢ο箝g的相互作用用對象間的收發(fā)消息來實(shí)現(xiàn)。當(dāng)一個(gè)消息發(fā)送給某個(gè)對象時(shí),該消息包含要求接受對象去執(zhí)行某些活動的信息。接到消息的對象經(jīng)過解釋,然后予以響應(yīng)。程序的執(zhí)行是由在對象間傳遞消息來完成的。
④類(class)。類是一組相似對象的集合,它描述了該組對象的共同行為和屬性。對象在軟件運(yùn)行過程中由其所屬的類動態(tài)生成。一個(gè)類可以生成多個(gè)不同的對象,這些對象雖然內(nèi)部狀態(tài)的類型與名稱相同,但它們可以有不同的內(nèi)部狀態(tài)值。
(2)面向?qū)ο蟮幕咎卣鳌I鲜鰧ο?、類和消息的程序設(shè)計(jì)范式的著眼點(diǎn)在于對象的封裝性、繼承性、實(shí)體的多態(tài)性以及動態(tài)聯(lián)編等面向?qū)ο蟮乃拇筇卣鳌?/p>
①封裝性(encapsulation)。將一個(gè)對象的數(shù)據(jù)和操作組合起來,然后將其封裝并限定在一嚴(yán)格的范圍內(nèi),只能被同類中的操作過程直接訪問,不允許其他類的對象的介入。即將系統(tǒng)改變的影響限制在對象內(nèi)。
②繼承性(inheritance)。一個(gè)類可以有父類和子類,它們形成一種層次結(jié)構(gòu)。這種層次結(jié)構(gòu)的一個(gè)重要特點(diǎn)是繼承性,即一個(gè)子類能繼承其父類的全部描述,包括全部屬性與操作。繼承性是父類與子類共享數(shù)據(jù)和方法的機(jī)制。這種機(jī)制使人們可以在一個(gè)已存在的類的基礎(chǔ)上,通過加入若干新的內(nèi)容,來定義和實(shí)現(xiàn)一個(gè)新的類。
在面向?qū)ο蠓抡嫦到y(tǒng)中,利用繼承機(jī)制,可以使仿真系統(tǒng)引入新的數(shù)據(jù)結(jié)構(gòu)、語義和模塊,從而使仿真系統(tǒng)成為開放系統(tǒng),能不斷擴(kuò)展其展模的能力。
③多態(tài)性(polymorphism)。在收到消息后,對象要予以響應(yīng)。不同的對象收到同一消息可產(chǎn)生完全不同的結(jié)果,這一現(xiàn)象稱為多態(tài)性。應(yīng)用多態(tài)性,用戶可以發(fā)送一個(gè)通用的消息給多個(gè)對象,每個(gè)對象按自身的情況決定是否響應(yīng)和如何響應(yīng)該消息。
④動態(tài)聯(lián)編(dynamic Binding)。在面向?qū)ο蟪绦蛟O(shè)計(jì)語言中,消息的傳送用過程調(diào)用的方式來實(shí)現(xiàn)。聯(lián)編是把一個(gè)過程調(diào)用和響應(yīng)調(diào)用的執(zhí)行碼結(jié)合在一起的過程。如這個(gè)過程在編譯時(shí)進(jìn)行,叫做靜態(tài)聯(lián)編; 在運(yùn)行時(shí)進(jìn)行,則稱動態(tài)聯(lián)編。通常面向?qū)ο蟪绦蛟O(shè)計(jì)語言采用動態(tài)聯(lián)編的方式,因?yàn)榇嬖诙鄳B(tài)性,程序難以靜態(tài)地確定要執(zhí)行的代碼,而只能在運(yùn)行時(shí)根據(jù)條件動態(tài)地確定。
2. 面向?qū)ο蠓治?/p>
OOA將對象概念及面向?qū)ο蟮娘L(fēng)格運(yùn)用于系統(tǒng)分析。這種方法采用了實(shí)體、關(guān)系、屬性等信息造型中的概念,同時(shí)采用了封裝、類結(jié)構(gòu)和繼承性等面向?qū)ο蟪绦蛟O(shè)計(jì)語言的概念。在OOA中問題空間的映射是直接的。OOA通常包括以下一些步驟。
(1)識別對象。辨別問題空間包含哪些客觀對象,并按研究目的將其抽象和表示出來。對一個(gè)復(fù)雜系統(tǒng)中的對象的識別,很大程度上依賴于具體的問題空間的特征和分析人員的經(jīng)驗(yàn),還沒有普遍適用的規(guī)則。
(2)識別結(jié)構(gòu)。結(jié)構(gòu)指對象間的組織方式,用來反映問題空間中的復(fù)雜事物的關(guān)系。對象結(jié)構(gòu)主要有兩種: 分類結(jié)構(gòu)用于描述事物類別之間的繼承關(guān)系; 部分整體結(jié)構(gòu)用于描述事物的部分與整體之間的組合關(guān)系。
(3)識別主題。主題是一種關(guān)于模型的抽象機(jī)制,它給出了系統(tǒng)分析結(jié)果的概貌,有利于讀者理解對象和結(jié)構(gòu)之間的關(guān)聯(lián)關(guān)系。
(4)定義屬性。屬性是數(shù)據(jù)元素,記錄對象的狀態(tài)信息,為對象及結(jié)構(gòu)提供更多的細(xì)節(jié)。
(5)定義方法。通常先應(yīng)定義每一種對象和分類結(jié)構(gòu)應(yīng)有的行為,其次應(yīng)定義對象的實(shí)例之間必要的通信,即定義實(shí)例間的消息關(guān)聯(lián)。
3. 面向?qū)ο笤O(shè)計(jì)
OOD將系統(tǒng)的設(shè)計(jì)過程看成是把要求解的問題分解為一些對象及對象間傳遞消息的過程。從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(jì)是一個(gè)逐漸擴(kuò)充模型的過程。面向?qū)ο蠓治鲋饕枋鰡栴}域和系統(tǒng)任務(wù),而面向?qū)ο笤O(shè)計(jì)是面向?qū)ο蠓治龅臄U(kuò)充,主要是增加各種實(shí)現(xiàn)軟件系統(tǒng)必須的組成成分。
在面向?qū)ο蟮南到y(tǒng)開發(fā)方法中,分析和設(shè)計(jì)雖然是不同的活動,但兩者密切相關(guān); 分析得到對象及其相互間的關(guān)系,而設(shè)計(jì)則是解決這些對象及其相互關(guān)系的實(shí)現(xiàn)問題。設(shè)計(jì)階段劃分為兩個(gè)步驟: 概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)的主要任務(wù)是定義系統(tǒng)是如何工作的,因此,對于工作平臺、計(jì)算能力和存儲容量等不加限制。在詳細(xì)設(shè)計(jì)階段,要考慮這些問題,并進(jìn)一步細(xì)化概要設(shè)計(jì)所生成的產(chǎn)品。概要設(shè)計(jì)的主要工作如下。
(1)對象行為和對象間交互作用的進(jìn)一步細(xì)化,加入必要的新對象。由于系統(tǒng)的行為很大程度上體現(xiàn)在對象間的交互作用上,因此要給出交互作用的明確且完全的定義。
(2)類的認(rèn)定。在分析階段已經(jīng)把對象組織成一定的結(jié)構(gòu)形式(層次結(jié)構(gòu)),在此基礎(chǔ)上對類加以認(rèn)定,以得到解空間的結(jié)構(gòu)形式,為實(shí)現(xiàn)提供支持。
(3)對重用的支持。類認(rèn)定以后,組成類庫,用以支持重用。在應(yīng)用時(shí),在類庫中選擇所需要的類,實(shí)例化以后得到對象。
詳細(xì)設(shè)計(jì)是緊接著概要設(shè)計(jì)進(jìn)行的,其目的是為實(shí)現(xiàn)做好準(zhǔn)備。編程所需要的主要是有關(guān)對象的描述,因此,詳細(xì)設(shè)計(jì)階段所給出的對象描述將是這個(gè)階段的主要工作。
8.2.1.7 Agent建模
針對復(fù)雜系統(tǒng)問題研究的需求,[美]SFI(Santa Fe Institute)學(xué)者提出了一種新思想,這就是系統(tǒng)復(fù)雜性特別是涌現(xiàn)性的出現(xiàn)是自上而下的,并取決于構(gòu)成系統(tǒng)的構(gòu)件(building block)及其他相互間的非線性作用,這種構(gòu)件被稱之為主體(agent)。20世紀(jì)90年代以來,Agent已成為計(jì)算機(jī)和人工智能領(lǐng)域研究的重要前沿。與此同時(shí),許多領(lǐng)域(如社會科學(xué)、經(jīng)濟(jì)系統(tǒng)、生物科學(xué)、生態(tài)科學(xué)、工程技術(shù)、仿真科學(xué)等)都依次展開了建模與仿真研究工作,并取得了重大成果。因?yàn)锳gent和MAS(muti-agent systems)最初來源于分布式人工智能的研究,故本節(jié)起名為“基于智能技術(shù)的Agent/MAS建模方法與技術(shù)”。
1. Agent的概念
“agent”一詞的譯名有主體、智能體、智能主體、代理、代理體、代理人等,很多文獻(xiàn)中都不加以翻譯,直接采用“agent”或“Agent”來表達(dá)。Agent的概念源自于20世紀(jì)70年代,其標(biāo)志為Hewitt的Actor模型。20世紀(jì)80年代后期,隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,Agent引起了科學(xué)界、教育界、工業(yè)界甚至娛樂界的廣泛興趣,成為DAI乃至整個(gè)計(jì)算科學(xué)的重要研究領(lǐng)域之一。
Agent的定義曾經(jīng)一直比較模糊,Jacques為Agent總結(jié)了一個(gè)最基本的定義: Agent是一個(gè)物理的或虛擬的實(shí)體,它具有以下特點(diǎn):
(1)能夠在一個(gè)環(huán)境中活動。
(2)能夠直接與其他Agent通信。
(3)受一組傾向(以個(gè)人目標(biāo)或它試圖優(yōu)化的一個(gè)滿足/生存函數(shù)的形式)的驅(qū)動。
(4)擁有自己的資源。
(5)能夠感知它的環(huán)境(有限地)。
(6)對其環(huán)境僅有局部的表達(dá)(或者根本沒有)。
(7)它擁有技能并能夠提供服務(wù)。
(8)如需要,能夠自我繁殖。
(9)其行為傾向于考慮它可用的資源和技能,并依賴于它的感知、表達(dá)和它收到的交流信息,來滿足它的目標(biāo)。
實(shí)際上,目前對Agent的定義還有很多,尚無一個(gè)公認(rèn)的普遍性的定義。目前,專家們一致公認(rèn)的是,Agent一般應(yīng)該具有自主性、交互性、反應(yīng)性和主動性這四條基本性質(zhì)。
(1)自主性。Agent具有屬于其自身的計(jì)算資源和局部于自身行為控制的機(jī)制,能在無外界直接操縱的情況下,根據(jù)其內(nèi)部狀態(tài)和感知到的外部環(huán)境信息,決定與控制自身的行為。
(2)交互性。能與其他Agent進(jìn)行多種形式的交互,能有效地與其他Agent協(xié)同工作。
(3)反應(yīng)性。能感知所處的環(huán)境,并對相關(guān)事件作出適時(shí)反應(yīng)。
(4)主動性。能遵循承諾采取主動行動,表現(xiàn)出面向目標(biāo)的行為。
由于Agent具有上述的各種性質(zhì)和特征,因此,它與面向?qū)ο蠓椒ㄖ械膶ο?object)具有明顯的區(qū)別。
第一,Agent具有主動性,它有自己的目標(biāo)及面向目標(biāo)的行為,能遵循承諾采取主動行為,而且具有自學(xué)習(xí)、自適應(yīng)的能力。而對象是被動的實(shí)體,其行為是指由消息(message)去調(diào)用對應(yīng)的方法(method),完成方法所規(guī)定的工作。對象無法表現(xiàn)面向目標(biāo)的動作和行為。
第二,Agent是一個(gè)自主的計(jì)算實(shí)體,能夠在沒有外界直接操縱的情況下,根據(jù)自身所處的環(huán)境、內(nèi)部的狀態(tài)與知識,以及外部事件來決定和控制自身的行為,而對象是受控的,沒有信息執(zhí)行的控制機(jī)構(gòu),對接受到的信息只是機(jī)械地執(zhí)行信息所規(guī)定的動作,無法理解其含義。
第三,對象間是以消息傳遞方式通信的,因此需要明確對方的存在。而Agent間的通信既可以了解對方,直接通信,又可以不了解對方,間接通信。
2. 方法原理
(1)Agent建模。一個(gè)Agent的特性取決于它的結(jié)構(gòu)和行為。Nwana從軟件Agent的角度定義了Agent的三層概念結(jié)構(gòu): 定義層、組織層和合作層(如圖8-3所示)。這個(gè)概念結(jié)構(gòu)提供了一種描述Agent應(yīng)用特征的框架。
圖8-3 Agent的三層概念結(jié)構(gòu)
定義層: 在這一層中,Agent被描述為一個(gè)自治的理性實(shí)體,包括Agent的推理學(xué)習(xí)機(jī)制、目標(biāo)、資源、技能等。
組織層: 定義了Agent與其他Agent的關(guān)系,包括Agent在Agent團(tuán)體中所扮演的角色,以及Agent之間的相互感知等。
合作層: 指明了Agent的社會能力,例如它的合作和協(xié)商技術(shù)。
圖中的另外兩層: 通信層定義Agent之間通信的更低一級的細(xì)節(jié)。API層將Agent與它的資源、技能的物理實(shí)現(xiàn)聯(lián)系起來。
實(shí)際上,設(shè)計(jì)者對上述這些問題的不同觀點(diǎn)反映了不同研究領(lǐng)域、不同需求對Agent的不同要求。因此,不同的研究領(lǐng)域所提出的Agent模型也是不盡相同的,但就普遍意義而言, Agent的內(nèi)部功能模塊大都包含了感知模塊、通信模塊、推理模塊、執(zhí)行模塊、內(nèi)部狀態(tài)庫及知識庫等部分,其結(jié)構(gòu)如圖8-4所示。
Agent的結(jié)構(gòu)也決定了它在感受外界環(huán)境的刺激或者與其他Agent協(xié)作時(shí)的內(nèi)部工作模式。圖8-5以具有推理能力的Agent為例,說明了Agent的內(nèi)部工作原理。其中,Agent的推理模塊能夠完成對外來刺激或請求的建模描述、決策、規(guī)劃等功能。
圖8-4 Agent結(jié)構(gòu)示意圖
圖8-5 Agent內(nèi)部工作原理
在各個(gè)不同領(lǐng)域與學(xué)科中,Agent具有不同的含義。起初Agent僅作為構(gòu)成系統(tǒng)的構(gòu)件,后來被擴(kuò)展為一種智能體,它可以是智能軟件、智能設(shè)備、智能機(jī)器人或智能計(jì)算機(jī),甚至可以是人。由此概念和定義出發(fā),Agent不僅具有自治性、社會能力、響應(yīng)性、能動性等行為特征,而且還有知識、信念、責(zé)任、承諾等精神狀態(tài)特征。
可見,Agent是一個(gè)能夠與外界自主交互并擁有一定知識和推理能力,能夠獨(dú)立完成一定任務(wù)的具有社會性的智能實(shí)體。這樣,在復(fù)雜系統(tǒng)(如復(fù)雜工程系統(tǒng)、軍事作戰(zhàn)系統(tǒng)、社會系統(tǒng)、交通管制系統(tǒng)、電子交易系統(tǒng)等)建模與仿真中,便可能由許多Agent按一定規(guī)則結(jié)合成局部細(xì)節(jié)模型,并利用Agent間的局部連接準(zhǔn)則構(gòu)造出復(fù)雜系統(tǒng)的整體模型,最后借助計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)模型運(yùn)行,進(jìn)行仿真試驗(yàn)研究。在基于Agent的建模與仿真(ABMS)中,一般是在基于Agent的模型形式化框架下,采用形式化規(guī)范方法利用Z語言來構(gòu)造Agent模型。
(2)MAS建模。目前MAS的設(shè)計(jì)與開發(fā)廣泛采用自然語言、框圖等非形式化描述方法。而形式化建模方法是以邏輯、自動機(jī)、代數(shù)和圖論等數(shù)學(xué)理論為基礎(chǔ)。圖8-6給出了基于MAS的分布式仿真平臺及其智能結(jié)構(gòu)。
(3)技術(shù)特點(diǎn)。
①Agent建模是一種基于智能技術(shù)的新方法,對復(fù)雜系統(tǒng)建模有著普遍的重要作用。
②MAS是多個(gè)Agent構(gòu)成的自適應(yīng)柔性動態(tài)系統(tǒng)與典型分布式計(jì)算機(jī)系統(tǒng),通常由三種組織結(jié)構(gòu)模式: 完全集中式、完全分布式和混合式,可滿足多種建模目標(biāo)需求,有效地解決大規(guī)模復(fù)雜系統(tǒng)建模問題。
③Agent技術(shù)是一種先進(jìn)計(jì)算機(jī)技術(shù),特別適合用來解決具有模塊化、分散化、可變性、不良結(jié)構(gòu)、復(fù)雜性等特征的應(yīng)用問題。
④Agent技術(shù)具有下列顯然優(yōu)勢:
a. 與傳統(tǒng)系統(tǒng)(如可用數(shù)學(xué)方程描述的系統(tǒng),可求解的規(guī)范系統(tǒng)等)方法相比較,Agent技術(shù)不僅可提供建模方法,而且可給出問題的解,還可用演示系統(tǒng)演化全部動力學(xué)特征,這是傳統(tǒng)分析方法或數(shù)值方法所無法達(dá)到的。
b. 對于無法求解,或當(dāng)沒有合適方法求解,或許多參數(shù)無法計(jì)算的系統(tǒng)和問題,采用Agent技術(shù)可詳盡地研究系統(tǒng)多種特征,并對問題進(jìn)行求解。
c. 對于無法采用形式描述和數(shù)學(xué)計(jì)算的問題,仍然可通過Agent交互來解決,而這類問題恰恰廣泛存在于經(jīng)濟(jì)系統(tǒng)、社會系統(tǒng)和生物系統(tǒng)等復(fù)雜系統(tǒng)。
圖8-6 基于MAS的分布式仿真平臺及其智能結(jié)構(gòu)
d. 已有基于Agent的建模和開發(fā)工具(軟件)(如由SFI研制的Swarm等)被成功應(yīng)用于復(fù)雜系統(tǒng)問題研究。
e. MAS已成為計(jì)算機(jī)及自動化領(lǐng)域一項(xiàng)關(guān)鍵性主流技術(shù)和研究分布式智能控制的主要工具。MAS形式化建模方法對于MAS進(jìn)行描述和研究,以及對系統(tǒng)模型分析與驗(yàn)證是至關(guān)重要的,也是MAS理論的一個(gè)重要研究方向。
8.2.1.8 仿真建模步驟
系統(tǒng)仿真的一般步驟對于每一個(gè)成功的仿真研究項(xiàng)目,其應(yīng)用都包含著特定的步驟。不論該研究的類型和目的如何變化,仿真的過程是保持不變的,大致經(jīng)過以下幾個(gè)步驟。其流程如圖8-7所示。
1. 問題的闡述
問題的提出是系統(tǒng)研究的第一步,所提出的問題必須是清楚明白的,必要時(shí)可以對問題進(jìn)行重復(fù)陳述。問題一般由決策者,或者是在獲得決策者對問題的同意的情況下由系統(tǒng)分析人員提出。
2. 系統(tǒng)的分析與描述
在這一步中首先要給出系統(tǒng)的詳細(xì)定義,明確系統(tǒng)的構(gòu)成、邊界、環(huán)境和約束。其次是根據(jù)問題確定系統(tǒng)的目標(biāo),以及目標(biāo)能否實(shí)現(xiàn)的衡量標(biāo)準(zhǔn)。同時(shí)對解決問題的途徑,可能的花費(fèi)、預(yù)期的效益進(jìn)行分析。
圖8-7 系統(tǒng)仿真一般步驟
3. 建立系統(tǒng)數(shù)學(xué)模型
根據(jù)系統(tǒng)分析的結(jié)果,確定系統(tǒng)中的變量,依據(jù)變量間的相互關(guān)系以及約束調(diào)價(jià),將它們用數(shù)學(xué)的形式描述出來,并確定其中的參數(shù),即構(gòu)成系統(tǒng)的數(shù)學(xué)模型。所建立的數(shù)學(xué)模型必須是對系統(tǒng)的那些與研究目的有關(guān)的基本特性的抽象,即利用數(shù)學(xué)模型所描述的變量及作用關(guān)系接近于真實(shí)系統(tǒng)。同時(shí),數(shù)學(xué)模型的復(fù)雜度應(yīng)當(dāng)適中。模型過于簡單,可能無法真實(shí)完整地反應(yīng)系統(tǒng)的內(nèi)在機(jī)制; 而模型過于復(fù)雜,可能會降低模型的效率同時(shí)又增加了不必要的計(jì)算過程。
4. 數(shù)據(jù)收集
構(gòu)造數(shù)學(xué)模型和收集所需數(shù)據(jù)之間是相互影響的,當(dāng)模型的復(fù)雜程度改變時(shí),所需的數(shù)據(jù)元素也將改變。數(shù)據(jù)收集包括收集與系統(tǒng)的輸入輸出有關(guān)的數(shù)據(jù)以及反映系統(tǒng)各部分之間關(guān)系的數(shù)據(jù)。
5. 建立系統(tǒng)的仿真模型
仿真模型是指能夠在計(jì)算機(jī)上實(shí)現(xiàn)并運(yùn)行的模型。建立系統(tǒng)的仿真模型過程包括根據(jù)系統(tǒng)的數(shù)學(xué)模型確定仿真模型的模塊結(jié)構(gòu),確定各個(gè)模塊的輸入輸出接口,確定模型和數(shù)據(jù)的存儲方式,選擇編制模型的程序設(shè)計(jì)語言等。程序設(shè)計(jì)語言包括通用語言和專用仿真語言。專用仿真語言的優(yōu)點(diǎn)是使用方便,建模仿真功能強(qiáng),有良好的診斷措施等,缺點(diǎn)是模型格式確定,缺乏靈活性。
6. 模型驗(yàn)證
模型的驗(yàn)證需要回答下述問題,即系統(tǒng)模型(包括對系統(tǒng)的組成成分、系統(tǒng)結(jié)構(gòu)以及參數(shù)值的假設(shè)、抽象和簡化)是否準(zhǔn)確地由仿真模型或計(jì)算機(jī)程序表示出來。驗(yàn)證與仿真模型及計(jì)算機(jī)程序有關(guān),將復(fù)雜的系統(tǒng)模型轉(zhuǎn)換成可執(zhí)行的計(jì)算機(jī)程序不是容易的事,必須經(jīng)過一定工作量的調(diào)試,若輸入?yún)?shù)以及模型的邏輯結(jié)構(gòu)在程序中是正確表達(dá)的,則模型驗(yàn)證通過。
7. 模型確認(rèn)
確認(rèn)是確定模型是否精確地代表實(shí)際系統(tǒng),是把模型及其特性與現(xiàn)實(shí)系統(tǒng)及其特性進(jìn)行比較的全過程。對模型的確認(rèn)工作往往是通過對模型的校正來完成的,比較模型和實(shí)際系統(tǒng)的特性是一個(gè)迭代過程,同時(shí)應(yīng)用兩者之間的差異,以對系統(tǒng)和模型獲得透徹的理解,從而達(dá)到改進(jìn)模型的目的。這個(gè)過程重復(fù)進(jìn)行直到認(rèn)為模型足夠準(zhǔn)確為止。
確認(rèn)模型就是建立模型的可信度。但是,現(xiàn)在還沒有哪一種確認(rèn)技術(shù)可以對模型的結(jié)果作出100%的確定。我們永遠(yuǎn)不可能證明模型的行為就是現(xiàn)實(shí)的真實(shí)行為。通過確認(rèn),我們可以判斷模型的有效程度。假如一個(gè)模型在得到我們提供的相關(guān)正確數(shù)據(jù)之后,其輸出滿足我們的目標(biāo),那么它就是有效的。模型只要在必要范圍內(nèi)有效就可以了,而不需要盡可能的有效。在模型結(jié)果的正確性同獲得這些結(jié)果所需要的費(fèi)用之間總存在著權(quán)衡。
下面是判斷模型有效性的一些指標(biāo):
(1)模型性能測度是否同真實(shí)系統(tǒng)性能測度匹配。
(2)如果沒有現(xiàn)實(shí)系統(tǒng)來對比,可以將仿真結(jié)果同相近現(xiàn)實(shí)系統(tǒng)的仿真模型的相關(guān)運(yùn)行結(jié)果作對比。
(3)利用系統(tǒng)專家的經(jīng)驗(yàn)和直覺來假設(shè)復(fù)雜系統(tǒng)特定部分模型的運(yùn)行狀況。
(4)模型的行為是否同理論相一致? 確定結(jié)果的理論最大值和最小值,然后驗(yàn)證模型結(jié)果是否落入兩值之間。
(5)改變輸入?yún)?shù),通過觀察輸出的變化方向來驗(yàn)證模型的有效性。
(6)模型是否能夠準(zhǔn)確地預(yù)測結(jié)果? 這項(xiàng)技術(shù)可用來對正在運(yùn)行中的模型連續(xù)有效性進(jìn)行驗(yàn)證。
(7)是否有其他仿真模擬器模擬過該模型? 假若有則可將兩個(gè)模型的運(yùn)行結(jié)果進(jìn)行對比。
8. 試驗(yàn)設(shè)計(jì)
仿真試驗(yàn)設(shè)計(jì)就是確定需要進(jìn)行的仿真試驗(yàn)的方案。方案的選擇與系統(tǒng)分析設(shè)計(jì)的目的以及模型可能的執(zhí)行情況有關(guān),同時(shí)也與計(jì)算機(jī)的計(jì)算能力以及對仿真結(jié)果的分析能力有關(guān)。通常仿真試驗(yàn)設(shè)計(jì)涉及的內(nèi)容包括初始化周期的長度、仿真運(yùn)行時(shí)間、每次運(yùn)行的重復(fù)次數(shù)等。
9. 仿真運(yùn)行研究
仿真運(yùn)行就是將系統(tǒng)的仿真模型放在計(jì)算機(jī)上執(zhí)行計(jì)算。在運(yùn)行過程中了解模型對各種不同的輸入數(shù)據(jù)及各種不同的仿真機(jī)制的輸出響應(yīng)情況,通過觀察獲得所需要的試驗(yàn)數(shù)據(jù),從而預(yù)測系統(tǒng)的實(shí)際運(yùn)行規(guī)律。模型的仿真運(yùn)行是一個(gè)動態(tài)過程,需要進(jìn)行反復(fù)的運(yùn)行試驗(yàn)。
10. 仿真結(jié)果分析
對仿真結(jié)果進(jìn)行分析的目的是確定仿真試驗(yàn)中所得到的信息是否合理和充分,是否滿足系統(tǒng)的目標(biāo)要求,同時(shí)將仿真結(jié)果分析整理成報(bào)告,確定比較系統(tǒng)不同方案的準(zhǔn)則、試驗(yàn)結(jié)果和數(shù)據(jù)的評價(jià)標(biāo)準(zhǔn)及問題可能的解,為系統(tǒng)方案的最終決策提供輔助支持。
從仿真技術(shù)上可以將上述步驟分為三個(gè)階段: ①模型的建立階段; ②模型的變換階段; ③模型試驗(yàn)階段。
模型建立階段的主要研究內(nèi)容是根據(jù)研究目的、系統(tǒng)的原理和數(shù)據(jù)建立系統(tǒng)模型,這一階段的關(guān)鍵技術(shù)是建模方法學(xué)。
模型的變換階段的主要研究內(nèi)容是根據(jù)模型的形式、計(jì)算機(jī)的類型及仿真目的將模型轉(zhuǎn)換成適合計(jì)算機(jī)處理的形式,這一階段的關(guān)鍵技術(shù)是仿真算法。
模型試驗(yàn)階段的主要任務(wù)是設(shè)計(jì)好仿真試驗(yàn)方案,將模型裝載到計(jì)算機(jī)上運(yùn)行,按規(guī)定的規(guī)則輸入數(shù)據(jù),觀察模型中變量的變化情況,對輸出結(jié)果進(jìn)行整理、分析并形成報(bào)告,這一階段的關(guān)鍵技術(shù)是仿真軟件技術(shù)。
圖8-8 計(jì)算機(jī)仿真的三個(gè)階段
以上三個(gè)階段劃分的仿真過程如圖8-8所示。
8.2.2 建模數(shù)學(xué)基礎(chǔ)
8.2.2.1 仿真概率統(tǒng)計(jì)基礎(chǔ)
在離散事件系統(tǒng)仿真中,系統(tǒng)內(nèi)部實(shí)體的活動是不確定的,事件的發(fā)生具有隨機(jī)的性質(zhì),對于這種隨機(jī)的過程需要采用概率及統(tǒng)計(jì)的方法描述,離散事件系統(tǒng)模型一般與概率分布有關(guān),因此建模者需要從已知的數(shù)據(jù)中選擇合適的分布形式,作該分布的參數(shù)估計(jì),然后進(jìn)行檢驗(yàn)以觀察是否獲得合適的擬合,最終得到離散事件系統(tǒng)的概率模型。隨機(jī)變量在離散事件系統(tǒng)仿真中起著重要的作用,因此掌握隨機(jī)變量的有關(guān)知識是非常必要的。
1. 確定事件和隨機(jī)事件
(1)確定事件。確定事件是可以事先預(yù)言的,即在準(zhǔn)確地重復(fù)一定的條件下,其變化的結(jié)果總是確定的,或者根據(jù)其過去的狀態(tài),相同的條件下可以預(yù)言將來的發(fā)展變化,我們把這一類事件稱為確定性事件。確定性事件的主要特征是事件可以用一個(gè)確定的數(shù)學(xué)形式來描述: f (t)或是數(shù)學(xué)函數(shù),或是數(shù)學(xué)圖表等。在給定條件下進(jìn)行的試驗(yàn)中,一定發(fā)生的必然事件或一定不發(fā)生的不可能事件都是確定事件。
(2)隨機(jī)事件。在給定條件下進(jìn)行的試驗(yàn)中,可能發(fā)生也可能不發(fā)生,而在大量重復(fù)試驗(yàn)中卻具有某種規(guī)律性的事件,稱為隨機(jī)事件。
隨機(jī)事件的變化結(jié)果是事先不可預(yù)言的,即在相同的條件下進(jìn)行重復(fù)實(shí)驗(yàn),每次結(jié)果未必相同,或者是知道其過去的狀況,在相同的條件、未來的發(fā)展事先都不能確定,這一類事件我們稱為隨機(jī)性事件。它的主要特征是事件的描述可以通過數(shù)學(xué)統(tǒng)計(jì)的方法描述。
研究隨機(jī)性事件所利用的數(shù)學(xué)工具是概率論及數(shù)理統(tǒng)計(jì),但對實(shí)際系統(tǒng)中隨機(jī)事件進(jìn)行研究時(shí),往往由于眾多的隨機(jī)因素使得數(shù)學(xué)描述和分析變得十分困難,這時(shí)我們往往求助于計(jì)算機(jī)仿真。仿真為這類復(fù)雜的隨機(jī)系統(tǒng)的研究提供了一個(gè)方便有效的手段。
2. 隨機(jī)變量與概率
(1)隨機(jī)變量。如果試驗(yàn)的每個(gè)結(jié)果用變量ξ的一個(gè)值來表示,即ξ的值根據(jù)試驗(yàn)結(jié)果來確定,因而它取什么值是隨機(jī)的,而且對任意實(shí)數(shù)x,ξ
0≤P(ξ<x)≤1
隨機(jī)變量又可以分為離散型隨機(jī)變量和連續(xù)型隨機(jī)變量。
①離散型隨機(jī)變量。若隨機(jī)變量只取有限個(gè)數(shù)值或可列無窮多個(gè)數(shù)值,則稱此類隨機(jī)變量為離散型隨機(jī)變量。
數(shù)學(xué)定義: 如果一個(gè)隨機(jī)變量x的一切可能取值為x1,x2,…,xn,…,并且X取值xn的概率為Pn,則X為一個(gè)離散型隨機(jī)變量,{p1,p2,…,pn,…}稱為X的概率函數(shù)。其中Pn必須滿足下列兩個(gè)條件:
分布函數(shù): 離散型隨機(jī)變量X的累積分布函數(shù)定義,當(dāng)X小于或等于某個(gè)給定值x的概率函數(shù),記為P(X≤x) =F(x)。
設(shè)隨機(jī)變量X可能取值x1,x2,…,xn,…則X的累積分布函數(shù)為
其中Pi為X取值的概率。
由定義可見當(dāng)x<y時(shí),F(xiàn)(x)≤F(y),即F(x)是個(gè)單調(diào)增加的函數(shù)。
②連續(xù)型隨機(jī)變量。若隨機(jī)變量可以取值于某個(gè)區(qū)間中的任一數(shù),我們稱為連續(xù)型隨機(jī)變量。
數(shù)學(xué)定義: 若存在非負(fù)函數(shù)f(x),使得隨機(jī)變量X取值于任一區(qū)間(a,b)的概率為
則稱X為連續(xù)型隨機(jī)變量,f(x)稱為X的密度函數(shù)。
對于密度函數(shù)f(x)有
分布函數(shù): 連續(xù)型隨機(jī)變量的累積分布函數(shù)定義為隨機(jī)變量小于或等于x的概率。它用F (x)表示,即
由累積分布函數(shù)定義可知,0≤F(x)≤1
當(dāng)x1<x2,F(xiàn)(x1)≤F(x2)。
累積分布函數(shù)是單調(diào)遞增函數(shù)。
(2)概率。如果對某項(xiàng)試驗(yàn)重復(fù)進(jìn)行了n次,事件A發(fā)生了m次,則稱A在這次試驗(yàn)中的頻率為m/n。在大量重復(fù)某項(xiàng)試驗(yàn)時(shí),就會發(fā)現(xiàn)事件的頻率在試驗(yàn)次數(shù)很大而且不斷增大的過程中呈現(xiàn)穩(wěn)定性。這種統(tǒng)計(jì)規(guī)律性表明: 事件發(fā)生的可能性大小是事件本身固有的客觀屬性。稱事件A發(fā)生可能性的大小為事件A的概率,記為P(A)。當(dāng)試驗(yàn)次數(shù)n足夠大時(shí),可以用事件的頻率作為事件概率的近似值,即:
P(A)≈m/n
概率是一個(gè)在區(qū)間[0,1]上取值的實(shí)數(shù)。
隨機(jī)變量ξ取值小于實(shí)數(shù)x的可能性的大小,即隨機(jī)事件{ξ<x}發(fā)生的概率,介于數(shù)0和1之間:
0≤P{ξ<x}≤1
3. 隨機(jī)數(shù)和隨機(jī)變量的產(chǎn)生
隨機(jī)數(shù)是指具有確定分布和概率的、位于一定閾值內(nèi)的一組數(shù)字。除了傳統(tǒng)的均勻分布隨機(jī)數(shù)之外,還有非均勻分布隨機(jī)數(shù),例如二項(xiàng)分布、Poisson分布和指數(shù)分布等。
在許多仿真過程中,事件的發(fā)生是隨機(jī)的,或者事件的屬性值的確定具有偶然性。例如,仿真中廣泛應(yīng)用的決策邏輯中,偶然性的影響和作用是非常大的。在一個(gè)系統(tǒng)的運(yùn)行中,已知按照一條給定的路徑運(yùn)行有一定的可能性,在對系統(tǒng)的仿真中需要有一種方法能夠選定這條路徑,從而使仿真器的長期行為更加接近于真實(shí)系統(tǒng)。由于在多數(shù)情況下這個(gè)決策是不確定的,對路徑的選擇通常要基于概率關(guān)系。因此,幾乎在所有的仿真模型中都需要有某種裝備用來產(chǎn)生隨機(jī)數(shù)。
由于這些隨機(jī)因素的存在,在建模過程中就可能需要用服從各種分布的隨機(jī)變量來描述系統(tǒng)中存在的隨機(jī)性和偶然性問題。隨機(jī)變量產(chǎn)生的基礎(chǔ)是隨機(jī)數(shù),隨機(jī)數(shù)可以通過對[0,1]區(qū)間上均勻分布抽樣生成,曾經(jīng)使用過的真正隨機(jī)數(shù)的發(fā)生器包括: ①用袋裝有小球,進(jìn)行可放回抽樣; ②微秒級時(shí)鐘上的低階數(shù)字; ③一個(gè)隨機(jī)電子噪聲源的周期性量化輸出值。
這些方法都可以產(chǎn)生真正的隨機(jī)數(shù)。但它們有一個(gè)共同的缺點(diǎn),就是應(yīng)用在仿真研究中時(shí),用這些方法產(chǎn)生的隨機(jī)數(shù)序列通常不能復(fù)現(xiàn)。而在很多情況下,系統(tǒng)決策需要進(jìn)行多次仿真比較才能確定,因此重現(xiàn)性是非常必要的。
(1)偽隨機(jī)數(shù)。大量的方法被應(yīng)用于克服隨機(jī)數(shù)序列所固有的不可重現(xiàn)性。在討論這些方法之前,首先介紹對隨機(jī)數(shù)發(fā)生器的要求。
①所產(chǎn)生的數(shù)必須服從均勻分布。至于擬合的優(yōu)良程度,建議采用大樣本量的χ2檢驗(yàn)。樣本容量N可以取1000至10000之間的數(shù)。
②所產(chǎn)生的數(shù)必須是統(tǒng)計(jì)獨(dú)立的。隨機(jī)數(shù)序列中一個(gè)數(shù)的值不能影響下一個(gè)數(shù)的值。如果隨機(jī)數(shù)序列缺少獨(dú)立性就可能被拒絕,但隨機(jī)數(shù)序列被接受并不能證明它的獨(dú)立性。
③所產(chǎn)生的隨機(jī)數(shù)序列必須是可重現(xiàn)的,這樣就允許仿真試驗(yàn)重復(fù)進(jìn)行。
④所產(chǎn)生的隨機(jī)數(shù)序列在任何需要的長度內(nèi)必須是不重復(fù)的。這在理論上可能是做不到,但從實(shí)踐的角度講,通常是出現(xiàn)相當(dāng)多的隨機(jī)數(shù)之后出現(xiàn)周期性變化。這可近似地認(rèn)為隨機(jī)數(shù)是不重復(fù)的。隨機(jī)數(shù)發(fā)生器的重復(fù)性循環(huán)出現(xiàn)的長度稱為它的周期。
⑤隨機(jī)數(shù)產(chǎn)生的速度必須快,因?yàn)樵诜抡孢\(yùn)行中通常需要處理大量的隨機(jī)數(shù),如果隨機(jī)數(shù)發(fā)生器速度慢,就必然大大增加仿真運(yùn)行的時(shí)間和費(fèi)用。
⑥用于產(chǎn)生隨機(jī)數(shù)的方法應(yīng)當(dāng)占用盡可能小的存儲空間,仿真模型通常需要大量的存儲空間,而存儲空間總是有限的,如此寶貴的資源在產(chǎn)生隨機(jī)數(shù)的過程中占用得越少越好。一個(gè)隨機(jī)數(shù)序列R1,R2,…,RN必須具備兩個(gè)重要的性質(zhì): 即均勻性和獨(dú)立性。所謂均勻性是指,如果把隨機(jī)數(shù)的采樣區(qū)間分成n個(gè)相等長度的子區(qū)間,那么在每一個(gè)子區(qū)間上觀察到的隨機(jī)數(shù)的期望數(shù)為N/n,其中N為觀察總次數(shù); 獨(dú)立性是指一個(gè)數(shù)值出現(xiàn)在一個(gè)特定子區(qū)間的概率與前面已經(jīng)取到的數(shù)值無關(guān)。
根據(jù)對隨機(jī)數(shù)發(fā)生器的要求,就可以評價(jià)為了補(bǔ)償隨機(jī)數(shù)序列所缺乏的重現(xiàn)性而采用的方法。第一種方法是利用某種手段生成一個(gè)隨機(jī)數(shù)序列并將它永久保存起來,例如,保存在計(jì)算機(jī)硬盤上。這種方法并不能使人滿意,因?yàn)槊看螌﹄S機(jī)數(shù)的需求都必須進(jìn)行一次讀操作,這種操作是非常浪費(fèi)時(shí)間的,這種方法為了滿足隨機(jī)數(shù)重復(fù)周期的要求,必須存儲一個(gè)很大的隨機(jī)數(shù)序列。第二種方法是利用某種手段生成一個(gè)隨機(jī)數(shù)序列并將其保留在計(jì)算機(jī)內(nèi)存中。這種方法可以克服第一種方法中的速度問題,但是要滿足多個(gè)仿真研究的需要就應(yīng)存儲一個(gè)相當(dāng)大的隨機(jī)數(shù)序列,這就要求有非常大的內(nèi)存量。第三種也是最常用的一種方法,是利用某種算法根據(jù)指定的輸入值來產(chǎn)生隨機(jī)數(shù)。這種方法克服了速度和內(nèi)存容量上的問題,但同時(shí)又帶來了在獨(dú)立性和可重復(fù)性方面的問題。運(yùn)用某種算法產(chǎn)生隨機(jī)數(shù)可能會破壞隨機(jī)的基本性質(zhì),因此利用算法所產(chǎn)生的隨機(jī)數(shù)被稱為偽隨機(jī)數(shù)PRN(Pseudo Random Number)。這些數(shù)滿足一定的隨機(jī)性準(zhǔn)則,但它們的產(chǎn)生總是以某個(gè)稱之為“種子”的確定初始值開始,并且是一個(gè)完全確定的、重復(fù)的過程。在仿真研究中對利用算法產(chǎn)生的偽隨機(jī)數(shù)序列進(jìn)行合理性檢驗(yàn)也是非常重要的。
偽隨機(jī)數(shù)中的“偽”字并不意味著產(chǎn)生了一個(gè)假的隨機(jī)數(shù)或隨機(jī)數(shù)序列。這里使用“偽”字是指由一個(gè)已知的方法所產(chǎn)生的隨機(jī)數(shù)的真正作用是排除了真正的隨機(jī)性。如果知道了產(chǎn)生隨機(jī)數(shù)的方法,那么任何一個(gè)隨機(jī)數(shù)序列便可以重復(fù)地產(chǎn)生出來,這樣就會認(rèn)為這些數(shù)不是真正的隨機(jī)數(shù)。然而,不管采用什么方法,產(chǎn)生隨機(jī)數(shù)的目的是使所產(chǎn)生的隨機(jī)數(shù)序列能盡可能地接近均勻分布和獨(dú)立性的理想性質(zhì)。
當(dāng)然,偽隨機(jī)數(shù)會與理想隨機(jī)性產(chǎn)生一定的偏差。例如所產(chǎn)生的數(shù)可能不服從均勻分布,數(shù)的均值太高或太低,數(shù)的方差可能太高或太低,可能存在一定的周期性變化等。為此,需要對所產(chǎn)生的偽隨機(jī)數(shù)序列進(jìn)行均勻性和獨(dú)立性檢驗(yàn)。如果檢驗(yàn)出的偏差超出許可范圍,就不能接受相應(yīng)的偽隨機(jī)數(shù)產(chǎn)生方法。
圖8-9 平方取中法步驟
(2)隨機(jī)數(shù)產(chǎn)生的方法。計(jì)算機(jī)產(chǎn)生隨機(jī)數(shù)的通常方法是利用一個(gè)遞推公式:
Xn=f(Xn-1,Xn-2,…,Xn=k)
給定了k個(gè)初始值Xn-1,Xn-2,…,Xn=k,就可以利用這個(gè)遞推公式推算出第k+1個(gè)數(shù)Xk+1:
Xk+1=f(X1,X2,…,Xk)
遞推公式有多種形式,其中最常見的有兩種:平方取中法和同余法。
重復(fù)上述過程,可得二進(jìn)制n為數(shù)序列X1,X2,X3…。令yn=Xi2-n,則Y1,Y2,Y3…就是所需要的(0,1)均勻分布隨機(jī)數(shù)序列。
②同余法。同余法是將一組數(shù)據(jù)通過一系列特定的數(shù)字運(yùn)算,最后利用一個(gè)數(shù)字的整除求余,所得的數(shù)值就是一個(gè)偽隨機(jī)數(shù)。因?yàn)檫@個(gè)計(jì)算過程,則稱該求隨機(jī)數(shù)的方法為同余法。
同余法有三種: 加同余法、乘同余法和混合同余法。其中以混合同余法產(chǎn)生的隨機(jī)數(shù)統(tǒng)計(jì)性質(zhì)較好,因而獲得了最為廣泛的應(yīng)用。
同余法具有計(jì)算簡便的優(yōu)點(diǎn)。
產(chǎn)生隨機(jī)數(shù)的遞推公式是: Xn+1=(a Xn+c)mod M
當(dāng)a=1時(shí),加同余法;
當(dāng)c=0時(shí),乘同余法;
當(dāng)a≠1、c≠0時(shí),混合同余法。
8.2.2.2 仿真系統(tǒng)的VV&A及可信度評估
模型是對包括系統(tǒng)、實(shí)體、現(xiàn)象、過程在內(nèi)的真實(shí)世界的數(shù)學(xué)的、物理的或邏輯的描述,仿真則是建立系統(tǒng)模型應(yīng)用模型運(yùn)行預(yù)測未來、輔助設(shè)計(jì)和進(jìn)行科學(xué)研究的全過程。它們既區(qū)別于真實(shí)客觀事物又不同于傳統(tǒng)的實(shí)物試驗(yàn),而是基于相似理論采用建模和物理方法對真實(shí)系統(tǒng)(或過程)的抽象、映射、描述和復(fù)現(xiàn)。因此,建模與仿真必須嚴(yán)肅地回答及證實(shí)如下三個(gè)問題: ①模型是否正確地描述了實(shí)際系統(tǒng)的外部表征和內(nèi)在特性? ②仿真是否有效地反映了模型數(shù)據(jù)、性狀和行為? ③仿真結(jié)果是否實(shí)現(xiàn)了應(yīng)用目標(biāo)與用戶需求? 這就是通常所說的可信性(credibility)、有效性(validity)和可接受性(acceptability)問題。由于仿真模型總是不可能完全準(zhǔn)確地描述和復(fù)現(xiàn)真實(shí)系統(tǒng)(或過程),所以最大的問題是可信性問題; 缺乏可信性的模型和仿真系統(tǒng)是沒有任何意義的,故仿真界專家們認(rèn)為仿真可信度是系統(tǒng)仿真最重要的性能指標(biāo),也是仿真科學(xué)與技術(shù)發(fā)展的生命線。這不僅對于一般中、小仿真系統(tǒng)如此,而且對于大型復(fù)雜仿真系統(tǒng)尤為重要。
可見,為了保證獲得有效的、可信的和可接受的仿真結(jié)果,必須對模型和仿真系統(tǒng)進(jìn)行校核、驗(yàn)證和確認(rèn)(verification validation accreditation,簡稱VV&A)。
大型復(fù)雜仿真系統(tǒng)VV&A是針對可信度評估而實(shí)施的一項(xiàng)活動,它貫穿于整個(gè)系統(tǒng)開發(fā)的全生命周期,其意義和作用是十分重大的,主要體現(xiàn)在如下六個(gè)方面:
(1)可以有效地提高仿真結(jié)果的正確性,增強(qiáng)應(yīng)用仿真系統(tǒng)的信心。
(2)可以降低應(yīng)用仿真系統(tǒng)的風(fēng)險(xiǎn),尤其避免災(zāi)難性風(fēng)險(xiǎn),從而做到縮短研制周期,提高開發(fā)效率。
(3)可能降低仿真系統(tǒng)的總投資,提高應(yīng)用效率。
(4)有利于對科學(xué)研究問題進(jìn)行全方位分析。
(5)擴(kuò)大仿真系統(tǒng)應(yīng)用范圍,提高仿真系統(tǒng)的重用性。
(6)可以促進(jìn)仿真系統(tǒng)的全面質(zhì)量管理,提高管理水平和效率。
總之,建模與仿真的VV&A是系統(tǒng)仿真領(lǐng)域中非常重要的共用技術(shù),是評估和確保大型復(fù)雜仿真系統(tǒng)特別是軍用復(fù)雜仿真系統(tǒng)可信度必不可少的工作過程和方法。
1. 基本概念及相關(guān)概念
(1)基本概念。如前所述,仿真系統(tǒng)存在一個(gè)可信性問題,或者說可信度評估問題。仿真系統(tǒng)的可信度可以通過校核與驗(yàn)證加以測量和評判,通過確認(rèn)來正式地加以認(rèn)證,從而使仿真系統(tǒng)可以為某一特定的應(yīng)用目的服務(wù),這個(gè)過程就是仿真系統(tǒng)的校核、驗(yàn)證與確認(rèn)。
美國DOD5000.61《國防部建模與仿真校核驗(yàn)證與確認(rèn)》對校核、驗(yàn)證與確認(rèn)進(jìn)行了如下嚴(yán)格定義:
①校核(verification)。確定仿真系統(tǒng)準(zhǔn)確地代表了開發(fā)者的概念描述和技術(shù)要求的過程。
②驗(yàn)證(validation)。從仿真系統(tǒng)應(yīng)用目的出發(fā),確定仿真系統(tǒng)代表真實(shí)世界正確程度的過程。
③確認(rèn)(accreditation)。官方正式地接受一個(gè)仿真系統(tǒng)為專門的應(yīng)用服務(wù)的過程。
進(jìn)一步講,校核、驗(yàn)證和確認(rèn)要解決的問題分別是:
①校核是確定仿真系統(tǒng)模型及其仿真實(shí)現(xiàn)是否準(zhǔn)確的表達(dá)了開發(fā)者需求的迭代過程,側(cè)重于對仿真建模過程的檢驗(yàn),即檢查仿真模型代碼和邏輯是否正確,是否準(zhǔn)確地完成了仿真系統(tǒng)的預(yù)期功能。
②驗(yàn)證是證實(shí)仿真系統(tǒng)的真實(shí)性,是對數(shù)學(xué)模型和邏輯模型輸出進(jìn)行的徹底檢查,應(yīng)用從真實(shí)世界或一個(gè)可信源數(shù)據(jù)與仿真系統(tǒng)的輸出行為和結(jié)果進(jìn)行比較而得到仿真系統(tǒng)是否逼真的結(jié)論。因此,驗(yàn)證的最根本方法是實(shí)驗(yàn)、觀測和比較,最鮮明的目的是提供一組支持模型或仿真對特殊應(yīng)用的可信性證據(jù)。
圖8-10 校核、驗(yàn)證和確認(rèn)之間的聯(lián)系及效應(yīng)
③確認(rèn)是解決仿真系統(tǒng)是否適合特定應(yīng)用的問題,由官方或權(quán)威機(jī)構(gòu)作出仿真系統(tǒng)對某一特定應(yīng)用是否接受的最終決策。它建立在上述VV&A結(jié)果的基礎(chǔ)上,并與一個(gè)可接受性標(biāo)準(zhǔn)/規(guī)范進(jìn)行比較來完成。
由此可知,校核涉及“是否正確地建立了仿真系統(tǒng)”的問題,驗(yàn)證涉及“是否建立了正確的系統(tǒng)模型”的問題,確認(rèn)涉及“是否可以使用仿真系統(tǒng)”的問題,三者既獨(dú)立又密切聯(lián)系,且為仿真系統(tǒng)的功能評估、性能評估、有效性評估和可信度評估奠定了基礎(chǔ),提供了科學(xué)依據(jù),如圖8-10所示。
2. 可信性、可信度與逼真度
可信性與可信度是兩個(gè)不同的概念??尚判允且粋€(gè)定性而非定量的術(shù)語,是指用戶在模型中看到適合自己使用的性能,并且擁有對模型或仿真能夠服務(wù)于他的目的的信心,即仿真系統(tǒng)使用者應(yīng)用仿真解決具體問題和行為決策的信心。具體講,如果決策者和其他關(guān)鍵項(xiàng)目人員承認(rèn)模型或仿真及其數(shù)據(jù)是“正確的”,則該模型或仿真及其數(shù)據(jù)就具有可信性。
可信度是一個(gè)定量的術(shù)語,目前有多種定義,較為確切的是“仿真系統(tǒng)的使用者對應(yīng)與仿真系統(tǒng)在一定環(huán)境、一定條件下仿真試驗(yàn)的結(jié)果,解決所定義問題正確性的信任程度”,或者說“仿真系統(tǒng)作為原型系統(tǒng)的相似替代系統(tǒng)在特定的建模與仿真的目的和意義下,在總體結(jié)構(gòu)和行為水平上能夠復(fù)現(xiàn)原型系統(tǒng)的可信性程度”。
所謂逼真度就是模型或仿真以可測量或可察覺方式復(fù)現(xiàn)真實(shí)世界對象的狀態(tài)和行為的程度。逼真度分為模型逼真度和仿真逼真度。
模型逼真度是指“在研究目的的限定條件下,模型相對于仿真對象的近似程度”。
仿真逼真度則是“仿真對仿真對象某個(gè)側(cè)面或整體的外部狀態(tài)和行為的復(fù)現(xiàn)程度”。
3. VV&A的原則和工作模式
(1)仿真系統(tǒng)VV&A原則。建立和正確應(yīng)用仿真系統(tǒng)VV&A原則,不僅是VV&A工作成功的保障,而且能夠有效地利用資源。
仿真系統(tǒng)VV&A原則是關(guān)于VV&A基本觀點(diǎn)和活動準(zhǔn)則的總結(jié),可簡要?dú)w納如下:
①完全的VV&A是不可能的。所謂完全的VV&A是指在所有可能的輸入條件下,測試或檢查模型或仿真,在實(shí)際工程中是不可能做到的。因此,VV&A活動范圍應(yīng)根據(jù)應(yīng)用的可信性需求合理的確定。
②不存在絕對正確的模型。因?yàn)槿魏文P投际腔谙嗨评碚摰恼鎸?shí)系統(tǒng)(或過程)的替代物,總是近似的,因此只有相對正確的概念。自然,VV&A的目標(biāo)不是要證明模型或仿真的絕對正確性,而是要保障它們對于應(yīng)用目標(biāo)充分地精確。
③VV&A應(yīng)當(dāng)貫穿于系統(tǒng)仿真的全生命周期。由于仿真系統(tǒng)開發(fā)的各個(gè)階段都對M&S的可信性有重要影響,所以VV&A應(yīng)該在系統(tǒng)仿真中是一個(gè)持續(xù)不斷的過程,即VV&A工作應(yīng)與仿真系統(tǒng)開發(fā)并駕齊驅(qū),才能充分發(fā)揮VV&A作用。
④正確清楚地闡述問題是VV&A的基礎(chǔ)。愛因斯坦曾指出“一個(gè)問題正確的闡述甚至比解決它更重要”。因此,對需求定義和仿真系統(tǒng)預(yù)期應(yīng)用的清楚、準(zhǔn)確闡述是VV&A工作的前提,否則VV&A活動將失去意義。
⑤仿真可信性是相對于仿真系統(tǒng)的應(yīng)用目的而言的。由于仿真系統(tǒng)是一種仿真環(huán)境或仿真平臺,它應(yīng)該能適應(yīng)相當(dāng)廣泛的一類仿真研究。這樣對于同一個(gè)仿真系統(tǒng)若應(yīng)用目的不同,逼真度要求就不同,自然會得到關(guān)于可信性的不同結(jié)論,因此校核、驗(yàn)證和確認(rèn)都將是針對預(yù)期應(yīng)用進(jìn)行的。
⑥仿真系統(tǒng)的驗(yàn)證不能保證仿真系統(tǒng)對于預(yù)期應(yīng)用的可接受性。因?yàn)橛绊懴到y(tǒng)可接受性的因素是多方面的,它不僅包括模型的有效性,而且與系統(tǒng)仿真的目標(biāo)和需求有關(guān)。所以仿真系統(tǒng)的驗(yàn)證只是仿真系統(tǒng)具有可用性(usability)的必要條件,而不是充分條件。
⑦盡可能避免或減小VV&A中的三類錯(cuò)誤。在仿真過程可能出現(xiàn)三類錯(cuò)誤: a.Ⅰ型錯(cuò)誤: 當(dāng)仿真結(jié)果足夠可信時(shí)卻不接受(拒絕)所造成的錯(cuò)誤; b.Ⅱ型錯(cuò)誤: 無效的仿真結(jié)果被認(rèn)為是有效而予以接受(不拒絕)所造成的錯(cuò)誤; c.Ⅲ型錯(cuò)誤: 由于問題描述與表達(dá)不正確或不準(zhǔn)確而使仿真研究工作圍繞非本質(zhì)問題而進(jìn)行,導(dǎo)致仿真試驗(yàn)結(jié)果不準(zhǔn)確或與實(shí)際研究問題無關(guān)。應(yīng)注意,犯Ⅰ型錯(cuò)誤的概率稱為對建模者的不信任風(fēng)險(xiǎn),但不會造成VV&A費(fèi)用的增加; 犯Ⅱ、Ⅲ型錯(cuò)誤的概率分別稱為模型用戶風(fēng)險(xiǎn)和問題描述與表達(dá)風(fēng)險(xiǎn),這種錯(cuò)誤有可能導(dǎo)致嚴(yán)重后果。
⑧每一子系統(tǒng)的VV&A并不能保證整個(gè)仿真系統(tǒng)的可信性。這是顯而易見的,因?yàn)槊總€(gè)子系統(tǒng)的可信性都是在特定范圍內(nèi)具有足夠的可信性,其誤差積累最終可能導(dǎo)致整個(gè)仿真系統(tǒng)的誤差超出允許的范圍,所以它并不能保證整個(gè)仿真系統(tǒng)是足夠可信的。
⑨仿真系統(tǒng)的確認(rèn)不是簡單的肯定或否定的二值邏輯問題。確認(rèn)的內(nèi)涵應(yīng)該是仿真系統(tǒng)的M&S在多大程度上與仿真目標(biāo)相適應(yīng),是定量地評估描述,而不是簡單說成“好”或“不好”。
⑩VV&A既是一門藝術(shù),又是一門科學(xué),需要?jiǎng)?chuàng)造性和洞察力。VV&A并不是一個(gè)簡單的選擇和運(yùn)用VV&A技術(shù)的過程,而是每項(xiàng)工作都需要VV&A人員像藝術(shù)家那樣精心設(shè)計(jì)和構(gòu)思。VV&A是集系統(tǒng)工程、軟件工程、計(jì)算機(jī)技術(shù)、建模與仿真理論和方法以及各類領(lǐng)域知識為一體的一門科學(xué),因此是一項(xiàng)團(tuán)隊(duì)工作,需要發(fā)揮集體智慧和創(chuàng)造性及洞察力。
分析人員對VV&A的成功有著直接的影響。VV&A不僅需要通過測試獲得數(shù)據(jù),更需要進(jìn)行深入細(xì)致地分析,尤其是對于無法通過測試來檢驗(yàn)的問題。同時(shí),分析人員還要參與VV&A的工作,因此他們對VV&A的成功有著直接影響。
VV&A必須做好計(jì)劃和記錄工作。計(jì)劃在VV&A實(shí)施過程中起著導(dǎo)向作用,格式化的記錄不僅是當(dāng)前持續(xù)不斷VV&A的必要寫實(shí),而且將為VV&A的下一步工作提供信息,作為重要參考或借鑒。
VV&A需要某種程度的獨(dú)立,以便將開發(fā)者的影響減到最小,這就是相對獨(dú)立性原則。這是因?yàn)閂V&A工作類似于建筑工程中的工程監(jiān)理,不僅需要與開發(fā)人員相互配合,更需要本身獨(dú)立從事。
成功的VV&A需要對所使用的數(shù)據(jù)進(jìn)行VV&A。這就是數(shù)據(jù)有效原則,為了保證數(shù)據(jù)的有效性,必須對VV&A所有用到的數(shù)據(jù)進(jìn)行校核和驗(yàn)證。
(2)VV&A工作模式。VV&A工作是同仿真系統(tǒng)開發(fā)同步進(jìn)行的,并貫穿于仿真系統(tǒng)全生命周期。與軟件生命周期概念類似,仿真系統(tǒng)生命周期是指仿真系統(tǒng)從提出問題開始,通過完成需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試等開發(fā)工作,直到仿真系統(tǒng)運(yùn)行(即使用)、維護(hù)及管理的全過程,如圖8-11所示。
圖8-11 仿真系統(tǒng)生命周期
VV&A工作模式就是上述仿真系統(tǒng)生命周期VV&A過程模型。它描述了VV&A活動的蹤跡、內(nèi)容和工作框架,如圖8-12所示。
圖8-12 仿真系統(tǒng)生命周期VV&A活動
①定義需求。需求是說明一個(gè)特定仿真應(yīng)用的詳細(xì)需要的功能、表達(dá)、條件、約束和假定的集合,它包括問題(系統(tǒng))需求、用戶需求和仿真需求。
②需求校核。需求校核亦稱需求分析,其任務(wù)是確定需求是否是完全的、清晰的、可測試的,并且是相互一致的。
③制定VV&A計(jì)劃。VV&A計(jì)劃包括V&V計(jì)劃和確認(rèn)計(jì)劃兩大部分。V&V計(jì)劃擬制了所有同仿真系統(tǒng)校核與驗(yàn)證有關(guān)的活動,而確認(rèn)計(jì)劃則規(guī)定了與系統(tǒng)確認(rèn)有關(guān)問題和可接受性標(biāo)準(zhǔn)。
④概念模型驗(yàn)證。概念模型驗(yàn)證是要確定概念模型中顯示的能力是否包括了滿足需求所必需的全部能力。通常要完成如下兩項(xiàng)主要工作: ?確保需求在概念模型中得到了充分正確的體現(xiàn); ?檢查概念模型是否充分滿足了仿真的預(yù)期用途和仿真目標(biāo)。
⑤設(shè)計(jì)校核。設(shè)計(jì)校核要解決的問題是仿真系統(tǒng)設(shè)計(jì)是否清晰、正確,是否與概念模型中定義和描述的需求相一致; 目的在于保證所有特征、功能、行為、算法以及交互作用被正確和完整地包含在設(shè)計(jì)表達(dá)和文件中。主要工作包括: ?校核需求映射; ?評估算法; ?校核接口;?評估時(shí)間和空間; ?校核數(shù)據(jù)轉(zhuǎn)換方法; ?校核已轉(zhuǎn)換的數(shù)據(jù); ?校核測試計(jì)劃。
⑥仿真實(shí)現(xiàn)校核。仿真實(shí)現(xiàn)校核要解決的問題是確定仿真實(shí)現(xiàn)與仿真運(yùn)行是否符合設(shè)計(jì)要求。主要工作包括: ?檢查是否滿足設(shè)計(jì)要求; ?校核代碼; ?校核軟/硬件的映射; ?校核硬件; ?校核初始數(shù)據(jù); ?校核系統(tǒng)性能。
⑦仿真結(jié)果驗(yàn)證。仿真結(jié)果驗(yàn)證亦稱為運(yùn)行驗(yàn)證,是VV&A工作中最重要的內(nèi)容。它將通過仿真系統(tǒng)測試(包括功能測試、性能測試、互操作測試等)來檢查仿真系統(tǒng)整體工作能力,并與真實(shí)系統(tǒng)(過程)進(jìn)行比較,作出相應(yīng)評估。仿真結(jié)果驗(yàn)證的主要工作包括: ?將測試映射到需求; ?驗(yàn)證必須的行為、表示法、算法及模型; ?驗(yàn)證數(shù)據(jù); ?判定錯(cuò)誤等。
圖8-13 確認(rèn)概念與VV&V的關(guān)系
⑧系統(tǒng)確認(rèn)。確認(rèn)過程是仿真系統(tǒng)VV&A工作過程的重要組成部分,它建立在V&V工作基礎(chǔ)上,兩者關(guān)系如圖8-13所示。仿真系統(tǒng)確認(rèn)過程包括如下工作:?制定確認(rèn)計(jì)劃; ?收集和評估確認(rèn)信息;?進(jìn)行確認(rèn)評估; ?作出確認(rèn)決定。其中前三項(xiàng)任務(wù)由確認(rèn)代理完成,而第四項(xiàng)工作在確認(rèn)代理做出建議的基礎(chǔ)上由用戶完成。
4. 仿真系統(tǒng)VV&A方法
(1)仿真系統(tǒng)校核方法。校核是VV&A的基礎(chǔ),實(shí)質(zhì)是檢驗(yàn)仿真系統(tǒng)開發(fā)者是否正確地實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)要求的過程。對于計(jì)算機(jī)仿真,最常見的是校核程序模型的邏輯和代碼,因此校核方法基本上是將軟件檢驗(yàn)方法修改后用于仿真模型的校核。校核將從仿真模型建立過程中如下的不同環(huán)節(jié)和不同角度進(jìn)行。
①仿真誤差源校核。理論和實(shí)踐證明,系統(tǒng)仿真誤差源主要包括仿真模型誤差、仿真方法誤差、計(jì)算機(jī)計(jì)算誤差和仿真硬件誤差等。
仿真模型實(shí)際上是基于系統(tǒng)數(shù)學(xué)模型的二次簡化模型,二次簡化建模過程中將不可避免地引入各種誤差,同時(shí)建模中受隨機(jī)噪聲干擾、數(shù)據(jù)長度限制和測試與采樣系統(tǒng)精度影響,都會帶來各種計(jì)算誤差。仿真方法和算法誤差來自截?cái)嗾`差、舍入誤差和信號重構(gòu)誤差等方面。硬件誤差對于計(jì)算機(jī)仿真來說主要涉及由于計(jì)算機(jī)字長有限而引起的舍入誤差??傊?,仿真誤差源校核將主要針對上述二次建模誤差、計(jì)算誤差、截?cái)嗾`差、舍入誤差等進(jìn)行。
②仿真程序校核。原則上,軟件工程領(lǐng)域的所有軟件校核方法都可以用于仿真程序(即仿真模型)的校核。表8-1給出了目前仿真模型的各種校核方法。
表8-1 仿真模型校核方法分類
(2)仿真系統(tǒng)驗(yàn)證方法。驗(yàn)證是仿真系統(tǒng)VV&A最重要的內(nèi)容,它總是同預(yù)期應(yīng)用目標(biāo)緊密相連的,將在很大程度上反映仿真系統(tǒng)的功能、性能、行為是否滿足所有提出的可接受性標(biāo)準(zhǔn),是否具有足夠的精度和交互能力,以滿足應(yīng)用目標(biāo)的需求。
驗(yàn)證主要包括如下兩方面: 其一是檢查概念模型是否正確地描述了原型系統(tǒng)(即實(shí)際系統(tǒng)); 二是檢查數(shù)學(xué)模型(或?qū)嵨锬P?輸入/輸出行為是否充分接近原型系統(tǒng)的輸入/輸出行為。目前,用于仿真系統(tǒng)驗(yàn)證的方法很多,可視具體仿真對象和應(yīng)用目標(biāo)而選用,亦可采用它們相結(jié)合的混合方法。表8-2給出了仿真系統(tǒng)的驗(yàn)證方法及分類。下面僅重點(diǎn)討論一般最大熵譜估計(jì)法和新的基于神經(jīng)網(wǎng)絡(luò)的最大熵譜估計(jì)法,供讀者參考使用。
表8-2 仿真系統(tǒng)的驗(yàn)證方法及分類
5. 可信度評估方法
仿真可信度是由仿真系統(tǒng)與原型系統(tǒng)之間的相似性決定的,是仿真系統(tǒng)與仿真應(yīng)用的相適應(yīng)程度,在仿真系統(tǒng)開發(fā)和應(yīng)用中占有舉足輕重的作用。因此,仿真可信度評估方法的研究及應(yīng)用一直是仿真界極為關(guān)注的問題。
仿真可信度評估包括仿真模型和仿真系統(tǒng)的校核、驗(yàn)證和驗(yàn)收,與前述VV&A是兩個(gè)不同的概念。簡單地說,仿真系統(tǒng)的可信度為VV&A提供了目標(biāo),而VV&A是仿真可信度評估的基礎(chǔ)和重要內(nèi)容。
隨著仿真科學(xué)與技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的不斷擴(kuò)大,仿真系統(tǒng)特別是大型復(fù)雜仿真系統(tǒng)的可信度評估越來越重要,其評估方法與日俱增。目前,大型復(fù)雜仿真系統(tǒng)可信度評估方法除常用的層次分析評估法、模糊綜合評判法和模糊層次分析評估法等外,還出現(xiàn)了灰色綜合評估法、相似度辨識評估法、基于逼真度評估法等。
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。