多服務(wù)臺排隊(duì)系統(tǒng)的仿真_第1頁
多服務(wù)臺排隊(duì)系統(tǒng)的仿真_第2頁
多服務(wù)臺排隊(duì)系統(tǒng)的仿真_第3頁
多服務(wù)臺排隊(duì)系統(tǒng)的仿真_第4頁
多服務(wù)臺排隊(duì)系統(tǒng)的仿真_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn) 3- 多服務(wù)臺排隊(duì)系統(tǒng)的仿真姓名: 學(xué)號:一、目標(biāo)任務(wù)已知一個(gè)系統(tǒng)有 N 個(gè)服務(wù)員,能力相等,服務(wù)時(shí)間服從指數(shù)分布。顧客的到達(dá) 時(shí)間間隔服從指數(shù)分布。用 Monte-Carlo 仿真,分別求按下列方案的總體平均排隊(duì) 時(shí)間: M|M|N 。 N 個(gè)單通道系統(tǒng)并列,按 1/N 概率分裂到達(dá)流。 N 個(gè)單通道并列,挑選最短的隊(duì)。要求: 給出程序設(shè)計(jì)的過程。 如果采用固定的N,則要求N2。 至少取p二和p二兩種強(qiáng)度運(yùn)行程序。 對結(jié)果進(jìn)行分析。二、編程語言Matlab三、關(guān)鍵代碼N = 3; % 服務(wù)員人數(shù) r = 6; % 顧客到達(dá)流強(qiáng)度 u = 20; % 服務(wù)員服務(wù)強(qiáng)度按 1.N 的順序循環(huán)

2、排入服務(wù)T = 1000000; % 仿真運(yùn)行時(shí)間avg_wait_time= ; %平均等待時(shí)間for i=1:100% 模擬排隊(duì)函數(shù)server_time= , , ; %用來保存服務(wù)員下一空閑時(shí)間time = 0;%絕對時(shí)鐘,初始為 0client_num =0; %顧客總數(shù),初始為 0CRTime = 0;%顧客到達(dá)時(shí)間間隔ServeTime =0; %顧客服務(wù)時(shí)間server_id = 0; %當(dāng)前進(jìn)入排隊(duì)窗口的服務(wù)員編號total_wait_time = 0;%系統(tǒng)中到達(dá)顧客的總等待時(shí)間while 1CRTime =exprnd(1/r); %按指數(shù)分布產(chǎn)生顧客到達(dá)時(shí)間間隔time

3、 = time+ CRTime; %更新系統(tǒng)的絕對時(shí)鐘if time Tbreak;endclient_num= client_num + 1; %顧客數(shù)加 1ServeTime= exprnd(1/u); %按指數(shù)分布產(chǎn)生顧客服務(wù)間隔server_id = mod(client_num, N); %員窗口if server_id =0 server_id = N;endif server_time(1, server_id) = time % 如果當(dāng)前 server_id 號 服務(wù)員空閑,則直接接收服務(wù)server_time(1, server_id) = time + ServeTime;

4、 % 服務(wù)員下 一空閑時(shí)間為當(dāng)前絕對時(shí)鐘加上當(dāng)前服務(wù)時(shí)間else % 否則所有服務(wù)員都在忙碌,顧客要排隊(duì)等候total_wait_time = total_wait_time + server_time(1, server_id) - time; % 顧客排隊(duì)等候時(shí)間為當(dāng)前服務(wù)員下一空閑時(shí)間減去絕對時(shí) 鐘server_time(1, server_id) = server_time(1, server_id) + ServeTime;endendavg_wait_time = avg_wait_time, total_wait_time/client_num;end% 計(jì)算平均等待時(shí)間 mea

5、n_avg_wait_time = mean(avg_wait_time);fprintf( p 二平均等待時(shí)間%n, r/u, mean_avg_wait_time); %打印平均等待時(shí)間% 繪制每次仿真的平均等待時(shí)間和總體平均等待時(shí)間線狀圖x = 1:100;%plot(x, avg_wait_time, x, mean_avg_wait_time); scatter(x, avg_wait_time, .);方案二:N = 3; %服務(wù)員人數(shù)r = 6; %顧客到達(dá)流強(qiáng)度u = 20; %服務(wù)員服務(wù)強(qiáng)度avg_wait_time= ; %平均等待時(shí)間for i=1:100% 模擬排隊(duì)函數(shù)

