本發(fā)明涉及優(yōu)化與智能計算
技術(shù)領(lǐng)域:
,具體涉及一種基于人工免疫算法的貨物采購及拼船/車運輸方法。
背景技術(shù):
:對于集團化經(jīng)營的公司,各分公司的資源采購需求往往較為分散,各自進行資源采購并運輸需要花費較高的物流成本。將各分公司的采購需求匯總,并由總部通過優(yōu)化方法制定聯(lián)盟采購和拼裝運輸計劃往往可獲得較高的經(jīng)濟效益。大型船舶(車輛)的單位貨物運輸成本一般遠(yuǎn)低于小型船舶。對于供應(yīng)地相近,需求地相近,而中途運輸距離較長的多批次零散貨物而言,將不同批次的零散貨物拼裝成大船(車)進行運輸和配送可以有效提高經(jīng)濟效益。拼船運輸一般由貨物收集、長途運輸與貨物分送三個過程組成。具體是指:大型船泊/車輛依次經(jīng)過不同的產(chǎn)地并將各產(chǎn)地的零散貨物收集起來,經(jīng)長途運輸?shù)诌_銷售地區(qū)后再依次經(jīng)過不同的銷地并在銷地卸載相應(yīng)批次的零散貨物。優(yōu)化采購及拼船/車運輸?shù)哪康氖窃谙嚓P(guān)條件的限制下尋找最優(yōu)采購及運輸方案,使所有參與運輸計劃的船舶的總運費最低??傔\費包含航行費用、裝港滯期費、卸港滯期費和靠港費用等。優(yōu)化采購及拼船運輸優(yōu)化的限制條件包括以下幾類:(1)供需平衡限制,對于任意批次的貨物需求,其實際供貨量與預(yù)定供貨量之間的誤差應(yīng)控制在±5%以內(nèi);(2)單船額定載重限制,每船的貨物運載量都要小于等于該船的額定載重;(3)裝貨日期限制,對于無裝期限定的貨物,船舶可以自選裝期抵達裝港,對于有裝期限定的貨物,船 舶必須在規(guī)定的裝期之前抵達;(4)到貨日期限制,船舶必須在自身裝載各批次貨物規(guī)定的卸期之內(nèi)抵達并裝載貨物;(5)定向運輸限制,某些批次的貨物可以和其他批次的貨物拼船運輸,但最后必須卸載到指定港口。(6)港口水深限制,所選型號的船舶裝滿貨物后的吃水深度必須小于港口水深限定。(7)單向運輸限制,某些國家環(huán)保法律禁止已裝載部分高硫油品的船舶進港拼裝。拼船運輸優(yōu)化屬于np難問題(non-deterministicpolynomial的問題,多項式復(fù)雜程度的非確定性問題),本發(fā)明采用人工免疫算法予以求解。技術(shù)實現(xiàn)要素:要解決的技術(shù)問題如何提高貨物采購及拼船/車運輸方案的尋優(yōu)效率。針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供了一種基于人工免疫算法的貨物采購及拼船/車運輸方法,包括如下步驟:s1:獲取貨物采購及運輸需求相關(guān)數(shù)據(jù);s2:設(shè)定抗體的貨物采購及運輸方案的染色體編碼方法,設(shè)定染色體基因信息;s3:設(shè)置變異概率、抗體群密度算法參數(shù)。s4:抗原識別,將給定的目標(biāo)函數(shù)和約束條件作為抗原;s5:產(chǎn)生初始抗體群,在解空間內(nèi)隨機初始化抗體群;s6:解讀抗體群中所有抗體的染色體基因信息,生成采購-拼船/車運輸配送方案,并計算親和度,抗體濃度和激勵度;s7:克隆部分激勵度較高的抗體組成臨時抗體群;s8:在臨時抗體群中通過基因突變等方法產(chǎn)生新抗體;s9:從臨時抗體群中選擇優(yōu)秀新抗體,用以替換抗體群中的較差個體,形成下一代抗體群,s10:判斷是否滿足結(jié)束條件,若是停止計算并輸出拼船采購-運 輸方案;若否,轉(zhuǎn)步驟s6繼續(xù)進行??蛇x地,所述確定貨物運輸?shù)娜旧w編碼方案的步驟具體包括:將貨物采購-運輸過程的貨物收集方案、裝貨時間、貨物分送方案和參與運輸?shù)倪\輸工具分解的為供應(yīng)染色體、需求染色體、運輸工具染色體和裝期染色體??蛇x地,所述計算抗體親和度的步驟具體包括:按照供應(yīng)染色體和運輸工具染色體基因順序和基因?qū)?yīng)的附加屬性對貨物運載工具裝載及生成采購-裝載方案;按需求染色體基因順序?qū)?yīng)的附加屬性對貨物分運載工具配送;按供應(yīng)染色體和需求染色體的基因及基因附加屬性定位貨物供應(yīng)地和貨物卸載地的位置;根據(jù)參與運輸?shù)倪\輸工具和貨物編號對應(yīng)的貨物供應(yīng)地和貨物卸載地的位置確定運輸工具運輸線路,并根據(jù)路線計算運輸費;按裝期染色體、供應(yīng)染色體和需求染色體的基因信息反推標(biāo)注自選裝貨期的貨物的裝貨期,而后計算到貨期;根據(jù)裝貨期和到貨期計算運載工具在裝貨地和卸貨地的滯期,并根據(jù)滯期計算滯期費;根據(jù)供應(yīng)染色體和需求染色體與運輸工具染色體的港口與船型信息,計算運輸工具的靠港費用。將所有運輸工具運輸費、滯期費和靠港費加和,并取倒數(shù),獲得抗體的親和度??蛇x地,根據(jù)滯期計算滯期費的步驟還包括:兩個以上運載工具同時抵達時,其中之一需等待,等待時間為滯期,計算滯期費??蛇x地,所述對貨物運載工具裝載及生成采購方案步驟具體包括:s61:從運輸工具染色體起始點開始讀取運輸工具染色體基因所代表的運輸工具的編號,并由基因?qū)傩垣@取該運輸工具的剩余載重;s62:從供應(yīng)染色體起始點開始讀取供應(yīng)染色體體基因所代表的貨 物編碼,并由基因?qū)傩垣@取該批次貨物的剩余數(shù)量;s63:判斷是否結(jié)束生成裝載方案;若供應(yīng)染色體起始點位置大于供應(yīng)染色體長度或運輸工具的剩余載重將為零,則停止生成采購方案;否則,進入步驟s54;s64:令運輸工具裝載貨物,生成購買與裝載方案??蛇x地,按裝期染色體、供應(yīng)染色體和需求染色體的基因信息反推標(biāo)注自選裝貨期的貨物的裝貨期,而后計算到貨期的具體步驟為:從前至后讀取編號為i的運輸工具中裝載的供應(yīng)染色體的基因所代表的采購貨物。若編號為i的運輸工具中裝載的供應(yīng)染色體基因所代表的某批次采購貨物裝期并非自選,則以此貨物裝期為基準(zhǔn),根據(jù)裝港間的航程,向前反推前面編號為i的運輸工具中裝載的供應(yīng)染色體的基因所代表的貨物的裝期,而后向后正推后面編號為i的運輸工具中裝載的供應(yīng)染色體的基因所代表的貨物的裝期;若編號為i的運輸工具中裝載的供應(yīng)染色體所有基因所代表的采購貨物裝期屬性都為自選,則根據(jù)編號為i的運輸工具中裝載的需求染色體第一個基因所代表的貨物的卸載期限和裝期染色體中的相應(yīng)裝期基因計算第一卸期,而后根據(jù)第一卸期反推前面編號為i的運輸工具中裝載的供應(yīng)染色體的基因所代表的貨物的裝期;其中i為常數(shù)。可選地,所述設(shè)定染色體基因信息的步驟具體包括:對需要運輸?shù)母髋呜浳锞幪枺粯?biāo)記各貨物供應(yīng)地/卸載地,數(shù)量、類型、裝貨期/卸貨期限,并相應(yīng)編號;對運輸工具編號并標(biāo)記各運載工具的額定運載量;將供/需貨物批次編號、運輸工具編號及裝貨期編號作為相應(yīng)染色體基因;將貨物供應(yīng)地編號、貨物卸載地編號、供應(yīng)貨物類型、需求貨物 類型、供應(yīng)貨物數(shù)量、需求貨物數(shù)量、貨物裝期、參與運輸?shù)倪\載工具載重等作為基因?qū)傩愿街谙鄳?yīng)染色體的基因上。可選地,所述計算抗體激勵度的具體步驟包括:計算各抗體在抗體群集合中的歐式距離:式中:ρ(ci)為ci號抗體在抗體群集合中的歐式距離;f(ci)為ci號抗體的親和度;n為抗體群中抗體總數(shù)量;計算各抗體在抗體群集合中的濃度:式中:p(ci)為ci號抗體在抗體群集合中的濃度;計算各抗體激勵度:stm(ci)=a×f(ci)+b×p(ci)式中:stm(ci)為ci號抗體的激勵度;a,b為權(quán)重系數(shù)。由上述技術(shù)方案可知,本發(fā)明提供的基于人工免疫算法的優(yōu)化采購及拼船/車運輸方法,將采購-拼船/車運輸過程分解為采購染色體、裝貨期染色體、需求染色體與運輸工具染色體進行耦合編碼,并利用人工免疫算法予以求解。通過需求匹配編碼、配送定向解碼及裝期限定解碼等方法,避免無解假象并有效提高算法的尋優(yōu)效率,節(jié)約了大量的計算時間,實現(xiàn)了貨物采購及拼裝運輸方案的優(yōu)化,降低了分散貨物采購-運輸過程的物流成本,提高了集團化公司的聯(lián)盟經(jīng)營效益。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單的介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。圖1為本發(fā)明一個實施例中基于人工免疫算法的優(yōu)化采購及拼船/車運輸方法流程示意圖。具體實施方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖1所示,一種基于人工免疫算法的優(yōu)化采購及拼船/車運輸方法,包括以下步驟。s1:獲取貨物采購及運輸需求相關(guān)數(shù)據(jù);s2:設(shè)定抗體的貨物采購及運輸方案的染色體編碼方法,設(shè)定染色體基因信息;s3:設(shè)置變異概率、抗體群密度等算法參數(shù)。s4:抗原識別。將給定的目標(biāo)函數(shù)和約束條件作為抗原;s5:產(chǎn)生初始抗體群(b細(xì)胞群)。在解空間內(nèi)隨機初始化抗體群;s6:解讀抗體群中所有抗體的染色體基因信息,生成采購-拼船/車運輸配送方案,并計算親和度,抗體濃度和激勵度;s7:克隆部分激勵度較高的抗體組成臨時抗體群;s8:在臨時抗體群中通過基因突變等方法產(chǎn)生新抗體;s9:從臨時抗體群中選擇優(yōu)秀新抗體,用以替換抗體群中的較差個體,形成下一代抗體群。s10:判斷是否滿足結(jié)束條件。若是停止計算并輸出拼船采購-運輸方案;若否,轉(zhuǎn)步驟s6繼續(xù)進行。下面以采購并拼船運輸不同港口的原油為優(yōu)選例對本發(fā)明展開詳細(xì)的說明。第一,介紹獲取貨物運輸需求數(shù)據(jù)的步驟。一般貨物運輸?shù)男枨髷?shù)據(jù)包括貨物的卸載地、貨物的需求數(shù)量、需求貨物的類型、到貨時間期限等。第二,介紹確定貨物運輸?shù)乃娜旧w編碼方案,設(shè)定染色體基因信息的步驟。在本發(fā)明的一個實施例中,確定貨物采購-運輸?shù)乃娜旧w編碼方案的步驟具體包括:將貨物采購-運輸過程的貨物收集方案、裝貨時間、貨物分送方案和參與運輸?shù)倪\輸工具分解表示為供應(yīng)染色體x、裝期染色體d、需求染色體y和運輸工具染色體z。首先,將需要購買并收集的貨物按批次編號,并用xvol表示各批次供應(yīng)貨物的數(shù)量,用xport表示各批次供應(yīng)貨物所在的港口編號,用xtype表示各批次供應(yīng)貨物的類型編號;用xdate表示各批次供應(yīng)貨物所在的裝貨日期。其次,將所需配送的貨物按批次編號,并用yvol表示各批次需求貨物的數(shù)量,用yport表示各批次需求貨物所在的港口編號,用ytype表示各批次需求貨物的類型編號;用ydate1表示各批次需求貨物的最早到貨日期;用ydate2表示各批次需求貨物的最晚到貨日期。再次,將參與運輸?shù)拇熬幪?,并用zvol表示各船的額定載重。最后,將各船的裝貨期編號,并用date表示裝貨期選值。下面以采購并拼船運輸不同類型的原油為例,對確定四染色體編碼方案做具體說明。如表1所示,假設(shè)生產(chǎn)共需采購并運輸7個批次的原油(x),各批次采購原油依次編號1-7,各批次采購原油需采購的數(shù)量分別為20、10、13、9、14.5、19與18萬噸,各批次采購原油分別位于1、2、3、4、5、6、7號出口港,各批次采購原油類型分別為1、2、3、4、5、6、7,各批次采購原油裝貨期分別為10-1、自選、10-4、自選、自選、自選、自選。銷售地區(qū)共需進口7個批次的原油(y),各批次進口原油依次編號1-7,各批次進口原油需求數(shù)量分別為20、10、13、9、14.5、19與18萬噸,各批次進口原油分別位于1、2、3、4、5、6、7號進口港??赡軈⑴c運輸?shù)拇坝?只,依次編號1、2、3、4、5,其額定載重都為26萬噸。將各船的裝貨期編號(d)1、2、3、4、5,并用假設(shè)進化過程中某代某一個體的裝貨期選值為0.12、0.23、0.48、0.89、 0.64。表1基因附加屬性表按貨物供需類型匹配要求的限定,(x)1號采購原油只能對應(yīng)供應(yīng)(y)1號進口原油。依次類推,其余2、3、4、5、6、7號采購原油也只能分別供應(yīng)類型相匹配的2、3、4、5、6、7號進口原油。為了體現(xiàn)每種原油的供需平衡運輸限制,(一般實際供貨量與預(yù)定供貨量之間的誤差應(yīng)控制在±5%以內(nèi)算滿足精度要求),1號原油的實際采購量可以在20×0.95=19萬噸至20×1.05=21萬噸之間浮動。第三,介紹所述從抗體四染色體組編碼解讀拼船采購-運輸方案的步驟。按預(yù)先設(shè)置的抗體群數(shù)量,隨機生成包含初始供應(yīng)染色體x、需求染色體y、運輸工具染色體z和裝期染色體d的位置群和速度群。其中x染色體的長度等于貨物供應(yīng)批次數(shù)目,y染色體的長度等于貨物需求批 次數(shù)目,z染色體的長度等于參與運輸貨物的船舶數(shù)目,d染色體長度與z相同。介紹解讀抗體群各個體所對應(yīng)的采購-拼船運輸方案方法。假設(shè)迭代過程中某代抗體群中某抗體的染色體組如表2所示:表2某抗體的四染色體組編碼x1234765y3124675z24315d0.120.230.480.890.64首先,令船舶對采購原油進行裝載,生成采購-拼裝方案。船舶z起始點為2號船,其剩余載重為26萬噸,令2號船對采購貨物x進行裝載,x起始點為1號采購原油,其剩余數(shù)量為20萬噸。由于1號采購原油剩余數(shù)量小于2號船舶的剩余載重,因此船舶將其完全裝載。裝載后,2號船剩余載重為26-20=6萬噸,1號原油剩余數(shù)量為0;令z起始點保持不變,仍為2號船,x起始點后移一位,指向2號原油。令2號船繼續(xù)裝載2號原油,由于2號船剩余載重6萬噸,小于2號原油剩余數(shù)量10萬噸,因而2號船只裝載6萬噸2號原油,其剩余載重為0,2號原油剩余數(shù)量為10-6=4萬噸。此時2號船滿載,共計裝載20萬噸1號采購原油和6萬噸2號采購原油。令z起始點后移一位,指向4號船,其剩余載重為26萬噸,令x起始點保持不變,仍然指向2號原油,其剩余數(shù)量為4萬噸,由于4號船舶剩余載重大于2號原油剩余數(shù)量,因此船舶將其完全裝載。裝載后,4號船剩余載重為26-4=22萬噸,2號原油剩余數(shù)量為0。z起始點保持不變,仍為4號船,x起始點后移一位,指向3號原油。令4號船繼續(xù)裝載3號原油,由于4號船剩余載重22萬噸,大于 3號原油剩余數(shù)量13萬噸,因此船舶將其完全裝載。裝載后,4號船剩余載重為22-13=9萬噸,3號原油剩余數(shù)量為0。z起始點保持不變,仍為4號船,x起始點后移一位,指向4號原油。令4號船繼續(xù)裝載4號原油,由于4號船剩余載重9萬噸,等于4號原油剩余數(shù)量9萬噸,因此船舶將其完全裝載。裝載后,4號船剩余載重為0,4號原油剩余數(shù)量為0。此時4號船滿載,共計裝載4萬噸2號采購原油和13萬噸3號采購原油和9萬噸4號采購原油。令z起始點后移一位,指向3號船,其剩余載重為26萬噸;令x起始點后移一位,指向7號原油,其剩余數(shù)量18萬噸。由于7號采購原油剩余數(shù)量小于3號船舶的剩余載重,因此船舶將其完全裝載,裝載后,3號船剩余載重為26-18=8萬噸,7號原油剩余數(shù)量為0;令z起始點保持不變,仍為3號船,令x起始點后移一位,指向6號原油。令3號船繼續(xù)裝載6號原油,由于3號船剩余載重8萬噸,小于6號原油剩余數(shù)量19萬噸,因而3號船只裝載8萬噸6號原油,其剩余載重為0,6號原油剩余數(shù)量為19-8=11萬噸。此時3號船滿載,共計裝載18萬噸7號采購原油和8萬噸6號采購原油。令z起始點后移一位,指向1號船,其剩余載重為26萬噸,令x起始點保持不變,仍然指向6號原油,其剩余數(shù)量為11萬噸,由于1號船舶剩余載重大于6號原油剩余數(shù)量,因此船舶將其完全裝載。裝載后,1號船剩余載重為26-11=15萬噸,6號原油剩余數(shù)量為0。令z起始點保持不變,仍為1號船,令x起始點后移一位,指向5號原油。令1號船繼續(xù)裝載5號原油,由于1號船剩余載重15萬噸,大于5號原油剩余數(shù)量14.5萬噸,因而船舶將其完全裝載,裝載后,1號船剩余載重為15-14.5=0.5萬噸,5號原油剩余數(shù)量為0。此時,1號船共計裝載11萬噸6號采購原油和14.5萬噸5號采購原油。由于采購原油x已被完全拆分裝載,因此,裝船過程結(jié)束,z 中5號船不再參與運輸。其次,令載油船舶根據(jù)需求進行分配卸載,生成配送方案。船舶z起始點為2號船,共計裝載20萬噸1號采購原油和6萬噸2號采購原油。令y起始點指向第一個剩余需求數(shù)量不為0的需求油品,當(dāng)前為3號需求原油,剩余需求數(shù)量13萬噸,需求類型為3,2號船中無相關(guān)類型油品,不對其配送。令y起始點指向下一個剩余需求數(shù)量不為0的需求油品,指向1號需求原油,剩余需求數(shù)量20萬噸,需求類型為1,令2號船對1號需求原油進行配卸20萬噸1號采購原油,則1號需求原油剩余需求數(shù)量為0,2號船1號采購原油剩余裝載量為0。令y起始點指向下一個剩余需求數(shù)量不為0的需求油品,也即2號需求原油,剩余需求數(shù)量10萬噸,需求類型為2。令2號船對2號需求原油進行配卸6萬噸2號采購原油,則2號需求原油剩余需求數(shù)量為10-6=4萬噸,有待繼續(xù)配卸。2號船2號采購原油剩余裝載量為0。至此,2號船所裝載的采購原油完全配送完畢。根據(jù)2號船的裝油方案和卸油方案,并參照各油品所在的裝、卸港,即可得到2號船的行船路線:xport1(1,20/20)→xport2(2,6/10)→yport1(1,20/20)→yport2(2,6/10)。令z起始點后移一位,指向4號船,共計裝載4萬噸2號采購原油和13萬噸3號采購原油和9萬噸4號采購原油。令y起始點指向第一個剩余需求數(shù)量不為0的需求油品,也即3號需求原油,剩余需求數(shù)量13萬噸,需求類型為3。令4號船對3號需求原油進行配卸13萬噸3號采購原油,則3號需求原油剩余需求數(shù)量為0,4號船中3號采購原油剩余裝載量為0。令y起始點指向下一個剩余需求數(shù)量不為0的需求油品,也即2號需求原油,剩余需求數(shù)量4萬噸,需求類型為2。令4號船對2號需 求原油進行配卸4萬噸2號采購原油,則2號需求原油剩余需求數(shù)量為0,4號船中2號采購原油剩余裝載量為0。令y起始點指向下一個剩余需求數(shù)量不為0的需求油品,也即4號需求原油,剩余需求數(shù)量9萬噸,需求類型為4。令4號船對4號需求原油進行配卸9萬噸4號采購原油,則4號需求原油剩余需求數(shù)量為0,4號船中4號采購原油剩余裝載量為0。至此,4號船所裝載的采購原油完全配送完畢。根據(jù)4號船的裝油方案和卸油方案,并參照各油品所在的裝、卸港,即可得到4號船的行船路線:xport2(1,4/10)→xport3(3,13/13)→xport4(3,9/9)→yport3(3,13/13)→yport2(2,4/10)→yport4(4,9/9)。以此類推,令3號船和1號船按從前之后的順序?qū)中剩余需求數(shù)量不為0的需求原油進行配送,分別可得各自的行船路線。3號船:xport7(7,18/18)→xport6(6,8/19)→yport6(6,8/19)→yport7(7,18/18)。1號船:xport6(6,11/19)→xport5(5,14.5/14.5)→yport6(6,11/19)→yport5(5,14.5/14.5)。再次,為各船裝貨期標(biāo)記為“自選”的原油選擇裝期。計算到貨期的具體步驟為:從前至后讀取編號為i的運輸工具中裝載的供應(yīng)染色體的基因所代表的采購貨物;若編號為i的運輸工具中裝載的供應(yīng)染色體基因所代表的某批次采購貨物裝期并非自選,則以此貨物裝期為基準(zhǔn),根據(jù)裝港間的航程,向前反推前面編號為i的運輸工具中裝載的供應(yīng)染色體的基因所代表的貨物的裝期,而后向后正推后面編號為i的運輸工具中裝載的供應(yīng)染色體的基因所代表的貨物的裝期;若編號為i的運輸工具中裝載的供應(yīng)染色體所有基因所代表的采購貨物裝期屬性都為自選,則根據(jù)編號為i的運輸工具中裝載的 需求染色體第一個基因所代表的貨物的卸載期限和裝期染色體第i號基因計算第一卸期,而后根據(jù)第一卸期反推前面編號為i的運輸工具中供應(yīng)染色體的基因所代表的貨物的裝期;其中i為常數(shù)。分別選取2號船和3號船為例說明選裝貨期的方法。對于2號船,裝載20萬噸1號采購原油和6萬噸2號采購原油,配送給1號需求原油20萬噸和2號需求原油6萬噸。從前至后檢查2號船是否裝載有固定裝期的采購原油。由于2號船裝載的1號采購原油裝期固定為10-1,因此d染色體不起作用,對于2號船裝載的各批次原油裝貨期選取以1號采購原油為準(zhǔn),其具體計算方式為:2號原油的裝貨期=1號采購原油的裝貨期+1號采購原油數(shù)量÷1號裝港的裝貨時間+1號裝港拖船時間+1號裝港與2號裝港間的航程÷2號船的航速。對于3號船,裝載有18萬噸7號采購原油和8萬噸6號采購原油,配送給6號需求原油8萬噸和7號需求原油18萬噸。從前至后檢查3號船是否裝載有固定裝期的采購原油。由于3號船所裝載的所有批次的采購原油都為“自選”裝期,因此d染色體起作用。對于2號船裝載的各批次原油裝貨期選取可根據(jù)6號需求原油的6ydate1和6ydate2求得,具體步驟為:(a)計算3號船的“第一卸期”=6ydate1+(6ydate2-6ydate1)×3d(0.48)=11月16日;(b)由”第一卸期”反推3號船中6號采購原油的裝貨期=“第一卸期”-6號卸港與6號裝港間的航程÷3號船的航速-6號采購原油的船載數(shù)量÷6號裝港的裝貨時間-6號裝港的拖船時間;(c)由6號采購原油的裝貨期反推7號采購原油的裝貨期=6號采購原油的裝貨期-6號裝港與7號裝港間的航程÷3號船的航速-7號采購原油的船載數(shù)量÷7號裝港的裝貨時間-7號裝港的拖船時間。最后,介紹根據(jù)以上過程生成優(yōu)化采購方案的方法。所述對貨物運載工具裝載及生成采購方案步驟具體包括:s51:從運輸工具染色體起始點開始讀取運輸工具染色體基因所代表的運輸工具的編號,并由基因?qū)傩垣@取該運輸工具的剩余載重;s52:從供應(yīng)染 色體起始點開始讀取供應(yīng)染色體體基因所代表的貨物編碼,并由基因?qū)傩垣@取該批次貨物的剩余數(shù)量;s53:判斷是否結(jié)束生成方案;若供應(yīng)染色體起始點位置大于供應(yīng)染色體長度或運輸工具的剩余載重將為零,則停止生成采購方案;否則,進入步驟s54;s54:令運輸工具裝載貨物,生成購買與拼裝方案。根據(jù)裝船過程,2號采購原油被2號船分載6萬噸,被4號船分載4萬噸,因此,2號采購原油分兩批次采購和運輸,采購時各批次的裝貨期申報也由2號船和4號船的具體運輸過程確定,參見上文所述裝期選擇辦法。同理,6號采購原油被3號船分載8萬噸,被1號船分載11萬噸,因此,6號采購原油分兩批次采購和運輸,采購時各批次的裝貨期申報也由3號船和1號船的具體運輸過程確定,參見上文所述裝期選擇辦法。對于1號船,最終貨物裝載量為25.5萬噸,可按5%的誤差需求,增加裝載采購原油的數(shù)量至26萬噸,以提高船舶運輸?shù)慕?jīng)濟效益。具體方法為:(1)校核計劃采購增量是否滿足5%的誤差需求,具體為(26-25.5)÷(第6號油品的需求總量19+第5號油品的需求總量14.5)=1.5%,滿足誤差精度要求;(2)對船載采購原油按需求總量分配采購增量,具體為6號油品采購增量=第6號油品的需求總量19÷(第6號油品的需求總量19+第5號油品的需求總量14.5)×總采購增量0.5=0.28萬噸,5號油品采購增量=第5號油品的需求總量14.5÷(第6號油品的需求總量19+第5號油品的需求總量14.5)×總采購增量0.5=0.22萬噸。第四,介紹四染色體編碼抗體所對應(yīng)的采購-拼船/車運輸方案的親和度,濃度和激勵度的計算步驟。對實數(shù)編碼的四染色體分別排序,得到整數(shù)編碼的四染色體。按上文所述方法從整數(shù)編碼的四染色體中解讀粒子所代表的采購拼船-運輸方案。將船舶運行費用作為適應(yīng)值,船舶運行費用包含地理航程費用、 裝/卸港滯期費用及靠港費用三部分。航程費用可根據(jù)上述行船路線計算;滯期費用可根據(jù)船舶在裝港及卸港的非正常停靠時間計算;靠港費可根據(jù)該船沿途所??扛劭诘恼髻M標(biāo)準(zhǔn)計算。其中裝港滯期費用主要分兩種情況,第一種是船舶過早抵達裝港,等待裝貨期期間需向船東繳納的費用,第二種是船舶過晚抵達裝港,裝期已過,需向港口管理方繳納的費用。寫港滯期費用也分兩種情況,第一種是船舶抵達卸港后,卸港內(nèi)有其他船舶占用卸油泊位,等待泊位期間須向船東繳納的費用;第二種是第一種是船舶抵達卸港時間超出需求油品的到貨期要求范圍,須向油品需求方繳納的費用。對于裝卸原油而言,一般不允許超出時間期限,因此,第二種裝港滯期費和第二種卸港滯期費都要設(shè)為無窮大,以控制算法的方案搜索方向。在計算出抗體的四染色體組所代表的方案運輸費用后,可繼續(xù)計算抗體激勵度。計算抗體激勵度的具體步驟為:(1)令親和度f(ci)=1/(方案費用)(2)按下式計算ci號抗體在抗體群集合中的歐式距離;(3)按下式計算ci號抗體在抗體群集合中的濃度:(4)按下式計算ci號抗體的激勵度:stm(ci)=a×f(ci)+b×p(ci)設(shè)某抗體群中共計有4個抗體,各抗體所代表的運輸費用分別為10、10、5、2.5萬美元,如表3所示。表3抗體群的親和度、濃度和激勵度運輸費用101052.5親和度0.10.10.20.4濃度0.1670.1670.2220.444激勵度0.14020.14020.21320.4264根據(jù)(1)計算,各抗體親和度非別為1÷10=0.1,1÷10=0.1,1÷5=0.2,1÷2.5=0.4。根據(jù)(2)計算1號抗體在抗體群集合中的歐氏距離。以此類推,2、3、4號抗體的歐式距離分別為:0.3、04、0.8。根據(jù)(3)計算3號抗體的在抗體群集合中濃度。以此類推,1、2、4號抗體的濃度分別為:0.167、0.167、0.444。根據(jù)(4)計算4號抗體的激勵度(假設(shè)參數(shù)配置為:a=0.4,b=0.6)。stm(c4)=a×f(ci)+b×p(ci)=0.4×0.4+0.6×0.444=0.4264以此類推,1、2、3號抗體的激勵度分別為:0.1402、0.1402、0.2132。第五:介紹選擇抗體并克隆生成臨時群體的步驟??蛇x地,應(yīng)用輪盤賭方法,按激勵度選擇部分抗體,并對選擇抗體進行克隆生成臨時抗體群。第六,介紹通過臨時抗體產(chǎn)生新抗體的步驟??蛇x地,對臨時抗體群中的各抗體按一定的概率進行基因突變或染色體交叉的操作,產(chǎn)生新抗體,并計算新抗體的親和度。第七,從新抗體中選擇部分親和度高的抗體,替換抗體群中親和度較低的抗體。最后,介紹判斷是否滿足終止條件,如果不滿足則返回步驟s6,如此循環(huán)直至滿足終止條件,如果滿足則結(jié)束計算并輸出最優(yōu)方案。在本實施例中,程序終止條件是預(yù)先設(shè)定的迭代次數(shù)(例如,迭代1000次程序終止)。如果不滿足則返回s6繼續(xù)迭代,如此循環(huán)直至滿足終止條件。如果滿足則結(jié)束計算并輸出最優(yōu)方案。在本實施例中,程序終止條件是預(yù)先設(shè)定的迭代次數(shù)(例如,程序迭代1000次終止)。如果不滿足則返回s6,如此循環(huán)直至滿足終止條件,如果滿足則優(yōu)化結(jié)束輸出最優(yōu)方案。本發(fā)明提供的基于人工免疫算法的優(yōu)化采購及拼船/車運輸方法,將采購-拼船/車運輸過程分解為采購染色體x、裝貨期染色體d、需求染色體y與運輸工具染色體z進行耦合編碼,并利用人工免疫算法予以求解。通過需求匹配編碼、配送定向解碼及裝期限定解碼等方法,避免無解假象并有效提高算法的尋優(yōu)效率,節(jié)約了大量的計算時間,實現(xiàn)了貨物采購及拼裝運輸方案的優(yōu)化,降低了分散貨物采購-運輸過程的物流成本,提高了集團化公司的聯(lián)盟經(jīng)營效益。該方法不僅可以應(yīng)用于原油的優(yōu)化采購及遠(yuǎn)洋船運,也可以應(yīng)用于其他貨物的優(yōu)化采購及陸地車運,在此不再贅述。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程 和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。術(shù)語“上”、“下”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具 體情況理解上述術(shù)語在本發(fā)明中的具體含義。本發(fā)明的說明書中,說明了大量具體細(xì)節(jié)。然而能夠理解的是,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本發(fā)明公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋呈反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當(dāng)中。當(dāng)前第1頁12