楊一杰,俞啟元 (蘇州科技大學(xué),江蘇 蘇州 215000)
許多學(xué)者就供應(yīng)商選擇問題進(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)用其他非智能算法的評價方法進(jìn)行供應(yīng)商選擇,如TOPSIS法、層次分析法等[4-5]。
魚群算法,又稱人工魚群算法,是由李曉磊等學(xué)者提出,通過模擬魚類在一定范圍的水域內(nèi)進(jìn)行覓食、聚群和追尾等行為進(jìn)行最優(yōu)化問題求解的智能算法。與其他算法相比,魚群算法具有尋求全局最優(yōu)能力強(qiáng)、對初值與參數(shù)的選擇敏感性低、魯棒性強(qiáng)、收斂快速等特點(diǎn),因此魚群算法在各界已得到了廣泛的應(yīng)用。
步驟1:確定評價指標(biāo)。從模型建立的角度,通常可以將評價指標(biāo)歸為2大類:正向指標(biāo)和負(fù)向指標(biāo)。正向指標(biāo)是指在進(jìn)行供應(yīng)商選擇時,該指標(biāo)值越大越好,如質(zhì)量、效果等;負(fù)向指標(biāo)則是在進(jìn)行供應(yīng)商選擇時,該指標(biāo)值越小越好,如價格、交貨期等。本文的實(shí)證案例中選取選取材料價格、材料質(zhì)量、服務(wù)質(zhì)量、品牌效應(yīng)、資金占用率、按時交貨率作為評價指標(biāo)。
步驟2:確定目標(biāo)函數(shù)。關(guān)于供應(yīng)商選擇的研究的目標(biāo)函數(shù),通常有加權(quán)求和法、TOPSIS法、模糊評價法等。其中,最基本的方法為加權(quán)求和法:首先確定各評價指標(biāo)的權(quán)重,常用的方法有層次分析法、熵權(quán)法等,再對各評價指標(biāo)進(jìn)行量化與無量綱化處理,最后將無量綱化處理后的數(shù)據(jù)加權(quán)求和得到各供應(yīng)商的評價值,再按評價值得大小進(jìn)行排序與選優(yōu)。本文選用加權(quán)求和法進(jìn)行模型建立,以單個承包商評價為例,令評價值為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)商中該評價指標(biāo)的最大值;Pi、Ni表示第i的供應(yīng)商的正、負(fù)向評價指標(biāo)值。其中,公式(1)為目標(biāo)函數(shù),即供應(yīng)商評價值最大者為最優(yōu);公式(2)為正向指標(biāo)無量綱化處理;公式(3)為負(fù)向指標(biāo)正向無量綱化處理。
假設(shè)在一定的水域中的某一點(diǎn)存在一條人工魚,設(shè)其當(dāng)前點(diǎn)坐標(biāo)為X,并且人工魚存在一定的視野范圍Visual,某一時刻時,人工魚的視野最遠(yuǎn)位置為Xv。
若人工魚認(rèn)為Xv處的食物濃度高于X,但由于其移動距離step小于其視野范圍Visual,不能直接移動到Xv處,只能移動到Xnext。并在移動到Xnext處后人工魚再次重復(fù)上述探索行為。但若人工魚認(rèn)為Xv處的食物濃度不高于其當(dāng)前處在的X處,則放棄移動,嘗試搜索其他食物濃度較高的位置或者進(jìn)行隨機(jī)移動。
上述過程為魚類最基本的動物行為特征,以此為基礎(chǔ)衍生出了人工魚群算法的基本4種行為。
①覓食行為:魚類最基本的行為,為了完成覓食,魚會往其認(rèn)為食物濃度高的位置游動。但對于人工魚,若其在經(jīng)歷try-number次對視野范圍內(nèi)的食物濃度搜索后,認(rèn)為搜索位置的食物濃度均低于自身當(dāng)前所在的點(diǎn),但由于當(dāng)前位置的食物會被吃完,必須執(zhí)行隨機(jī)行為。
②聚群行為:魚類存在的一種現(xiàn)象,魚類通常聚集在一起進(jìn)行集體覓食。但對于人工魚,假設(shè)其當(dāng)前所在位置的食物濃度為Y,若其認(rèn)為在移動范圍內(nèi),聚集最多同類(n條人工魚)處的食物濃度Yc,滿足 Yc/n>δY(δ為擁擠度)的條件,則說明可以往該處移動;若不滿足,則該人工魚執(zhí)行上述的覓食行為。
③追尾行為:若魚類發(fā)現(xiàn)食物后,往往會吸引附近的魚群尾隨而來。但對于人工魚,若其認(rèn)為在移動范圍內(nèi),某n條人工魚所在位置的食物濃度Yj為為其附近魚所在位置中食物濃度最大值,且滿足Yj/n>δY(δ為擁擠度,Y為其當(dāng)前位置食物濃度),則向該處移動;若不滿足,則該人工魚執(zhí)行覓食行為。
④隨機(jī)行為:魚類在一定水域中往往隨機(jī)游動。對于人工魚,若其周圍沒有能滿足覓食行為、聚群行為、追尾行為的位置,則其進(jìn)行隨機(jī)的位置變化,實(shí)際上為覓食行為的缺省行為。
多材料多供應(yīng)商選擇問題可以將不同材料的每個供應(yīng)商視為魚群活動的一個點(diǎn)[m,n],并將該供應(yīng)商的目標(biāo)函數(shù)值Ei視為食物濃度Y。將N條人工魚,隨機(jī)分散在材料1的n個供應(yīng)商處(該做法為了加快收斂速度);視野和移動范圍相同,為相鄰材料位置的距離,并規(guī)定人工魚群僅能單方向移動,如某人工魚從材料1中的某供應(yīng)商處,移動到材料2中的某供應(yīng)商處,再移動到材料3的某供應(yīng)商處;每次移動按照上述的4種基本行為:覓食行為、聚群行為、追尾行為、隨機(jī)行為。如圖1所示。
當(dāng)N條人工魚全部從移動到下一材料處后,記錄下此時該種材料中的每個供應(yīng)商的魚群數(shù)量與所占比重。

