日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

算法导论之线性规划

發(fā)布時(shí)間:2025/4/16 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法导论之线性规划 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

線性規(guī)劃,充斥著運(yùn)籌學(xué),在圖的單源最短路徑求解差分約束系統(tǒng)就是用到線性規(guī)劃。怎么樣問(wèn)題可以建模為線性規(guī)劃來(lái)解決呢?在給定的有限的資源和競(jìng)爭(zhēng)約束情況下,取得最大化或最小化目標(biāo)的問(wèn)題。導(dǎo)論中給出政治競(jìng)選問(wèn)題、航空航線調(diào)度問(wèn)題、鉆井采油問(wèn)題。最大化或最小化目標(biāo)是函數(shù)的因變量,自變量就是資源的約束因素,其函數(shù)就是由這些制約因素構(gòu)成的等式或不等式。下面數(shù)學(xué)定義下線性規(guī)劃。

在一般線性規(guī)劃問(wèn)題中,最優(yōu)化一個(gè)滿(mǎn)足一組線性不等式約束的線性函數(shù)。已知一組實(shí)數(shù)a1,a2,…,an和一組變量x1,x2,…,xn,基于這些變量的一個(gè)線性函數(shù)f定義為:


如果b是一個(gè)實(shí)數(shù)而f是一個(gè)線性函數(shù),則等式:

f(x1,x2,…,xn)=b是一個(gè)線性等式。

f(x1,x2,…,xn)≥b和f(x1,x2,…,xn)≤b是線性不等式。

線性約束就是函數(shù)f和b的關(guān)系,就是求解n個(gè)變量m個(gè)線性不等式的最大化,約束為線性不等式的線性函數(shù)最大化稱(chēng)為標(biāo)準(zhǔn)型;而約束為線性等式的線性函數(shù)的最大化稱(chēng)為松弛型。

基于上面描述可知,線性規(guī)劃問(wèn)題是要最小化或最大化一個(gè)受限于一組有限的線性約束的線性函數(shù)。最小化線性規(guī)劃和最大化線性規(guī)劃的分類(lèi),是基于目標(biāo)的需求,同樣是m個(gè)線性不等式約束,去求解n個(gè)變量的值,達(dá)到目標(biāo)(最大化或最小化)。

凸形區(qū)域:區(qū)域內(nèi)的任何兩點(diǎn)之間連線上的點(diǎn)都屬于這個(gè)區(qū)域。

線性規(guī)劃中,二維空間(兩個(gè)變量)所構(gòu)成的凸形區(qū)域?yàn)榭尚袇^(qū)域,要最大化的函數(shù)為目標(biāo)函數(shù)。可行區(qū)域內(nèi)的每個(gè)點(diǎn)都會(huì)去評(píng)估目標(biāo)函數(shù)x1+x2,將目標(biāo)函數(shù)的一個(gè)特點(diǎn)點(diǎn)上的值稱(chēng)為目標(biāo)值,識(shí)別出一個(gè)有最大目標(biāo)值的點(diǎn)就是最優(yōu)解。當(dāng)然有二維線性規(guī)劃不等式所構(gòu)成的可行區(qū)域上是有無(wú)數(shù)個(gè)點(diǎn),不可能都去求值,因此需要找出一個(gè)有效的方式來(lái)尋找最大目標(biāo)值的點(diǎn)。線性規(guī)劃的最優(yōu)解必定是在可行區(qū)域的邊界上,所以只要沿著邊界尋找頂點(diǎn)就可以很快找到最大目標(biāo)值的點(diǎn)。

