摘要:本文借助蒙特卡洛方法進行了關(guān)于公共設(shè)施排隊問題的模擬實驗,在實驗中精確展示不同使用條件下的設(shè)施承載能力,對公共設(shè)施的使用情況進行了詳細分析,為公共設(shè)施的規(guī)劃設(shè)計提供了可參考的預(yù)研方案。
關(guān)鍵詞:蒙特卡洛方法;公共設(shè)施;排隊問題
一、背景介紹
蒙特卡洛方法,也稱統(tǒng)計模擬方法,是二十世紀四十年代中期由于科學(xué)技術(shù)的發(fā)展和電子計算機的發(fā)明,而被提出的一種以概率統(tǒng)計理論為指導(dǎo)的一類非常重要的數(shù)值計算方法。
可以歸納為:所謂蒙特卡羅模擬即使用隨機數(shù)(或更常見的偽隨機數(shù))來解決很多計算問題的方法。
以求圓的面積為例,簡述蒙特卡洛方法的工作流程。如何在不使用圓的面積公式的條件下,求出圓的面積?利用蒙特卡羅模擬的指導(dǎo)思想,可以先在圖示的正方形范圍內(nèi)隨機生成大量的點,那么圓形面積/正方形面積 = 圓形區(qū)域內(nèi)部的點數(shù)/正方形區(qū)域內(nèi)部的總點數(shù)。
這個主要用到了numpy模塊中的np.random.uniform()函數(shù)來生成均勻分布的隨機數(shù)。生成結(jié)束之后,解題思路如下:
1.numpy模塊中的np.random.uniform()函數(shù)來生成均勻分布的隨機數(shù)對(一對數(shù)代表一個點的坐標),要求生成的隨機數(shù)坐標范圍在正方形范圍內(nèi);
2.計算生成的點到原點的距離,如果距離小于或等于圓的半徑,則歸入圓內(nèi)點;
3.統(tǒng)計圓內(nèi)點的總數(shù)和生成的點的總數(shù),即可根據(jù)前面的公式計算出圓的近似面積。
二、排隊問題分析
在公共場合常會遇到排隊問題,排隊購物、排隊上廁所之類,對于公共設(shè)施的規(guī)劃人員來說,公共設(shè)施的排隊時間是一個需要特別注意的問題,下面將以電影院廁所排隊為例,進行公共設(shè)施承載能力的模擬。
假設(shè):
1. 兩場電影結(jié)束時間相隔較長,互不影響;
2. 每場電影結(jié)束之后會有20個人想上廁所;
3. 這20個人會在0到10分鐘之內(nèi)全部到達廁所;
4. 每個人上廁所時間在1-3分鐘之間(時間可以根據(jù)實際情況調(diào)整)。
首先模擬最簡單的情況,也就是廁所只有一個位置,不考慮兩人共用的情況則每人必須等上一人使用完畢方可進行。
三、實現(xiàn)過程
代碼也十分簡單,首先要隨機生成到達時間(到達時間需要進行一下排序,方可確定排隊的先后順序)和上廁所耗時:
四、結(jié)論
從模擬實驗的結(jié)果可以看到,這種方法可以方便地展示不同情形下的公共設(shè)施使用情況,為設(shè)施規(guī)劃提供有力的參考。
作者簡介:
郭卡,1990.05 女 漢族 安徽合肥人,安徽外國語學(xué)院,信息技術(shù)與教學(xué)研究部專職教師,研究方向:數(shù)據(jù)挖掘與分析。