管理信息系統(tǒng)課程設(shè)計報告書_第1頁
管理信息系統(tǒng)課程設(shè)計報告書_第2頁
管理信息系統(tǒng)課程設(shè)計報告書_第3頁
管理信息系統(tǒng)課程設(shè)計報告書_第4頁
管理信息系統(tǒng)課程設(shè)計報告書_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、XXX工學(xué)院課程設(shè)計報告作者:XXX學(xué) 號:XXX學(xué)院:XXXX專業(yè):XXXX課程:管理信息系統(tǒng)模擬指導(dǎo)教師:XXXX2016 年 12 月26 / 241背景知識闡述離散系統(tǒng)模擬是指系統(tǒng)狀態(tài)僅在某些確定的時間點(由系統(tǒng)結(jié)構(gòu)決定)才發(fā)生變化的模擬,其模擬時間呈現(xiàn)離散性變化,系統(tǒng)狀態(tài)在時間點之間不變化。2問題簡介與分析2.1離散系統(tǒng)模擬(1) 單服務(wù)臺排隊系統(tǒng)(M/M/1 )模擬分析與設(shè)計(2) 有顧客損失的多服務(wù)臺排隊系統(tǒng)(M/M/S)模擬分析與設(shè)計2.2連續(xù)系統(tǒng)模擬(1) 捕食者與被捕食者模型模擬分析與設(shè)計(2) 網(wǎng)民數(shù)量擴散模型(BASS莫型)模擬分析與設(shè)計2.3多智能體系統(tǒng)模擬(1) 螢

2、火蟲優(yōu)化系統(tǒng)模擬(2) 蟻群優(yōu)化系統(tǒng)模擬3模擬系統(tǒng)與程序的分析與設(shè)計3.1離散系統(tǒng)3.1.1單服務(wù)臺排隊系統(tǒng)(M/M/1 )模擬分析與設(shè)計已知顧客到達時間和服務(wù)時間的統(tǒng)計規(guī)律(通常來自實際數(shù)據(jù)或一定的概率分布)的情況下,如何仿真該排隊系統(tǒng)。系統(tǒng)假設(shè):(1) 顧客源是無窮的;(2) 排隊長度沒有限制;(3) 到達系統(tǒng)的顧客按先后順序依次進入服務(wù)。已知條件:(1) 顧客到達時間間隔k i服從均值為B i的指數(shù)分布,即:1 眩f"0i(2) 服務(wù)員服務(wù)時間k s服從均值為B s的指數(shù)分布,即:1f (s) e $ s 亠 0s試對該單服務(wù)臺排隊系統(tǒng)進行分析、設(shè)計、模擬,并給出(1) Bi=

3、5min ,Bs=4min;(2) Bi=5min ,Bs=5min;(3) Bi=4min ,Bs=5min;三種情況下的模擬結(jié)果(到達顧客數(shù)、服務(wù)顧客數(shù)、平均等待時間、平均服務(wù) 時間、平均隊長)。%一、系統(tǒng)分析系統(tǒng)狀態(tài):在任意時刻t(1) 排隊等候的顧客數(shù)目L(t);(2) 服務(wù)員工作狀態(tài)S(t)。引起系統(tǒng)狀態(tài)改變的行為稱為事件,在排隊系統(tǒng)中包含兩類基本事件:(1) 顧客到達事件ak;(2) 顧客離去事件dk。模擬時鐘:因為系統(tǒng)狀態(tài)在ak、dk時刻發(fā)生改變,所以在模擬系統(tǒng)運行中,設(shè) 置時鐘t,讓t依事件發(fā)生的先后順序,從一個事件的發(fā)生時刻推進到下一個事 件的發(fā)生時刻。變量設(shè)置:(1) ik

4、 :第k位顧客與第k-1位顧客到達時間間隔;(2) sk :第k位顧客服務(wù)時間;(3) L(t):排隊等待的顧客數(shù)目;(4) S(t):服務(wù)員工作狀態(tài);(5) ak :第k位顧客到達時刻;ak= ak-1+ ik (k=1,2,)(6) dk :第 k 位顧客離去時刻;dk= maxak,dk-1 + sk (k=1,2,) 模擬過程分析:(1) 先根據(jù)時間間隔i和服務(wù)時間s的概率分布生成隨機數(shù)ik、sk ;(2) 再計算顧客到達時刻ak和離開時刻dk; ak= ak-1+ ikdk= maxak, dk-1 + sk k=1,2,(3) 讓時鐘 t 按照到達時刻 ak 和離開時刻 dk 從小

5、到大的順序推進。注意:通常不是先生成i或s待用,而是時鐘t推進到某一事件發(fā)生時,才生成 所需的i 或s。(4) 設(shè)當(dāng)前時鐘為t,在每一個事件發(fā)生時,需要設(shè)置并記錄 4個數(shù)值:L(t) :排隊等待的顧客數(shù)目;S(t) :服務(wù)員工作狀態(tài); 下一個顧客到達事件的發(fā)生時刻: ARRIVETIEM 下一個顧客離開事件的發(fā)生時刻: DEPARTTIME 二、單服務(wù)臺排隊系統(tǒng)模擬源程序: function out = MM1(mu1,mu2,T) % 單服務(wù)臺模擬系統(tǒng)%mu1顧客到達時間間隔服從指數(shù)分布;%mu2服務(wù)時間服從指數(shù)分布;%模擬終止時刻% 初始化t = 0; % 當(dāng)前時間tt = t; %tt-