如果有三個(gè)變量,則每個(gè)約束以三位空間的一個(gè)半空間來(lái)描述,三個(gè)半空間的交集構(gòu)成了可行區(qū)域,目標(biāo)函數(shù)取目標(biāo)值的點(diǎn)集合是一個(gè)平面。因?yàn)榭尚袇^(qū)域也是凸的,取得最優(yōu)目標(biāo)值的點(diǎn)集合必然包含可行區(qū)域的一個(gè)頂點(diǎn)。延伸到n個(gè)變量的超平面,每個(gè)約束定義了n維空間中的一個(gè)半空間,這些半空間的交集形成的可行區(qū)域稱(chēng)作單純形,目標(biāo)函數(shù)是一個(gè)超平面,且是凸性,一個(gè)最優(yōu)解也是在單純形的一個(gè)頂點(diǎn)上取得。理解下,無(wú)論多少維,找出凸形區(qū)域,目標(biāo)函數(shù)的最優(yōu)解就是在凸形區(qū)域的頂點(diǎn)集合之一或多個(gè)。

單純形算法輸入一個(gè)線性規(guī)劃(n個(gè)變量m個(gè)線性不等式),輸出一個(gè)最優(yōu)解。算法從單純形的某個(gè)頂點(diǎn)開(kāi)始,執(zhí)行一系列迭代,每次迭代中,沿著單純形的一條邊從當(dāng)前頂點(diǎn)移動(dòng)到一個(gè)目標(biāo)值不小于當(dāng)前頂點(diǎn)的相鄰頂點(diǎn)。當(dāng)達(dá)到一個(gè)局部最大值,即一個(gè)頂點(diǎn)的目標(biāo)值大于其所有相鄰頂點(diǎn)的目標(biāo)值時(shí),算法終止。因?yàn)榭尚袇^(qū)域是凸的且目標(biāo)函數(shù)是線性的,所以具備最優(yōu)事實(shí)就是全局最優(yōu)的。

單純形算法需要指數(shù)時(shí)間。線性規(guī)劃的第一類(lèi)多項(xiàng)式時(shí)間算法是橢圓算法,運(yùn)行緩慢;第二類(lèi)指數(shù)時(shí)間的算法是內(nèi)點(diǎn)法,在大型輸入上,性能優(yōu)于單純形算法。如果在線性規(guī)劃中,所有的變量都取整數(shù)值,即整數(shù)線性規(guī)劃,對(duì)于該問(wèn)題,找出一個(gè)可行解是NP難度的。目前還沒(méi)有已知的多項(xiàng)式時(shí)間算法能NP難度問(wèn)題,所以沒(méi)有有效的整數(shù)線性規(guī)劃多項(xiàng)式時(shí)間算法。當(dāng)然,一般的線性規(guī)劃可以在多項(xiàng)式時(shí)間內(nèi)解決。

1)標(biāo)準(zhǔn)型和松弛型

標(biāo)準(zhǔn)型的線性規(guī)劃所有的約束條件都是不等式,而松弛型中的約束是等式。要用單純形算法求解線性規(guī)劃,需要將所有線性規(guī)劃轉(zhuǎn)化為標(biāo)準(zhǔn)型,再將標(biāo)準(zhǔn)型轉(zhuǎn)化為松弛型,線性方程組等式求解。

標(biāo)準(zhǔn)型定義:

已知n個(gè)實(shí)數(shù)c 1,c 2,…,c n;m個(gè)實(shí)數(shù)b 1,b 2,…,b m;以及mn個(gè)實(shí)數(shù)a ij,其中i=1,2,…,m,而j=1,2…,n,希望找出n個(gè)實(shí)數(shù)x1,x2,…,xn來(lái)最大化目標(biāo)函數(shù):


用矩陣表示更緊湊:

最大化cTx,滿(mǎn)足約束:Ax≤b,x≥0。