圖1 供應(yīng)商選擇問題示意圖
但由于初始魚群隨機(jī)分布在材料1的任一供應(yīng)商處,因此當(dāng)魚群魚群游到材料m處時,應(yīng)重新往材料1處再次游動一次后,再結(jié)束算法運(yùn)行。此時,對每種材料的各個供應(yīng)商經(jīng)過的魚群數(shù)量進(jìn)行統(tǒng)計,數(shù)量最高即為最優(yōu)解。
具體算法流程圖如圖2所示。
本文案例取自呂玉惠[1]學(xué)者的研究案例。某一裝飾企業(yè)需要采購5種材料,材料1有供應(yīng)商5家,材料2有供應(yīng)商4家,材料3有供應(yīng)商3家,材料4有供應(yīng)商4家,材料5有供應(yīng)商5家。現(xiàn)在需要從不同材料的供應(yīng)商中選出一家作為此次工程該材料的供應(yīng)商。
評價指標(biāo)選取材料價格、材料質(zhì)量、服務(wù)質(zhì)量、品牌效應(yīng)、資金占用率、按時交貨率。其中,材料質(zhì)量、服務(wù)質(zhì)量、品牌效應(yīng)和按時交貨率為正向指標(biāo);材料價格和資金占用率為負(fù)向指標(biāo)。具體數(shù)據(jù)詳見原參考原文獻(xiàn)。
以MATLAB為工具,進(jìn)行編程實(shí)證。首先取人工魚群數(shù)N=50,擁擠度δ=0.5,最大覓食次數(shù)try-number=3,程序經(jīng)過0.177411秒求得結(jié)果如表1所示。

