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