滿(mǎn)足所有約束的變量xs設(shè)定為可行解,而不滿(mǎn)足至少一個(gè)約束的變量xs設(shè)定為不可解。稱(chēng)一個(gè)解xs擁有目標(biāo)值cTxs,在所有可行解中其目標(biāo)值最大的一個(gè)可行解xs是一個(gè)最優(yōu)解,稱(chēng)其為目標(biāo)值cTxs的最優(yōu)目標(biāo)值。如果一個(gè)線性規(guī)劃沒(méi)有可行解,則稱(chēng)此線性規(guī)劃不可行,否則是可行的。如果一個(gè)線性規(guī)劃有一些可行解但沒(méi)有有限的最優(yōu)目標(biāo)值,則稱(chēng)此線性規(guī)劃是無(wú)界的。

已知一個(gè)最小化或最大化的線性函數(shù)受若干線性約束,總可以將這個(gè)線性規(guī)劃轉(zhuǎn)換為標(biāo)準(zhǔn)型。換句話說(shuō),要將非標(biāo)準(zhǔn)型的線性規(guī)劃轉(zhuǎn)化為標(biāo)準(zhǔn)型的。為什么會(huì)有非標(biāo)準(zhǔn)型的線性規(guī)劃呢?可能目標(biāo)函數(shù)是一個(gè)最小化而不是最大化;可能擁有的變量不具有非負(fù)性約束;可能有等式約束;可能有大于等于的不等式約束,而不是小于等于。

將非標(biāo)準(zhǔn)的線性規(guī)劃轉(zhuǎn)化線性規(guī)劃,最重要是確保轉(zhuǎn)換后的線性規(guī)劃最優(yōu)解也是轉(zhuǎn)換前的線性規(guī)劃最優(yōu)解,轉(zhuǎn)化前后的兩個(gè)線性規(guī)劃是等價(jià)的。轉(zhuǎn)化思路就是對(duì)目標(biāo)函數(shù)系數(shù)取負(fù),并將不具有非負(fù)約束性的變量轉(zhuǎn)換成具有非負(fù)性約束的變量。

為了利用單純形算法高效地求解線性規(guī)劃,需要將標(biāo)準(zhǔn)型轉(zhuǎn)換成松弛型,就是非負(fù)約束是不等式,其他約束都是等式。轉(zhuǎn)換思路就是利用松弛變量,就是將不等式的余量用s來(lái)接收,從而使不等式變成等式,形式如下:


基于松弛型線性規(guī)劃,就可以用單純形算法求解。

2)將問(wèn)題表達(dá)為線性規(guī)劃:建模

既然定義了線性規(guī)劃,也知道線性規(guī)劃可以在多項(xiàng)式時(shí)間內(nèi)求解,那么對(duì)于現(xiàn)實(shí)的問(wèn)題,那些事如果形式化為線性規(guī)劃的問(wèn)題來(lái)求解呢?這就涉及到建模了,現(xiàn)實(shí)中的問(wèn)題如何建模為線性規(guī)劃來(lái)求解。建模:將問(wèn)題轉(zhuǎn)化成數(shù)學(xué)形式來(lái)求解。

算法導(dǎo)論中對(duì)單源最短路徑變形的單對(duì)最短路徑、最大流以及最大流變形的最小費(fèi)用流和多商品流形式化為線性規(guī)劃。這里描述下單對(duì)最短路徑和最大流的線性規(guī)劃形式化。

?? 單對(duì)最短路徑問(wèn)題

在單對(duì)最短路徑問(wèn)題中,已知一個(gè)帶權(quán)有向圖G=(V,E),加權(quán)函數(shù)w:E->R將邊映射到實(shí)數(shù)值的權(quán)值、一個(gè)源頂點(diǎn)s、一個(gè)目的頂點(diǎn)t,要計(jì)算從s到t的一條最短路徑的權(quán)值d[t]。將該問(wèn)題用線性規(guī)劃表示,要確定變量和約束的集合。在Belleman-Ford算法終止時(shí),對(duì)每個(gè)頂點(diǎn)v,都一個(gè)值d[v],使得每條邊(u,v)∈E,有d[v]≤d[u]+w(u,v)。源頂點(diǎn)初始得到一個(gè)值d[s]=0,如此有計(jì)算從s到t的最短路徑權(quán)值的線性規(guī)劃:

最大化:d[t]

滿(mǎn)足約束:d[v]≤d[u]+w(u,v),每條邊(u,v)∈E成立

????????? d[s]=0

共有|V|個(gè)變量d[v],每個(gè)頂點(diǎn)v∈V各有一個(gè),有|E|+1個(gè)約束,每條邊各有一個(gè)再加上源頂點(diǎn)d[s]=0的額外約束。

?? 最大流問(wèn)題

已知一個(gè)有向圖G=(V,E),其中每條邊(u,v)∈E有一個(gè)非負(fù)容量c(u,v)≥0,以及源點(diǎn)s和匯點(diǎn)t。流是一個(gè)實(shí)數(shù)值函數(shù)f:VXV->R,滿(mǎn)足三個(gè)性質(zhì):容量限制、斜對(duì)稱(chēng)性、流守恒性。最大流是滿(mǎn)足這些約束和最大化流流量的流,其中流量值是從源流出的總流量。因此,流滿(mǎn)足線性約束,且流的值是一個(gè)線性函數(shù)。當(dāng)然如果(u,v)?E,則c(u,v)=0。可將最大流線性規(guī)劃為:


共有|V|2個(gè)變量,對(duì)應(yīng)于每一對(duì)頂點(diǎn)之間的流,且有2|V|2+|V|-2個(gè)約束。

最小費(fèi)用流是最大流的每條邊上加一個(gè)費(fèi)用權(quán)值,多商品流是最大流的每條邊容量不止給一件商品是給多件商品。

3)單純形算法

單純形算法是求解線性規(guī)劃的古典方法。單純形算法和高斯消元法迭代原理類(lèi)似,高斯消元法是從解未知的一個(gè)線性等式系統(tǒng)開(kāi)始。可以將單純形算法看成是線性不等式系統(tǒng)上的高斯消元法。

單純形算法的迭代主要思想是:從線性規(guī)劃的松弛型中得到每次迭代關(guān)聯(lián)的基本解,將每個(gè)非基本變量設(shè)為0,并從等式約束中計(jì)算基本變量的值;一個(gè)基本解對(duì)應(yīng)于單純形的一個(gè)頂點(diǎn);代數(shù)上,一次迭代將一個(gè)松弛型轉(zhuǎn)換成一個(gè)等價(jià)的松弛型;相應(yīng)的基本解的目標(biāo)值不小于前一次迭代中的目標(biāo)值,要實(shí)現(xiàn)迭代過(guò)程中目標(biāo)值的遞增,要選擇一個(gè)非基本變量作為指示變量,從0開(kāi)始增加這個(gè)變量的值,和目標(biāo)值一起增加,增加到某個(gè)基本變量變?yōu)?為止再重寫(xiě)松弛型,將這個(gè)基本變量和所選的非基本變量進(jìn)行角色互換,就是重寫(xiě)線性規(guī)劃直到最優(yōu)解很明顯。

單純形算法主要關(guān)鍵是主元選擇,并且有三個(gè)關(guān)鍵點(diǎn),第一確定線性規(guī)劃是可行的;第二確定線性規(guī)劃是具有可行解而不是無(wú)界;第三主元如何選擇換入變量和換出變量。這些到導(dǎo)論偽碼算法描述都有說(shuō)明并證明。這里一般性地理解下,要通過(guò)單純形算法來(lái)求解,在算法之前要肯定線性是可行(單純性算法最初有一個(gè)初始化過(guò)程,會(huì)判斷線性規(guī)劃是否可行,返回一個(gè)初始基本解可行的松弛型),在算法之中要確保不陷入退化或說(shuō)循環(huán)(目標(biāo)值越迭代越小),能夠終止返回最優(yōu)解。單純形算法輸入一個(gè)標(biāo)準(zhǔn)型線性規(guī)劃,返回線性規(guī)劃一個(gè)最優(yōu)解,能夠順利找到最優(yōu)解并終止算法,后續(xù)對(duì)偶型可以說(shuō)明。