6、時間序列L =0; %L-隊長LL= L; %LL- 隊長序列S =0; %S-服務(wù)員狀態(tài)c =; %c-顧客到達時間序列b =; %b-服務(wù)開始時間序列e =; %e-顧客離開時間序列a_count = 0; %a_count- 到達顧客數(shù) b_count = 0; %b_count- 服務(wù)顧客數(shù) ARRIVETIME = 0; %顧客到達事件 DEPARTTIME = 0; %顧客離開事件 % 模擬過程while t<=Tif(ARRIVETIME < DEPARTTIME) %顧客到達子過程 t = ARRIVETIME;if (S=0) % 服務(wù)臺空閑,開始服務(wù)S = 1;

7、s = exprnd(mu2); % 生成服務(wù)時間b_count = b_count+1; % 更新服務(wù)顧客數(shù) DEPARTTIME = t + s; % 顧客離開時間 b = b,t; % 記錄顧客開始服務(wù)時間 e = e,DEPARTTIME; % 記錄顧客離開時間 else %若服務(wù)臺忙L = L+1; % 更新隊長endi = exprnd(mu1); % 生成下一顧客到達時間 ARRIVETIME = t+i; % 下一顧客到達時間 c = c,ARRIVETIME; % 記錄顧客到達時間 a_count = a_count+1; % 更新到達顧客數(shù) else % 顧客離開子過程 t

