段連偉 牛鳳秋 劉芬
[摘要]運(yùn)輸問題是運(yùn)籌學(xué)的一個分支,是線性規(guī)劃的特殊形式。它研究的是如何在一個大物資調(diào)運(yùn)中,制定出一個由若干個產(chǎn)地將物資根據(jù)已知的運(yùn)輸交通網(wǎng)運(yùn)到各個銷售地的方案,使得總運(yùn)費(fèi)最小。利用Matlab依據(jù)遺傳算法的理論來計算出最佳結(jié)果是很有必要的,文章以運(yùn)輸問題為例闡述了基于Matlab 的定量分析方法,解決了運(yùn)輸最優(yōu)方案求解這一大難題,可以廣泛應(yīng)用于物流配送領(lǐng)域。
[關(guān)鍵詞]Matlab;遺傳算法;產(chǎn)銷平衡;產(chǎn)銷不平衡;表上作業(yè)法
[DOI]1013939/jcnkizgsc201533073
1問題陳述和正文內(nèi)容
運(yùn)輸是物流功能中最基本的功能。為了降低物流成本,我們有必要研究物流運(yùn)輸中如何組織物資調(diào)運(yùn)才能使總運(yùn)輸成本最低這一重要問題。利用Matlab優(yōu)化工具箱,可以求解線性、非線性、多目標(biāo)和二次規(guī)劃等大中型問題,為優(yōu)化方法在工程中的實際應(yīng)用提供了更快捷的途徑。
在Matlab中構(gòu)建函數(shù)l(x)解決線性規(guī)劃問題。運(yùn)輸問題的最優(yōu)解本質(zhì)屬于極值問題,極大值問題的求解可以轉(zhuǎn)化為極小值問題,因此在Matlab中以求極小值為標(biāo)準(zhǔn)形式,構(gòu)建的函數(shù)l(x)的具體格式如下:
[X,v,e,o,l]=l(F,A,b,m,n,M,N,P,Z)。
式中:X為問題的解向量;F為由目標(biāo)函數(shù)的系數(shù)構(gòu)成的向量;A為一個矩陣;b為一個向量,表示線性規(guī)劃中不等式約束條件,A,b是系數(shù)矩陣和右端向量;m和n為線性規(guī)劃中等式約束條件中的系數(shù)矩陣和右端向量;M和N為約束變量的下界和上界向量;P為給定的變量的初始值;Z為控制規(guī)劃過程的參數(shù)系列;v為優(yōu)化結(jié)束后得到的目標(biāo)函數(shù)值。e=0表示優(yōu)化結(jié)果已經(jīng)超過了函數(shù)的估計值或者已聲明的最大迭代次數(shù),e>0表示優(yōu)化過程中變量收斂于解X,e<0表示計算不收斂。
Matlab處理矩陣運(yùn)算的強(qiáng)大功能編寫遺傳算法程序有著巨大的優(yōu)勢,它們結(jié)合的原理步驟如下:
(1)編碼:采用二進(jìn)制編碼方案,用二進(jìn)制數(shù)構(gòu)成的符號串表示個體,然后隨機(jī)產(chǎn)生一個初始種群。
(2)解碼:編碼后的個體構(gòu)成的種群須經(jīng)過解碼轉(zhuǎn)換成原問題空間的決策變量構(gòu)成的種群,之后才能計算相應(yīng)的適應(yīng)值。
(3)選擇與交叉:選擇過程是利用解碼后求得的各個體適應(yīng)值大小,淘汰一些較差的個體而選擇出一些比較優(yōu)良的個體,選擇產(chǎn)生的新個體重新配對,形成新的交配對象。
(4)變異:對于二進(jìn)制的基因串,變異操作就是按照變異概率隨機(jī)選擇變異點(diǎn),在變異點(diǎn)處取反。
2實例分析
針對產(chǎn)銷不平衡問題,核心方法是將產(chǎn)銷不平衡轉(zhuǎn)換為產(chǎn)銷平衡的情形,然后進(jìn)行求解。
(1)對于“產(chǎn)>銷”情形:可虛擬一個銷售地(庫存),讓多余的產(chǎn)量均運(yùn)抵此銷售地,則其銷售量=“產(chǎn)-銷”,同時令該虛擬的銷售地的單位運(yùn)價為0;
(2)對于“銷>產(chǎn)”,可虛擬一個產(chǎn)地,讓其產(chǎn)量=“銷-產(chǎn)”,同時令該虛擬的產(chǎn)地的單位運(yùn)價為0。
對于這個實際問題,虛設(shè)一銷地,令其銷量為產(chǎn)銷量之差:B4=ai-bj=4。該列單位運(yùn)價為0,即可化為產(chǎn)銷平衡問題。如表1所示。
3結(jié)論
在物流運(yùn)輸中運(yùn)用Matlab軟件,借助遺傳算法的思想,解決運(yùn)輸線路的優(yōu)化問題,簡化了復(fù)雜的運(yùn)輸過程,提高了運(yùn)輸規(guī)劃的效果。且能尋找出物流運(yùn)輸方案的最優(yōu)解,從而降低物流成本,使得一些公司在物流上的投資可以進(jìn)行優(yōu)化,贏得更多的效益。