6、server_time= , , ; %用來保存服務(wù)員下一空閑時(shí)間time = 0;%絕對時(shí)鐘,初始為 0client_num =0; %顧客總數(shù),初始為 0CRTime = 0;%顧客到達(dá)時(shí)間間隔ServeTime =0; %顧客服務(wù)時(shí)間server_id = 0; %當(dāng)前進(jìn)入排隊(duì)窗口的服務(wù)員編號total_wait_time = 0;%系統(tǒng)中到達(dá)顧客的總等待時(shí)間while 1T = 1000; % 仿真運(yùn)行時(shí)間CRTime = exprnd(1/r);%按指數(shù)分布產(chǎn)生顧客到達(dá)時(shí)間間隔time = time + CRTime;更新系統(tǒng)的絕對時(shí)鐘endclient_num = client_n

7、um + 1; %ServeTime = exprnd(1/u); % server_id = randi(1 N); % if server_time(1, server_id) = time %顧客數(shù)加 1 按指數(shù)分布產(chǎn)生顧客服務(wù)時(shí)間間隔 按 1/N 的概率排入服務(wù)員窗口如果當(dāng)前 server_id 號服務(wù)員下服務(wù)員空閑,則直接接收服務(wù)server_time(1, server_id) = time + ServeTime; %一空閑時(shí)間為當(dāng)前絕對時(shí)鐘加上當(dāng)前服務(wù)時(shí)間else %否則所有服務(wù)員都在忙碌,顧客要排隊(duì)等候total_wait_time = total_wait_time + s

8、erver_time(1, server_id) - time; %顧客排隊(duì)等候時(shí)間為當(dāng)前服務(wù)員下一空閑時(shí)間減去絕對時(shí)鐘server_time(1, server_id) = server_time(1, server_id) +ServeTime;endendavg_wait_time = avg_wait_time, total_wait_time/client_num; end% 計(jì)算平均等待時(shí)間 mean_avg_wait_time = mean(avg_wait_time);打印平均fprintf( p 二平均等待時(shí)間%n, r/u, mean_avg_wait_time); %等待

9、時(shí)間% 繪制每次仿真的平均等待時(shí)間散點(diǎn)圖x = 1:100;scatter(x, avg_wait_time, .); 丿 2 方案三:N = 3; %服務(wù)員人數(shù)r = 6; %顧客到達(dá)流強(qiáng)度u = 20; %服務(wù)員服務(wù)強(qiáng)度avg_wait_time= ; %平均等待時(shí)間for i=1:100% 模擬排隊(duì)函數(shù)server_time= , , ; %用來保存服務(wù)員下一空閑時(shí)間time = 0;%絕對時(shí)鐘,初始為 0client_num =0; %顧客總數(shù),初始為 0CRTime = 0;%顧客到達(dá)時(shí)間間隔ServeTime =0; %顧客服務(wù)時(shí)間server_id = 0; %當(dāng)前進(jìn)入排隊(duì)窗口的

