倪秉良
規(guī)模較大、功能較復(fù)雜的建筑工程項(xiàng)目在施工上具有很高的復(fù)雜度。為保證項(xiàng)目的施工質(zhì)量,避免因施工計(jì)劃錯(cuò)誤而延誤工程進(jìn)度,在施工前要制定合理的建筑施工計(jì)劃。近年來(lái),國(guó)內(nèi)外研究人員在建筑施工計(jì)劃優(yōu)化方面進(jìn)行了大量的研究,目前已發(fā)展至智能計(jì)算階段。因此,應(yīng)當(dāng)基于人工智能算法對(duì)建筑施工計(jì)劃優(yōu)化做進(jìn)一步探究。
某高校擬新建一個(gè)研究實(shí)驗(yàn)基地,該項(xiàng)目總面積約為4500 m2,包括多個(gè)不同功能的試驗(yàn)區(qū)域。各個(gè)試驗(yàn)區(qū)域?qū)庹?、溫度、濕度等要素的需求存在一定差異,因此該?xiàng)目施工復(fù)雜度和難度較高,包含的工序類(lèi)型和數(shù)量較為繁多,對(duì)于各個(gè)科目的要求也較多,導(dǎo)致整體施工流程較為繁瑣,難以通過(guò)常規(guī)的方法進(jìn)行施工計(jì)劃優(yōu)化[1]。為此,施工單位決定應(yīng)用人工智能算法,優(yōu)化該項(xiàng)目的建筑施工計(jì)劃,以提升建筑施工的效率、質(zhì)量和安全性等多方面的指標(biāo)。
為保證施工計(jì)劃中各個(gè)步驟均能夠合理的進(jìn)行,施工單位決定采用網(wǎng)絡(luò)計(jì)劃圖工具編制施工計(jì)劃。本次使用雙代號(hào)網(wǎng)絡(luò)圖初步描述該項(xiàng)目的施工安排[2]。通過(guò)分析以往類(lèi)似項(xiàng)目的施工經(jīng)驗(yàn)以及相關(guān)文獻(xiàn)資料,明確本項(xiàng)目施工中有關(guān)工序的優(yōu)先級(jí)排布,編制施工作業(yè)的初步網(wǎng)絡(luò)計(jì)劃。
在得到初步網(wǎng)絡(luò)計(jì)劃后,進(jìn)一步調(diào)整時(shí)間參數(shù)。每個(gè)節(jié)點(diǎn)均表示其對(duì)應(yīng)工序的“開(kāi)始事件”或“結(jié)束事件”,每類(lèi)事件均具有一個(gè)最早發(fā)生時(shí)間(Earliest Time,ET)和最晚發(fā)生時(shí)間(Lastest Time,LT)。研究人員基于以往經(jīng)驗(yàn)、專(zhuān)家知識(shí)和類(lèi)似項(xiàng)目的歷史數(shù)據(jù),導(dǎo)入項(xiàng)目管理軟件進(jìn)行初步計(jì)算,最終確定該項(xiàng)目工期理論上的最小完成時(shí)間為158 d[3]。甲方要求該項(xiàng)目在200 d 內(nèi)完工,因此計(jì)劃工期可在158 ~200 d 內(nèi)進(jìn)行合理調(diào)整。
此次建筑施工項(xiàng)目因其自身特性需兼顧的要求較多,不僅需要在甲方要求的時(shí)間內(nèi)完成,而且需要將消耗的材料和資金成本控制在相對(duì)較低的水平,屬于典型的多目標(biāo)規(guī)劃問(wèn)題,常規(guī)的多項(xiàng)式算法難以取得最優(yōu)解[4]。
根據(jù)本項(xiàng)目特點(diǎn),研究人員確定用粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)進(jìn)行求解,主要優(yōu)化目標(biāo)是工期最小、費(fèi)用最低和資源均衡。首先,研究人員結(jié)合實(shí)際情況分析本次項(xiàng)目施工中的資源約束。參考圖1 中的雙代號(hào)工程網(wǎng)絡(luò),將其命名為G= (V,E)。其次,集合V中的所有元素均為時(shí)間節(jié)點(diǎn),用以標(biāo)記每個(gè)工序啟動(dòng)和完成所對(duì)應(yīng)的時(shí)刻;E則用于描述邊集合,表示需要消耗一定施工時(shí)間的某個(gè)工序環(huán)節(jié)。由此應(yīng)用式(1)~式(6)建立數(shù)學(xué)模型。
圖1 粒子編碼結(jié)果(來(lái)源:作者自繪)
式中:Tp為項(xiàng)目施工計(jì)劃消耗時(shí)間,即優(yōu)化目標(biāo)1;Si為事件Vi的發(fā)生時(shí)刻,i∈N*,N*為正整數(shù)集合;N為施工環(huán)節(jié)開(kāi)始、結(jié)束時(shí)刻的節(jié)點(diǎn)總數(shù)[5]。
式中:Sj為事件j的發(fā)生時(shí)刻;Di-j為工序i→j的估算施工時(shí)間。
式中:Tr為項(xiàng)目施工允許的最長(zhǎng)時(shí)間,本次為200 d。
式中,Rt k為第k類(lèi)資源在工期第t天可提供的總量,k∈N*;K為項(xiàng)目施工使用的材料和設(shè)備種類(lèi)數(shù)。
式(1)~式(3)均為優(yōu)化目標(biāo)表達(dá)式,分別表示工期最小化后的消耗時(shí)間、最小化的項(xiàng)目費(fèi)用以及最小化的資源使用方差。
式(4)~式(6)作為約束條件,主要進(jìn)行3 個(gè)方面的約束:
1)確保各個(gè)環(huán)節(jié)按照優(yōu)先級(jí)從高到低的順序進(jìn)行,避免混亂;
2)確保了項(xiàng)目施工時(shí)間不超過(guò)200 d;
3)資源方面的約束[6]。模型中涉及的具體相關(guān)變量數(shù)據(jù),通過(guò)專(zhuān)家經(jīng)驗(yàn)法分析歷史數(shù)據(jù)獲得。
根據(jù)上文所描述的多目標(biāo)施工計(jì)劃優(yōu)化問(wèn)題,應(yīng)當(dāng)采用人工智能算法進(jìn)行有效解決[7]。為此,研究人員應(yīng)用粒子群優(yōu)化PSO 算法進(jìn)行求解,主要可通過(guò)如下步驟實(shí)現(xiàn):
1)在PSO 算法中對(duì)粒子進(jìn)行編碼。結(jié)合本次研究的施工計(jì)劃優(yōu)化問(wèn)題,采用矩陣編碼形式作為編碼方案。其中,矩陣的行數(shù)為本工程項(xiàng)目中的工序數(shù)量,列數(shù)與項(xiàng)目的要求工期天數(shù)相同。在該矩陣下元素僅有兩類(lèi),以“1”表示存在施工行為,“0”表示不存在施工行為。本次施工的粒子編碼結(jié)果如圖1 所示。
2)基于粒子編碼結(jié)果,研究人員進(jìn)一步對(duì)運(yùn)算符進(jìn)行重載,以實(shí)現(xiàn)粒子位置的更新要求。重載環(huán)節(jié)主要分為3 個(gè)步驟:第1,減法運(yùn)算。隨機(jī)選取粒子的某兩個(gè)位置的編碼,定義二者之差仍然為矩陣,找出被減數(shù)與減數(shù)之間的“差別”,確保粒子在后續(xù)的迭代計(jì)算中調(diào)整自身運(yùn)行方向。第2,乘法運(yùn)算。當(dāng)隨機(jī)變量減法運(yùn)算完成后,應(yīng)用乘法運(yùn)算對(duì)運(yùn)算結(jié)果重新進(jìn)行定位(該定位結(jié)果屬于隨機(jī)變量),以避免粒子后續(xù)運(yùn)行方向出現(xiàn)錯(cuò)誤[8]。第3,加法運(yùn)算。作用于速度和乘法運(yùn)算之積與原始位置與更新后的速度之間,主要作用是加速粒子的后續(xù)迭代進(jìn)程,同時(shí)避免粒子因落入局部最優(yōu)解而無(wú)法繼續(xù)運(yùn)算。針對(duì)本次施工的實(shí)際需要,將施工消耗時(shí)間、施工成本和資源均衡分配所需要的算法粒子比例分配為4 : 3 : 3。
在粒子位置、速度編碼和相應(yīng)操作方法均已明確后,為進(jìn)一步提升粒子群算法的效率和準(zhǔn)確度,研究人員從以下4 個(gè)方面對(duì)算法的其他相關(guān)參數(shù)進(jìn)行設(shè)計(jì):
1)針對(duì)PSO 算法中的種群大小即“粒子數(shù)量”,綜合考慮算法的搜索范圍和搜索能力兩方面的要求,設(shè)定該算法中的種群大小為30。
2)選取權(quán)重系數(shù)、學(xué)習(xí)因子兩方面參數(shù)。前者決定當(dāng)前一代的算法迭代更新速度,后者則作為影響下一代迭代速度的判斷依據(jù)[9]。結(jié)合建筑項(xiàng)目施工管理的一般經(jīng)驗(yàn),將以上兩方面參數(shù)均設(shè)置為1,這表示權(quán)重系數(shù)和學(xué)習(xí)因子對(duì)下一代速度的影響是等效的,不存在差異。
3)確定算法的停止準(zhǔn)則條件。在綜合考慮算法運(yùn)行效率和準(zhǔn)確性的基礎(chǔ)上,確定本次PSO 算法在進(jìn)行500次迭代計(jì)算后停止,此時(shí)算法輸出當(dāng)前已獲取的全部帕累托最優(yōu)解。
4)對(duì)各個(gè)目標(biāo)進(jìn)行粒子分配。
結(jié)合本次項(xiàng)目施工的實(shí)際需要,參考施工計(jì)劃優(yōu)化相關(guān)文獻(xiàn)后,確定本次PSO算法主要分為以下幾個(gè)步驟。首先,確定輸入量與輸出量。其中,輸入量為描述項(xiàng)目的雙代號(hào)網(wǎng)絡(luò)計(jì)劃圖G=(V,E),輸出量則為遍歷過(guò)程中找到的全部帕累托最優(yōu)解。其次,由PSO 算法自動(dòng)生成30 個(gè)粒子,并對(duì)各個(gè)粒子進(jìn)行隨機(jī)編碼和隨機(jī)初始化[10]。再次,設(shè)置迭代輪次序數(shù)t的數(shù)值為1,并按照2.3 章節(jié)中描述的運(yùn)算符重載規(guī)則進(jìn)行迭代更新,每進(jìn)行一次迭代更新,t值增加1。最后,當(dāng)t值到達(dá)設(shè)定的迭代次數(shù)上限500 次后停止運(yùn)行,輸出遍歷過(guò)程中找到的全部的帕累托最優(yōu)解。具體流程圖如圖2 所示。為實(shí)現(xiàn)上述算法流程,本次以C++語(yǔ)言按照流程編寫(xiě)對(duì)應(yīng)代碼,將其安裝于計(jì)算機(jī)設(shè)備,實(shí)現(xiàn)PSO 算法的有效運(yùn)行。
圖2 本次PSO 算法的主要運(yùn)行流程(來(lái)源:作者自繪)
在上述PSO 算法全部設(shè)計(jì)完成后,研究人員在計(jì)算機(jī)上運(yùn)行PSO 算法,系統(tǒng)自動(dòng)得到備選的11 個(gè)優(yōu)化方案,具體可從表1 中的數(shù)據(jù)變化趨勢(shì)來(lái)看,工期和項(xiàng)目費(fèi)用之間存在較為突出的負(fù)相關(guān)性,縮短工期對(duì)成本的增加有較為顯著的影響。同時(shí),資源均衡度指標(biāo)與項(xiàng)目工期之間也存在較為明顯的負(fù)相關(guān),表明追求工期比較容易造成資源使用不均衡的問(wèn)題[11]。
表1 基于PSO 算法求得的施工計(jì)劃優(yōu)選方案
針對(duì)上述特點(diǎn),結(jié)合項(xiàng)目甲方和施工方的實(shí)際需求做進(jìn)一步分析,兼顧甲方對(duì)項(xiàng)目施工時(shí)間和乙方對(duì)項(xiàng)目成本方面的要求,最終篩選出“工期平均―費(fèi)用平均”的施工方案。
根據(jù)優(yōu)化后的施工計(jì)劃,施工單位有序進(jìn)行各環(huán)節(jié)施工作業(yè)。在保證施工質(zhì)量符合預(yù)期的前提下,整個(gè)項(xiàng)目在174.5 d 內(nèi)完成,消耗成本為452.082 萬(wàn)元,兼顧了施工工期與施工成本開(kāi)支兩方面的目標(biāo)。同時(shí),施工消耗時(shí)間與成本兩項(xiàng)指標(biāo)也與PSO 算法運(yùn)行得到的理論預(yù)測(cè)值較為接近,進(jìn)一步證明了本次人工智能算法在施工計(jì)劃優(yōu)化方面的有效性。
整體來(lái)看,本次研究以人工智能算法中的粒子群優(yōu)化算法為主要工具,針對(duì)某試驗(yàn)基地建設(shè)項(xiàng)目施工計(jì)劃優(yōu)化方法展開(kāi)研究,通過(guò)該算法的流程得出優(yōu)化后的可行施工方案,實(shí)踐也證明了該次基于人工智能算法優(yōu)化建筑工程項(xiàng)目施工計(jì)劃的有效性和準(zhǔn)確性。本次研究難免存在不足之處,在今后的研究中,仍需在已有粒子群算法的基礎(chǔ)上進(jìn)一步尋求改進(jìn)方法,以消除可能存在的問(wèn)題,如計(jì)算空間浪費(fèi)、陷入“局部最優(yōu)”等,有效提高研究工作的效率和精準(zhǔn)度。