楊一杰,俞啟元 (蘇州科技大學(xué),江蘇 蘇州 215000)
許多學(xué)者就供應(yīng)商選擇問(wèn)題進(jìn)行了相關(guān)研究,如呂玉惠等將蟻群算法運(yùn)用到裝飾材料供應(yīng)商的選擇中[1],程雅等將遺傳算法運(yùn)用到供應(yīng)商的選擇中[2],李益兵等將神經(jīng)網(wǎng)絡(luò)算法進(jìn)行完善并運(yùn)用到供應(yīng)商選擇中[3],還有許多學(xué)者運(yùn)用其他非智能算法的評(píng)價(jià)方法進(jìn)行供應(yīng)商選擇,如TOPSIS法、層次分析法等[4-5]。
魚(yú)群算法,又稱人工魚(yú)群算法,是由李曉磊等學(xué)者提出,通過(guò)模擬魚(yú)類在一定范圍的水域內(nèi)進(jìn)行覓食、聚群和追尾等行為進(jìn)行最優(yōu)化問(wèn)題求解的智能算法。與其他算法相比,魚(yú)群算法具有尋求全局最優(yōu)能力強(qiáng)、對(duì)初值與參數(shù)的選擇敏感性低、魯棒性強(qiáng)、收斂快速等特點(diǎn),因此魚(yú)群算法在各界已得到了廣泛的應(yīng)用。
步驟1:確定評(píng)價(jià)指標(biāo)。從模型建立的角度,通常可以將評(píng)價(jià)指標(biāo)歸為2大類:正向指標(biāo)和負(fù)向指標(biāo)。正向指標(biāo)是指在進(jìn)行供應(yīng)商選擇時(shí),該指標(biāo)值越大越好,如質(zhì)量、效果等;負(fù)向指標(biāo)則是在進(jìn)行供應(yīng)商選擇時(shí),該指標(biāo)值越小越好,如價(jià)格、交貨期等。本文的實(shí)證案例中選取選取材料價(jià)格、材料質(zhì)量、服務(wù)質(zhì)量、品牌效應(yīng)、資金占用率、按時(shí)交貨率作為評(píng)價(jià)指標(biāo)。
步驟2:確定目標(biāo)函數(shù)。關(guān)于供應(yīng)商選擇的研究的目標(biāo)函數(shù),通常有加權(quán)求和法、TOPSIS法、模糊評(píng)價(jià)法等。其中,最基本的方法為加權(quán)求和法:首先確定各評(píng)價(jià)指標(biāo)的權(quán)重,常用的方法有層次分析法、熵權(quán)法等,再對(duì)各評(píng)價(jià)指標(biāo)進(jìn)行量化與無(wú)量綱化處理,最后將無(wú)量綱化處理后的數(shù)據(jù)加權(quán)求和得到各供應(yīng)商的評(píng)價(jià)值,再按評(píng)價(jià)值得大小進(jìn)行排序與選優(yōu)。本文選用加權(quán)求和法進(jìn)行模型建立,以單個(gè)承包商評(píng)價(jià)為例,令評(píng)價(jià)值為E、正向指標(biāo)為P、負(fù)向指標(biāo)為N、正向指標(biāo)權(quán)重值為w1、負(fù)向指標(biāo)權(quán)重值為w2,建立目標(biāo)函數(shù)如下:
上述公式中,Pmax、Nmax表示同種材料的供應(yīng)商中該評(píng)價(jià)指標(biāo)的最大值;Pi、Ni表示第i的供應(yīng)商的正、負(fù)向評(píng)價(jià)指標(biāo)值。其中,公式(1)為目標(biāo)函數(shù),即供應(yīng)商評(píng)價(jià)值最大者為最優(yōu);公式(2)為正向指標(biāo)無(wú)量綱化處理;公式(3)為負(fù)向指標(biāo)正向無(wú)量綱化處理。
假設(shè)在一定的水域中的某一點(diǎn)存在一條人工魚(yú),設(shè)其當(dāng)前點(diǎn)坐標(biāo)為X,并且人工魚(yú)存在一定的視野范圍Visual,某一時(shí)刻時(shí),人工魚(yú)的視野最遠(yuǎn)位置為Xv。
若人工魚(yú)認(rèn)為Xv處的食物濃度高于X,但由于其移動(dòng)距離step小于其視野范圍Visual,不能直接移動(dòng)到Xv處,只能移動(dòng)到Xnext。并在移動(dòng)到Xnext處后人工魚(yú)再次重復(fù)上述探索行為。但若人工魚(yú)認(rèn)為Xv處的食物濃度不高于其當(dāng)前處在的X處,則放棄移動(dòng),嘗試搜索其他食物濃度較高的位置或者進(jìn)行隨機(jī)移動(dòng)。
上述過(guò)程為魚(yú)類最基本的動(dòng)物行為特征,以此為基礎(chǔ)衍生出了人工魚(yú)群算法的基本4種行為。
①覓食行為:魚(yú)類最基本的行為,為了完成覓食,魚(yú)會(huì)往其認(rèn)為食物濃度高的位置游動(dòng)。但對(duì)于人工魚(yú),若其在經(jīng)歷try-number次對(duì)視野范圍內(nèi)的食物濃度搜索后,認(rèn)為搜索位置的食物濃度均低于自身當(dāng)前所在的點(diǎn),但由于當(dāng)前位置的食物會(huì)被吃完,必須執(zhí)行隨機(jī)行為。
②聚群行為:魚(yú)類存在的一種現(xiàn)象,魚(yú)類通常聚集在一起進(jìn)行集體覓食。但對(duì)于人工魚(yú),假設(shè)其當(dāng)前所在位置的食物濃度為Y,若其認(rèn)為在移動(dòng)范圍內(nèi),聚集最多同類(n條人工魚(yú))處的食物濃度Yc,滿足 Yc/n>δY(δ為擁擠度)的條件,則說(shuō)明可以往該處移動(dòng);若不滿足,則該人工魚(yú)執(zhí)行上述的覓食行為。
③追尾行為:若魚(yú)類發(fā)現(xiàn)食物后,往往會(huì)吸引附近的魚(yú)群尾隨而來(lái)。但對(duì)于人工魚(yú),若其認(rèn)為在移動(dòng)范圍內(nèi),某n條人工魚(yú)所在位置的食物濃度Yj為為其附近魚(yú)所在位置中食物濃度最大值,且滿足Yj/n>δY(δ為擁擠度,Y為其當(dāng)前位置食物濃度),則向該處移動(dòng);若不滿足,則該人工魚(yú)執(zhí)行覓食行為。
④隨機(jī)行為:魚(yú)類在一定水域中往往隨機(jī)游動(dòng)。對(duì)于人工魚(yú),若其周圍沒(méi)有能滿足覓食行為、聚群行為、追尾行為的位置,則其進(jìn)行隨機(jī)的位置變化,實(shí)際上為覓食行為的缺省行為。
多材料多供應(yīng)商選擇問(wèn)題可以將不同材料的每個(gè)供應(yīng)商視為魚(yú)群活動(dòng)的一個(gè)點(diǎn)[m,n],并將該供應(yīng)商的目標(biāo)函數(shù)值Ei視為食物濃度Y。將N條人工魚(yú),隨機(jī)分散在材料1的n個(gè)供應(yīng)商處(該做法為了加快收斂速度);視野和移動(dòng)范圍相同,為相鄰材料位置的距離,并規(guī)定人工魚(yú)群僅能單方向移動(dòng),如某人工魚(yú)從材料1中的某供應(yīng)商處,移動(dòng)到材料2中的某供應(yīng)商處,再移動(dòng)到材料3的某供應(yīng)商處;每次移動(dòng)按照上述的4種基本行為:覓食行為、聚群行為、追尾行為、隨機(jī)行為。如圖1所示。
當(dāng)N條人工魚(yú)全部從移動(dòng)到下一材料處后,記錄下此時(shí)該種材料中的每個(gè)供應(yīng)商的魚(yú)群數(shù)量與所占比重。
圖1 供應(yīng)商選擇問(wèn)題示意圖
但由于初始魚(yú)群隨機(jī)分布在材料1的任一供應(yīng)商處,因此當(dāng)魚(yú)群魚(yú)群游到材料m處時(shí),應(yīng)重新往材料1處再次游動(dòng)一次后,再結(jié)束算法運(yùn)行。此時(shí),對(duì)每種材料的各個(gè)供應(yīng)商經(jīng)過(guò)的魚(yú)群數(shù)量進(jìn)行統(tǒng)計(jì),數(shù)量最高即為最優(yōu)解。
具體算法流程圖如圖2所示。
本文案例取自呂玉惠[1]學(xué)者的研究案例。某一裝飾企業(yè)需要采購(gòu)5種材料,材料1有供應(yīng)商5家,材料2有供應(yīng)商4家,材料3有供應(yīng)商3家,材料4有供應(yīng)商4家,材料5有供應(yīng)商5家?,F(xiàn)在需要從不同材料的供應(yīng)商中選出一家作為此次工程該材料的供應(yīng)商。
評(píng)價(jià)指標(biāo)選取材料價(jià)格、材料質(zhì)量、服務(wù)質(zhì)量、品牌效應(yīng)、資金占用率、按時(shí)交貨率。其中,材料質(zhì)量、服務(wù)質(zhì)量、品牌效應(yīng)和按時(shí)交貨率為正向指標(biāo);材料價(jià)格和資金占用率為負(fù)向指標(biāo)。具體數(shù)據(jù)詳見(jiàn)原參考原文獻(xiàn)。
以MATLAB為工具,進(jìn)行編程實(shí)證。首先取人工魚(yú)群數(shù)N=50,擁擠度δ=0.5,最大覓食次數(shù)try-number=3,程序經(jīng)過(guò)0.177411秒求得結(jié)果如表1所示。
圖2 改進(jìn)的魚(yú)群算法流程圖
第一組參數(shù)運(yùn)算結(jié)果 表1
即此時(shí)材料1選擇第1家供應(yīng)商,材料2選擇第2家供應(yīng)商,材料3選擇第1家供應(yīng)商,材料4選擇第2家供應(yīng)商,材料5選擇第3家供應(yīng)商與原文獻(xiàn)采用蟻群算法得到的結(jié)論相同。
再取人工魚(yú)群數(shù)N=500,擁擠度δ=0.5,最大覓食次數(shù)try-number=3,程序經(jīng)過(guò)1.662573秒求得結(jié)果如表2所示。
第二組參數(shù)運(yùn)算結(jié)果 表2
通過(guò)表1與表2的對(duì)比可以發(fā)現(xiàn),運(yùn)算時(shí)間顯著增加,最優(yōu)解完全相同,經(jīng)過(guò)各最優(yōu)解的魚(yú)群比重變化很小。初始魚(yú)群的數(shù)量變多,對(duì)算法的最優(yōu)取值沒(méi)有較大影響。
再取人工魚(yú)群數(shù)N=50,擁擠度δ=1,最大覓食次數(shù) try-number=3,程序經(jīng)過(guò)0.162926秒求得結(jié)果如表3所示。
第三組參數(shù)運(yùn)算結(jié)果 表3
通過(guò)表1與表3對(duì)比可以發(fā)現(xiàn),擁擠度數(shù)值變化對(duì)最優(yōu)取值沒(méi)有較大影響。
但在實(shí)證時(shí)發(fā)現(xiàn),隨著魚(yú)群數(shù)量的變多或者擁擠度的增大,途經(jīng)其他供應(yīng)商的魚(yú)群變多。從理論角度進(jìn)行分析,由于魚(yú)群數(shù)量的增加或者擁擠度的增加,導(dǎo)致高濃度位置較多魚(yú)群聚集,導(dǎo)致部分魚(yú)群往低濃度位置聚集。因此,若要實(shí)現(xiàn)同種材料供應(yīng)商的全排序問(wèn)題,可以通過(guò)增大魚(yú)群數(shù)量和擁擠度實(shí)現(xiàn),增大魚(yú)群數(shù)量的效果更為明顯,但同時(shí)也會(huì)增加相應(yīng)的運(yùn)算時(shí)間。
再取人工魚(yú)群數(shù)N=500,擁擠度δ=0.5,最大覓食次數(shù) try-number=5,程序經(jīng)過(guò)1.702815秒求得結(jié)果如表4所示。
第四組參數(shù)運(yùn)算結(jié)果 表4
通過(guò)表2與表4進(jìn)行對(duì)比可以發(fā)現(xiàn),增大最大嘗試覓食次數(shù),各最優(yōu)值得聚集度均略有增高。從理論角度分析,魚(yú)群在不滿足聚群行為和追尾情況的情況下,加大了對(duì)下一移動(dòng)位置的探索次數(shù),更容易發(fā)現(xiàn)濃度較高的位置從而進(jìn)行移動(dòng)。
通過(guò)上述4個(gè)表格的對(duì)比與論述,可以發(fā)現(xiàn)基于改進(jìn)的魚(yú)群算法供應(yīng)商選擇模型具有對(duì)前期參數(shù)選擇不敏感、收斂速度快等特點(diǎn)。若采用蟻群算法則是經(jīng)過(guò)近120次的運(yùn)算迭代才求得最優(yōu)解,收斂速度相對(duì)較慢;并且蟻群算法前期需要確定的參數(shù)較多,各參數(shù)對(duì)最終結(jié)果與運(yùn)算速度影響較大。因此,在處理多材料多供應(yīng)商的問(wèn)題時(shí),魚(yú)群算法更勝一籌。
本文提出了魚(yú)群算法在供應(yīng)商選擇問(wèn)題中的應(yīng)用架構(gòu),以線性加權(quán)求和的供應(yīng)商選擇模型為基礎(chǔ),建立了基于魚(yú)群算法的供應(yīng)商選擇模型,并用實(shí)例案例論證了該模型具有參數(shù)不敏感性和快速收斂性的特點(diǎn),為魚(yú)群算法在供應(yīng)商選擇問(wèn)題中的實(shí)際運(yùn)用與后續(xù)的深入研究奠定了理論基礎(chǔ)。