8、 = DEPARTTIME;if (L>0) % 有排隊的顧客L = L-1; % 更新隊長s = exprnd(mu2); % 生成服務(wù)時間 b_count = b_count+1; % 更新服務(wù)顧客數(shù) b = b,t; % 記錄顧客開始服務(wù)時間 DEPARTTIME = t + s; % 顧客離開時間 e = e,DEPARTTIME; % 記錄顧客離開時間 else %若沒有排隊的顧客,更新服務(wù)臺為空閑狀態(tài) S = 0;DEPARTTIME = T;endendtt = tt,t;LL = LL,L;end% 模擬結(jié)果length(e); length(c);Ws = sum(e-

9、c(1:length(e)/length(e); %平均逗留時間Wb = sum(e-b(1:length(e)/length(e); %平均服務(wù)時間Ls = sum(diff(tt,T).*LL)/T; % 平均隊長fprintf('到達顧客數(shù): %dn',a_count) % 到達顧客數(shù)fprintf('服務(wù)顧客數(shù): %dn',b_count) % 服務(wù)顧客數(shù)out = Ws,Wb,Ls;end % 3.1.2有顧客損失的多服務(wù)臺排隊系統(tǒng)(M/M/S)模擬分析與設(shè)計在該排隊系統(tǒng)中,有多個服務(wù)臺s。顧客逐個到達系統(tǒng),已知顧客到達時間 間隔是隨機的,服從指數(shù)分布

10、。顧客在服務(wù)臺的服務(wù)時間也是隨機的,且服從指數(shù)分布。當(dāng)有服務(wù)臺空閑時,顧客接受服務(wù);若排隊顧客數(shù)超過k,則新到達的顧客離去,問如何仿真該排隊系統(tǒng)。系統(tǒng)假設(shè):( 1)顧客源是無窮的;(2) 到達系統(tǒng)的顧客按先后順序依次進入服務(wù)。已知條件:(1)顧客到達時間間隔k i服從均值為B i的指數(shù)分布,即:1 - f("iei _0(2)服務(wù)員服務(wù)時間k s服從均值為B s的指數(shù)分布,即:f(s)=丄 es _0_s試對該多服務(wù)臺排隊系統(tǒng)進行分析、設(shè)計、模擬,并給出(1) s=2, k=5, B i=5min ,B s=4min;(2) s=2, k=4, B i=3min ,B s=5min;

11、(3) s=2, k=6, B i=2min , B s=5min;三種情況下的模擬結(jié)果(到達顧客數(shù)、服務(wù)顧客數(shù)、平均等待時間、平均服務(wù) 時間、平均隊長)%有顧客損失的多服務(wù)臺單服務(wù)臺排隊系統(tǒng)模擬源程序:function out = MMS(s,k,mu1,mu2,T)%多服務(wù)臺排隊系統(tǒng)模擬%s-服務(wù)臺個數(shù)%k-最大顧客等待數(shù)%mu1顧客到達時間間隔服從指數(shù)分布;%mu2服務(wù)時間服從指數(shù)分布;%模擬終止時刻% 初始化arrive_time = expr nd(mu1); %arrive_time-顧客至 U達事件leave_time = ; %leave_time- 顧客離開事件 curre

12、nt_time = 0; %curre nt_time- 當(dāng)前時間L = 0; %L-隊長LL = L; %LL- 隊長序列tt = curre nt_time; %tt-時間序列c = ; %c- 顧客到達時間序列b = ; %b-服務(wù)開始時間序列e = ; %e- 顧客離開時間序列a_cou nt = 0; %a_cou nt- 到達顧客數(shù)b_cou nt = 0; %b_cou nt- 服務(wù)顧客數(shù)e_cou nt = 0; %e_cou nt- 損失顧客數(shù)% 模擬過程while min(arrive_time,leave_time) < Tcurrent_time = min(ar

13、rive_time,leave_time); tt = tt, current_time; %記錄時間序列if current_time = arrive_time %顧客到達子過程arrive_time =arrive_time + exprnd(mu1); %刷新顧客到達事件a_count = a_count + 1; % 累加到達顧客數(shù) if L < s % 有空閑服務(wù)臺 L = L +1; % 更新隊長 b_count = b_count+1; % 累加服務(wù)顧客數(shù) c = c, current_time; % 記錄顧客到達時間序列 b = b, current_time; %記錄

14、服務(wù)開始時間序列l(wèi)eave_time = leave_time, current_time+exprnd(mu2); %產(chǎn)生新的顧客離開事件 leave_time = sort(leave_time); %離開事件表排序elseif L < s+k % 有空閑等待位L = L+1; % 更新隊長 b_count = b_count + 1; % c = c, current_time; % else %顧客損失 e_count = e_count + 1; % end else % 顧客離開子過程累加服務(wù)顧客數(shù) 記錄顧客到達時間序列累加損失顧客數(shù)leave_time(1) = ; % 從

15、事件表中抹去顧客離開事件 e = e, current_time; %記錄顧客離開時間序列if L > s % 有排隊的顧客L = L-1; % 更新隊長b = b, current_time; %記錄服務(wù)開始時間序列l(wèi)eave_time = leave_time, current_time+exprnd(mu2); leave_time = sort(leave_time); % 離開事件表排序 else % 若沒有排隊的顧客L = L-1; % 更新隊長end end模擬結(jié)果LL = LL,L; end % length(e); length(c);Wq = sum(b-c(1:le

16、ngth(b)/length(b); %平均等待時間Wb = sum(e-b(1:length(e)/length(e); %平均服務(wù)時間Ls = sum(diff(tt,T).*LL)/T; % 平均隊長 fprintf(' 到達顧客數(shù): %dn',a_count) % 到達顧客數(shù) fprintf(' 服務(wù)顧客數(shù): %dn',b_count) % 服務(wù)顧客數(shù)fprintf(' 損失顧客數(shù): %dn',e_count) % 損失顧客數(shù)out = Wq,Wb,Ls;end % 3.2 連續(xù)系統(tǒng)模擬連續(xù)系統(tǒng)是指系統(tǒng)的狀態(tài)變量隨時間連續(xù)變化的系統(tǒng),因為

17、系統(tǒng)狀態(tài)按照 一定規(guī)律隨時間連續(xù)地變化,通常用微分方程模型、代數(shù)方程模型、狀態(tài)空間 模型、傳遞函數(shù)模型等來描述,但模擬推算過程仍需要將連續(xù)系統(tǒng)模型轉(zhuǎn)變?yōu)?能在計算機上運行的離散模型。3.2.1 捕食者與被捕食者模型( Volterra 模型)模擬分析與設(shè)計 意大利生物學(xué)家 D'Ancona 曾致力于魚類種群相互制約關(guān)系的研究, 在研究過程中他無意中發(fā)現(xiàn)了第一次世界大戰(zhàn)期間地中海各港口捕獲的幾種魚類占捕 獲總量百分比的資料,從這些資料中他發(fā)現(xiàn)各種食肉魚,如鯊魚等(稱之為捕食者)占總漁獲量的百分比,在19141923年期間,意大利阜姆港收購的捕食者所占的比例有明顯的增加,數(shù)據(jù)見表 1。他知

18、道,捕獲的各種魚的比例基本上 代表了地中海漁場中各種魚類的比例。戰(zhàn)爭中捕獲量大幅度下降,當(dāng)然使?jié)O場 中食用魚(稱之為食餌)增加,以此為生的鯊魚也隨之增加。但是捕獲量的下 降為什么會使鯊魚的比例增加,即對捕食者而不是對食餌有利呢?表1 魚類捕獲量中鯊魚所占百分比年代 1914 1915 1916 1917 1918百分比 11.9 21.4 22.1 21.2 36.4年代 1919 1920 1921 1922 1923百分比 27.3 16.0 15.9 14.8 19.7他無法解釋這個現(xiàn)象,于是求助于著名的意大利數(shù)學(xué)家 V. Volterra ,希望 建立一個食餌捕食者系統(tǒng)的數(shù)學(xué)模型,定量

19、地回答這個問題。基本假設(shè):(1)捕食者的存在使食餌的增長率降低,假設(shè)降低的程度與捕食者數(shù)量成 正比。(2)捕食者由于食餌為它提供食物的作用使其死亡率降低,或使之增長, 假設(shè)這個作用與食餌數(shù)量成正比。試對該捕食者與被捕食者模型( Volterra 模型)進行模擬并分析。、系統(tǒng)分析與建模設(shè)下列變量表示:x1(t)為食餌在t時刻的數(shù)量, r1為食餌獨立生存時的增長率, 入1為捕食者掠取食餌的能力,x2(t)為捕食者在t時刻的數(shù)量; r2為捕食者獨立存在時的死亡率; 入2為食餌對捕食者的供養(yǎng)能力。(1)因為大海中魚類的資源豐富,可以假設(shè)如果食餌獨立生存則食餌將以增長率r1按指數(shù)規(guī)律增長,即有:ar;但

20、捕食者的存在使食餌的增長率 降低,降低的程度與捕食者數(shù)量成正比,于是 x1(t)滿足方程:卅(2)同理,捕食者離開食餌無法生存,設(shè)它獨自存在時死dr 丁亡率r2,即有:由;但食餌為捕食者提供食物的作用使其死亡率降低或增長,設(shè)該作今=形(E十人jtJ用的程度與食餌數(shù)量成正比,于是x2(t)滿足方程:由今二羽(耳一人巧 牛=巧(一乙+心V1)(3) 不考慮人工捕獲的捕食者與被捕食者數(shù)學(xué)模型為:該模型反映了在沒有人工捕獲的自然環(huán)境中,食餌與捕食者之間的制約關(guān)系, 沒有考慮食餌和捕食者自身的阻滯作用。二、系統(tǒng)模擬 設(shè)食餌和捕食者初始數(shù)量分別為:x1(0)=25, x2(0)=2;r1=1,入 1=0.

21、1 ;r2=0.5,入 2=0.02。=Xi (L _ 0. lxi)dt-r二(.0 5 + 0 02)擊-L工1 (0) = 25 以 0) = 2則模型為: 三、系統(tǒng)模擬源程序 建立m文件shier.mfun cti on dx = shier(t,x)dx = zeros(2,1);dx(1) = x(1)*(1-0.1*x (2);dx(2) = x(2)*(-0.5+0.02*x(1);(2)建立主程序文件shark.mx0 = 0; xf = 15;t,x =ode45( shier ' ,x0,xf,25,2);plot (t,x(;,1), b-' ,t,x(

22、:,2),' r* ')%3.2.2網(wǎng)民數(shù)量擴散模型(BASS模型)模擬分析與設(shè)計技術(shù)擴散是指創(chuàng)新在一定時間內(nèi),通過某種渠道,在社會系統(tǒng)成員中進行 傳播的過程。在過去的幾十年中,社會學(xué)家、地理學(xué)家、經(jīng)濟學(xué)家和管理學(xué)家 們對社會系統(tǒng)中的擴散現(xiàn)象,如新聞、謠言和創(chuàng)新傳播等諸多方面進行了深入 研究,并引入微分方程用于這些擴散問題的建模,其中最有影響的是Frank Bass提出的預(yù)測消費品擴散的模型,即Bass模型。在該模型中,假設(shè)新產(chǎn)品的潛在 采用者會受到2種傳播方式的影響:(1)大眾媒體,此類的采用者稱為創(chuàng)新者。(2) 口碑,此類的采用者稱為模仿者?,F(xiàn)以網(wǎng)民數(shù)量擴散為研究對象,用n

23、(t)表示t時刻的網(wǎng)民數(shù)量,M表示總體市場容量,那么潛在網(wǎng)民數(shù)量為Mb n(t) o假定平均每個網(wǎng)民單位時間內(nèi)帶來的新網(wǎng)民數(shù)量與潛在網(wǎng)民數(shù)量呈現(xiàn)線性關(guān)系。 假定潛在網(wǎng)民的轉(zhuǎn)化率與當(dāng)前潛在網(wǎng)民的數(shù)量呈線性關(guān)系。那么網(wǎng)民數(shù)量增加的速率可以用如下方程式表示:試對上述網(wǎng)民數(shù)量擴散問題進行建模,并根據(jù)給定的初始值和模擬模型,按照一定的模擬步長,依次模擬模擬時鐘上的系統(tǒng)狀態(tài)。3.3多智能體系統(tǒng)模擬對于結(jié)構(gòu)簡單系統(tǒng),可用數(shù)學(xué)建模方法來刻畫。對于結(jié)構(gòu)復(fù)雜系統(tǒng),很難 用統(tǒng)一的公式來描述。而簡單的智能體間的交互作用可以產(chǎn)生復(fù)雜的行為,每 一個智能體是對復(fù)雜系統(tǒng)中某個單獨個體的簡單模擬。個體之間存在動態(tài)、自 主的交

24、互行為,通過交互、合作與協(xié)調(diào)機制,多個功能單一的智能體能實現(xiàn)一 系列復(fù)雜現(xiàn)象。對于異構(gòu)、分散的復(fù)雜系統(tǒng),基于多智能體的模擬是最適當(dāng)?shù)?建模方式,其建模元素具有更高的主動性、自治性和智能性。多智能體模擬能實 現(xiàn)更加復(fù)雜、傳統(tǒng)方法無法完成的模擬建模分析,充分利用計算機系統(tǒng)的并行計 算和分布式計算的能力,主要基于2方面進行模擬:(1)對人類的學(xué)習(xí)、合作、協(xié)商等行為進行模擬。(2)對自然、生態(tài)中的演化行為的仿真等。3.3.1螢火蟲優(yōu)化系統(tǒng)模擬自然界中約有2000多種螢火蟲,多數(shù)種類的螢火蟲會發(fā)出短促、有節(jié)奏的 熒光,不同種類的螢火蟲發(fā)光目的不同,其真實原因仍在探討當(dāng)中。一般認(rèn)為, 螢火蟲成蟲發(fā)光的生物

25、學(xué)意義是利用物種特有的閃光信號來定位并吸引異性, 借此完成求偶交配及繁殖的使命;少數(shù)螢火蟲利用閃光信號進行捕食,還有一 種作用是作為警戒信號,即當(dāng)螢火蟲受到刺激時會發(fā)出亮光。螢火蟲優(yōu)化系統(tǒng) 就是模擬自然界中螢火蟲的發(fā)光行為構(gòu)造出的隨機優(yōu)化算法,但在算法中舍棄 了螢火蟲發(fā)光的一些生物學(xué)意義,只利用其發(fā)光特性來根據(jù)其搜索區(qū)域?qū)ふ一?伴,并向鄰域結(jié)構(gòu)內(nèi)位置較優(yōu)的螢火蟲移動,從而實現(xiàn)位置進化。 仿生原理:用搜索空間中的點模擬螢火蟲個體,將搜索和優(yōu)化過程模擬成螢火蟲個體 的吸引和移動過程,將求解問題的目標(biāo)函數(shù)度量成個體所處位置的優(yōu)劣,將個 體的優(yōu)勝劣汰過程類比為搜索和優(yōu)化過程中用好的可行解取代較差可行解

26、的迭 代過程。數(shù)學(xué)模型:(1) 螢火蟲的相對熒光亮度為:=1。r2(2) 螢火蟲的吸引度為:= °(3)螢火蟲i被吸引向螢火蟲j移動的位置更新根據(jù)下式:為(Xj xj 中。算法實現(xiàn)優(yōu)化的過程是:先將螢火蟲群體隨機散布在解空間,每一只螢火 蟲因為所處位置不同發(fā)出的熒光亮度也不同,通過比較(根據(jù)式),亮度高的螢火蟲可以吸引亮度低的螢火蟲向自己移動,移動的距離主要取決于吸引度的大小(根據(jù)式(2),為了加大搜索區(qū)域,避免過早陷入局部最優(yōu),在位置更 新過程中增加了擾動項:(rand -12),根據(jù)式(3)來計算更新后的位置。這樣通過多次移動后,所有個體都將聚集在亮度最高的螢火蟲位置上, 從而實

27、現(xiàn)尋優(yōu)。試對上述螢火蟲優(yōu)化系統(tǒng)進行編程模擬,并對給出的復(fù)雜函數(shù)進行優(yōu)化求解%初始化算法基本參數(shù)clearr; clc; format longD = 2; % D 是待優(yōu)化函數(shù)的維數(shù);numFireflies = 20; %螢火蟲的數(shù)目;MaxT = 300; % 最大迭代次數(shù);alpha = 0.02; % 擾動因子;gamma = 1; %光強吸收系數(shù);update = 0.5; % 螢火蟲更新率lb = -2; %設(shè)置下限ub = 2; % 設(shè)置上限% Step 1: Generating initial locations of n firefliesfor i=1: num Fire

28、fliesfor j=1:Dx(i,j)=lb+rand*(ub-lb); %隨機初始化位置;endendLightIntensity = zeros(1, numFireflies); %存放目標(biāo)函數(shù)值,初始值置為 0result = zeros(1, MaxT); % result矩陣存放每一輪迭代找到的最優(yōu)值,初始值置為0;% Step 2:迭代開始for g=1:MaxTfor i=1: num Fireflies計算目標(biāo)函數(shù)值,存放在Light Inten sity(i) = fitn ess(x(i,:),D); %LightIntensity 矩陣;endresult(g), i

29、ndexBest = min(LightIntensity);y = x; li = LightIntensity;for i=1:numFirefliesfor j=1:i % numFirefliesr = norm(x(i,:) - y(j,:); % 計算距離if (li(j) < LightIntensity(i) % Move firefly i towards j; beta0 = 1; % 螢火蟲的最大吸引度( r=0 處)beta = betaO*exp(-gamma*r42); %螢火蟲的相對吸引度x(i,:) = x(i,:).*(1-beta) + y(j,:).

30、*beta + alpha.*(rand()-0.5); % 螢火蟲i向j移動end end end% 目標(biāo)函數(shù)值最差的update%做隨機變動, sortIndex = sort(LightIntensity);for i=round(1-update)*length(sortIndex):length(sortIndex)x(sortIndex(i), :) = lb+rand(1, D)*(ub-lb); %對這些螢火蟲隨機產(chǎn)生新的位置endend% Output/displaydisp(' 函數(shù)的全局最優(yōu)位置為: '); x_location = (x(indexBes

31、t,:)' disp(' 最后得到的優(yōu)化極值為: '); best = min(result) iter = 1:MaxT;plot(iter,result,'-r','linewidth',1.5); %繪制尋優(yōu)曲線xlabel(' 迭代次數(shù) ','fontsize',9);ylabel(' 適應(yīng)度 ','fontsize',9);legend('FA');% 測試函數(shù)% 測試函數(shù)為: Goldstein & Price Function% The

32、number of variables n = 2. clearr; clc; format longD = 2; % D 是待優(yōu)化函數(shù)的維數(shù); numFireflies = 2O; % 螢火蟲的數(shù)目;MaxT = 3OO; % 最大迭代次數(shù);alpha = O.O2; % 擾動因子; gamma = 1; % 光強吸收系數(shù); update = O.5; % 螢火蟲更新率 lb = -2; % 設(shè)置下限 ub = 2; % 設(shè)置上限% Step 1: Generating initial locations of n firefliesfor i=1:numFirefliesfor j=1:D

33、 x(i,j)=lb+rand*(ub-lb); % 隨機初始化位置 ;endendLightIntensity = zeros(1, numFireflies); %存放目標(biāo)函數(shù)值,初始值置為 0result = zeros(1, MaxT); % result矩陣存放每一輪迭代找到的最優(yōu)值,初始值置為 0;% % Step 2: 迭代開始for g=1:MaxTfor i=1:numFirefliesLightIntensity(i) = fitness(x(i,:),D); % 計算目標(biāo)函數(shù)值,存放在 LightIntensity 矩陣;endresult(g), indexBest =

34、 min(LightIntensity);y = x; li = LightIntensity;for i=1:numFirefliesfor j=1:i % numFirefliesr = norm(x(i,:) - y(j,:); % 計算距離 if (li(j) < LightIntensity(i) % Move firefly i towards j; beta0 = 1; % 螢火蟲的最大吸引度( r=0 處)beta = betaO*exp(-gamma*r42); %螢火蟲的相對吸引度x(i,:) = x(i,:).*(1-beta) + y(j,:).*beta + a

35、lpha.*(rand()-0.5); % 螢火蟲i向j移動endendend% 目標(biāo)函數(shù)值最差的update%做隨機變動, sortIndex = sort(LightIntensity);for i=round(1-update)*length(sortIndex):length(sortIndex)x(sortIndex(i), :) = lb+rand(1, D)*(ub-lb); %對這些螢火蟲隨機產(chǎn)生新的位置endend% Output/displaydisp(' 函數(shù)的全局最優(yōu)位置為: '); x_location = (x(indexBest,:)'di

36、sp(' 最后得到的優(yōu)化極值為: '); best = min(result)iter = 1:MaxT;plot(iter,result,'-r','linewidth',1.5); % 繪制尋優(yōu)曲線 xlabel(' 迭代次數(shù) ','fontsize',9);ylabel(' 適應(yīng)度 ','fontsize',9);legend('FA');% 測試函數(shù)% 測試函數(shù)為: Goldstein & Price Function% The number of v

37、ariables n = 2.% Number of local minima: several local minima.% Search domain: -2 < xi < 2, i = 1,2.% The global minimum: x* = (0,-1), f(x*) = 3.function result = fitness(x,D)a =1+(x(1)+x (2)+1F2*(19-14*x(1)+3*x(1F2-14*x (2)+6*x(1)*x (2)+3*x (2) A2);b = 30+(2*x(1)-3*x(2)A2*(18-32*x(1)+12*x(1)A

38、2+48*x(2)-36*x(1)*x(2)+27*x(2)A2);result = a*b;% Number of local minima: several local minima.% Search domain: -2 < xi < 2, i = 1,2.% The global minimum: x* = (0,-1), f(x*) = 3.function result = fitness(x,D)a = 1+(x(1)+x(2)+1)A2*(19-14*x(1)+3*x(1)A2-14*x(2)+6*x(1)*x(2)+3*x(2)A2);b = 30+(2*x(1)

39、-3*x(2)A2*(18-32*x(1)+12*x(1)A2+48*x(2)-36*x(1)*x(2)+27*x(2)A2);result = a*b;% 3.3.2 粒子群(鳥群)優(yōu)化系統(tǒng)模擬粒子群優(yōu)化系統(tǒng)是由美國的JamesKenney和Russell Eberhart等在對鳥類 群集活動時所形成的協(xié)同智能進行總結(jié)而提出來的一種進化算法, 是一種基于群 體智能理論的全局優(yōu)化方法,通過群體中粒子間的合作與競爭產(chǎn)生的群體智能 來指導(dǎo)優(yōu)化搜索。 該算法將優(yōu)化問題的解 (即個體)看成空間中不斷飛行的, 沒有 質(zhì)量和體積的一群微粒,每個粒子所處的位置表示一個解向量。作為智能體它 能記住自身搜索到的

40、最優(yōu)解 (即個體極值) ,并獲取全體粒子群所經(jīng)歷過的最優(yōu) 解(即種群全局極值),由此指導(dǎo)其移動,通過逐步迭代尋得最優(yōu)解。粒子在每次迭代找到上述兩個極值后,對其速度和位置分別按照式(2-1 )、(2-2 )進行更新:Vid(t 1) =w Vid(t) G r (Pbd -&)C22 (Pgd Xd(t)Xd(t 1)二滄 w(t 1)其中,Xid(t+1)、Xid (t)、Vd(t+1)、Vid (t)分別表示第i個粒子在t+1和t時刻的空間位移與運動速度;下標(biāo)d是微粒的維度;w為慣性因子;G、C2分別 表示粒子個體和群體的加速權(quán)重系數(shù);*、$分別表示與粒子個體及群體的加速 權(quán)重系數(shù)相

41、關(guān)的隨機初值;Pbd與Pgd分別表示第i個粒子在搜索過程中的最佳 位置和粒子群體在搜索過程中的最佳位置。試對上述粒子群(鳥群)優(yōu)化系統(tǒng)進行編程模擬,并對給出的復(fù)雜函數(shù)進行優(yōu)化求解。%-初始化 clear all; clc; formatc仁1.4962; %學(xué)習(xí)因子1c2=1.4962; %學(xué)習(xí)因子2wmax=1.0; %初始慣性權(quán)重wmi n=0.4; %最終慣性權(quán)重MaxDT=300; %ft大迭代次數(shù)D=5; %搜索空間維數(shù)(未知數(shù)個數(shù))N=50; %初始化群體數(shù)目lb=-10; %設(shè)置下限ub=10; %設(shè)置上限%-初始化種群的個體(在這里限定位置和速度的范圍)for i=1:Nfor

42、 j=1:Dx(i,j)=lb+ra nd*(ub-lb); %隨機初始化位置v(i,j)=ra ndn; % 隨機初始化速度endend%-計算各個粒子的適應(yīng)度,初始化Pi和Pgfor i=1:Np(i)=fitness(x(i,:),D); %這里的p(i)是第一次隨機產(chǎn)生的粒子的位置值。 y(i,:)=x(i,:);endpg=x(1,:); %Pg 為全局最優(yōu)位置,先假定某個粒子位于全局最優(yōu)位置 for i=2:Nif fitness(x(i,:),D)<fitness(pg,D)pg=x(i,:);endend% 進入主循環(huán),按照公式依次迭代,直到滿足精度要求for t=1:M

43、axDT w=wmax-(wmax-wmin)/MaxDT)*t; % 慣性權(quán)重為隨時間線性減少的函數(shù) for i=1:Nv(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:);for j=1:D if x(i,j)<lb x(i,j)=lb;end if x(i,j)>ub x(i,j)=ub;endendif fitness(x(i,:),D)<p(i) p(i)=fitness(x(i,:),D); y(i,:)=x(i,:);endif p(i)<fitnes

44、s(pg,D) pg=y(i,:);endend Pbest(t)=fitness(pg,D);end% 計算結(jié)果disp(' 函數(shù)的全局最優(yōu)位置為: ') Solution=pg'disp(' 最后得到的優(yōu)化極值為: ') Result=fitness(pg,D) iter = 1: MaxDT;plot(iter, Pbest,'b','linewidth',1.5); % 繪制尋優(yōu)曲線 xlabel(' 迭代次數(shù) ','fontsize',9);ylabel(' 適應(yīng)度 

45、9;,'fontsize',9); legend('FA');% 測試函數(shù)%測試函數(shù)為:y=xM2+x2A2+xnA2,這里n取決于Dbfunction result=fitness(x,D)sum=0;for i=1:Dsum=sum+x(i)A2;endresult=sum;%333蟻群優(yōu)化系統(tǒng)模擬蟻群優(yōu)化系統(tǒng)是一種源于大自然中生物世界的仿生類算法,作為通用型隨 機優(yōu)化方法,它吸收了昆蟲王國中螞蟻的行為特性,通過其內(nèi)在的搜索機制, 在一系列困難的組合優(yōu)化問題求解中取得了成效。由于模擬仿真中使用的是人 工螞蟻概念,因此有時亦被稱為人工螞蟻系統(tǒng)。據(jù)昆蟲學(xué)家的觀察

46、和研究,發(fā)現(xiàn)生物世界中的螞蟻有能力在沒有任何可見 提示下找出從其巢穴至食物源的最短路徑,并且能隨環(huán)境的變化而變化,適應(yīng) 性地搜索新的路線,產(chǎn)生新的選擇。作為昆蟲的螞蟻在尋找食物源時,能在其 走過的路徑上釋放一種螞蟻特有的分泌物-信息素(Pheromone),使得一定范 圍內(nèi)的其它螞蟻能夠察覺到并由此影響它們以后的行為。當(dāng)一些路徑上通過的螞 蟻越來越多時,其留下的信息素軌跡也越來越多,以致信息素強度增大(當(dāng)然,隨時間的推移會逐漸揮發(fā)減弱),后來螞蟻選擇該路徑的概率也越高,從而更增 加了該路徑的信息素強度,這種選擇過程被稱之為螞蟻的自催化行為。由于其 原理是一種正反饋機制,因此,也可將螞蟻優(yōu)化系統(tǒng)

47、理解成所謂的增強型學(xué)習(xí) 系統(tǒng)。數(shù)學(xué)模型:(1)螞蟻k的相鄰結(jié)點的轉(zhuǎn)移概率為:Pj 二ij ij Vj2 5 “mi%2| u Fallowedki oif j allowedkotherwise(2)信息素強度的更新按照下式進行:Q若(i, j)在最優(yōu)路徑上j舟 ijQ 其它試對上述蟻群優(yōu)化系統(tǒng)進行編程模擬,并對給出的復(fù)雜函數(shù)進行優(yōu)化求解 例:蟻群優(yōu)化算法解決TSP問題的數(shù)學(xué)建模(1)基本參數(shù)設(shè)定及計算d,設(shè)螞蟻的數(shù)量為m景點的數(shù)量為N,景點i與景點j之間的距離為,T (t)t時刻景點i與景點j之間的信息素濃度為°,開始的時候,每個景點連接的路徑上信息素為零,那么則可以設(shè)uU。那么就

48、可以讓螞蟻k(k=1,2,.,m) 根據(jù)每個景點 的信息素濃度來選擇是不是應(yīng)該訪問下一個景點, 設(shè)氏"七)表示t時刻,螞蟻k從景點i到景點j的概率,其計算公式為如下:苴屮;邛(為啟發(fā)式函數(shù),,表示螞蟻從景點i轉(zhuǎn)移到景工山尸佛尸A.0-s 電 allow點j的期望程 序;allowk(k=1,2,m)表示螞蟻沒有訪問過的景點個數(shù),剛開 始的時候allowk為n-1個景點,隨著訪問的繼續(xù),那么,allowk的數(shù)值會越來越小,最后變成0介 衰小為當(dāng)見盍的幣.変用卩;因子.乂口殛丿二轉(zhuǎn)移屮胞的作 冃越人;為啟發(fā)函數(shù)的重耍觀度因子其值越人,表示卅發(fā)函數(shù)在轉(zhuǎn)移屮的作用越大,即螞蟻以較大的概率轉(zhuǎn)移

49、到距離短的景點。 隨著螞蟻的運動,其釋放的 信見素會越來越.小歧勢數(shù)(0<<1)表示信息素的揮發(fā)度,當(dāng)螞蟻完成一個循環(huán)的時候,買個景點之間的信息素濃度,然后更新信息素。工北(t十1)二(p)匸j (t)亠&弋訂,ZVt孑其中:門表示螞蟻k在景點i與景點j的連接路徑上,釋放的信息素濃度。At®表示所有螞蟻在景點i與景點j的連接路徑上,釋放的信息素濃度。第上只螞蚊從城市1訪問城市j其他其中:Q為常數(shù),表示螞蟻循環(huán)一次釋放的信息素的總量D為第k只螞蟻經(jīng)過路徑的長度,Length(2)程序:Matlab 2007(3)程序框圖:.-I1.(4)程序難點分析:在本次設(shè)計的過

50、程中,程序的調(diào)試過程有很多的難點,下面是出現(xiàn)的一些特 殊字符和一些比較難理解的函數(shù)。(1)特殊字符:Alpha=1alpha定義:信息素重要程度因子m=31m定義:m代表的就是螞蟻的數(shù)量Beta=5beta定義:其反函數(shù)重要程度因子Q=1QEta=1./DEtaTau=ones(n, n)Tauable=zeros (m,n)TableRho=0.1rhoiter=1 iter iter_max=200 iter_max定義:信息素?fù)]發(fā)因子定義:常系數(shù)定義:啟發(fā)因子定義:信息素矩陣 T定義:路徑記錄表 定義:迭代次數(shù)初值 定義:最大迭代次數(shù)定義:各代最佳路徑Length_best=zeros(

51、iter_max,1)Length_best 定義:各代最佳路徑長度Route_best=zeros(iter_max,n) Route_bestLength_ava=zeros(iter_max,1) Length_ava 定義:個帶路徑的平均長度 程序中出現(xiàn)的特殊函數(shù) num2strnum2str :這個字符串就是一個函數(shù),它的功能就是將數(shù)值轉(zhuǎn)換成字符的 形式,然后通過 fprintf 或 disp 函數(shù)將這些數(shù)值顯示出來, 通常在 matlab 中輸 入“help num2str”就會顯示出它的函數(shù)作用和定義。通常情況下,num2str在 matlab 中的時候,該字符串的前后都要加上空格鍵然后才能進行調(diào)試,不然會 出現(xiàn)調(diào)試錯誤。4 模擬結(jié)果分析4.1單服務(wù)臺排隊系統(tǒng)(M/M/1 )模擬分析與設(shè)計通過報告, 可以獲得該排隊系統(tǒng)此次仿真的平均隊長、 最大隊長、 最小隊長 和平均隊長以及平均每位顧客的等待時間、平均服務(wù)時間等信息。通過數(shù)據(jù)報告發(fā)現(xiàn), 不同顧客的服務(wù)時間和顧客的到達特性, 對應(yīng)的仿真結(jié) 果有所不同。顧客的到達特性以及顧客的服務(wù)時間都影響著排隊系統(tǒng)的最大隊長、 最小隊長和平均隊長以及平均每位顧客的等待時間。4.2有顧客損失的多服務(wù)臺排

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論