單純形整個(gè)算法過(guò)程是:

首先初始化標(biāo)準(zhǔn)型線性規(guī)劃,返回一個(gè)初始基本解可行的松弛型,或者返回這個(gè)線性規(guī)劃不可行,推出算法;

其次對(duì)松弛型線性規(guī)劃開(kāi)始主元操作,選擇非負(fù)系數(shù)最緊約束的換出變量,和換入變量交換,得到新的線性規(guī)劃(和原來(lái)的線性規(guī)劃是等價(jià)的);

不斷迭代這個(gè)過(guò)程,直到最優(yōu)解確定,并終止返回一個(gè)最優(yōu)解。

對(duì)于松弛型線性規(guī)劃通過(guò)主元操作生成的新線性規(guī)劃,二者是等價(jià)的證明可以看導(dǎo)論中說(shuō)明。現(xiàn)在很重要的就是主元操作迭代,是如何選擇換出變量的。選擇一個(gè)在目標(biāo)函數(shù)中系數(shù)為正值的非基本變量,盡可能增加其值而不違反任何約束。現(xiàn)在通過(guò)一個(gè)例子來(lái)理解單純形算法的過(guò)程。

第一:標(biāo)準(zhǔn)型線性規(guī)劃轉(zhuǎn)化為松弛型線性規(guī)劃

標(biāo)準(zhǔn)型:

最大化:3x1+x2+2x3

滿(mǎn)足約束:x1+x2+3x3≤30

????????????????????2x1+2x2+5x3≤24

????????????? 4x1+x2+2x3≤36

????????????? x1,x2,x3≥0

松弛型:

最大化:z=3x1+x2+2x3

滿(mǎn)足約束:x4=30-x1-x2-3x3

????????? x5=24-2x1-2x2-5x3

????????? x6=36-4x1-x2-2x3

確定基本解:把等式右邊的所有變量設(shè)為0,可得基本解(x1,x2,x3,x4, x5, x6)=(0,0,0,30,24,36),目標(biāo)值z(mì)=0;

第二:主元操作迭代第一次,選擇增加x1的值。當(dāng)增加x1值時(shí),x4, x5, x6的值隨之減小,但每個(gè)變量都有非負(fù)約束,所以不能減小到負(fù)值,這個(gè)時(shí)候就要在約束函數(shù)上選擇最緊約束(就是選擇最小增加值)。

如果x1值增加到30,那么x4是負(fù)值;增加到12,則x5是負(fù)值;增加到9,則x6是負(fù)值;這個(gè)就知道了,9是x1值所能增加的最大值,就是最緊約束,對(duì)約束函數(shù)x6=36-4x1-x2-2x3互換變量x1和x6的角色,得到:x1=9- x2/4- x3/2- x6/4,代入原線性規(guī)劃據(jù)此可得新的松弛型線性規(guī)劃,如下:

最大化:z=27+x2/4+ x3/2- 3x6/4

滿(mǎn)足約束:

??????? x1=9- x2/4- x3/2-x6/4

???? x4=21-3x2/4-5x3/2+x6/4

???? x5=6-3x2/2-4x3+x6/2

確定基本解,同樣把等式右邊的所有變量設(shè)為0,可得基本解(x1,x2,x3,x4, x5, x6)=(9,0,0,21,6,0),目標(biāo)值z(mì)=27;

第三:主元操作迭代第二次,選擇增加x3的值,最緊約束是x5=6-3x2/2-4x3+x6/2,最大增加到3/2,否則x5的值為負(fù),和第一次迭代一樣,互換x3和x5并代入線性等式獲得新的線性規(guī)劃,可得基本解(x1,x2,x3, x4, x5,x6)=(33/4,0,3/2,69/4,0,0),目標(biāo)值z(mì)=111/4;