圖2 改進(jìn)的魚群算法流程圖

第一組參數(shù)運(yùn)算結(jié)果 表1
即此時材料1選擇第1家供應(yīng)商,材料2選擇第2家供應(yīng)商,材料3選擇第1家供應(yīng)商,材料4選擇第2家供應(yīng)商,材料5選擇第3家供應(yīng)商與原文獻(xiàn)采用蟻群算法得到的結(jié)論相同。
再取人工魚群數(shù)N=500,擁擠度δ=0.5,最大覓食次數(shù)try-number=3,程序經(jīng)過1.662573秒求得結(jié)果如表2所示。

第二組參數(shù)運(yùn)算結(jié)果 表2
通過表1與表2的對比可以發(fā)現(xiàn),運(yùn)算時間顯著增加,最優(yōu)解完全相同,經(jīng)過各最優(yōu)解的魚群比重變化很小。初始魚群的數(shù)量變多,對算法的最優(yōu)取值沒有較大影響。
再取人工魚群數(shù)N=50,擁擠度δ=1,最大覓食次數(shù) try-number=3,程序經(jīng)過0.162926秒求得結(jié)果如表3所示。

第三組參數(shù)運(yùn)算結(jié)果 表3
通過表1與表3對比可以發(fā)現(xiàn),擁擠度數(shù)值變化對最優(yōu)取值沒有較大影響。
但在實(shí)證時發(fā)現(xiàn),隨著魚群數(shù)量的變多或者擁擠度的增大,途經(jīng)其他供應(yīng)商的魚群變多。從理論角度進(jìn)行分析,由于魚群數(shù)量的增加或者擁擠度的增加,導(dǎo)致高濃度位置較多魚群聚集,導(dǎo)致部分魚群往低濃度位置聚集。因此,若要實(shí)現(xiàn)同種材料供應(yīng)商的全排序問題,可以通過增大魚群數(shù)量和擁擠度實(shí)現(xiàn),增大魚群數(shù)量的效果更為明顯,但同時也會增加相應(yīng)的運(yùn)算時間。
再取人工魚群數(shù)N=500,擁擠度δ=0.5,最大覓食次數(shù) try-number=5,程序經(jīng)過1.702815秒求得結(jié)果如表4所示。

第四組參數(shù)運(yùn)算結(jié)果 表4
通過表2與表4進(jìn)行對比可以發(fā)現(xiàn),增大最大嘗試覓食次數(shù),各最優(yōu)值得聚集度均略有增高。從理論角度分析,魚群在不滿足聚群行為和追尾情況的情況下,加大了對下一移動位置的探索次數(shù),更容易發(fā)現(xiàn)濃度較高的位置從而進(jìn)行移動。
通過上述4個表格的對比與論述,可以發(fā)現(xiàn)基于改進(jìn)的魚群算法供應(yīng)商選擇模型具有對前期參數(shù)選擇不敏感、收斂速度快等特點(diǎn)。若采用蟻群算法則是經(jīng)過近120次的運(yùn)算迭代才求得最優(yōu)解,收斂速度相對較慢;并且蟻群算法前期需要確定的參數(shù)較多,各參數(shù)對最終結(jié)果與運(yùn)算速度影響較大。因此,在處理多材料多供應(yīng)商的問題時,魚群算法更勝一籌。
本文提出了魚群算法在供應(yīng)商選擇問題中的應(yīng)用架構(gòu),以線性加權(quán)求和的供應(yīng)商選擇模型為基礎(chǔ),建立了基于魚群算法的供應(yīng)商選擇模型,并用實(shí)例案例論證了該模型具有參數(shù)不敏感性和快速收斂性的特點(diǎn),為魚群算法在供應(yīng)商選擇問題中的實(shí)際運(yùn)用與后續(xù)的深入研究奠定了理論基礎(chǔ)。