10、服務(wù)員編號total_wait_time = 0;%系統(tǒng)中到達(dá)顧客的總等待時(shí)間while 1T = 1000; % 仿真運(yùn)行時(shí)間CRTime = exprnd(1/r);%按指數(shù)分布產(chǎn)生顧客到達(dá)時(shí)間間隔time = time + CRTime;更新系統(tǒng)的絕對時(shí)鐘endclient_num = client_num + 1; %ServeTime = exprnd(1/u); % temp = min(server_time); %顧客數(shù)加 1按指數(shù)分布產(chǎn)生顧客服務(wù)時(shí)間間隔尋找排隊(duì)時(shí)間最短的服務(wù)員窗口x, y = find(temp = min(min(server_time);server_i

11、d = y; %按隊(duì)伍最短排入服務(wù)員窗口if server_time(1, server_id) T , 輸出 total_wait_time/client_num ;4. Client_num +;5. 按照指數(shù)分布產(chǎn)生顧客到達(dá)時(shí)間間隔 ServeTime;6. 按服務(wù)員的順序生成當(dāng)前服務(wù)員的 server_id ;7. 如果當(dāng)前 server_id 號服務(wù)員空閑, 則更新服務(wù)員下一空閑時(shí)間為當(dāng)前絕 對時(shí)鐘加上當(dāng)前服務(wù)時(shí)間并存入 server_time 對應(yīng)數(shù)組。 否則所有服務(wù)員都 在忙碌, 顧客要排隊(duì)等候, 總的排隊(duì)時(shí)間加上顧客排隊(duì)等候時(shí)間, 等候時(shí)間 為當(dāng)前服務(wù)員下一空閑時(shí)間減去絕對時(shí)鐘

12、。 再更新當(dāng)前服務(wù)員下一空閑時(shí)間加 上服務(wù)時(shí)間 ServeTime 。8. 轉(zhuǎn)到 3;二:圖 3 方案二 仿真的平均等待時(shí)間散點(diǎn)圖圖 4 方案二平均等待時(shí)間N 個(gè)單通道系統(tǒng)并列, 按 1/N 概率分裂到達(dá)流1. 輸入?yún)?shù): 服務(wù)員人數(shù) N, 顧客到達(dá)流強(qiáng)度 r , 服務(wù)員服務(wù)強(qiáng)度 u, 仿真 運(yùn)行時(shí)間 T;2. 各變量初始值置 0: 絕對時(shí)鐘 time , 服務(wù)員下一空閑時(shí)刻數(shù)組 server_time ( 其中按順序保存每一個(gè)服務(wù)員的下一空閑時(shí)刻) , 顧客總 數(shù) client_num , 顧客到達(dá)時(shí)間間隔 CRTime, 顧客服務(wù)時(shí)間 ServeTime , 當(dāng)前 進(jìn)入排隊(duì) 窗口的服務(wù)員編

13、 號 server_id , 系統(tǒng)中顧 客總等待時(shí)間 total_wait_time ;3. 按照指數(shù)分布產(chǎn)生下一顧客到達(dá)的時(shí)間間隔CRTime, time+=CRTime 。 若timeT , 輸出 total_wait_time/client_num;4. Client_num +5. 按照指數(shù)分布產(chǎn)生顧客到達(dá)時(shí)間間隔 ServeTime ;6. 按 1/N 概率生成當(dāng)前服務(wù)員的 server_id ;7. 如果當(dāng)前 server_id 號服務(wù)員空閑, 則更新服務(wù)員下一空閑時(shí)間為當(dāng)前絕 對時(shí)鐘加上當(dāng)前服務(wù)時(shí)間并存入 server_time 對應(yīng)數(shù)組。 否則所有服務(wù)員都 在忙碌, 顧客要排隊(duì)

14、等候, 總的排隊(duì)時(shí)間加上顧客排隊(duì)等候時(shí)間, 等候時(shí)間 為當(dāng)前服務(wù)員下一空閑時(shí)間減去絕對時(shí)鐘。 再更新當(dāng)前服務(wù)員下一空閑時(shí)間加 上服務(wù)時(shí)間 ServeTime 。8. 轉(zhuǎn)到 3; 丿 2 方案三:圖 4 方案三 仿真的平均等待時(shí)間散點(diǎn)圖圖 5 方案三 仿真的平均等待時(shí)間散點(diǎn)圖N 個(gè)單通道并列, 挑選最短的隊(duì)1. 輸入?yún)?shù): 服務(wù)員人數(shù) N, 顧客到達(dá)流強(qiáng)度 r , 服務(wù)員服務(wù)強(qiáng)度 u, 仿真運(yùn) 行時(shí)間 T;2. 各變量初始值置 0: 絕對時(shí)鐘 time , 服務(wù)員下一空閑時(shí)刻數(shù)組 server_time ( 其中按順序保存每一個(gè)服務(wù)員的下一空閑時(shí)刻) , 顧客總數(shù) client_num , 顧 客到達(dá)時(shí)間間隔 CRTime, 顧客服務(wù)時(shí)間 ServeTime , 當(dāng)前進(jìn)入排隊(duì)窗口的服務(wù)員 編號 server_id , 系統(tǒng)中顧客總等待時(shí)間 total_wait_time ;3. 按照指數(shù)分布產(chǎn)生下一顧客到達(dá)的時(shí)間間隔CRTime, time+=CRTime 。 若timeT , 輸出 total_wait_time/client_num4. Client_num +5. 按照指數(shù)分布產(chǎn)生顧客到達(dá)時(shí)間間隔 ServeTime ;6.

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論