第四:主元操作迭代第三次,互換x2和x4并代入線性等式獲得新的線性規(guī)劃,可得基本解(x1,x2,x3, x4, x5,x6)=(8,4,0,18,0,0),目標(biāo)值z(mì)=28,為最優(yōu)解,(x1,x2,x3)=(8,4,0)。

最關(guān)心的問(wèn)題還是具有可行解的線性規(guī)劃經(jīng)過(guò)這樣的迭代,在算法終止時(shí)是否確實(shí)能找到最優(yōu)解,這個(gè)就留給線性規(guī)劃對(duì)偶性來(lái)說(shuō)明。

4)單純形算法分析

現(xiàn)在我們知道單純形算法可以在多項(xiàng)式時(shí)間內(nèi)求解線性規(guī)劃最優(yōu)解,那么關(guān)心兩點(diǎn):一是算法終止時(shí),獲得的是最優(yōu)解,這個(gè)就是對(duì)偶性要回答;二是輸入一個(gè)線性規(guī)劃要判斷出是可行可解的,這個(gè)就是輔助線性規(guī)劃要回答的。任何線性規(guī)劃都可能是不可行的,或是無(wú)界的,或有一個(gè)優(yōu)先目標(biāo)值得最優(yōu)解,針對(duì)這些個(gè)情況,單純形算法要能正確識(shí)別。

線性規(guī)劃的基本定理:以標(biāo)準(zhǔn)型給出任意的線性規(guī)劃L可能是以下三者之一:

第一:有一個(gè)有限目標(biāo)值的最優(yōu)解;

第二:不可行;

第三:無(wú)界;

如果L是不可行的,單純形算法在初始化中就會(huì)返回不可行;如果L是無(wú)界的,單純形算法返回?zé)o界,無(wú)界就是找不到最優(yōu)解或者有無(wú)限個(gè)目標(biāo)值;當(dāng)然,滿(mǎn)足第一情況的,就會(huì)返回有限目標(biāo)值的最優(yōu)解。

單純形算法在初始化過(guò)程中,會(huì)確定線性規(guī)劃是否有可行解,如果有,則給出一個(gè)基本解可行的松弛型線性規(guī)劃。這個(gè)初始化過(guò)程其實(shí)就是對(duì)線性規(guī)劃測(cè)試可行解。那么是如何來(lái)確認(rèn)存在可行解呢?通過(guò)構(gòu)造輔助線性規(guī)劃,這個(gè)輔助線性規(guī)劃,比較容易找到一個(gè)基本解可行的松弛型。只要輔助線性規(guī)劃有可行解,則要輸入的線性規(guī)劃也就有可行解。如果線性規(guī)劃L沒(méi)有可行解,則初始化返回不可行,否則返回一個(gè)基本解可行的合法松弛型。怎么構(gòu)造輔助線性規(guī)劃呢?

輔助線性規(guī)劃:令L是一個(gè)標(biāo)準(zhǔn)型的線性規(guī)劃,令L aux是帶有n+1個(gè)變量的線性規(guī)劃:

最小化:-x0

滿(mǎn)足約束:

則當(dāng)且僅當(dāng)Laux的最優(yōu)目標(biāo)值為0時(shí),L是可行的。

輔助線性規(guī)劃,增加一個(gè)x0變量,并且令目標(biāo)值為0。對(duì)輔助線性規(guī)劃求解可行解,也是按照主元操作,將標(biāo)準(zhǔn)型轉(zhuǎn)換成松弛型后不斷交換變量迭代。輔助線性規(guī)劃較容易找到可行解。算法導(dǎo)論中證明了輔助線性規(guī)劃存在可行解就是要求解的線性規(guī)劃存在可行解。

