崔 巍,木 仁
(內(nèi)蒙古工業(yè)大學(xué),內(nèi)蒙古 呼和浩特 010051)
隨著人類經(jīng)濟(jì)社會(huì)的快速發(fā)展,人們之間物質(zhì)交互變的更加頻繁,這就需要我們進(jìn)行大量的運(yùn)輸與調(diào)度.研究工作者們提出了運(yùn)輸問(wèn)題的表上作業(yè)法[1-2],其中包括了西北角法、最小元素法、行差列差法.雖然這些方法均求解了運(yùn)輸問(wèn)題,但其效率過(guò)低,過(guò)程過(guò)于復(fù)雜,通用性也并不強(qiáng).針對(duì)這些缺點(diǎn)研究工作者們引進(jìn)了不同的運(yùn)輸問(wèn)題的求解方法,如運(yùn)輸問(wèn)題的Excel求解方法[3],運(yùn)輸問(wèn)題的Lingo求解方法[4],運(yùn)輸問(wèn)題的Matlab求解方法[5],運(yùn)輸問(wèn)題的管理運(yùn)籌學(xué)軟件[2]求解方法.但無(wú)論是哪一種方法都存在這某種缺陷,如Excel及管理運(yùn)籌學(xué)軟件求解方法對(duì)于變量個(gè)數(shù)較多的情形難以求解或錄入數(shù)據(jù)過(guò)于復(fù)雜,如Lingo求解方法錄入模型時(shí)較為復(fù)雜,如Matlab求解算法的通用性較低,且部分未學(xué)過(guò)Matlab的人難以應(yīng)用等等缺陷.針對(duì)這些缺陷[6-9]我們引進(jìn)了運(yùn)輸問(wèn)題通用模型,該模型包含的產(chǎn)銷平衡及產(chǎn)銷不平衡時(shí)的模型.由于所引進(jìn)模型為線性規(guī)劃模型,故利用Matlab算法可計(jì)算獲得最終的最優(yōu)解.考慮到部分研究工作者并未學(xué)習(xí)Matlab軟件,提供了基于Excel讀寫的運(yùn)輸問(wèn)題求解算法.該算法只需在Excel表中錄入產(chǎn)銷及運(yùn)輸費(fèi)用數(shù)據(jù)后在Matlab命令窗口中輸入函數(shù)名即可獲取Excel版的運(yùn)輸數(shù)據(jù)表.因此不僅克服了變量較多時(shí)計(jì)算速度過(guò)慢的缺點(diǎn),同時(shí)也為非專業(yè)人士提供了簡(jiǎn)化運(yùn)輸問(wèn)題求解方法.
在實(shí)際運(yùn)輸問(wèn)題中所涉及的運(yùn)輸模型較多,不同書本上有不同的運(yùn)輸問(wèn)題相關(guān)模型,其中較為常見的運(yùn)輸模型敘述如下:
某物資有m個(gè)產(chǎn)地Ai,產(chǎn)量為ai,i=1,2,…,m;有n個(gè)銷地 Bj,銷量分別為 bj,j=1,2,…,n,從 Ai到 Bj之間的單位物資運(yùn)價(jià)為dij,則產(chǎn)銷平衡時(shí)我們有
產(chǎn)銷平衡運(yùn)輸問(wèn)題的最優(yōu)化模型如公式(2.1)所示.
當(dāng)產(chǎn)量大于銷量時(shí),即
時(shí),只需將所需產(chǎn)品運(yùn)到所有銷地即可,而不需要將所有產(chǎn)品全部運(yùn)輸完畢.此時(shí),原運(yùn)輸問(wèn)題的最優(yōu)化模型如公式(2.2)所示.
通過(guò)引進(jìn)新的變量可將模型(2.1)、(2.2)及(2.3)統(tǒng)一寫成如公式(2.4)所示的最優(yōu)化模型.
當(dāng)δ1=0,δ2=0時(shí)模型(2.4)為產(chǎn)銷平衡的運(yùn)輸問(wèn)題最優(yōu)化模型(2.1),當(dāng) δ1=1,δ2=0時(shí)模型(2.4)為產(chǎn)量大于銷量時(shí)的運(yùn)輸問(wèn)題的最優(yōu)化模型(2.2),δ1=0,δ2=1時(shí)模型(2.4)為銷量大于產(chǎn)量的運(yùn)輸問(wèn)題的最優(yōu)化模型(2.3).
第一步:錄入運(yùn)輸費(fèi)用、產(chǎn)量及銷量Excel表,并按指定命名方式命名;
第二步:將Excel數(shù)據(jù)讀入Matlab中,并判斷錄入數(shù)據(jù)格式是否正確;
第三步:產(chǎn)生運(yùn)輸問(wèn)題最優(yōu)化模型相關(guān)數(shù)據(jù);
第四步:判斷所求解運(yùn)輸問(wèn)題是否產(chǎn)銷平衡;
第五步:根據(jù)所求解運(yùn)輸問(wèn)題產(chǎn)銷平衡實(shí)際情況產(chǎn)生相關(guān)模型數(shù)據(jù);
第六步:利用線性規(guī)劃Matlab函數(shù)求解模型;
第七步:將所求得運(yùn)輸問(wèn)題最優(yōu)解輸出為Excel表格形式.
具體算法如下:
運(yùn)輸問(wèn)題的簡(jiǎn)化Matlab求解算法為廣大運(yùn)輸問(wèn)題應(yīng)用者提供了非常簡(jiǎn)單的求解方法.在該方法中應(yīng)用者無(wú)需理解算法的整個(gè)求解過(guò)程,只需按照指定的模式輸入運(yùn)輸費(fèi)用及產(chǎn)銷量相關(guān)數(shù)據(jù)并在命令窗口中輸入算法名字即可獲取最終運(yùn)輸結(jié)果,從而這一方法為運(yùn)輸問(wèn)題提供了最新的簡(jiǎn)易求解算法,同時(shí)也為今后的運(yùn)輸問(wèn)題求解方法教學(xué)提供了新的建議.今后的運(yùn)輸問(wèn)題的教學(xué)可以轉(zhuǎn)向如何進(jìn)行高效的運(yùn)輸、運(yùn)輸費(fèi)用可變情形下如何選擇運(yùn)輸方案、運(yùn)輸工具及運(yùn)算方案的選擇等問(wèn)題中.
〔1〕何堅(jiān)勇.運(yùn)籌學(xué)基礎(chǔ)[M].北京:清華大學(xué)出版社,2008.
〔2〕韓伯棠.管理運(yùn)籌學(xué)[M].北京:高等教育出版社,2005.
〔3〕文練金.Excel規(guī)劃求解在運(yùn)輸中的應(yīng)用 [J].學(xué)術(shù)探討,2008(12):265-266.
〔4〕張家善.LINGO軟件求解運(yùn)輸問(wèn)題與表上作業(yè)法的比較[J].湛江師范學(xué)院學(xué)報(bào),2010,31(3):137-140.
〔5〕戴建平.基于MATLAB的運(yùn)輸問(wèn)題求解方法[J].寧波職業(yè)技術(shù)學(xué)院學(xué)報(bào),2009,13(2):93-95.
〔6〕鄭愛萍,金福江.多產(chǎn)品運(yùn)輸問(wèn)題的建模及優(yōu)化算法設(shè)計(jì)[J].華僑大學(xué)學(xué)報(bào)(自然科學(xué)版),2013(3):007.
〔7〕徐芹.運(yùn)輸問(wèn)題的數(shù)學(xué)模型及其LINGO求解[J].甘肅高師學(xué)報(bào),2013,18(5):51-52.
〔8〕張劍宗.基于產(chǎn)銷平衡的運(yùn)輸問(wèn)題及求解方法[J].商,2013(26).
〔9〕張永前,蔡延光,湯雅連.求解固定費(fèi)用運(yùn)輸問(wèn)題的混沌人工蜂群算法[J].電子世界,2013(4):82-83.