離散事件模擬

2021-07-22 05:17:39 字數 485 閱讀 1643

被模擬系統的行為:

適用於這種模擬的系統,其行為特徵是:

模擬中的事件經常需要排隊,佇列結構適用於記錄事件

很多情況下還涉及到時間或其他排序因素,優先佇列結構可能提供所需要的功能;

做這種模擬,其中的基本想法就是按事件發生的時間順序處理;

在模擬系統裡用乙個優先佇列儲存已知在將來某些特定時刻(時刻也不太能確定,也可能依賴其他事件的執行)發生的事件;

系統的執行就是不斷從優先佇列裡取出等待事件,乙個個處理,直至整個模擬結束;

事件的具體處理(執行)由具體的模擬問題確定。在一些事件(觸發事件)的處理中可能引發另乙個或一些新的(將在以後的某個時刻發生的)事件,這些事件應該放入優先佇列,在它們應該發生的時刻執行(也即被系統處理)。在模擬過程進行中,系統中始終維護著乙個當前時間,也就是當時正在發生的那個事件的時間。

離散事件模擬 銀行排隊

某銀行有四個視窗接待客戶,每個視窗在某個時刻只能接待乙個客戶,人數多時則需要進行排隊,剛進來的客戶,視窗無人則進行業務辦理,有人則排隊,排在人數最少的隊伍後面。問題 計算在銀行關閉之前,計算客戶在銀行逗留的平均時間 用c寫的,給書上 的實現了下,如下 include include include ...

離散事件模擬 銀行排隊

假設不存在插隊的情況,並且人人都會選擇排到人數最少的那乙個視窗排隊。假設人們陸續到達銀行,不會同時到達銀行。如下 include include include define max size 10000 佇列的初始化長度 define end time 10000 銀行關門時間 using nam...

離散事件模擬 銀行排隊時間模擬

在資料結構中有個講述如何模擬銀行排隊,最終算出每個人平均的逗留時間。這是需要資料結構的知識。將銀行的每個視窗看成是乙個佇列,那麼對於每次來乙個人,都需要從最短的佇列進行排隊。其實更優秀的做法是從最短的等待時間佇列來排隊 這裡的做法是這樣的,首選在乙個佇列中插入乙個人,整個事件是事件驅動的,每次去檢查...