混合最優(yōu)求解的制作方法
【專利摘要】本發(fā)明涉及一種包括以下操作的用于在計算機(jī)化的多約束問題空間中選擇優(yōu)化的求解的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品:接收用于優(yōu)化的線性函數(shù);接收用于線性函數(shù)的約束集;使用線性編程求解器來確定用于線性函數(shù)和初始約束的第一最優(yōu)求解;除了初始約束之外還使用第一最優(yōu)求解來創(chuàng)建新約束集作為約束;通過向線性函數(shù)添加松弛變量的二次目標(biāo)來創(chuàng)建新二次函數(shù);以及使用二次編程求解器來確定對二次函數(shù)和新約束的求解。
【專利說明】混合最優(yōu)求解
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種用于混合最優(yōu)求解的方法和裝置。具體而言,本發(fā)明涉及一種用于混合最優(yōu)求解以便快速找到程序最優(yōu)求解的方法和裝置。
【背景技術(shù)】
[0002]線性編程(LP)和混合整數(shù)編程(MIP)是用于構(gòu)建優(yōu)化應(yīng)用的熟知技術(shù)。用線性方程(LP)近似優(yōu)化問題,這些LP有時具有整數(shù)值決定變量(MIP)。然后,模型(方程集由LP或者M(jìn)IP引擎、比如IBM Ilog CPLEX求解),其關(guān)于目標(biāo)輸出最優(yōu)求解(或者在MIP情況下的接近最優(yōu)求解)。IBM、CPLEX和Ilog是國際商業(yè)機(jī)器公司在美國和/或其他國家的商標(biāo)。
[0003]優(yōu)化引擎(例如LP和MIP引擎)可以提供如下求解,該求解即使它在數(shù)學(xué)上最優(yōu)、仍然具有不希望的特性。另外,求解引擎提出的求解是由引擎在所有可能求解之中任意地選擇的。一般而言,基于與求解的問題的語義無關(guān)的算術(shù)標(biāo)準(zhǔn)或者數(shù)學(xué)標(biāo)準(zhǔn)選擇求解。另夕卜,在LP情況下,并且在MIP情況下的更少測量中,求解一般為極限(在數(shù)學(xué)上是在數(shù)學(xué)搜索空間中的頂點),這意味著LP/MIP算法有利于使用決定變量的很小的子集的求解。對于一些變量,如果它們的值為零則它們“人為地未使用”,但是具有正值不會降低求解質(zhì)量,在數(shù)學(xué)上,它們“作為基礎(chǔ)(in base)、但是為空”。
[0004]現(xiàn)有技術(shù)解決混合已知求解的問題,但是沒有方案試圖發(fā)現(xiàn)在可行或者最優(yōu)空間的中間的求解以允許計算折衷求解而不是極限求解。
[0005]一個簡單解決方案存在于探索所有極限求解SI,S2,...,Sn,并且發(fā)現(xiàn)加權(quán)的求解之和除以權(quán)重。
[0006]這一簡單解決方案具有的缺點是,它在求平均中包括所有極限求解。所有這些求解需要被顯式地計算,這很耗費時間/CPU。極限求解也稱為頂點或者基礎(chǔ)求解。另外,由于潛在大量極限求解而需要一些時間計算它們。
[0007]使用Pareto最優(yōu)性的另一求解也使用所有求解SI, S2,...,Sn。這一求解使用相關(guān)個別求解的顯式(已知)列表以平衡和計算求解是一種更巧妙的方式。這可以節(jié)省一些計算時間、但是要求相關(guān)個別求解的列表已知。
[0008]描述【背景技術(shù)】。
[0009]名稱為“Methodfor optimizing a transformation scheme” 的美國專利公開文本2010/0287073 Al公開包括多個目標(biāo)、但是未公開混合多個最優(yōu)求解。
[0010]美國專利公開文本2009/0271230 Al 的名稱為 “Method and system for solvingstochastic linear programs with the condition value at risk constraints,,。這一隨機(jī)MIP方法關(guān)于風(fēng)險約束迭代地搜尋最優(yōu)性、但是沒有混合最優(yōu)求解方案。
[0011]名稱為 “Linear programming relaxation modification and cut selection in aMIP solution”的美國專利公開文本2011/0131167 Al將LP弛化(relaxation)和切割平面用于修剪搜索空間、但是沒有混合最優(yōu)求解。[0012]美國專利申請7346528 B 的名稱為 “Integrated decision support system foroptimizing the training and transition of airline pilots,,。自適應(yīng)、動態(tài)、集成和自動化優(yōu)化器系統(tǒng)包括混合整數(shù)編程模型的參數(shù),這些參數(shù)被更改以提供所述混合整數(shù)編程模型的多個備選求解。這一模型對多個求解進(jìn)行編程,但是通過模型參數(shù)更改,每個求解是不同MIP模型(不是唯一模型)的最優(yōu)求解。另外,未混合那些各種求解;僅向用戶原樣暴露它們。
[0013]美國專利公開文本2011/0202638-A1 的名稱為“Mixed integer programmingmodel for minimizing leased access network costs”。該申請公開應(yīng)用規(guī)則 MIP 算法以發(fā)現(xiàn)MIP問題的一個(僅有)求解。原創(chuàng)性在模型中而不是求解方案。優(yōu)化后步驟也沒有混合求解
[0014]美國專利公開文本2002/0156663-A1 的名稱為 “Shipping and transportationoptimization system and method”。這里,MIP模型由跟隨有局部搜索的連續(xù)LP求解。連續(xù)求解在兩種情況下不是最優(yōu)的(并且此外未被混合),并且算法在滿足暫停標(biāo)準(zhǔn)的第一求解停止。
[0015]美國專利公開文本2005/0265359-A1 的名稱為 “Optimizing switch portassignments”。這是一種由兩種方法求解的二次MIP模型:1)具有分支和限界的經(jīng)典QP、2) 二次項的IP近似。在這一公開文本中無最優(yōu)求解混合。
[0016]需要一種避免顯式計算所有極限求解、因此避免在這一搜索空間中的不實際探索的解決方案。
[0017]需要一種需要更少處理時間的解決方案。
[0018]需要一種無需極限求解的外部知識的解決方案。
【發(fā)明內(nèi)容】
[0019]在本發(fā)明的第一方面中,提供一種用于在計算機(jī)化的多約束問題空間中選擇優(yōu)化的求解的方法,該方法包括:接收用于優(yōu)化的線性函數(shù);接收用于線性函數(shù)的約束集;使用線性編程求解器來確定用于線性函數(shù)和初始約束的第一最優(yōu)求解;除了初始約束之外還使用第一最優(yōu)求解來創(chuàng)建新約束集作為約束;通過向線性函數(shù)添加松弛變量(slackvariable)的二次目標(biāo)來創(chuàng)建新二次函數(shù);以及使用二次編程求解器來確定對二次函數(shù)和新約束的求解。
[0020]這一解決方案用通用折衷求解取代標(biāo)準(zhǔn)LP/MIP極限求解。該解決方案忽略用于發(fā)現(xiàn)均衡值的個別最優(yōu)求解、但是代之以使用與約束的距離以便發(fā)現(xiàn)在最優(yōu)空間“中間”的求解。現(xiàn)有技術(shù)解決混合已知求解的問題,但是沒有試圖發(fā)現(xiàn)在最優(yōu)空間“中間”的求解以允許計算折衷求解而不是極限求解的方案。
[0021]該解決方案賦予現(xiàn)實算法復(fù)雜性,因為無需在所有個別極限求解之中發(fā)現(xiàn)均衡值之前計算它們??梢允褂镁哂卸囗検綇?fù)雜性的簡單(Plain) 二次編程,其中目標(biāo)是正定的。
[0022]提出的方法和系統(tǒng)是通用的,并且可以是通用LP/MIP求解器的特征或者作為在用于控制設(shè)備的控制器中的專家LP求解器。
[0023]它也可以通過允許開發(fā)員、管理員或者用戶輸入用于每個約束的任意加權(quán)系數(shù)集來容易定制。[0024]該解決方案對于原始問題仍然是最優(yōu)的。均衡目標(biāo)未確保Pareto最優(yōu)性。它確保關(guān)于約束、但是未關(guān)于極限(頂點)求解的某個均衡值。對任何優(yōu)化問題的折衷求解比極限求解更健壯,因為在最優(yōu)空間中間最小化由于約束改變所致的激進(jìn)求解移位改變。可以比對提出的二次成本測試輸出折衷求解。
[0025]二次函數(shù)是希望的求解與約束的二次距離(所謂“松弛”變量)。這一距離基于問題的不等式(inequality)約束中的松弛變量。
[0026]優(yōu)選地,松弛變量約束具有默認(rèn)權(quán)重集。松弛變量被加權(quán)、然后求平方,并且最終相加以便獲得優(yōu)化過程的第二階段的目標(biāo)。松弛變量的輸入成本是用于標(biāo)識本發(fā)明的指標(biāo)。備選地,松弛變量約束基于所述一個或者多個管理員或者用戶確定的成本系數(shù)。它被約束松弛的、用戶給定的成本加權(quán),這組合按照唯一和同構(gòu)測量單位(在目標(biāo)函數(shù)中先前使用的相同測量單位)的所有距離。通過使用對與約束的鄰近的成本進(jìn)行評估的、用戶給定的系數(shù)、因此具有按照測量單位的同構(gòu)距離度量來使距離在語義上有意義。
[0027]有利地,線性函數(shù)可以是整數(shù)函數(shù)。
[0028]根據(jù)本發(fā)明的第二方面,提供一種用于在計算機(jī)化的多約束問題空間中選擇一個或者多個優(yōu)化的值的方法,該方法包括:接收混合整數(shù)編程組件的第一輸入值集、線性編程組件的第二輸入值集和基于一個或者多個用戶確定的成本系數(shù)的平方松弛變量約束的成本加權(quán)集作為輸入;產(chǎn)生所述混合整數(shù)編程組件的第一輸出值集;產(chǎn)生所述線性編程組件的第二輸出值集;根據(jù)所述第一輸出值集和所述第二輸出值集創(chuàng)建受限制求解空間;以及通過施加以基于所述一個或者多個用戶確定的成本系數(shù)的所述平方松弛變量約束的成本加權(quán)集為基礎(chǔ)的又一限制,從所述受限制求解空間選擇優(yōu)化的值。
[0029]在本發(fā)明的第三方面中,提供如權(quán)利要求7描述的一種系統(tǒng)。
[0030]在本發(fā)明的第四方面中,提供如權(quán)利要求14描述的一種計算機(jī)程序產(chǎn)品。
[0031]在本發(fā)明的第五方面中,提供如權(quán)利要求15描述的一種計算機(jī)程序。
【專利附圖】
【附圖說明】
[0032]現(xiàn)在將參照附圖僅通過示例描述本發(fā)明的實施方式,在附圖中:
[0033]圖1是計算機(jī)系統(tǒng)中的傳統(tǒng)優(yōu)化器的部署圖;
[0034]圖2是根據(jù)一個優(yōu)選實施方式的優(yōu)化器的組件圖;
[0035]圖3是優(yōu)選實施方式的優(yōu)化方法的流程圖;
[0036]圖4A至4F是線性編程方法的代碼圖;
[0037]圖5是用于由本發(fā)明求解的生產(chǎn)規(guī)劃示例的生產(chǎn)率約束表;
[0038]圖6是用于示例的資源可用性約束表;
[0039]圖7是用于示例的需求約束表;
[0040]圖8是示出用于示例中所示某些數(shù)據(jù)類型的圖例的表;
[0041]圖9A是示出用于示例的預(yù)求解階段的生產(chǎn)日、未使用日和未使用日的平方之和的表圖;
[0042]圖9B是示出為用于示例的預(yù)求解階段而產(chǎn)生的數(shù)量的表圖;
[0043]圖9C是示出用于示例的預(yù)求解階段的可用數(shù)目;交付數(shù)目;未交付數(shù)目;庫存和總計的表圖;[0044]圖1OA是示出用于示例的線性求解階段的生產(chǎn)日、未使用日和未使用日的平方之和的表圖;
[0045]圖1OB是示出為用于示例的線性求解階段而產(chǎn)生的數(shù)量的表圖;
[0046]圖1OC是示出用于示例的線性求解階段的可用數(shù)目;交付數(shù)目;未交付數(shù)目;庫存和總計的表圖;
[0047]圖1lA是示出用于示例的二次求解階段的生產(chǎn)日、未使用日和未使用日的平方之和的表圖;
[0048]圖1lB是示出為用于示例的二次求解階段而產(chǎn)生的數(shù)量的表圖;
[0049]圖1lC是示出用于示例的二次求解階段的可用數(shù)目;交付數(shù)目;未交付數(shù)目;庫存和總計的表圖;并且
[0050]圖12是比較來自線性和二次編程階段的生產(chǎn)日表的表圖。
【具體實施方式】
[0051]參照圖1,示出根據(jù)現(xiàn)有技術(shù)的計算機(jī)系統(tǒng)節(jié)點10的組件圖。計算機(jī)系統(tǒng)節(jié)點10包括與許多其他通用或者專用計算系統(tǒng)環(huán)境或者配置可操作的計算機(jī)系統(tǒng)/服務(wù)器12??梢允褂门c計算機(jī)系統(tǒng)/服務(wù)器12使用的熟知計算系統(tǒng)、環(huán)境和/或配置的示例包括但不限于個人計算機(jī)系統(tǒng)、服務(wù)器計算機(jī)系統(tǒng)、瘦客戶端、厚客戶端、手持或者膝上型設(shè)備、多處理器向系統(tǒng)、微處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程客戶電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機(jī)系統(tǒng)、大型機(jī)計算機(jī)系統(tǒng)和包括以上系統(tǒng)或者設(shè)備中的任何系統(tǒng)或者設(shè)備的分布式云計算環(huán)境等。
[0052]可以在由計算機(jī)系統(tǒng)執(zhí)行的計算機(jī)系統(tǒng)可執(zhí)行指令、比如程序模塊的一般境況中描述計算機(jī)系統(tǒng)/服務(wù)器12。一般而言,程序模塊可以包括執(zhí)行特定任務(wù)或者實施特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等??梢栽诜植际皆朴嬎悱h(huán)境中體現(xiàn)計算機(jī)系統(tǒng)/服務(wù)器12,在這些分布式云計算環(huán)境中,任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲器存儲設(shè)備的本地和遠(yuǎn)程計算機(jī)系統(tǒng)存儲介質(zhì)中。
[0053]如圖1中所示,以通用計算設(shè)備的形式示出計算機(jī)系統(tǒng)節(jié)點10中的計算機(jī)系統(tǒng)/服務(wù)器12。計算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于一個或者多個處理器或者處理單元16、系統(tǒng)存儲器28和總線18,該總線將包括系統(tǒng)存儲器28的各種系統(tǒng)組件耦合到處理器16。
[0054]總線18代表若干總線結(jié)構(gòu)類型中的任何總線結(jié)構(gòu)類型中的一個或者多個總線結(jié)構(gòu)類型,這些總線結(jié)構(gòu)類型包括存儲器總線或者存儲器控制器、外圍總線、加速圖形端口和使用多種總線架構(gòu)中的任何總線架構(gòu)的處理器或者本地總線。舉例而言而非限制,這樣的架構(gòu)包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、微通道架構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)本地總線和外圍組件互連(PCI)總線。
[0055]計算機(jī)系統(tǒng)/服務(wù)器12通常包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這樣的介質(zhì)可以是計算機(jī)系統(tǒng)/服務(wù)器12可訪問的任何可用介質(zhì),并且它包括易失性和非易失性介質(zhì)、可移除和非可移除介質(zhì)二者。
[0056]系統(tǒng)存儲器28可以包括形式為易失性存儲器、比如隨機(jī)存取存儲器(RAM) 30和/或高速緩存存儲器32的計算機(jī)系統(tǒng)可讀介質(zhì)。計算機(jī)系統(tǒng)/服務(wù)器12還可以包括其他可移除/非可移除、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅舉例而言,可以提供用于從和向非可移除、非易失性磁介質(zhì)(未示出并且通常稱為“硬盤”)讀取和寫入的存儲系統(tǒng)34。雖然未示出,但是可以提供用于從和向可移除、非易失性磁盤(例如“軟盤”)讀取和寫入的磁盤驅(qū)動以及用于從或者向可移除、非易失性光盤、比如⑶-ROM、DVD-ROM或者其他光介質(zhì)讀取或者寫入的光盤驅(qū)動。在這樣的實例中,各自可以由一個或者多個數(shù)據(jù)介質(zhì)接口連接到總線18。如以下將進(jìn)一步描繪和描述的那樣,存儲器28可以包括被配置為實現(xiàn)本發(fā)明的實施方式的功能的至少一個程序產(chǎn)品(例如操作系統(tǒng)36和優(yōu)化器40)。
[0057]優(yōu)化器40以及操作系統(tǒng)36可以存儲在例如而不限于在存儲器28中。程序模塊中的每個程序模塊可以包括聯(lián)網(wǎng)環(huán)境的實現(xiàn)方式。程序模塊主要執(zhí)行如這里描述的本發(fā)明的實施方式的功能和/或方法。
[0058]計算機(jī)系統(tǒng)/服務(wù)器12也可以與以下設(shè)備通信:一個或者多個外部設(shè)備14、比如鍵盤、指示設(shè)備、顯示器24 ;讓用戶能夠與計算機(jī)系統(tǒng)/服務(wù)器12交互的一個或者多個設(shè)備;和/或使計算機(jī)系統(tǒng)/服務(wù)器12能夠與一個或者多個其他計算設(shè)備通信的任何設(shè)備(網(wǎng)卡、調(diào)制解調(diào)器等)。這樣的通信可以經(jīng)由I/O接口 22出現(xiàn)。進(jìn)而另外,計算機(jī)系統(tǒng)/服務(wù)器12可以經(jīng)由網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)、比如局域網(wǎng)(LAN)、一般廣域網(wǎng)(WAN)和/或公用網(wǎng)絡(luò)(例如因特網(wǎng))通信。如描繪的那樣,網(wǎng)絡(luò)適配器20經(jīng)由總線18與計算機(jī)系統(tǒng)/服務(wù)器12的其他組件通信。應(yīng)當(dāng)理解,雖然未示出,但是可以與計算機(jī)系統(tǒng)/服務(wù)器12結(jié)合使用其他硬件和/或軟件組件。示例包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部盤驅(qū)動陣列、RAID系統(tǒng)、帶驅(qū)動和數(shù)據(jù)檔案存儲系統(tǒng)。
[0059]根據(jù)圖2中所示一個優(yōu)選實施方式的優(yōu)化器40包括優(yōu)化引擎202 ;優(yōu)化數(shù)據(jù)204 ;以及優(yōu)化方法206。
[0060]優(yōu)化引擎202是基于被供應(yīng)有IBM Ilog Cplex優(yōu)化器版本12的線性編程引擎,并且包括線性編程求解器208和二次編程求解器209。IBM ILOG CPLEX提供用于線性編程、混合整數(shù)編程、二次編程和二次約束編程問題的靈活、高性能數(shù)學(xué)編程求解器。然而可以使用任何線性編程引擎或者混合整數(shù)編程引擎。使用Microsoft Excel 2003 Solver插件線性編程求解器組件來構(gòu)建示例表。Microsoft和Excel是Microsoft公司在美國和/或其他國家的商標(biāo)。
[0061]線性編程求解器208是熟知的,并且用于求解類型為AX+Y = B的線性問題以在X的某些約束下優(yōu)化CX。
[0062]二次編程求解器209是熟知的,并且用于求解類型為(DX) ~2+CX = B的的二次問題以在X的某些約束下優(yōu)化。
[0063]優(yōu)化數(shù)據(jù)204包括:線性函數(shù)210 ;約束212 ;第一優(yōu)化求解214 ;松弛變量216 ;二次函數(shù)218 ;以及平衡的求解220。
[0064]線性函數(shù)210是在類型為AX+Y = B的存儲器中存儲的數(shù)學(xué)編程函數(shù),其中A和B是常數(shù)并且X和Y是需要求解的變量。在代碼示例中,線性函數(shù)由字母‘mps’代表。
[0065]約束212是關(guān)于X和Y的值是何種值的限制。在代碼示例中,約束由矩陣M代表。
[0066]最優(yōu)求解214是如優(yōu)化的線性編程求解器208計算的求解。在優(yōu)選實施方式中,僅存儲一個最優(yōu)求解。[0067]松弛變量216存儲變量,這些變量被添加到不等式約束以將它變換成等式(equality)。引入松弛變量用等式約束和非負(fù)約束取代不等式約束。
[0068]二次函數(shù)218是在類型為DX~2+AX+Y = B的存儲器中存儲的數(shù)學(xué)編程函數(shù),其中A、B和D是常數(shù),并且X和Y是將被求解的變量。
[0069]平衡的求解220是二次編程求解器209求解的求解。
[0070]優(yōu)選實施方式的優(yōu)化方法206包括如圖3中所示邏輯過程步驟302至316。
[0071]步驟302用于在給定約束212時求解線性函數(shù)210。
[0072]步驟304用于使第一最優(yōu)求解214可用。
[0073]步驟306用于添加最優(yōu)求解214作為用于新函數(shù)218的約束。
[0074]步驟308用于添加松弛變量約束作為用于新函數(shù)218的約束。
[0075]步驟310用于向線性函數(shù)210添加二次目標(biāo)以創(chuàng)建二次函數(shù)218。
[0076]步驟312用于在給定舊和新約束時求解二次函數(shù)。
[0077]步驟314用于提供對于二次問題的求解XI,該求解包括對于線性問題的求解。
[0078]步驟316是方法的結(jié)束。
[0079]圖4A至4F是方法的線性編程階段的代碼圖,其中代碼具有行I至50。以下可以調(diào)出優(yōu)化器中以特定步驟標(biāo)識的代碼,并且在‘///’定界符之后的進(jìn)一步注釋描述了該代碼。未調(diào)出的其他代碼對于實施方式是相關(guān)的。‘//’代表代碼圖中的未必與描述中的對應(yīng)注釋相同的注釋。
[0080]圖4A中的代碼代表優(yōu)化方法的步驟302。
[0081]行I讀取mps矩陣M,//其中讀取是對線性求解器的用于獲取線性問題mps和約束M的指令。
[0082]行3使用MIP來求解MIP問題,///這是用于線性求解器的稱為MIP(IBM ILOGCPLEX問題求解引擎之一)的用于求解問題的指令。
[0083]圖4B中的代碼代表優(yōu)化方法的步驟304。
[0084]行4 “double 01 = optimal value”,///設(shè)置變量為求解器的最優(yōu)值輸出。
[0085]圖4C中的代碼代表優(yōu)化方法的步驟306。
[0086]行5 “get objective Obj from Μ,,;
[0087]行 6 “get epsilon fromparameters,,;
[0088]行7“add constrains 01_epsilon〈 = 0bj< = 01+epsilon,,,/// 指令新約束以包括求解01(最優(yōu)值)。
[0089]圖4D中的代碼通過向優(yōu)化方法的步驟308添加松弛變量來代表新約束的公式表示。不同地對待不等式、下界變量和上界變量。
[0090]圖4中的代碼行39至44代表優(yōu)化方法的步驟310中的二次方程的求解。
[0091]行44 “minimize Q, under constraints in Μ”,// 指令二次問題求解器(QP 求解器)通過在矩陣M中的新約束的約束之下最小化q來求解問題。
[0092]圖4F中的代碼行45至50代表優(yōu)化方法的步驟312中的求解‘V’的輸出。
[0093]圖5是用于本發(fā)明求解的生產(chǎn)規(guī)劃示例的成產(chǎn)率約束表。在生產(chǎn)規(guī)劃示例中,生產(chǎn)率(PR)是給定的工廠每天生產(chǎn)的汽車數(shù)目。有三個工廠:工廠1、工廠2和工廠3,并且有三個對應(yīng)生產(chǎn)率:Pl ;PR2;和PR3。在示例中,工廠2在它的生產(chǎn)率上比其他工廠落后某個裕度。
[0094]圖6是用于示例的資源可用性約束表。資源可用性(RA)是每個工廠在特定一周內(nèi)可用的天數(shù)。有三周:第I周;第2周;以及第3周。在表中表示資源可用性,但是也可以表示資源可用性為矩陣:
[0095]圖7是用于示例的需求(DD)約束表。需求是在給定的周內(nèi)需要的汽車數(shù)目。有三個不同需求DDl = 10 ;DD2 = 10 ;DD = 150。第3周按照量值順序具有最大需求。
[0096]圖8是示出用于示例中所示某些數(shù)據(jù)類型的圖例的表。所有數(shù)據(jù)由正常實線代表,但是一些數(shù)據(jù)值得強(qiáng)調(diào)。目標(biāo)是被粗實線突出顯示的函數(shù)的正在被優(yōu)化的部分。定義一個目標(biāo)為最小化庫存和未交付項目總數(shù)。另一目標(biāo)是最小化未使用日的平方之和。
[0097]非負(fù)性約束是非負(fù)約束并且由在相關(guān)值周圍的實虛線突出顯示。在圖9A、10A、IlA中,突出顯示未使用日為非負(fù)性約束。在圖9C、10C和IlC中,標(biāo)記未交付汽車數(shù)目為非負(fù)性約束,并且突出顯示在該周結(jié)束時的庫存(I)為非負(fù)性約束。
[0098]決定變量由在關(guān)注值周圍的粗虛線突出顯示。在圖9A、10A、11A中,標(biāo)記生產(chǎn)日并且突出顯示為決定變量。在圖9C、IOC和IlC中,突出顯示在一周內(nèi)交付的汽車數(shù)目并且標(biāo)記為決定變量。
[0099]圖9A是示出用于示例的預(yù)求解階段的生產(chǎn)日、未使用日和未使用日的平方之和的表圖。
[0100]生產(chǎn)日(PD)是工廠可以在給定的周內(nèi)生產(chǎn)的天數(shù)。這是決定變量,因此在求解開始之前,它是僅由如下變 量標(biāo)注的空變量或者矩陣,這些變量代表用于給定的周和工廠的給定的生產(chǎn)日:PD11 ;PD21 ;PD311 ;PD12 ;PD22 ;PD32 ;PD13 ;PD23 ;PD33。用于給定的周的總生產(chǎn)日由代表ΣΡ?Ιχ ;ΣΡ?2χ ;和ΣΡ?3χ。
[0101]未使用日(UD)是給定的工廠在給定的周內(nèi)未被使用的、并且通過從生產(chǎn)日(PD)去掉相應(yīng)資源可用性(RA)而計算的天數(shù)。通過定義UD使得它從未為負(fù),它變成非負(fù)性約束。在求解開始之前,沒有用于生產(chǎn)日的值、因此沒有用于未使用日的值,該未使用日使用
生產(chǎn)日。
[0102]未使用日的平方之和是作為二次問題的目標(biāo)的二次變量。由于生產(chǎn)日在求解方程之前未知,所以未使用日的平方之和也未知。
[0103]圖9Β是示出為示例的預(yù)求解階段產(chǎn)生的數(shù)量的表。
[0104]生產(chǎn)數(shù)量(QP)是通過生產(chǎn)日(PD)和生產(chǎn)率(PR)的乘積獲得的、工廠在給定的周內(nèi)生產(chǎn)的汽車數(shù)目。它依賴于決定變量、因此未知直至被求解。
[0105]圖9C是示出用于示例的預(yù)求解階段的可用數(shù)目;交付數(shù)目(D);未交付數(shù)目(ND);庫存⑴和總計的表圖。
[0106]可用數(shù)目(A)是可用于在給定的周內(nèi)交付的汽車數(shù)目,并且由在給定的周內(nèi)的生產(chǎn)數(shù)量總數(shù)(TQP) +庫存(I)定義。
[0107]交付數(shù)目(D)是在給定的周內(nèi)交付的汽車數(shù)目。這是決定變量。
[0108]未交付數(shù)目(ND)是在給定的周內(nèi)未交付的汽車數(shù)目,并且被定義為需求(DM)減去交付(D)。ND為非負(fù)性變量。
[0109]庫存數(shù)目(I)是在一周結(jié)束時的庫存(I),并且被定義為在一周開始時的庫存
(I)+可用(AV)-交付(D)。I是非負(fù)性約束。[0110]在各周結(jié)束時的總計是未交付總數(shù)(ND)加上在各周結(jié)束時的庫存。與最小化未使用日的平方之和一起設(shè)置最小化未交付總數(shù)和庫存為目標(biāo)。
[0111]圖1OA是示出用于示例的線性求解階段的生產(chǎn)日、未使用日和未使用日的平方之和的表圖。所示求解是線性求解,其中僅未交付總數(shù)被最小化為零(見圖10C)??梢妼τ谧罡咝ЧS,最后一周內(nèi)的生產(chǎn)日很忙碌,并且這視為最優(yōu)求解、但是并非很平衡的求解。作為生產(chǎn)日在第3周內(nèi)繁忙的結(jié)果,在未使用日表可見,在第I和2周內(nèi)以及在工廠2中有更多的未使用日。另外,雖然在線性求解中未使用,但是可見未使用日的平方之和將為高,因為存在更多未使用日。如將所見,例如相比于圖1lA中可能的數(shù)目,91.25為高的數(shù)目。
[0112]如果在最后一周內(nèi)在工廠有問題則會發(fā)生什么?理想地,將選擇更平衡的求解,并且這是圖11A、11B和IlC中所示新目標(biāo)。
[0113]圖1OB是示出為用于示例的線性求解階段而產(chǎn)生的數(shù)量的表。這些數(shù)目反映在工廠I和3在第3周內(nèi)的生產(chǎn)中的忙亂工作。
[0114]圖1OC是示出用于示例的線性求解階段的可用數(shù)目;交付數(shù)目;未交付數(shù)目;庫存和總計的表圖。示出通過在第3周內(nèi)具有最多交付(150輛汽車)來實現(xiàn)用于保持未交付總數(shù)和庫存為最小值的原有目標(biāo)。
[0115]圖1lA是示出用于示例的二次求解階段的生產(chǎn)日、未使用日和未使用日的平方之和的表圖。在這一示例中,未使用日已經(jīng)用來設(shè)置將求解的新二次目標(biāo),二次求解器現(xiàn)在尋求最小化未使用日的平方之和以及未交付總數(shù)。生產(chǎn)日可以視為跨越周和工廠而更均勻地分布,并且甚至工廠2被投入工作。
[0116]圖1lB是示出為用于示例的二次求解階段而產(chǎn)生的數(shù)量的表圖??梢园l(fā)現(xiàn)其跨越周更均勻第分布。
[0117]圖1lC是示出用于示例的二次求解階段的可用數(shù)目;交付數(shù)目;未交付數(shù)目;庫存和總計的表圖??梢娗蠼庖呀?jīng)如同先前被約束為保持未交付總數(shù)加上庫存為最小值,但是這一次已經(jīng)增長用于交付的可用汽車。
[0118]圖12是比較來自線性和二次編程階段的生產(chǎn)日表的表圖,其中可見更均勻分布。
[0119]現(xiàn)在描述本發(fā)明的進(jìn)一步實施方式。
[0120]本領(lǐng)域普通技術(shù)人員將清楚,優(yōu)選實施方式的方法的全部或者部分可以適當(dāng)?shù)睾陀杏玫伢w現(xiàn)在包括被布置為執(zhí)行方法的步驟的邏輯單元的一個或者多個附加邏輯裝置中,并且這樣的邏輯單元可以包括附加硬件組件、固件組件或者其組合。
[0121]本領(lǐng)域技術(shù)人員將同樣清楚,優(yōu)選實施方式的功能組件中的一些或者所有功能組件可以適當(dāng)?shù)伢w現(xiàn)在包括用于使用等效方法步驟來執(zhí)行等效功能的邏輯單元的一個或者多個備選邏輯裝置中,并且這樣的邏輯單元可以包括組件、比如在例如可編程邏輯陣列或者專用集成電路中的邏輯門。還可以在實現(xiàn)如下單元時體現(xiàn)這樣的邏輯單元,這些單元用于例如使用虛擬硬件描述符語言而在這樣的陣列或者電路中暫時地或者持久地建立可以使用固定或者可傳輸載體介質(zhì)來存儲和傳輸?shù)倪壿嫿Y(jié)構(gòu)。
[0122]將理解,以上描述的方法和布置也可以完全地或者部分地適當(dāng)?shù)貙崿F(xiàn)在一個或者多個處理器(未示出)上運行的軟件中,并且可以用在任何適當(dāng)數(shù)據(jù)載體(在各圖中也未示出)、比如磁或者光盤等上承載的一個或者多個計算機(jī)程序單元的形式提供軟件。用于傳輸數(shù)據(jù)的信道可以類似地包括所有描述的存儲介質(zhì)以及信號輸送介質(zhì)、比如有線或者無線信號輸送介質(zhì)。
[0123]本發(fā)明還可以適當(dāng)?shù)伢w現(xiàn)為用于與計算機(jī)系統(tǒng)使用的計算機(jī)程序產(chǎn)品。這樣的實現(xiàn)方式可以包括在有形介質(zhì)、比如計算機(jī)可讀介質(zhì)、例如盤、⑶-ROM、ROM或者硬盤上固定的或者使用調(diào)制解調(diào)器或者其他接口設(shè)備通過有形介質(zhì)、包括但不限于光或者模擬通信線路,或者無形地使用無線技術(shù)、包括但不限于微波、紅外線或者其他傳輸技術(shù)向計算機(jī)系統(tǒng)可傳輸?shù)南盗杏嬎銠C(jī)可讀指令。系列計算機(jī)可讀指令體現(xiàn)這里先前描述的功能的全部或者部分。
[0124]本領(lǐng)域技術(shù)人員將理解,可以用許多用于與許多計算機(jī)架構(gòu)或者操作系統(tǒng)使用的編程語言編寫這樣的計算機(jī)可讀指令。另外,可以使用當(dāng)前或者將來的任何存儲器技術(shù)、包括但不限于半導(dǎo)體、磁或者光存儲器技術(shù)來存儲,并且使用當(dāng)前或者將來的任何通信技術(shù)、包括但不限于光、紅外線或者微波來傳輸這樣的指令。設(shè)想可以分發(fā)這樣的計算機(jī)程序產(chǎn)品為可移除介質(zhì),該可移除介質(zhì)具有例如在系統(tǒng)ROM或者固定盤上用計算機(jī)系統(tǒng)預(yù)加載的或者通過網(wǎng)絡(luò)、例如因特網(wǎng)或者萬維網(wǎng)從服務(wù)器或者電子公告牌分發(fā)的附帶印刷或者電子歸檔、例如軟件縮減打包軟件。
[0125]在備選中,可以用部署服務(wù)的、計算機(jī)實施的方法的形式實現(xiàn)本發(fā)明的優(yōu)選實施方式,該方法包括部署計算機(jī)程序代碼的步驟,該計算機(jī)程序代碼可操作為在被部署到計算機(jī)基礎(chǔ)設(shè)施中并且在計算機(jī)基礎(chǔ)設(shè)施上被執(zhí)行時使計算機(jī)系統(tǒng)執(zhí)行方法的所有步驟。
[0126]在又一備選中,可以用數(shù)據(jù)中心的形式實現(xiàn)本發(fā)明的優(yōu)選實施方式,該數(shù)據(jù)中心在其上具有功能數(shù)據(jù),所述功能數(shù)據(jù)包括功能計算機(jī)數(shù)據(jù)結(jié)構(gòu),這些功能計算機(jī)數(shù)據(jù)結(jié)構(gòu)在被加載到計算機(jī)系統(tǒng)中并且由此被計算機(jī)系統(tǒng)操作時,使所述計算機(jī)系統(tǒng)能夠執(zhí)行方法的所有步驟。
[0127]本領(lǐng)域技術(shù)人員將清楚可以對前述示例實施方式進(jìn)行許多改進(jìn)和修改而未脫離本發(fā)明的范圍。
【權(quán)利要求】
1.一種用于在計算機(jī)化的多約束問題空間中選擇優(yōu)化的求解的方法,包括: 接收用于優(yōu)化的線性函數(shù); 接收用于所述線性函數(shù)的約束集; 使用線性編程求解器來確定用于所述線性函數(shù)和初始約束的第一最優(yōu)求解; 除了所述初始約束之外還使用所述第一最優(yōu)求解創(chuàng)建新約束集作為約束; 通過向所述線性函數(shù)添加松弛變量的二次目標(biāo)來創(chuàng)建新二次函數(shù);以及 使用二次編程求解器來確定對所述二次函數(shù)和新約束的求解。
2.根據(jù)權(quán)利要求1所述的方法,其中所述松弛變量約束具有默認(rèn)權(quán)重集。
3.根據(jù)權(quán)利要求2所述的方法,其中所述松弛變量約束基于所述一個或者多個管理員或者用戶確定的成本系數(shù)。
4.根據(jù)權(quán)利要 求1至3中的任一權(quán)利要求所述的方法,其中所述線性函數(shù)可以是整數(shù)函數(shù)。
5.一種使用根據(jù)權(quán)利要求1所述的方法來控制設(shè)備的方法。
6.一種用于在計算機(jī)化的多約束問題空間中選擇一個或者多個優(yōu)化的值的方法,包括: 接收混合整數(shù)編程組件的第一輸入值集、線性編程組件的第二輸入值集和基于一個或者多個用戶確定的成本系數(shù)的平方松弛變量約束的成本加權(quán)集作為輸入; 產(chǎn)生所述混合整數(shù)編程組件的第一輸出值集; 產(chǎn)生所述線性編程組件的第二輸出值集; 根據(jù)所述第一輸出值集和所述第二輸出值集創(chuàng)建受限制求解空間;以及通過施加以基于所述一個或者多個用戶確定的成本系數(shù)的所述平方松弛變量約束的成本加權(quán)集為基礎(chǔ)的又一限制,從所述受限制求解空間選擇優(yōu)化的值。
7.一種用于在計算機(jī)化的多約束問題空間中選擇優(yōu)化的求解的系統(tǒng),包括: 用于接收用于優(yōu)化的線性函數(shù)的裝置; 用于接收用于所述線性函數(shù)的約束集的裝置; 用于使用線性編程求解器來確定用于所述線性函數(shù)和初始約束的第一最優(yōu)求解的線性求解器; 用于除了所述初始約束之外還使用所述第一最優(yōu)求解創(chuàng)建新約束集作為約束的裝置; 用于通過向所述線性函數(shù)添加松弛變量的二次目標(biāo)來創(chuàng)建新二次函數(shù)的裝置;以及 用于使用二次編程求解器來確定對所述二次函數(shù)和新約束的求解的二次求解器。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述松弛變量約束具有默認(rèn)權(quán)重集。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述松弛變量約束基于所述一個或者多個管理員或者用戶確定的成本系數(shù)。
10.根據(jù)權(quán)利要求7至9中的任一權(quán)利要求所述的系統(tǒng),其中所述線性函數(shù)可以是整數(shù)函數(shù)。
11.一種用于使用根據(jù)權(quán)利要求1至5中的任一權(quán)利要求所述的方法來控制設(shè)備的控制器。
12.—種包括計算機(jī)可讀記錄介質(zhì)的計算機(jī)程序產(chǎn)品,所述計算機(jī)可讀記錄介質(zhì)具有在其上存儲的用于在計算機(jī)化的多約束問題空間中選擇優(yōu)化的求解的計算機(jī)可讀代碼,所述計算機(jī)可讀代碼在被加載到計算機(jī)系統(tǒng)中并且被執(zhí)行時執(zhí)行以下步驟: 接收用于優(yōu)化的線性函數(shù); 接收用于所述線性函數(shù)的約束集; 使用線性編程求解器來確定用于所述線性函數(shù)和初始約束的第一最優(yōu)求解; 除了所述初始約束之外還使用所述第一最優(yōu)求解創(chuàng)建新約束集作為約束; 通過向所述線性函數(shù)添加松弛變量的二次目標(biāo)來創(chuàng)建新二次函數(shù);以及 使用二次編程求解器來確定對所述二次函數(shù)和新約束的求解。
13.根據(jù)權(quán)利要求12述的計算機(jī)程序產(chǎn)品,其中所述松弛變量約束具有默認(rèn)權(quán)重集。
14.根據(jù)權(quán)利要求13所述的計算機(jī)程序產(chǎn)品,其中所述松弛變量約束基于所述一個或者多個管理員或者用戶確定的成本系數(shù)。
15.—種在計算機(jī)可讀介質(zhì)上存儲并且向數(shù)字計算機(jī)的內(nèi)部存儲器中可加載的計算機(jī)程序,包括當(dāng)所述程序在計算機(jī)上運行時用于執(zhí)行根據(jù)權(quán)利要求1至5中的任一權(quán)利要求所述的方法的軟件代碼部分。
【文檔編號】G06Q10/04GK104011751SQ201280061099
【公開日】2014年8月27日 申請日期:2012年12月5日 優(yōu)先權(quán)日:2011年12月22日
【發(fā)明者】G-H·莫爾, X·諾德特 申請人:國際商業(yè)機(jī)器公司