專利名稱:高效能資源分配方法和裝置的制作方法
本發(fā)明涉及利用卡馬卡爾(Karmarkar)算法在大量的資源使用者之間分配資源的系統(tǒng),更具體地說,是涉及在這種分配問題的線性規(guī)劃模型中使用自由(無約束)變量來改進(jìn)卡馬卡爾算法的速度和效能。
在一個廣闊的技術(shù)和工業(yè)領(lǐng)域中需要作出資源分配決策。例如,在電話傳輸系統(tǒng)中傳輸設(shè)備的分配,對一個工廠的產(chǎn)品構(gòu)成的控制。工業(yè)設(shè)備的布署,倉庫存貨的控制,以及其他方面。在本文中,“資源分配”一詞通常指為了產(chǎn)生特定的技術(shù)或工業(yè)效果去布置具體的技術(shù)或工業(yè)資源。
資源分配決策通常受到分配過程中的各種約束。資源的總體利用率總是有限的,而且某一具體資源在某種具體應(yīng)用中的適用性也可能是有限的。例如,在一個遠(yuǎn)程通訊系統(tǒng)中每一個單個鏈路的傳輸載荷能力是有限的,而對該通訊系統(tǒng)提供的總傳輸量也是有限的。每一種具體的資源分配方法都伴有相應(yīng)的“報酬”,即這種布局的費用,或者分配效益(例如利潤)。于是,這個問題就是如何分配資源以滿足全部約束條件,并且同時使得到的報酬為最大,即達(dá)到最低費用或最大利益。
表述這種分配決策問題的方法之一稱之為線性規(guī)劃模型。這種模型由表示分配、約束和報酬之間定量關(guān)系的許多線性表達(dá)式組成。如果一個表達(dá)式是常系數(shù)乘以未知分配值之和,就稱它為線性表達(dá)式。當(dāng)然,許多資源分配問題不能表示成這類線性表達(dá)式,而是在那些關(guān)系式中涉及未知量的高次冪或其他非線性關(guān)系,因此不適用線性規(guī)劃方法。
應(yīng)當(dāng)指出,上面討論的資源分配問題是在實際物理系統(tǒng)中產(chǎn)生的實際物理問題。盡管線性規(guī)劃模型確實能表達(dá)物理問題的重要的定量方面,但該模型的目的在于提供一組最佳值,然后將它們用于物理世界,去構(gòu)成或運轉(zhuǎn)一個物理系統(tǒng)。線性規(guī)劃模型的典型應(yīng)用是設(shè)計電話系統(tǒng)、編制航班時刻表、或控制石油化學(xué)的處理過程。
線性規(guī)劃問題的可實現(xiàn)解常常是根據(jù)對問題的約束條件被模型化為一個多維幾何體-一個多面體,它的表面由上千個多邊平面或者說“多邊形”構(gòu)成。這個多面體(其技術(shù)名詞是“polytope”(多面體)是問題的約束條件的有組織的表現(xiàn)形式。
為了在一個線性規(guī)劃問題的許多可實現(xiàn)解當(dāng)中找出一個最佳解,需要應(yīng)用某種算法或者叫做處理程序。這種處理過程沿著多面體表面或多面體內(nèi)部從點到點的假想線或路徑進(jìn)行。這樣點到點的每一步稱為一次迭代。每一步(或者說每次迭代)依次由考慮許多相關(guān)聯(lián)的約束條件和變量的方程式的處理過程所組成。
很早就已經(jīng)知道,任何線性規(guī)劃問題的最佳解必須在多面體的一個頂點上。因此,確定最佳解的成功算法或過程所遵循的路徑最終要終止于最佳頂點上。這種算法的運算速度部分地依賴于迭式步數(shù),也部分地依賴于每一步的復(fù)雜程度。
解決物理布局問題的線性規(guī)劃模型的一種新方法稱作Karmarkar算法,在N.K.Karmarkar的文章”線性規(guī)劃的一種新的多項式-時間算法“中描述過(Combinatorica 4(4),pp.373-395,1984)。以往的單純形法是在約束多面體表面上從頂點到頂點進(jìn)行。與此不同的是,卡馬卡爾算法從約束多面體的內(nèi)部出發(fā),沿徑向步進(jìn)到最佳頂點。在卡馬卡爾算法的每次迭代中,多面體空間要重新標(biāo)度,以使分配的當(dāng)前值落在多面體的中心,由于依次進(jìn)行的每一步都具有徑向性,為達(dá)到最佳頂點所需步數(shù)便少得多,因此卡馬卡爾算法能夠比單純形法快得多,特別是對于較大型的問題更是如此。
使用卡馬卡爾算法時的一個問題在于尋找起始點。這個起始點必須代表該模型的一個可實現(xiàn)解,即是嚴(yán)格地處在多維的約束多面體內(nèi)部空間的一個點。盡管有許多已知的方法可以找出一個起始點,但從計算的角度看,這些方法中沒有一個是特別有效的。
使用卡馬卡爾算法時的另一個問題出在采用所謂對偶模型法去求解線性規(guī)劃問題。對于每一個表述為標(biāo)準(zhǔn)形式的線性規(guī)劃模型(原初模型),必須使一個目標(biāo)函數(shù)極小化,并且同時要滿足對問題的全部約束。這個模型可以重新書寫成要求在不同的但與之相關(guān)的約束下使另一個不同的但與之相關(guān)的目標(biāo)函數(shù)極大化。已經(jīng)知道,對于這個重寫模型(稱作對偶模型)的解在靈敏度分析中特別有用,即用于確定問題中參數(shù)的變化對于最佳解的影響。再有,原初模型和對偶模型從相反方向達(dá)到一個最佳解。終止計算的一個通用準(zhǔn)則是當(dāng)原生布局值和對偶布局值彼此之差落在某一任意小值之內(nèi)時便停止運算。
盡管對偶模型算法對線性規(guī)劃問題的求解提供了一個精致的終止準(zhǔn)則和特別有用的靈敏度信息,但它也使所需的計算量加倍,因為原初模型和對偶模型必須同時求解。
根據(jù)本文說明的本發(fā)明的具體實施方案,對卡馬卡爾算法進(jìn)行了修正,使之能夠處理自由的或者說無約束的變量??R卡爾算法的先前的典型形式是處理那些其值受到數(shù)值邊界約束的變量。這些數(shù)值邊界通常在正數(shù)域中,因為被模型化的物理問題要施加相應(yīng)的物理約束。通過調(diào)整卡馬卡爾算法,使之處理自由變量,從而使求解某些附屬問題變得簡單得多,減少了所需計算的時間和復(fù)雜程度。
更具體地說,能夠處理自由變量的修正的卡馬卡爾算法提供了一個有效的計算方法,用以確定使用卡馬卡爾主算法時所需的一個嚴(yán)格可實現(xiàn)的起始點。由于確定這種起始點是使用卡馬卡爾算法的一個重要的初始步驟,所以本發(fā)明的方法和裝置為線性規(guī)劃模型提供了一個快得多的總體解法。
再有,能夠處理自由變量的修正的卡馬卡爾算法為求解對偶線性規(guī)劃模型提供了一個計算上有效算法,從而為線性規(guī)劃模型提供了一個快得多的對偶解。
從最一般的意義上說,本發(fā)明的計算效能來自對約束矩陣適當(dāng)?shù)胤纸獬捎屑s束變量和無約束變量,從而保證每一迭式步驟中必須求其逆矩陣的那些矩陣相對較少和(或)稀疏。由于大量計算時間系于這些矩陣求逆,因此在這種矩陣求逆過程中計算時間的任何顯著削減都會造成運行時間的顯著改進(jìn),從而顯著減少應(yīng)用卡馬卡爾算法的費用。
圖1是在線性規(guī)劃模型中確定最佳資源布局的卡馬卡爾算法的圖形表示。
圖2是求解線性規(guī)劃模型的卡馬卡爾算法的一般流程圖。
圖3是根據(jù)本發(fā)明引入自由變量的修正的卡馬卡爾算法流程圖。
圖4是根據(jù)本發(fā)明修正的卡馬卡爾算法流程圖。本修正算法為求解線性規(guī)劃模型提供了一個更有效的起步(起始點)算法。
圖5是根據(jù)本發(fā)明修正的卡馬卡爾算法流程圖。該修正算法為求解線性規(guī)劃模型提供了一個更有效的對偶算法。
圖6是利用圖3、4或5的方法來控制資源布局的一個資源布局系統(tǒng)的方框圖。
首先將討論對線性規(guī)劃模型構(gòu)成最佳資源分配的最新可以利用的卡馬卡爾算法,然后再提出為處理自由變量所需要的對卡馬卡爾算法的修正。
在著手對卡馬卡爾算法作正式的數(shù)學(xué)陳述之前,有必要對算法的圖形表示作一簡要描述。請參考圖1,它給出一個凸的多維的多面體50,這個圖形以圖形表示一個線性規(guī)劃模型的全部約束之和。圖1中多面體50的每一個子面是一個局部平面,代表一個線性約束。約束的數(shù)目至少是子面的數(shù)目,而未知數(shù)的數(shù)目相應(yīng)于多面體50所在空間的維數(shù)。圖1中只表示出3維,這是由于人的感覺本身的固有限制。然而在實際的線性規(guī)劃模型中的維數(shù)(變量數(shù))可以達(dá)到幾百、幾千甚至幾百萬。
根據(jù)卡氏算法(在N.K.卡馬卡爾的待審查專利申請中披露過并提出了權(quán)項要求,其序號是725,342,申請日為1985年4月19日,并轉(zhuǎn)讓給了申請者的受讓人),在多面體50內(nèi)部選一起始點51。大家知道,在多面體50內(nèi)部和表面的所有點都代表這個線性規(guī)劃模型的可實現(xiàn)解。大家也知道,在不發(fā)生退化的情況下,最佳解位于多面體50的一個頂點,例如頂點53??ㄊ纤惴ㄑ貜较蜻M(jìn)行,完全在多面體內(nèi)部,按步52,55,56,…到接續(xù)點54等等,每一步更接近于最佳點53。由于卡氏算法在多面體50的內(nèi)部沿徑向進(jìn)行。而不是象單純形法那樣從一個頂點到另一個頂點在多面體周圍的表面上進(jìn)行,因此它的固有特點是快得多,因為它需要的步驟少得多,對于較大的模型更是如此。卡氏算法在多面體內(nèi)部沿著費用梯度減小的方向步進(jìn)。再有,卡氏算法涉及對多面體空間的重新標(biāo)度,使依次得到的點到多面體50的所有子面沿軌跡或路徑的距離等值化或者說中心化,從而使費用梯度沿多面體的所有各維通通歸一化。
線性規(guī)劃模型的正式陳述的形式是使用一個目標(biāo)函數(shù)(它將達(dá)到極大或極小)和一組約束關(guān)系(它代表對可以接受的分配施加的物理約束)。這些約束相應(yīng)于并盡可能精確地代表該物理系統(tǒng)中存在的實際物理約束。利用標(biāo)準(zhǔn)的矢量符號,一個典型的線性規(guī)劃模型表示如下尋找一個長度為n的矢量x,使C·X達(dá)到極小并滿足 AX=b (1)和 X≥0這里C=(C1,C2,…,Cn)是一個費用系數(shù)矢量。運算“·”代表矢量點乘,X=(X1,X2,…,Xn)是一個布局值矢量,n是這種布局值的數(shù)目,A=(a11,a12,…,aij,…,amn)是約束系數(shù)m×n矩陣,b=(b1,b2,…,bm)是m個約束限界構(gòu)成的矢量。
在線性規(guī)劃模型的標(biāo)準(zhǔn)卡氏形式中,x的分量值(布局值)被限定為非負(fù)值,但如下文將討論的,也可能有其他限制。通過簡單的代數(shù)處理,所有目標(biāo)函數(shù)和所有約束關(guān)系都可以化成這種形式。例如,可以通過在約束矩陣中增加人為的“剩余”變量,將“大于或等于”約束變換成“等式”約束。類似地,通過增加人為的“松馳”變量,可將“小于或等于”約束變成“等式”約束。這些作法在已有技術(shù)中都是眾所周知的。
利用高度緊湊的矢量符號,可將卡氏算法概括如下。在迭代過程的每一步,該算法計算出一個對偶矢量ω。這個矢量與單純形法產(chǎn)生的的用于靈敏度分析的對偶變量矢量完全相似。按照卡氏算法,矢量ω按下列公式重新標(biāo)度ω=(AD2XAT)-1AD2XC. (2)到下一組布局值的跨步方向z由下式給出z=D2X(C-ATω) (3)這里,方程式(2)和(3)中的D是當(dāng)前布局值對角矩陣。
利用ω和z之值,可定義兩個終止變量r=max zi/xi(4)和δ=min zi/x21(5)這里r可以稱作“補(bǔ)償松馳系數(shù)”,δ可稱作“對偶可行性系數(shù)”。
如果M定義為xi的最大值,則可定義一個試探操作終止準(zhǔn)則如下如果r+Mδ<(ε/n)(1C·X1+1) (6)則終止,這里ε是任意小誤差量度,n是變量X數(shù)目。如果不等式(6)不滿足,則從當(dāng)前布局x沿方向z跨一步,得到一個新的布局,即X←X-αZ/r (7)這里0<α<1是一個固定值,很象卡氏定義的值。利用新布局值,算法要求返回等式(2)并繼續(xù)迭代,直至滿足不等式(6)為止。一旦(6)式滿足,則原生目標(biāo)函數(shù)值由(c·x)給出,而對偶目標(biāo)函數(shù)值由(ω·b)給出。如果問題要求一個極大化模型,那么跨步方向z是負(fù)的。如果下限是非零值,則x由(x-1)代替,這里1是下限。如果上限u是有限值,則x由(u-x)替換。
卡氏算法的這個表達(dá)式的流程示于圖件中的圖2。如圖2所示,首先需要對方框100中的線性模型公式化。然后選出一個嚴(yán)格可實現(xiàn)的起始點x,并把它作為虛線方框103中的迭式過程的起始點。后面將討論選擇嚴(yán)格可實現(xiàn)的起始點的技術(shù)。圖2中其余包含在虛框103中的部分是卡氏算法的迭代部分。
圖2中的迭代過程103由下列各步驟構(gòu)成。當(dāng)給定一個嚴(yán)格可實現(xiàn)布局x各分量后,1)在方框104中,重新標(biāo)度多面體空間,以把對偶變量n放在多面體中心,從而按方程(2)將費用梯度在所有各維上歸一化;
2)在方框105中,根據(jù)方程(3)計算費用(目標(biāo))函數(shù)的最速下降方向;
3)在方框106中,根據(jù)方程(4)計算補(bǔ)償松馳系數(shù);
4)在方框107中,根據(jù)方程(5)計算對偶可行性系數(shù);
5)在決策方框108中,根據(jù)終止準(zhǔn)則不等式(6)檢驗變量的當(dāng)前值;
6)如果在決策方框108中滿足終止準(zhǔn)則,則終止在方框110中;
7)如果在決策方框108中不滿足終止準(zhǔn)則,則在方框111中根據(jù)公式(7)沿目標(biāo)函數(shù)的負(fù)梯度方向跨步,置新分配值作為當(dāng)前值,重新進(jìn)入方框104。
接下來,我們將對上面描述的基本的卡氏算法(圖2)加以修正,以便能處理自由的或者說無界的變量,而不是只處理限制為正值的變量。這里描述的應(yīng)用自由變量解的具體方法能夠應(yīng)用于一般的線性規(guī)劃模型。然而,它的特別有用之處在于導(dǎo)出使用起步和對偶算法模型時所需要的極其簡單和有效的公式。起步模型用于找出嚴(yán)格可實現(xiàn)的起始點,即該點處在多面體50(圖1)的內(nèi)部。根據(jù)本發(fā)明,利用下面導(dǎo)出的自由變量式卡氏算法,這種起步模型能被大大簡化。
原始的卡氏算法會遇到數(shù)值計算問題,因為它難于從一次迭代到下一次迭代時保持AX=b關(guān)系式。根據(jù)本發(fā)明,通過求解對偶問題而不是求解原生問題,從而使這個問題得以克服。再根據(jù)本發(fā)明,對線性規(guī)劃問題的對偶解法也能用下面導(dǎo)出的自由變量式卡氏算法給以極大的簡化。
為了根據(jù)本發(fā)明導(dǎo)出自由變量式卡氏算法,首先需要對線性規(guī)劃模型重新加以表述,以便把變量分成有約束的和無約束(自由)的子集極小化〔CACF〕·〔xy〕 (10)使?jié)M足 〔AF〕〔xy〕=b1≤x≤uy是自由的這里l和u分別是變量x的下限與上限,y的分量是自由的(無界的)。
為了根據(jù)本發(fā)明導(dǎo)出自由變量算法,假定y具有有限的下界與上界。然后有可能在這些邊界趨于無限時取掉這些限制。這些假定和處理過程就是如下的算法方程(3)中的跨步方向Z被分成兩部分,一部分是自由的,另一部分是有約束的
所得到的修正成能處理自由變量的算法可表示成如下形式zF=(FTBF)-1(CF-FTBAD2XCA) (11)ω=BAD2XC+BFzF(12)zα=D2X(CA-ATω) (13)這里B=(AD2XAT)-1。當(dāng)不存在自由變量時,表達(dá)式(12)中的第一項與方程式(2)完全相同。對于自由變量y,方程(4)、(5)和(6)中的終止變量可調(diào)整成下式r=max〔(zA)i/(xi-li)V-(zA)i/(ui-xi)〕 (14)δ=-min〔(zA)i/(xi-li)2∧-(zA)i/(ui-xi)2〕 (15)M=max(xi-li)(ui-xi) (16)于是,終止判據(jù)由下式給出。如果r+Mδ<(θ/n)(|CAx+CFy|+1) (17)則終止。如果不等式(17)不滿足,則利用下列關(guān)系從舊布局中導(dǎo)出新布局x←x-αZA/r (18)y←y-αZF/r (19)并繼續(xù)處理過程。
這種修正的卡氏算法流程示于圖件中的圖3。如圖3所示,首先應(yīng)在方框130中構(gòu)造出線性規(guī)劃模型的自由變量的型式。然后選出一個嚴(yán)格可實現(xiàn)的起始點x,作為虛框137中的迭代過程的起始點。圖3中其余的包含在虛框137中的部分是根據(jù)自由變量式卡氏算法進(jìn)行的迭代過程。
圖3中的迭代過程137由下述各步驟構(gòu)成。在給出了嚴(yán)格可實現(xiàn)迭代起始點x的各分量之后,1)在方框131中,重新標(biāo)度多面體空間,以把對偶變量ω置于多面體中心,從而按公式(11),(12)和(13)將費用梯度在所有各維上歸一化,并計算出跨步方向;
2)在方框132中,根據(jù)方程(14)計算補(bǔ)償松馳系數(shù);
3)在方框133中,根據(jù)方程(15)計算對偶的可行性系數(shù);
4)在方框134中,根據(jù)終止判據(jù)不等式(17)檢驗變量的當(dāng)前值;
5)如果在決策方框134中滿足終止判據(jù),則終止在方框135中;
6)如果在決策方框134中不滿足終止判據(jù),則在方框136中根據(jù)方程(18)和(19)沿目標(biāo)函數(shù)負(fù)梯度方向跨步,置新布局值為當(dāng)前值并重新進(jìn)入方框131。
上面導(dǎo)出的修正的卡氏算法引出一個特別有效的起步算法以尋找出初始起點(或指出模型的不可行性)。下面將根據(jù)本發(fā)明導(dǎo)出起步算法。
利用自由變量形式,起步模型可以表述為極小化y使?jié)M足〔Ap〕〔xy〕=b1≤x≤u (20)
y是自由的這里的約束矩陣自由變量殘差p由公式p=b-Aξ給出,其中ξ滿足1<ξ<u。
首先應(yīng)該指出,〔ξ1〕是模型(20)的一個可實現(xiàn)解。還要注意到,如果〔x0〕是模型(20)的一個可實現(xiàn)解,那么Ax=b,x值是線性規(guī)劃主模型的一個嚴(yán)格可實現(xiàn)解。因此,這個x值是圖2所示主算法的一個適當(dāng)?shù)钠鹗键c。所以,算法上的策略是從y=1開始,并在每一次迭代中試圖驅(qū)使y趨向零值。這樣造成的跨步方向由下式給出
利用方程(14)和(15)計算出終止參數(shù)r和δ之后,下一步則涉及兩種可能性。首先,如果r<1,則采取一步使y嚴(yán)格達(dá)到零,即x←x-z (22)然后終止,并采用x的相應(yīng)值作為起始值。另一方面,如果r>1,則取通常的跨步x←x-αz/r (23)并返回方程(21)。在每次迭代開始,重新計算殘差ρ,因此每次迭代是試圖迫使y從1變成零。
以自由變量算法為基礎(chǔ)的起步算法可概括如下
ρ=b-Ax (24)z=-D2XATBρ (25)r=max〔zi/(ri-li)V-zi/(ui-xi)〕 (26)δ=-min〔zi/(xi-li)2∧-zi/(ui-xi)2〕 (27)M=max〔(xi-li)∧(ui-xi)〕 (28)如果 r+Mδ<ε/n (29)則止步(該模型無可實現(xiàn)解)。如果r<1則x←x-z (30)并止步,以x作為起始值;否則,置x←x-αz/r (31)并返回方程(24)。
從方程(24)至(31)所概括的初態(tài)算法的總流程圖示于圖件中的圖4。參照圖4,在方框120中將起步模型構(gòu)成標(biāo)準(zhǔn)形式。在方框122中設(shè)定x和y的初值,即x=ε,y=1。虛框134代表該算法的迭代部分,它涉及如下步驟1)根據(jù)方程(24),在方框123中計算無約束殘差ρ之值;
2)根據(jù)方程(25),在決策方框124中計算y的梯度方向;
3)根據(jù)方程(26),在方框125中計算補(bǔ)償松馳系數(shù);
4)根據(jù)方程(27),在方框127中計算對偶可行性系數(shù);
5)在決策方框127中測試是否滿足終止準(zhǔn)則不等式(29);
6)如果在決策方框127中測試條件得到滿足,則該線性規(guī)劃模型無可實現(xiàn)解(方框128);在方框141中停止本處理過程;
7)如果決策方框127中的測試條件不滿足,則在決策方框129中檢驗補(bǔ)償松馳系數(shù)值;
8)如果在決策方框129中補(bǔ)償松馳系數(shù)小于單位1,則在方框139中根據(jù)方程(30)給定當(dāng)前迭代過程的可實現(xiàn)初始值,并在方框132中終止;
9)如果在決策方框129中的補(bǔ)償松馳系數(shù)等于或大于單位1,則在方框138中根據(jù)方程(31)設(shè)定下一次迭代值,并返回方框122。
與任何用于尋找初始可實現(xiàn)解以啟動卡氏算法的其他方法相比,上面描述的初態(tài)算法在應(yīng)用上要簡單得多,在運算上要快得多。因此,將它與卡氏算法結(jié)合起來以減少資源分配過程所需的總時間是很有好處的。
在描述了如何應(yīng)用自由變量解作為高效求解起步模型的起始點之后,將采取類似步驟導(dǎo)出對于對偶模型的極其有效的解法。就是說,對偶模型的類似的自由變量形式使用簡單而且求解速度快。為簡單起見,這里考慮一個簡化的模型上限是無限的,而下限為零。這將使解釋大大簡化。可以直接把這里說明的方法推廣到一般情況。
利用上面引入的符號,簡化的對偶模型可以表述成極大化b·ω (32)使?jié)M足ATω≤Cω是自由的將對偶變量分成約束的和無約束的兩個子集,上述對偶模型可重寫成極大化〔b0〕·〔ων〕 (33)
使?jié)M足〔ATI〕〔ων〕=cω是自由的ν>0利用對偶模型的這種表述形式,令
表示跨步方向的分解,令ω和ν代表對偶變量的等價分塊。于是,利用自由變量算法的方程(11)至(19),第二階段對偶算法由下列各式給出Zω=-(AD-2vAT)-1b (34)x=-D-2νATZω(35)Zν=+D2νx=-ATZω(36)r=max〔(Zν)i/νi〕 (37)δ=-min〔(Zν)i/ν2i〕 (38)M=max νi(39)如果r+Mδ<(ε/n)(|b·ω|+1),(40)則停止。如果不等式(40)不滿足,則重置對偶變量ω←ω-αZω/δ (41)ν←ν-αZν/δ (42)并返回方程(34)。
上面描述的對偶算法的流程示于圖件中的圖5。在圖5中,首先需要在方框150中將線性規(guī)劃模型寫成其對偶形式。然后選定一個嚴(yán)格可實現(xiàn)的起始點。圖5中其余的包含在虛框158中的部分是按照本發(fā)明設(shè)計的對偶算法的迭代部分。
圖5中的迭代過程158由以下各步驟組成。給出一個嚴(yán)格可實現(xiàn)的迭代起始點x的各分量后,1)在方框152中,重新標(biāo)度當(dāng)前的分配空間,以便使當(dāng)前的分配處在與所有約束等距離位置上,然后計算下一跨步的方向。這些都是根據(jù)方程(34),(35)和(36)進(jìn)行的;
2)在方框153中,根據(jù)方程(37)計算補(bǔ)償松馳系數(shù);
3)在方框154中,根據(jù)方程(38)計算對偶可行性系數(shù);
4)在決策方框155中,根據(jù)不等式(40)測試當(dāng)前的分配情況;
5)如果在決策方框155中的終止準(zhǔn)則滿足了,則采用當(dāng)前迭代的最佳解參數(shù),并在方框156中終止;
6)如果在決策方框155中的終止準(zhǔn)則不滿足,則根據(jù)方程(41)和(42)進(jìn)行下一個迭代步驟。
上述對偶模型算法收斂很快,因為它能采取比未修正的卡氏算法大得多的步長。之所以可能采取較大長長,又是因為由本發(fā)明引入了數(shù)值計算穩(wěn)定性。更具體地說,這種數(shù)值穩(wěn)定性是由于在每一次迭代中都重新計算松馳變量。除了這種穩(wěn)定性之外,本發(fā)明還使資源分配的收斂比未修正的卡氏算法快得多。最后,自由變量修正算法也對求解混合整數(shù)問題很重要,在這類問題中某些變量被限定只能取整數(shù)值。
圖6給出一個控制過程80的過程控制系統(tǒng)。過程80可以是一個電話通訊系統(tǒng)、一個生產(chǎn)過程、一個航運過程、或任何其他需要最佳化的過程。費用寄存器在入口82接收費用數(shù)據(jù),這些數(shù)據(jù)代表受控系統(tǒng)80中各種可能資源布局方案的單位費用。費用數(shù)據(jù)可以從計算機(jī)終端進(jìn)入寄存器81,或者從動態(tài)確定這些費用的單獨過程進(jìn)入寄存器81。盡管這些費用數(shù)據(jù)通常變化較慢,但系統(tǒng)中有能力在必要時通過輸入口80時來更新這些數(shù)據(jù)。如果解的值有非零極限(方程(10)中的1和u),則如同費用數(shù)據(jù)那樣,必須通過與寄存器81類似的數(shù)據(jù)輸入寄存器向LP(線性規(guī)劃)控制器提供這些數(shù)據(jù)。
類似地,界限寄存器83用于存貯有關(guān)每一個具體的資源分配的全部物理限制數(shù)據(jù)。這些限界值也是相對穩(wěn)定的,可以從計算機(jī)終端或從單獨的確定限界值的處理過程經(jīng)由輸入口84送入。寄存器81和83的輸出應(yīng)用于線性規(guī)劃(LP)控制器85,它進(jìn)行如圖3、4或5所示流程圖描述的處理過程。在所推薦的具體實施方案中,LP控制器85是一個程序控制的數(shù)字計算機(jī),它貯存了執(zhí)行圖3、4或5所示流程圖的程序??刂破?5也可以由設(shè)計成可以執(zhí)行圖3、4或5的過程的一組硬件電路組成;也可以是一組并行的處理器,以利用平行執(zhí)行過程的各種可能性;還可以是為此目的編好程序的一組程序化的線性陣列。
一組約束傳感器86,87,…,88用于動態(tài)地獲得約束關(guān)系中的約束系數(shù)。約束傳感器86-88連續(xù)地對受控過程80的環(huán)境變化作出反應(yīng),這些變化影響約束關(guān)系,因此必須跟蹤這些變化以便控制過程80。約束傳感器86-88中的每一個都有相應(yīng)的變化。(△)檢測器89,90,…,91,它們獲得各自的傳感器86-88的輸出量的變化。來自檢測器89-91中每一個的變化指示信號加到變化總線92,于是加到與(AND)門93。來自LP控制器的一個信號也經(jīng)入口94加到與門93上,它用于指出過程執(zhí)行的結(jié)束。傳感器86-88的輸出通過檢測器89-91分別到控制器85。
在運行過程中,控制器85把傳感器86-88的輸出作為方程(10)、(20)或(32)的約束矩陣的系數(shù)。寄存器81中的費用數(shù)據(jù)用作方程(10)、(20)或(32)的的費用矢量(c),寄存器83中的限界數(shù)據(jù)用作方程(10)、(20)或(32)中的限界矢量(b)。得到這些輸入值后,LP控制器85便能夠完成圖3、4或5所示過程并向控制寄存器95,96,…,97提供數(shù)值解(x)。寄存器95-97中的值再用于控制過程80。
由于圖6中的LP控制器利用圖3、4或5所示的特別快的過程,所以寄存器95-97在很短的時間內(nèi)可獲得控制值。再有,當(dāng)約束發(fā)生變化時,這些變化由傳感器86-88感知,由檢測器89-91來檢測,并用于部分地啟動與門93。當(dāng)圖3、4或5所示過程完成后,LP控制器85產(chǎn)生控制信號并將它們送到寄存器95-97。同時,LP控制器85產(chǎn)生一個啟動信號經(jīng)端口94送入與門93,完成對與門93的啟動。然后,全部過程重復(fù)進(jìn)行。
基于問題的復(fù)雜性(由傳感器86-88感知的約束的數(shù)目)和過程80的穩(wěn)定性,有可能用本方法不同程度地連續(xù)控制過程80。如果由傳感器86-88感知的環(huán)境因素變化速率等于或小于LP控制器85的運行速率,則過程80確實能被連續(xù)地控制。更高的環(huán)境變化速率將在控制過程中引入不連續(xù)控制,但平均而言,仍能允許過程80接近于最佳運行狀態(tài)。的確,如果給出環(huán)境變化的某些歷史數(shù)據(jù),可以在檢測器89-91中建立某種預(yù)測機(jī)制,從而預(yù)測傳感器86-88輸出的特征變化方向和幅度。
在貝爾系統(tǒng)技術(shù)雜志(The Bell System Technical Journal)第60卷第8期(1981年10月)中的兩篇文章里描述了能夠應(yīng)用本發(fā)明的遠(yuǎn)程通訊領(lǐng)域的一個典型問題。第一篇文章題為“動態(tài)路徑網(wǎng)絡(luò)的設(shè)計與最優(yōu)化”(第1787頁),作者是G.R.艾什(Ash)等人,該文描述了一般電話通訊路徑問題。而G.R艾什等人寫的另一篇文章(第1821頁),題為“對動態(tài)路徑網(wǎng)絡(luò)的實時控制”,描述了一個附帶的問題,即如何使由于錯誤地預(yù)測通訊負(fù)載所造成的間散傳輸能力減到最小。
其他能夠從這里描述的新處理過程獲益的問題有工業(yè)過程控制,為消費者提供服務(wù)的人員配備,構(gòu)成商業(yè)產(chǎn)品的配料的合成,石油精煉產(chǎn)品的混合,計算機(jī)資源對大量用戶的分配,以及其他多種問題。每種情況下,費用(或利益)系數(shù)必須要測定或者確定,還必須建立約束限,并要測定或確定所有決策變量對這些約束的貢獻(xiàn)。在每種情況下,執(zhí)行過程的結(jié)果是指定一組控制參數(shù),當(dāng)把這些參數(shù)應(yīng)用于實際情況時將會產(chǎn)生最佳過程或設(shè)備。
應(yīng)該指出,大多數(shù)實際線性規(guī)劃模型所涉及的矩陣是稀疏矩陣,而稀疏矩陣技術(shù)也可以應(yīng)用于求解圖3、4和5中的搜索方向Z。
盡管本發(fā)明者已完成了對于求解線性規(guī)劃模型的卡氏算法的重要改進(jìn),但應(yīng)該理解,本發(fā)明的權(quán)項要求只涉及這些新改進(jìn)在布局方面的應(yīng)用這種布局確定在現(xiàn)實世界的技術(shù)與工業(yè)系統(tǒng)中的各個資源的最佳分配,這些系統(tǒng)本身可以用表征該類系統(tǒng)的變量與約束條件的線性表示來描述。也就是說,這種物理布局確定如何實際應(yīng)用資源,以使過程、機(jī)器、生產(chǎn)或物質(zhì)組成等的性能達(dá)到最佳。該新方法的所有其他應(yīng)用,如計算研究、算法研究、或線性代數(shù)研究活動,都不構(gòu)成本發(fā)明的組成部分。同樣,該新方法在非技術(shù)或非工業(yè)系統(tǒng)中的應(yīng)用也不構(gòu)成本發(fā)明的組成部分。
權(quán)利要求
1.將可以利用的工業(yè)設(shè)備在這些設(shè)備的用戶之間進(jìn)行分配從而使提供這些設(shè)備的總費用減到極小的一種方法,該方法由以下步驟構(gòu)成根據(jù)卡馬卡爾算法向那些用戶暫時地和反復(fù)地分配可利用的那些資源,以便在每次再分配中減小總費用,相對于所述的各種分配的約束條件將先前的分配方案歸一化,從而確定每次再分配方案,其特征是進(jìn)行這種再分配時,在假定所述約束中至少有一個值可以無限制增大的前提下,調(diào)整在先前分配方案中的變化方向(圖3中的130,131),當(dāng)所述總費用達(dá)到極小時,終止所述反復(fù)再分配的步驟(132,133,134,并且根據(jù)最小費用分配方案來分配所述設(shè)備(圖6中的80)。
2.根據(jù)權(quán)利要求
1的分配方法,其特征在于分配的最后一步是這樣進(jìn)行的利用權(quán)利要求
1中被確認(rèn)為最低費用的諸設(shè)備的設(shè)備分配方案作為所述設(shè)備再分配的初始設(shè)備分配方案,以便使各不相同的費用標(biāo)準(zhǔn)達(dá)到極小,并利用所述的不同費用標(biāo)準(zhǔn)重復(fù)權(quán)利要求
1中的步驟。
3.根據(jù)權(quán)利要求
1的分配方法,在所述的再分配過程中還包含以下步驟在每次迭代中重新指定費用極小(原初)分配和等效的所述設(shè)備利用率極大值的(對偶)分配。
4.最佳資源分配系統(tǒng)包括第一組可以為用戶利用的物理資源,第二組利用所述物理資源的用戶,將所述資源用戶分配到所述物理資源以使提供這些資源的費用為極小的裝置,該分配裝置包括在所述分配方案中試驗性地和反復(fù)地選出可實現(xiàn)的分配方案的裝置,它使得每次迭代中每一個所述可實現(xiàn)分配方案處在一個歸一化的、多維的、可實現(xiàn)解的凸空間內(nèi)部中心上,其特點在于所述迭代選擇裝置還進(jìn)一步包含這樣的裝置,它包括了在所述資源中至少有一個值可無限增大的假定的逐個選擇的結(jié)果(圖3),以及根據(jù)所述最后一個試驗性分配方案對所述物理資源進(jìn)行分配的裝置(圖6中的95-97,80)。
5.根據(jù)一個最優(yōu)化準(zhǔn)則使一個受控制過程的性能最優(yōu)化的一個系統(tǒng),該系統(tǒng)包括對一組控制信號作出反應(yīng)以控制所述過程的過程控制裝置,感知影響所述過程運轉(zhuǎn)的可變條件的一組傳感器,用于指定影響所述過程運轉(zhuǎn)的各種條件的一組數(shù)據(jù)輸入裝置,以及一個線性規(guī)劃控制器,它響應(yīng)所述傳感器和輸入裝置,以便根據(jù)卡氏算法向所述過程控制裝置提供一組最佳控制信號,其特點在于所述控制器包括在至少有一個無約束變量控制信號的假定下迭代式地逐個確認(rèn)試驗性的、嚴(yán)格可實現(xiàn)的控制信號組的裝置,以及沿著所述最佳準(zhǔn)則的歸一化形式的最陡梯度方向選擇下一組試驗性控制信號的裝置。
6.對于在一組用戶之間最佳分配資源的線性規(guī)劃方法的改進(jìn),其特點是在所述線性規(guī)劃模型中引入至少一個自由變量,只在嚴(yán)格可實現(xiàn)的分配方案中進(jìn)行迭代,根據(jù)對所述分配方案的約束對每一個嚴(yán)格可實現(xiàn)的分配歸一化。
7.一個可用在通用數(shù)字計算機(jī)上的線性規(guī)劃控制器,該控制器包括一個計算機(jī)程序存貯介質(zhì),其中存有計算機(jī)程序,供所述數(shù)字計算機(jī)執(zhí)行,該存貯介質(zhì)包括處理一組定義一個多維凸多面體的線性關(guān)系裝置,該多面體代表所述線性關(guān)系的一組可實現(xiàn)解,其特點是含有一個要最優(yōu)化的函數(shù)、根據(jù)至少有一個自由變量的修正的卡氏算法確認(rèn)所述多面體邊界上的點代表所述一組線性關(guān)系的最佳解的裝置。
8.在許多資源用戶之間分配工業(yè)或技術(shù)資源xi(i=1,n)的方法,它在約束條件Aijxi<bj和xi≥0(i=1,n;j=1,m)之下使費用函數(shù)
最優(yōu)化,該方法由下述步驟組成a)將所述資源分成約束子集x和無約束子集y;b)選擇滿足所述約束的初始分配xs和ys;其特點如下,c)根據(jù)公式ZF=(FTBF)-1(CF-FTBAD2XCA),確定迭代過程的下一次迭代中無約束部分ZF的方向,以接近于所述最佳費用,這里B=(AD2XAT)-1,DX=所述受控資源當(dāng)前分配的對角矩陣;d)根據(jù)公式ω=BAD2XCA+BFZF按所述對角矩陣DX對所述約束空間重新標(biāo)度;e)根據(jù)公式ZA=D2X(CA-ATω),對所述迭代過程的下一次迭代確定其受約束部分的方向ZA;f)由公式r=max〔(ZA)i/(xi-li)V-(ZA)i/(ui-xi)〕,確定所述當(dāng)前迭代的補(bǔ)償松馳系數(shù);g)由公式δ=-min〔(ZA)i/(xi-li)2∧-(ZA)i/(ui-xi)2〕,確定所述當(dāng)前迭代的對偶可行性系數(shù)δ;h)由公式r+Mδ<(e/n)(|CAx+CFy|+1)檢驗當(dāng)前迭代,這里M=max(xi-li)∧(ui-xi),和 e=一個任意小的誤差量度;i)如果步驟(h)中的檢驗不滿足,則采用新分配x←x-αZA/r,和 y←y-αZF/r,返回步驟(c),這里0≤α≤1;j)如果步驟(h)中的檢驗得到滿足,則根據(jù)當(dāng)前分配迭代值對所述資源進(jìn)行分配。
9.一個為卡氏算法確定初始點的方法,使在一組資源用戶之間分配工業(yè)或技術(shù)資源xi(i=1,n),在約束∑Aijxj=bi和xi≥0(i=1,n;j=1,m)之下使費用函數(shù)Ci·xi最優(yōu)化,該方法的特點是a)構(gòu)成起始點模型極小化y使?jié)M足〔A〕〔xy〕=b1≤x≤uy是自由的,這里y是無約束變量子集,ρ=b-Aξ,1<ξ<u;b)選擇初始分配x=ξ和y=1,c)根據(jù)公式ZF=-D2XATBρ確定迭代過程的下一次迭代的方向,以接近于所述最佳費用,這里B=(AD2XAT)-1,DX=所述受控資源當(dāng)前分配對角矩陣;d)根據(jù)公式r=max〔Zi/(xi-li)V-Zi/(ui-xi)〕確定所述當(dāng)前迭代的補(bǔ)償松馳系數(shù);e)由公式δ=-min〔Zi/(xi-li)2∧-Zi/(ui-xi)2,確定所述當(dāng)前迭代的對偶可行性系數(shù);f)由公式r+Mδ<(e/n)測試當(dāng)前迭代,這里M=max〔(xi-li)∧(ui-xi)〕,e=一個任意小的誤差量度;g)如果步驟(f)中的測試條件不滿足,而且如果r<1,則置x←x-z并返回步驟(b);h)如果步驟(f)中的測試條件不滿足,而且如果r≤1,則置x←x-αz/r,這里0≤α≤1,并返回步驟(b);i)如果步驟(f)中的測試條件得到滿足,則根據(jù)所述當(dāng)前分配迭代值來分配所述資源。
10.一個利用卡氏算法在一組資源用戶之間分配工業(yè)或技術(shù)資源xi(i=1,n)的方法,它在約束條件∑AijXj=b1和Xi≥0(i=1;n;j=1,m)之下使費用函數(shù)Ci·Xi最優(yōu)化,該方法的特點是a)構(gòu)成對偶模型極大化b·ω使?jié)M足ATω≤cω是自由的;b)將步驟(a)中的極大化部分分解如下極大化〔bo〕·〔ων〕使?jié)M足〔ATI〕〔ων〕=cω是自由的ν≥0,這里ν是無約束變量子集,I是單位矩陣;c)在為接近于所述最優(yōu)費用的一次迭代中,根據(jù)下列公式確定當(dāng)前迭代的中心化值和下一次迭化的方向Zω=-(AD-2vAT)-1b,ω=-D-2vATZωZν=+D2vx=-ATTZω,這里D=所述受約束資源的當(dāng)前分配情況下的對角矩陣;d)由公式r=max〔(Zv)i/νi〕確定所述當(dāng)前迭代的補(bǔ)償松馳系數(shù);e)由公式δ=-min〔Zν)i/ν2i〕確定所述當(dāng)前迭代的對偶可行性系數(shù);f)用不等式r+Mδ<(e/n)(|b·ω|+1)測試當(dāng)前迭代,這里M=max(νi),e=一個任意小的誤差度量;g)如果步驟(f)中的測試條件不滿足,則置ω←ω-αZω/rν←ν-αZν/r并返回步驟(b);h)如果步驟(f)中的測試條件得到滿足,則按當(dāng)前分配的迭代值來分配所述資源。
11.根據(jù)卡氏算法分配資源的一種方法,其特點是返復(fù)地從一個重新標(biāo)度的多面體內(nèi)部向該多面體的最佳值頂點跨步;當(dāng)r+Mδ< (e)/(n)時,則終止這個反復(fù)跨步過程,這里r=max(zi/xi),δ=-min(zi/x2i),M=max(xi),e=一個任意的誤差量度,n=分配變量的數(shù)目,xi=當(dāng)前資源分配的第i個分量,zi=下一跨步的方向的第i個分量;當(dāng)采取所述終止步驟時,按照所述當(dāng)前分配情況下所確定的值對所述資源進(jìn)行分配。
12.在實質(zhì)上是一種在最佳分配值的情況下終止卡氏算法迭代過程的方法,其特點是根據(jù)公式
確定補(bǔ)償松馳系數(shù)r,這里xi=當(dāng)前分配值的第i個分量,zi=在分配值x處目標(biāo)函數(shù)負(fù)梯度的第i個分量;根據(jù)公式
確定對偶可行性系數(shù)δ;當(dāng) r+Mδ< (e)/(n)時終止該迭代過程,這里M是X的最大分量之值,e是一個任意小誤差度量,n是X的分量數(shù)目。
13.以最佳方式應(yīng)用卡氏算法進(jìn)行資源分配的裝置,其特點是以迭代方式逼近于所述資源的最佳分配;當(dāng)補(bǔ)償松馳系數(shù)和對偶可行性系數(shù)的一個函數(shù)小于一個預(yù)先選定的誤差值時終止迭代逼近的裝置。
14.根據(jù)權(quán)利要求
13的裝置,其特點是所述補(bǔ)償松馳系數(shù)是所述迭代逼近過程的下一次迭代的方向分量與相應(yīng)的分配分量之比的最大值。
15.根據(jù)權(quán)利要求
13的裝置,其特點在于所述對偶可行性系數(shù)是所述迭代逼近過程下一次迭代的方向分量與相應(yīng)分配分量平方值之間的最小比值的負(fù)值。
專利摘要
用卡馬卡爾算法在解空間多面體內(nèi)求解的最佳資源布局方法和裝置。假定至少有一個布局變量值是無約束的,用當(dāng)前解點的一對角矩陣,對解點的近似值及多面體加以歸一化,使解點位于歸一化多面體中心。將目標(biāo)函數(shù)投影到該歸一化空間,在多面體內(nèi)沿目標(biāo)函數(shù)梯度最速下降方向跨出下一步,步長保持在多面體內(nèi),反復(fù)該過程直到很接近最佳解為止。所得算法步驟能方便地應(yīng)用于求起始點初態(tài)問題及對偶問題,其中自由變量假定產(chǎn)生了出乎預(yù)料的計算上的好處。
文檔編號G06Q10/00GK87102679SQ87102679
公開日1987年11月11日 申請日期1987年4月10日
發(fā)明者羅伯特·約瑟夫·萬德爾貝 申請人:美國電話電報公司導(dǎo)出引文BiBTeX, EndNote, RefMan