蔡永勇++呂超賢++許燕++徐永紅
摘要:由于現(xiàn)代項(xiàng)目的大型化和項(xiàng)目復(fù)雜性的不斷增加,如何對項(xiàng)目的進(jìn)度進(jìn)行正確的預(yù)測和合理的規(guī)劃已經(jīng)受到越來越多的關(guān)注,傳統(tǒng)的CPM/PERT方法已經(jīng)難以滿足人們的需要。本文對現(xiàn)有的進(jìn)度評估技術(shù)進(jìn)行了改進(jìn),加入了對四種任務(wù)邏輯關(guān)系的支持,并給出了資源沖突時(shí)的解決策略,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)面向復(fù)雜項(xiàng)目的進(jìn)度風(fēng)險(xiǎn)評估方法,不僅支持多種隨機(jī)變量的抽樣,還能夠給出工期優(yōu)化策略,旨在幫助項(xiàng)目決策者根據(jù)仿真結(jié)果識別關(guān)鍵任務(wù),以此來制定合理的工期計(jì)劃。
關(guān)鍵詞:進(jìn)度風(fēng)險(xiǎn)評估;Monte Carlo網(wǎng)絡(luò);成本風(fēng)險(xiǎn)
中圖分類號:TP391. 41
文獻(xiàn)標(biāo)識碼:A
DOI: 10.3969/j.issn.1003-6970.2015.07.013
0 引言
根據(jù)現(xiàn)在美國項(xiàng)目管理協(xié)會的劃分,風(fēng)險(xiǎn)管理過程分為規(guī)劃風(fēng)險(xiǎn)管理、風(fēng)險(xiǎn)識別、實(shí)施定性風(fēng)險(xiǎn)分析、實(shí)施定量風(fēng)險(xiǎn)分析、規(guī)劃風(fēng)險(xiǎn)應(yīng)對、監(jiān)控風(fēng)險(xiǎn)6個(gè)部分。而風(fēng)險(xiǎn)類型又主要有費(fèi)用風(fēng)險(xiǎn)、進(jìn)度風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)、計(jì)劃風(fēng)險(xiǎn)等等。而項(xiàng)目在實(shí)際運(yùn)作中,會受到諸多因素的影響。項(xiàng)目在施工過程中,人們往往將項(xiàng)目的進(jìn)度作為最重要的控制目標(biāo),尤其是在大型工程項(xiàng)目的建設(shè)上,項(xiàng)目進(jìn)度常被當(dāng)做首要控制目標(biāo)。
“Monte Carlo”一詞源于摩納哥的Monte Carlo賭場,賭場中“輪盤賭”之類的游戲與概率、隨機(jī)抽樣等有著類似的原理。Monte Carlo網(wǎng)絡(luò)法亦稱為隨機(jī)抽樣法,該法是實(shí)驗(yàn)數(shù)學(xué)的一個(gè)分支,是利用隨機(jī)數(shù)進(jìn)行統(tǒng)計(jì)實(shí)驗(yàn)來解算數(shù)學(xué)問題的方法。Monte Carlo網(wǎng)絡(luò)的本質(zhì)是對隨機(jī)變量進(jìn)行概率分布估計(jì),具體的做法是用隨機(jī)抽樣來抽取符合特定分布的偽隨機(jī)數(shù),采用某種特定方法產(chǎn)生隨機(jī)數(shù)和隨機(jī)變量,仿真隨機(jī)事件,對結(jié)果進(jìn)行統(tǒng)計(jì)處理,從而得到問題的解。
Monte Carlo網(wǎng)絡(luò)方法根據(jù)事物運(yùn)動過程的數(shù)量和幾何特征,在確定的分布中提取隨機(jī)變量,進(jìn)行多次抽樣。在具體的實(shí)驗(yàn)中,模擬次數(shù)越多,Monte Carlo網(wǎng)絡(luò)的精度也越高。
Monte Carlo網(wǎng)絡(luò)的基本步驟是:(1)通過敏感性分析,確定風(fēng)險(xiǎn)變量。(2)構(gòu)造風(fēng)險(xiǎn)變量的概率分布模型。(3)根據(jù)項(xiàng)目特點(diǎn)確定風(fēng)險(xiǎn)問題的評價(jià)指標(biāo),建立風(fēng)險(xiǎn)問題數(shù)學(xué)模型。(4)根據(jù)項(xiàng)目投資者的風(fēng)險(xiǎn)承受能力確定模擬次數(shù)N。(5)對各個(gè)備選方案風(fēng)險(xiǎn)變量進(jìn)行隨機(jī)抽樣。(6)將各個(gè)備選方案的風(fēng)險(xiǎn)變量的隨機(jī)抽樣值根據(jù)所建立的數(shù)學(xué)模型或者計(jì)算流程圖計(jì)算出項(xiàng)目評價(jià)基礎(chǔ)數(shù)據(jù)。(7)對各個(gè)備選方案風(fēng)險(xiǎn)變量進(jìn)行N次重復(fù)抽樣,產(chǎn)生各方案的抽樣值。(8)對各方案的結(jié)果進(jìn)行統(tǒng)計(jì)分析。
本文應(yīng)用并優(yōu)化Monte Carlo網(wǎng)絡(luò)算法,包括隨機(jī)變量的生成以及考慮任務(wù)邏輯關(guān)系和資源的關(guān)鍵鏈算法且提出了當(dāng)資源沖突時(shí)的解決方法。
1 隨機(jī)變量的生成
在進(jìn)度管理中,任務(wù)的工時(shí)是一種期望值,應(yīng)當(dāng)作隨機(jī)變量來處理。而在傳統(tǒng)的CPM方法中,工時(shí)直接被當(dāng)作常量來處理,到了PERT方法中,開始認(rèn)為工時(shí)服從Beta分布,進(jìn)而通過估算最低值a,最可能值m,以及最高值b,來近似求得服從Beta分布的工時(shí)的均值 ,以及方差 ,但依舊誤差很大。鑒于現(xiàn)代復(fù)雜項(xiàng)目任務(wù)的復(fù)雜性,通過隨機(jī)方法來進(jìn)行模擬能夠有效減少誤差。
本文采用Monte Carlo方法,通過構(gòu)造概率模型并對它進(jìn)行隨機(jī)試驗(yàn)來解算數(shù)學(xué)問題。Monte Carlo的核心在于根據(jù)已知分布產(chǎn)生簡單子樣,也就是產(chǎn)生一系列相互獨(dú)立且服從總體分布的隨機(jī)數(shù)。計(jì)算機(jī)高級語言都支持隨機(jī)數(shù)的產(chǎn)生,且可以認(rèn)為它們是相互獨(dú)立且服從均勻分布的數(shù)列,因此剩下的工作就是根據(jù)這些服從均勻分布的數(shù)列產(chǎn)生服從特定分布的數(shù)列。
因?yàn)閷?shí)際項(xiàng)目中任務(wù)服從的分布以連續(xù)分布為主,因此下面所述的方法和分布若無特殊說明,均是建立在連續(xù)分布的基礎(chǔ)上。對于形如 ,的累積分布函數(shù),目前主要的抽樣方法有直接抽樣法(又叫反函數(shù)法,逆變換法),合成法和篩選法。
本文針對三種特定的分布分別給出抽樣原理和實(shí)現(xiàn)步驟。
1.1 三角分布抽樣
三角分布亦稱辛普森(Simpson)分布,是一種連續(xù)概率分布函數(shù)。三角分布通常可以看作一種經(jīng)驗(yàn)性的描述,比如可以用來描述人口,特別是當(dāng)數(shù)據(jù)之間的關(guān)系已知而數(shù)據(jù)量又非常少的時(shí)候,它通過最小值、最大值和最可能的值來建立模型進(jìn)行經(jīng)驗(yàn)性的判斷。三角分布的累積分布函數(shù)(cumulativedistribution function)如(1)式,其中a為低限、c為眾數(shù)、b為上限,其中a代表的含義是出現(xiàn)最小值的概率,b代表的含義是出現(xiàn)最大值的概率,c代表的含義是出現(xiàn)最可能的值的概率:
(1)通過隨機(jī)數(shù)生成器生成服從U(O,1)的隨機(jī)數(shù)U。
(2)計(jì)算廠(x)的反函數(shù)f-1(x),獲取樣本x=f-1(U)
因此,對于生成的隨機(jī)數(shù)U,每次樣本x取值應(yīng)該為
1.2 正態(tài)分布抽樣正態(tài)分布又名高斯分布,其概率密度函數(shù)為
,而累計(jì)積分函數(shù)為 ,因?yàn)?無法直接計(jì)算,可見直接抽樣法對正太分布來說比較困難,目前主要的方法是進(jìn)行近似計(jì)算,比如中提出的算法可以精確到小數(shù)點(diǎn)后16位。不過因?yàn)椴襟E繁瑣,難以編程實(shí)現(xiàn),因此這里選用的是Box-Muller方法來進(jìn)行抽樣。Box-Muller算法隱含的原理雖然深奧,但結(jié)論卻是相當(dāng)簡單:
(1)通過隨機(jī)數(shù)生成器生成服從U(O,1)的隨機(jī)數(shù)U和V
(2)計(jì)算 和
其中X和Y分別服從標(biāo)準(zhǔn)正太分布且相互獨(dú)立,可以任選其一作為抽樣結(jié)果,假設(shè)選取X作為結(jié)果,根據(jù)正態(tài)分布的特性,通過計(jì)算Xxa+μ即可,就可以得到服從N(μ,σ)的抽樣。
1.3 β分布抽樣
β分布是一個(gè)作為伯努利分布和二項(xiàng)式分布的共軛先驗(yàn)分布的密度函數(shù),在機(jī)器學(xué)習(xí)和數(shù)理統(tǒng)計(jì)學(xué)中有重要應(yīng)用,主要用途就是給受限于有限長度的隨機(jī)變量來建立模型。β累積分布函數(shù) ,可以看出直接抽樣也是比較困難的,比較常用的方法有合成法和接受拒絕法。其中合成法依賴的定理是如果x和Y相互獨(dú)立,且x服從 ,Y服從 ,那么 服從B(a,β)分布。雖然β分布難以直接抽樣,但γ分布容易抽樣,因此可以通過γ分布來合成β分布,不過γ分布一般通過大量指數(shù)分布來合成,也比較耗時(shí),這里采用馮諾依曼提出的接受.拒絕的方法來進(jìn)行抽樣。endprint
首先滿足β分布的概率密度函數(shù)為 ,其中O
(1)選擇函數(shù)g(y),這里選擇g(y)=1,0≤y (2)找a,使得對于所有的x,均有 ,這里 ,為了方便,取a=3。 (3)生成y~U(O,1),U~U(O,1),并且判斷U是否大于20Y3(1-Y)2,如果成立Y則為本次抽樣結(jié)果,否則重新生成y和U,直至滿足條件為止。 2 任務(wù)邏輯關(guān)系轉(zhuǎn)換和進(jìn)度推進(jìn)仿真算法 在網(wǎng)絡(luò)計(jì)劃技術(shù)中,通常對圖的研究都僅限于FS型,包括各種經(jīng)典的圖論算法,也都是把前后節(jié)點(diǎn)之間的關(guān)系當(dāng)作FS型來處理。而在實(shí)際的項(xiàng)目管理中,前驅(qū)任務(wù)和后繼任務(wù)之間的邏輯關(guān)系一共有四種,分別是: ①Finish-to-Start(FS):如圖1,前輩節(jié)點(diǎn)必須先結(jié)束,后繼結(jié)點(diǎn)才能夠開始。 ② Start-to-Start(SS):如圖2,前輩節(jié)點(diǎn)必須先開始,后繼結(jié)點(diǎn)才能夠開始。以修路為例,雖然可以一邊挖路一邊鋪瀝青,但是必須要先開始挖路再開始鋪瀝青。 ③Finish-to-Finish(FF):如圖3,前輩節(jié)點(diǎn)必須先結(jié)束,后繼結(jié)點(diǎn)才能夠結(jié)束。以鋪線為例,任務(wù)一往一棟樓中鋪線,任務(wù)二是檢查樓中鋪的線,那么必須等到鋪線完成后,檢查工作才可能停止。 ④Start-to- Finish(SF):如圖4,前輩節(jié)點(diǎn)必須先開始,后繼結(jié)點(diǎn)才能夠結(jié)束。還是以修房子為例,假設(shè)修房子必須用到材料A,那么直到材料A送達(dá)前,修房子都不可能結(jié)束。 基于傳統(tǒng)CPM算法的啟發(fā),本文設(shè)計(jì)了兼容這四種任務(wù)邏輯關(guān)系的進(jìn)度推進(jìn)仿真算法。 首先,對算法中涉及到的類型進(jìn)行定義,用一個(gè)五元組Task(distri,per, prog,expS,expE,accS,accE)來表示項(xiàng)目中的任務(wù)。 其中,distri屬性和per屬性屬于任務(wù)的固有屬性,distri屬性代表Task的分布類型,比如三角分布、正態(tài)分布和β分布;per屬性代表的是任務(wù)的工時(shí)。而后面五個(gè)屬性是為了在仿真算法中記錄中間結(jié)果添加的屬性,其中prog屬性代表仿真過程中當(dāng)前任務(wù)的進(jìn)度,初始值為0,隨著時(shí)間的推進(jìn),prog不斷變大,當(dāng)prog的值等于任務(wù)的工時(shí)per時(shí),該任務(wù)完成(但還不一定結(jié)束,還需要參考accE屬性);expS屬性代表的是任務(wù)開始期望數(shù),屬性accS代表的是任務(wù)的當(dāng)前開始期望數(shù),也就是當(dāng)accS的值等于expS值時(shí),任務(wù)可以開始;同理定義expE為任務(wù)結(jié)束期望數(shù),而accE代表任務(wù)的當(dāng)前結(jié)束期望數(shù),當(dāng)任務(wù)的當(dāng)前結(jié)束期望數(shù)達(dá)到expE后,任務(wù)才可以結(jié)束。 接著用一個(gè)三元組Link(preTask,sucTask,type)來表示任務(wù)之間的邏輯關(guān)系,其中preTask屬性代表的是該關(guān)系連接的前驅(qū)Task,而sucTask屬性代表的是與之相連的后繼Task,屬性type則代表了該關(guān)系的邏輯類型。 算法思路:對所有的Link進(jìn)行了遍歷,如果Link是FS或者SS類型,因?yàn)榍膀?qū)任務(wù)的開始或者結(jié)束才會導(dǎo)致后繼任務(wù)的開始,所以后繼任務(wù)的開始期望數(shù)需要增加。同理如果Link的類型是FF或者SF型,那么需要增加后繼任務(wù)的結(jié)束期望數(shù)。核心思想是根據(jù)任務(wù)的開始期望數(shù)和結(jié)束期望數(shù)來判斷任務(wù)的開始和結(jié)束。算法采用了模擬的思想,即每次將所有任務(wù)向前推進(jìn)一定的時(shí)間tmin(也就是找出那些距離完成時(shí)間最短的任務(wù),tmin為它們的總工時(shí)減去當(dāng)前進(jìn)度),然后將這些任務(wù)的prog屬性加上tmin代表時(shí)間向前推進(jìn)。 本文對Task定義了三種狀態(tài),分別用三個(gè)集合加以表示,TR為初始任務(wù)的集合,包含的是還未開始的任務(wù),初始為所有的任務(wù)集合。TP為進(jìn)行中任務(wù)的集合,當(dāng)任務(wù)的當(dāng)前開始期望數(shù)達(dá)標(biāo)后,認(rèn)為任務(wù)可以開始,這時(shí)將任務(wù)從TR移動到TP中,代表任務(wù)開始。TF為已經(jīng)結(jié)束任務(wù)的集合,當(dāng)任務(wù)可以結(jié)束時(shí),將任務(wù)移動至該集合。 在算法中,每循環(huán)一次就相當(dāng)于一次時(shí)間的推進(jìn),且在循環(huán)中,算法會檢查和修改任務(wù)的狀態(tài)。其中,時(shí)間的推進(jìn)用prog屬性來表示,通過從零增加prog的值到其工時(shí),代表任務(wù)從開始到結(jié)束。而檢查任務(wù)是否能夠開始則通過判斷任務(wù)的當(dāng)前開始期望數(shù)accS是否等于其開始期望數(shù)expS,檢查任務(wù)是否能夠結(jié)束則通過判斷任務(wù)的當(dāng)前結(jié)束期望數(shù)accE是否等于其結(jié)束期望數(shù)expE。每當(dāng)一個(gè)任務(wù)開始的時(shí)候,都需要對其后繼任務(wù)進(jìn)行修改,如果它們之間的關(guān)系為SS型,則將后繼任務(wù)的accS屬性加1,如果它們之間的關(guān)系為SF型,則將后繼任務(wù)的accE屬性加1。同理每當(dāng)一個(gè)任務(wù)結(jié)束的時(shí)候,需要對其后繼任務(wù)進(jìn)行更新,如果它們之間的關(guān)系為FS型,則將后繼任務(wù)的accS屬性加1,如果它們之間的關(guān)系為FF型,則將后繼任務(wù)的accE屬性加1。 3 基于全拓?fù)渑判虻馁Y源沖突解決策略 在考慮資源的情況下,任務(wù)執(zhí)行的邏輯順序不一定就是任務(wù)執(zhí)行的實(shí)際順序,關(guān)鍵任務(wù)工時(shí)的和也并非一定等于總工期。因此需要對第2節(jié)中的進(jìn)度推進(jìn)仿真算法進(jìn)行改進(jìn)。由于考慮資源的沖突,此時(shí)關(guān)鍵路徑不再是唯一制約進(jìn)度的因素,非關(guān)鍵路徑上的任務(wù)也可以由于資源缺乏而拖延總工期。跟關(guān)鍵鏈法不同,本文的焦點(diǎn)是放在總工期的計(jì)算上,而上述算法也是拋棄了原來關(guān)鍵路徑的思想,以模擬的角度來考慮問題,以最小任務(wù)工時(shí)為單位,每次計(jì)算往前推進(jìn)時(shí)間。但是,本法與關(guān)鍵鏈的思想并不矛盾,同樣可以往關(guān)鍵任務(wù)和非關(guān)鍵任務(wù)兩端加上緩沖時(shí)間更精確的為項(xiàng)目管理者提供進(jìn)度規(guī)劃方面的建議,本文算法相當(dāng)于為關(guān)鍵鏈提供了一個(gè)可行的拉動式進(jìn)度計(jì)劃方案。
當(dāng)調(diào)用進(jìn)度推進(jìn)仿真算法時(shí)可以發(fā)現(xiàn),資源沖突的問題其實(shí)可以等價(jià)于任務(wù)優(yōu)先級的問題,即有多個(gè)任務(wù)并行時(shí),先將資源優(yōu)先分配給哪個(gè)任務(wù),擁有資源的任務(wù)可以隨著時(shí)間的推進(jìn)而推進(jìn),而缺少資源的任務(wù)雖然在任務(wù)進(jìn)行集合Tp中,但是卻不往前推進(jìn)時(shí)間(即每次prog屬性不變)。因此問題被等價(jià)到了任務(wù)的優(yōu)先級上,一般來說,在設(shè)置任務(wù)屬性的時(shí)候,也會一起設(shè)置任務(wù)的優(yōu)先級,而對于設(shè)置了相同優(yōu)先級的任務(wù),可以通過枚舉的方式,進(jìn)而運(yùn)行進(jìn)度推進(jìn)仿真算法。具體的步驟是:
(1)首先求出任務(wù)網(wǎng)絡(luò)圖所有的拓?fù)渑判蛐蛄?,每一個(gè)序列就相當(dāng)于一種潛在的任務(wù)優(yōu)先級序列,通過回溯來找出所有拓?fù)渑判蛐蛄械乃惴ā?/p>
(2)對上述求得的序列進(jìn)行優(yōu)化,因?yàn)槿绻蝿?wù)數(shù)目較多且任務(wù)邏輯關(guān)系復(fù)雜,全拓?fù)渑判虻慕Y(jié)果可能非常大,甚至達(dá)到百萬的數(shù)量級,使得實(shí)際程序的運(yùn)行效率低下。不過所幸實(shí)際中任務(wù)之間往往存在著各種約束,通過這些約束就能夠去除絕大部分的無用序列,從而使程序的效率得到保障。
4 進(jìn)度更改算法
進(jìn)度更改這里主要指的進(jìn)行進(jìn)度的壓縮,假設(shè)平均總工期為K,用戶設(shè)置的目標(biāo)工期為M,若M 如果考慮任務(wù)的權(quán)重便可以照葫蘆畫瓢進(jìn)行算法設(shè)計(jì),假設(shè)當(dāng)前有t1,t2,¨,tn那個(gè)任務(wù),每個(gè)任務(wù)的權(quán)重分別為P1,P2,…,Pn,其中關(guān)鍵任務(wù)為tc1,tc2,…,tcn,它們的權(quán)重為Pc1,Pc2,¨,,pcn,這里權(quán)重代表的是可壓縮性,即權(quán)重的數(shù)值越大,任務(wù)的可壓縮性越強(qiáng)。 在進(jìn)度壓縮的過程中,重點(diǎn)應(yīng)該放在關(guān)鍵任務(wù)上,只需要對它們進(jìn)行壓縮,但是需要注意壓縮過程關(guān)鍵路徑不應(yīng)該發(fā)生改變,那么當(dāng)在壓縮關(guān)鍵任務(wù)時(shí),只需要保證關(guān)鍵任務(wù)的工時(shí)即使被壓縮后也應(yīng)該是同時(shí)刻并行任務(wù)中最大的即可,所以根據(jù)上述一樣的思路,只是在壓縮過程中按照每個(gè)任務(wù)的權(quán)重來進(jìn)行壓縮,而顯然,因?yàn)橹豢紤]關(guān)鍵任務(wù),對于tci,應(yīng)該將工時(shí)壓縮到 ,此時(shí)若關(guān)鍵 任務(wù)工時(shí)小于非關(guān)鍵任務(wù)的工時(shí),那么強(qiáng)制將非關(guān)鍵任務(wù)的工時(shí)減小到關(guān)鍵任務(wù)的工時(shí),可見只需要稍稍修改ShrinkHours算法,將壓縮任務(wù)時(shí)的語句改為按照權(quán)重來進(jìn)行壓縮即可。 最后在仿真完成結(jié)束后,需要根據(jù)已經(jīng)保存的仿真中間信息,對項(xiàng)目的進(jìn)度風(fēng)險(xiǎn)進(jìn)行預(yù)估。假設(shè)進(jìn)行了N次仿真,那么就記錄了N個(gè)工期,根據(jù)大數(shù)定理,當(dāng)N足夠大時(shí)(一般取N為2000到10000次),便可以用這N個(gè)樣本值來代替實(shí)際值。項(xiàng)目風(fēng)險(xiǎn)同樣通過這N個(gè)樣本值來進(jìn)行計(jì)算,本文主要通過總工期區(qū)間統(tǒng)計(jì)圖和進(jìn)度風(fēng)險(xiǎn)圖來對風(fēng)險(xiǎn)進(jìn)行評估。其中,總工期區(qū)間統(tǒng)計(jì)圖表示的是N個(gè)總工期樣本值的分布情況,等價(jià)于之前設(shè)置的每個(gè)任務(wù)工時(shí)服從分布之和,也就是它們的組合分布,而該分布的期望則代表了最可能出現(xiàn)的總工期。進(jìn)度風(fēng)險(xiǎn)圖表示的是在不同總工期約束下,項(xiàng)目完成的風(fēng)險(xiǎn)(即失敗率)。對于在工期M下的進(jìn)度風(fēng)險(xiǎn),計(jì)算公式為 。也就是統(tǒng)計(jì)總工期小于等于M的個(gè)數(shù),再用1減去其占總個(gè)數(shù)N的比例。 5 結(jié)論 由于現(xiàn)代項(xiàng)目的大型化和項(xiàng)目復(fù)雜性的不斷增加,如何對項(xiàng)目的進(jìn)度進(jìn)行正確的預(yù)測和合理的規(guī)劃已經(jīng)受到越來越多的關(guān)注,傳統(tǒng)的CPM/PERT方法已經(jīng)難以滿足人們的需要。本文對現(xiàn)有的進(jìn)度評估技術(shù)進(jìn)行了改進(jìn),加入了對四種任務(wù)邏輯關(guān)系的支持,并給出了資源沖突時(shí)的解決策略,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)面向復(fù)雜項(xiàng)目的進(jìn)度風(fēng)險(xiǎn)評估方法,不僅支持多種隨機(jī)變量的抽樣,還能夠給出工期優(yōu)化策略,旨在幫助項(xiàng)目決策者根據(jù)仿真結(jié)果識別關(guān)鍵任務(wù),以此來制定合理的工期計(jì)劃。