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