現(xiàn)在我們要引進(jìn)線性規(guī)劃對(duì)偶性的概念。對(duì)偶性有一個(gè)很重要的性質(zhì):在一個(gè)最優(yōu)化問(wèn)題中,一個(gè)對(duì)偶問(wèn)題的識(shí)別總是可以在一個(gè)多項(xiàng)式時(shí)間內(nèi)發(fā)現(xiàn)。對(duì)偶性是用來(lái)證明某個(gè)解確實(shí)是最優(yōu)解。還是動(dòng)態(tài)規(guī)劃思想:已知一個(gè)最大化問(wèn)題,定義個(gè)相關(guān)的最小化問(wèn)題,來(lái)讓著兩個(gè)問(wèn)題有相同的最優(yōu)目標(biāo)值。如最大流問(wèn)題的最大流最小割原理。對(duì)偶的字面意義,就是我的解也是你的解,大問(wèn)題的解是小問(wèn)題的解。

已知一個(gè)目標(biāo)是最大化的線性規(guī)劃,制定一個(gè)對(duì)偶線性規(guī)劃,其目標(biāo)是最小化,而且最優(yōu)值與原始線性規(guī)劃相同。給定一個(gè)標(biāo)準(zhǔn)的原線性規(guī)劃,定義對(duì)偶線性規(guī)劃為:


構(gòu)造對(duì)偶,將最大化改成最小化,將約束右邊的與目標(biāo)函數(shù)的稀疏角色互換,并且小于等于號(hào)變成大于等于號(hào)。在原問(wèn)題的m個(gè)約束中,每一個(gè)在對(duì)偶問(wèn)題中都一個(gè)對(duì)應(yīng)的變量yi,在對(duì)偶問(wèn)題的n個(gè)約束中,每一個(gè)在原問(wèn)題中都一個(gè)對(duì)應(yīng)的變量xj

開(kāi)始不是很能理解這個(gè),對(duì)著文中例子看很久才知道主要是兩點(diǎn):1)原線性規(guī)劃中的目標(biāo)函數(shù)的系數(shù)變成對(duì)偶線性規(guī)劃中約束函數(shù)的右邊值,原線性規(guī)劃中的約束函數(shù)的右邊值變成對(duì)偶線性規(guī)劃中目標(biāo)函數(shù)的系數(shù);2)原線性規(guī)劃中每一個(gè)約束函數(shù)的左邊等于對(duì)偶線性規(guī)劃中的一個(gè)變量,就是原線性規(guī)劃中的m個(gè)約束函數(shù)等于m個(gè)對(duì)偶線性規(guī)劃中的變量,反之也是。

導(dǎo)論最后只能夠證明了對(duì)偶線性規(guī)劃的最優(yōu)值總是等于原線性規(guī)劃的最優(yōu)值。

線性規(guī)劃弱對(duì)偶性:原線性規(guī)劃的任意可行解的數(shù)值不大于對(duì)偶線性規(guī)劃的任意可行解的值。

基于線性規(guī)劃弱對(duì)偶性,原問(wèn)題可行解的目標(biāo)值不會(huì)超過(guò)對(duì)偶問(wèn)題的可行解的目標(biāo)值。而原線性規(guī)劃是一個(gè)最大化問(wèn)題,對(duì)偶性線性規(guī)劃是一個(gè)最小化問(wèn)題,如果原線性規(guī)劃的可行解等于對(duì)偶線性規(guī)劃的可行解,那這個(gè)可行解就是原線性規(guī)劃和對(duì)偶線性規(guī)劃的最優(yōu)解。

通過(guò)構(gòu)造對(duì)偶性線性規(guī)劃確認(rèn)最優(yōu)解,通過(guò)構(gòu)造輔助線性規(guī)劃來(lái)確定可行解,單純形算法是可以對(duì)任意輸入一個(gè)標(biāo)準(zhǔn)型線性規(guī)劃,返回或不可行或無(wú)界或最優(yōu)解的。

總結(jié)

以上是生活随笔為你收集整理的算法导论之线性规划的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。