• 沒有找到結果。

線性規劃

N/A
N/A
Protected

Academic year: 2022

Share "線性規劃"

Copied!
12
0
0

加載中.... (立即查看全文)

全文

(1)

線性規劃 (Linear Programming)

方述誠

與其他傳統數學學門相比較, 線性規劃 算是非常 「年輕」 卻非常 「實用」 的一門應用 數學。根據八十年代的一項調查, 在美國 「財 星」 雜誌 (Fortune) 列名前五百名的大公司 中, 百分八十五均曾應用線性規劃的方法來 協助公司的營運。 由此可見線性規劃應用面 的寬廣與普及。

那麼究竟什麼是線性規劃呢? 簡 單 的 來說, 線 性 規 劃 研 究 「線 性 最 優 化」(optimization) 問題。 假 想 我 們預 備 做一 項 決 策, 而 該 決 策 牽 涉 到n個 變 數(x1, x2, . . . , xn)有待決定。 若是有一個 目標函數可以表現為z(x1, x2, . . . , xn) = c1x1 + c2x2 + . . . + cnxn這種線性 (一 次) 函數, 同時這些變數之間的相互約束 也可以用m個線性 (一次) 不等式來表示 成ai1x1 + ai2x2 + . . . + anixn ≤ bi (i = 1, 2, · · · m)。 那麼我們就面對著一個線性規 劃問題:

Minimize z = c1x1+c2x2+. . .+cnxn

s.t.

a11x1+ a12x2 + . . . + a1nxn ≤ b1

a21x1+ a22x2 + . . . + a2nxn ≤ b2

... ...

am1x1+ am2x2+ . . . + amnxn ≤ bm

x1, x2, . . . , xn≥ 0

如果我們以向量c = (c1, c2, . . . , cn)t來 表 示 目 標 函 數 的 係 數, 向量x = (x1, x2, . . . , xn)t來表示變數, 向量b = (b1, b2, . . . , bm)t來表 示 約 束 不 等 式 的 右 手 值, 同時以矩陣A = (aij)m×n來表示諸約 束函數的係數, 那麼上述的線性規劃問題可 以簡化成下列形式:

Minimize ctx

s.t. (P)

Ax ≤ b x ≤ 0

換言之, 線性規劃的目的在求得一組變 量特定質, 使之在滿足各個約束同時也達到 目標函數的最小值。

實際上, 透過簡單的數學轉換, 線性 規劃也可以處理最大值的問題。 同時它的

1

(2)

變數 x1, x2, . . . , xn也無需限制為非負值, 而Ax ≤ b更可以改為 Ax = b或者Ax ≥ b的約束形式。 但是為了方便討論起見, 我們 暫時集中精神在形式如 (P) 的問題上。

I. 線性規劃的歷史

根據一般的說法, 線性規劃問題是由現 在美國史丹褔大學任教的 G. B. Dantzig 教授在 1947 年前後孕育出來的。 那個時候他 擔任 美國空軍的數學顧問, 負責發展一套 機械式的方法來做兵力調遣, 人員訓練, 以 及後勤補給這些計劃方案。 由於這類問題牽 涉很廣也很複雜, 所以Dantzig 博士先考慮 最簡單的線性結構, 將有關的函數一律簡化 成線性形式來處理。 其結果便在 1948 年以

「線性結構的規劃」(Programming in Lin- ear Structure) 的標題發表。 至於 「線性規 劃」這個名稱, 則是另一位名家 T. C. Koop- mans 和 Dantzig 兩人於 1948 年夏天在美 國加州 聖塔摩尼加(Santa Monica) 海灘散 步時擬定的。 在 1947 到 1949 兩年間, 線性 規劃裡的一些重要觀念, 包括最有名的 「單 形法」(Simplex method), 都陸續見諸於世。

而且從 1947年開始,T. C. Koopmans 便明 確指出線性規劃可以做為傳統經濟分析的利 器。

這兒特別要注意的是線性規劃的理論基 礎絕不是一夕生成。 早在 1826 年左右法國 的大數學家傅立葉便研究過如何解決一組聯 立線性不等式的問題。 這以後還有不少的數 學家做過相關的研究工作。 到了1939 年,W.

Karush 在芝加哥大學的碩士論文更提出在

有限維空間裡滿足不等式約束的函數其最優 化的條件 (optimality conditions)。 在同一 年裡, 蘇聯的 L. V. Kantorovich 更提出一 些很特殊的線性規劃模式來做簡單的生產計 劃。 他甚至還有一套簡化的方法來求解呢!不 幸的是 Kantorovich的工作始終未為蘇聯之 外的世界所知, 一直到了 Dantzig 建立起完 整的線性規劃理論之後數十年方為世人所知。

在 1950 和 1960 年代, 線性規劃的內容 愈變愈豊富, 更有許多成功的實用案例, 所 以愈來愈受世人矚目。 到了 1975 年, 瑞典皇 家科學院決定將當年的諾貝爾經濟獎頒發給 前面提到的L. V. Kantorovich 和 T. C.

Koopmans 以表彰他們在 「資源最佳分配理 論」 的貢獻。 由於這項最佳分配是藉由線性規 劃模式來達成, 所以線性規劃便成了萬眾矚 目的焦點。

四年之後 (亦即 1979 年), 線性規劃 再次成了報章雜誌的頭條新聞。 這次是因為 一位蘇聯數學家 L. G. Khachian, 他 利用 N. Z. Shor,D. B. Yudin, 以及 A. S. Nemirovskii的 「橢球法」 (ellip- soid method) 概念印證出線性規劃問題可 在多項式時間內求得解答。 從純理論的觀點 而言,Khachian 的 「橢球法」 在最惡劣的情 況下所需要的計算量要比 「單形法」 增長的緩 慢。 所以有希望用之解決超大型的線性規劃 問題, 包括全球資源的最佳分配在內。 這也就 是華爾街日報(Wall Street Journal) 將 「橢 球法」 的發現列為頭條新聞的重要原因。

不 幸 的 是 理論 歸 於 理論, 在 實際 計 算上,「橢球法」 的一般表現反倒不如傳統

(3)

的 「單形法」來得有效。於是這方面的學者 專家重新構想是否能設計出一套解法無論 在 理論 上 和 實 際 計 算 上 均 能 超 越 「單 形 法」? 這個問題的答案到了 1984 年由一位 美國電話電報公司貝爾實驗室的印度裔科學 家N. Karmarkar 揭曉。 他設計出一項 「內 點法」 來解線性規劃問題, 不但理論上較 「單 形法」 為優, 而且經由實際驗證適合解決超大 型的問題。 從此之後,「內點法」 的研究在最近 八年來蔚為一時風潮, 不斷有推陳出新的結 果。

II. 線性規劃的特性

尚未介紹線性規劃解法之先, 我們先看 一個很簡單的例子:

Minimize −x1− 2x2

s.t. x1+ x2 ≤ 40 2x1+ x2 ≤ 60

x1 ≥ 0, x2 ≥ 0。

若是我們將它的可行解集合(feasible do- main) 定義成F={(x 1, x2) ∈ R2| x1 + x2 ≤ 40, 2x1 + x2 ≤ 60,x1 ≥ 0,x2 ≥ 0}, 那麼我們可由下圖看出P 是一個多邊形具有四個頂點, 其座標分別 是(0, 0),(0, 40),(30, 0), 以及(20, 20)。 由該 圖形也很容易印證該線性規劃雖有無窮多的 可行解, 但是最佳解發生在 x = (0, 40)此 一頂點。 它的最佳函數值則為z = −0 − 80 = −80。

圖1

這雖然是一個很簡單的例子, 但它也告訴我 們幾個重要的事實:(1) 線性規劃的可行解 集合若非空集合則含有頂點。(2) 這些頂點 之一可能就是一個最佳解。 正式的說法是給 定一個線性規劃問題 (P), 定義可行解集 合F={x ∈ R n| Ax ≤ b,x ≥ 0}, 則下述 兩定理成立:

定理1:若F 6= φ, 則F 至少含有一個頂 點。

定理2:若F 6= φ, 而且 (P) 的最佳解 值不為負無限大, 那麼F 至少有一個頂點會是 (P) 的最佳解。

值得注意的是一般而言,F 6= φ時, 它可能像 上例所示為一個有界的 (bounded) 的多面 體 (polytope), 也可能是一個無界的 (un- bounded) 多面集合 (polyhedral set)。 但 不論是有界或是無界,F 都是一個含有有限個 頂點的凸集合。 至於定理2則指出當線性規劃

(4)

問題有解時, 它的最佳解可能朝著無界的極 值方向發生而使最佳解值變得無限小。 假若 不是這種情況, 那麼F 的某個頂點一定會是最 佳解之一。

根據定理 1 和定理 2, 我們知道當F 6=

φ時而且 (P) 的最佳解值不為負無限大時,F 雖然可能含有非頂點的最佳解, 但至少有一 個頂點是最佳解之一。 所以我們立刻就可以 集中注意力在頂點之上並且設計出一套 「列 舉法」 來解線性規劃問題:

(列舉法):

步驟一: 找出F 的所有頂點。

步驟二: 計算每個頂點的對應函數值cTx。

步驟三: 相互比較找出具有最小函數值的頂 點便是解答。

這個方法看似簡單, 實行起來卻有問題。

從前面的例題來看, 因為F 在二維空間裡頭, 它的任何一個頂點均由相交兩線所定。 比方 說(20, 20)由2x1 + x2 = 60與x1 + x2 = 40相交而得;(0, 40)由x1 = 40與x1 + x2 = 40相交而得;(0, 0)由x1 = 0與x2 = 0相交而 得;(30, 0)則由2x1+ x2 = 60與x2 = 0相交 而得。 理論來說, 我們由2x1+x2 = 60 ,x1+ x2 = 40以及x1 = 0,x2 = 0這四條直線中每 次取兩條相交, 可以得到 C(4, 2) = 6個頂點 才對。 但是由x1 + x2 = 40與x2 = 0相交而 得的(40, 0)以及由 2x1 + x2 = 60與x1 = 0相交而得的(0, 60)並非 (P) 的可行解, 所 以F 一共只有四個頂點。

將這個例子推廣來看, 對於一個給定的 線性規劃問題 (P) 而言, 在n維空間裡, 每 一個頂點均由n個超平面 (hyperplane) 相 交而成。 因為 (P) 一共有(m + n)個超平 面 (亦即 Ax = b與x = 0), 所以F 最多 有C(m + n, n) = (m + n)!/n!m!這麼多 個頂點。 讀者只需要將n = 100,m = 50代 入C(m + n, n)便知道F 有多少個可能的頂 點, 要想用列舉法來解這麼一個 「小型」 問 題, 實在不是一件容易的事, 更遑論解決 「大 型」 的問題具有百萬變數與數十萬的約束條 件呢? 所以我們一定要設計出有效率有系統 的方來解線性規劃的問題。

III. 線性規劃的解法

在這一節裡我們簡單的來介紹三種重要 的線性規劃解法, 它們分別是在第一節中提 過的 「單形法」、「橢球法」、 以及 「內點法」。

一.單形法

單形法的基本概念很簡單明瞭, 既然一 個線性規劃的最佳解可能出現在F 的一個頂 點之上 ,我們又不想用列舉法列出所有的頂 點, 那麼我們就由某一個容易求得的頂點開 始, 再檢查所有在F 中與它相連接的鄰近頂 點。 如果有任何一個鄰近頂點的函數值要來 得更小, 那麼我們便移動到這個鄰近頂點。 接 著便以此新的頂點為準再檢查與它相連接的 鄰近頂點來決定向何處移動。 因為F 的頂點 個數有限, 最後我們終於會找到一個頂點使 它的函數值要比所有鄰近頂點都來得低或至 少相當, 或者我們可以發現到此頂點有一個

(5)

極值方向會使函數值降到無限小。 據此便可 判斷出現有的頂點為 (P) 的最佳解或者 (P) 的最佳解值為負無限大。 我們可將單形法的 重要步驟勾勒如下:

步驟一: 找一個 F 的頂點 x1, 使得 Ax1 ≤ b,x1 ≥ 0。 如果找不到, 則表示F

= φ而且 (P) 無解。 設定指標k = 1。

步驟二: 決定由現有頂點xk通往鄰近頂點或 極值的各個方向dkq

(i) 若沿著各個dkq方向走, 均會增 加目標函數值, 則xk已是 (P) 的最 佳解。

(ii) 若沿著某一個dkq方向走, 會減 少目標函數值, 則做下一步驟。

步驟三: 測試沿著dkq方向走能多遠而不離 開F (亦即步長αk)。

(i) 若步長αk可為無限大, 則dkq通 往極值方向, 而且 (P) 的最佳解值 為負無限大。

(ii) 若步長αk有其上限, 則沿dkq通 往較佳之鄰近頂點

xk+1 = xk+ αkdkq

重新設定指標k ← k + 1, 回頭做 步驟二。

前述的三個步驟僅是個大概, 至於細節 則需要參考其他資料。 一般而言, 步驟一常用

「 Big-M」 法或者 「Two-Phase」 法來找第 一個頂點。 步驟二中的可能移動方向則由所 謂的 「 基本矩陣」(Fundamental Matrix) 來決定。 至於步驟三中的步長則由 「最小比 例測試」 (Minimum Ratio Test) 來決定。

由下圖 (圖 2) 可以看 「單形法」 沿著可行解 集合F 的邊界由一個頂點移動到另一個頂點 的情形, 也就是因為這個原因, 單形被歸類為

「邊界趨近法」。

圖2

整體而言, 單形法的表現相當不錯。 對 於一個有n個變數及m個約束的線性規劃問 題, 平均起來, 單形法只需要移動經過大約 m0.9522× n0.3109這麼多個頂點, 便能求得最 佳解。 但是 G. Minty 和 V. Klee 兩位學 者在 1971年提出實例來驗證單形法在最差情 況下的表現非常不好, 對於一個n維空間裡的 特殊線性規劃問題, 單形法要移動經過 2n− 1個頂點才能到達最佳解。 因為2n這個數目隨 著n的增長而做 指數式成長, 所以成長速度 相當快, 要用單形法來解決超大型的線性規

(6)

劃確實有值得憂慮之處。 讀者不妨想像n = 1000便知道2n有多大。 也就是因為這個隱憂, 所以學者專家們一直希望能找出一個解法不 需要經過那麼多次計算便能達到最佳解。 最 好是隨著n與m的增長, 總共的計算量僅做多 項式函數的增加, 而非指數式增加。 這也就 是一般所謂在 「多項式時間」(polynomial- time) 內解線性規劃問題。

二.橢球法

橢球法是第一個可以在多項式時間內解 決一般線性規劃問題的解法。 它和單形法相 當不同, 在這一節裡我們做一個簡單的介紹。

對於一個線性規劃問題 (P) 而言, 根據 給定的資料(A, b, c)我們可以定出一個息息 相關的對偶問題 (Dual problem):

Maximize bT w s.t.

Atw≤ c (D) w≤ 0

這個對偶問題 (D) 有m個小於或等 於零的變數w1, w2, . . . , wm以及n個約束條 件。 由於 (P) 和 (D) 均是由同一組資 料(A, b, c)所決定, 它們之間滿足所謂的對 偶性質:

定理3:

(i) 若 (P) 和 (D) 之一具有有限的最佳 解, 則另一問題亦具有有限的最佳解, 而且ctx = btw

(ii) 若 (P) 和 (D) 之一的最佳解值為無限 大, 則另一問題必然無解。

根據 (P) 與 (D) 的對偶關係, 我們可將 兩者的最佳解以一組最優化條件 (Optimal- ity conditions) 聯結起來:

Ax ≤ b, x≥ 0 ATw≤ c, w≤ 0 cTx− btw= 0

(∗)

若是我們能找到一組x ∈ Rn及w ∈ Rm滿足上述最優化條件的線性不等式, 那 麼x就是 (P) 的最佳解,w是 (D) 的最佳 解。 所以只要能有效的解決最優化條件的線 性不等式, 就能夠同時的解決一個線性規劃 問題 (P) 以及它的對偶問題 (D)。 而橢球法 正是一種專門解決線性不等式的方法。

現在我們介紹如何以橢球法來解一組線 性不等式Mu ≤ ν, 其中M是一個p × q 的 矩陣,u ∈ Rp,ν ∈ Rq。 為了方便起見, 我 們利用圖3 的二維空間情形來解釋, 但讀者不 難想像在高維空間裡用橢球來取代二維的橢 圓。 首先注意到的是因為Mu ≤ ν的解集合 是一個多邊凸集合S={u ∈ R p|Mu ≤ ν}。

只要S 6= φ, 我們以原點u1為心, 足夠大的 半徑做一圓E1, 一定可以使得S ∩ E1 6= φ。

此時我們檢驗 Mu1 ≤ ν是否成立。 若是成 立, 則u1 ∈ S ∩ E1正是我們需要的解答。

否則的話, 因為S ∩ E1是一個凸集合, 所以 經過圓心, 我們可以切掉不含S ∩ E1 的半個 圓, 而只賸下包含S ∩E1的半個圓 (以12E1表 示之)。 對 12E1而言, 我們可以做出一個最小 的橢圓E2, 使得 12E1 ⊆ E2。 這個橢圓的

(7)

圓心可由公式求得並以u2表示。 值得注意的 是S ∩ E1 ⊆ E2, 所以我們再檢驗Mu2 ≤ ν是否成立。 若是成立, 則u2 ∈ S ∩ E1必為 其解。 否則經過u2我們又可切去半個E2, 而 使 S ∩ E1包含在另一半橢圓1

2E2之中。 再使 用1

2E2做出一個最小的橢圓E3, 使得12E2 ⊆ E3。 我們再利用公式求出新的圓心 u3並檢 驗Mu3 ≤ ν是否成立。 這其中的變化可參考 圖 3 所示。

圖3

值得注意的是在p維空間中, 每次做 出 的 橢球體 積 都 會 逐 漸 縮 小。 若 是 我 們 以V (Ek)及 V (Ek+1)來表示前後兩個橢 球的體積, 那麼可以證明出來V (Ek+1) <

e12(p+1)V (Ek)。 也就是說V (Ek+1) <

ek2(p+1)V (E1)。 由於 ek2(p+1)依著指數 式減少, 可看出V (Ek)隨著k的增加而縮小 的很快。 所以在多項式時間內, 新的橢球體 積便可縮減至零, 要是此時的球心仍不滿

足Mu ≤ ν , 那麼我們可以判斷出S = φ, 亦即原題無解。

依據前述道理, 我們可將線性規劃的橢 球法約略敘述如下:

步驟一: 考慮最優化條件的線性不等式(∗)。

在(x, w) ∈ Rn+m的空間中, 以 原點u1= (x1, w1)為心, 足夠大的 正數22L為半徑做一圓球E1。 並設 定指標k = 1。

步驟二: 檢驗現有球心uk= (xk, wk)是否 滿足該最優化不等式。 若滿足, 則xk是 (P) 的最佳解,wk是 (D) 的最佳解。 若不滿足, 則依前述 方法得到一個新的橢球Ek+1及其 球心uk+1

步驟三: 若是V (Ek+1) = 0,uk+1仍不滿 足最優化不等式, 則 (P) 或 (D) 至少有一無最佳解。 否則重新設定 指標k ← k + 1, 回頭做步驟二。

至於橢球法的詳細情節, 讀者可參考本 文所附的參考資料, 我們就此打住不再贅述。

三.內點法

內點法是針對單形法的 「邊界趨近」 觀 念而改採 「內部逼近」 的路線。 它的概念也很 容易瞭解, 與其像單形法一般沿著邊界由一 個頂點移動到另一個頂點, 為何不離開邊界 而橫跨可行解集合F 的內部以期迅速逼近最 佳解。 這就如圖 4所示:

(8)

圖4

這個觀念看似容易卻不容易實行, 最大的困 難是在F 內部時要估計與各邊界的距離, 才能 確定移動的步長。 這樣一來計算量就相當大, 反而不如單形法來的簡易。 也就是因為這個 原因, 數十年來始終沒有人設計出來一套有 效的 「內點法」 來解線性規劃問題。

為了方便討論起見, 在本節裡我們將 (P) 化為 「等式」 約束的下列形式:

Minimize ctx

s.t. (P)

Ax = b x≥ 0

同時我們定義x ∈ Rn為一個 「可行內 點」(interior feasible) 如果 Ax = b,x >

0。 將這些可行內點集中起來, 便得到一個

「可行內點解集合」F0 = {x ∈ Rn| Ax = b,x > 0}。 在設計內點法時, 我們當然得假 設F0 6= φ, 否則便無內點可言。

內點法也可粗略的分為三個步驟:

步驟一: 找一個可行內點x1 ∈ F0。 設定指標k = 1。

步驟二: 決定現有解xk是否為 (P) 的最佳 解。 若然, 則輸出x = xk。 否則 就尋求一個好的移動方向dkx, 以 及適當的步長αk> 0。

步驟三: 由xk移動到新的內點

xk+1 = xk+ αkdkx∈ F0。 重新設定指標k ← k + 1, 回頭做 步驟二。

有關內點法的詳細討論, 讀者可參考本文所 附之參考文獻。 大體而言, 步驟一中的尋求 起始內點也有所謂的 「Big-M」 法與 「Two- Phase」 法。 步驟三則是很簡單的計算問題。

因此內點法的重點精神則著重於如何選取一 個好的移動方向dkx , 適當的步長αk, 以及判 斷現有解是否為最佳解這三件事情上。 由於 內點法的支派很多, 各有各的方法, 所以很難 統合為一。 我們現在就介紹一種比較簡單的

「Primal Affine Scaling」 方法。

記得我們曾經提過內點法的最大困難是 需要估計現有內點與各邊界的距離。 現在我 們把問題簡化一些, 假想 (P) 的可行解集合 是座落於第一象限的一個球, 而現行解xk剛 好落在球心上, 此球的半徑是r > 0, 那麼我 們面對著下列問題:

Minimize ctx

s.t. (P1)

n

X

j=1

(xj− xkj)2 ≤ r2

其中xkj(j = 1, 2, · · · n)代表xk的第j個座 標。

(9)

要解 (P1) 很容易, 因為xk在球心, 所以 距離邊界等遠, 只要我們沿著 −c的方向走, 便能使目標函數降到最低, 所以最佳解應為

x = xk+1 = xk+ r −c k − ck。 接著我們將(P1) 變得稍微複雜一些, 將球改 為第一象限Rn+來考慮下列問題:

Minimize ctx

s.t. (P2)

x≥ 0

假設現行解xk > 0, 那麼我們要如何移動到 最佳解呢? 注意到xk離開各個邊界的距離分 別是xkj,j = 1, 2, · · · n。 所以即使沿著最佳 方向走, 未必能走最大步長而達到最佳解。 為 了補救這個缺點, 我們可以考慮用一個一對 一且映成的函數 Tk將Rn+送到Rn+, 並將xk送 到 e = (1, 1, · · · 1)t這一點。 這時候我們可 用e為球心開一個單位半徑的球來做一個近 似解答 (approximation)。 這個近似解雖然 不很好, 但是至少我們從 (P1) 已經知道如何 求解。 其觀念可參照圖 5。

圖5

注意到xk> 0, 所以我們可定義一個n × n的

對角線矩陣

Dk =

xk1

xk2 0 . ..

0 xkn

以及它的反矩陣

Dk1 =

1 xk1

1

xk2 0

. ..

0 x1k n

讀者可以印證一下:

Tk : Rn+ −→ Rn+

x−→ y = Tk(x)=D k1x

正是一個一對一的映成函數將xk送到yk = Tk(xk) = Dk1xk = e。 其反函數則為

Tk1 : Rn+−→ Rn+

y−→ x = Tk1(y) = Dky

而且Tk1(e) = Dke = xk

在 上 述轉 化 之 下,(P2) 的 近 似 問 題 在y空間中就可寫成:

Minimize ctDky

s.t. (P2)

n

X

j=1

(yj− 1)2 ≤ 1

應用 (P1) 的解答技巧, 我們知道在y空間中 的近似最佳解為

y = yk+1 = yk+ −Dkc kDkck

= e − Dkc kDkck

(10)

因此在x空間內 (P2) 的近似最佳解是 x = xk+1 = Dkyk+1

= Dke− D2kc kDkck

= xk− D2kc kDkck

既然知道如何求 (P2) 的近似最佳解, 我們回 過頭來看 (P) 的近似最佳解法。 應用同樣的 轉換技巧, 在y空間中 (P) 變成下列的近似 問題:

Minimize ctDky s.t.

ADky= b (P)

n

X

j=1

(yj− 1)2 ≤ 1

與 (P2) 相比較,(P) 多了一些等式約束 條件 ADky = b。 為了保持這些等式的 繼續成立, 我們原來在 (P2) 中的移動方 向−Dkc便需要投影在(ADk)這個矩陣的零 空間 (null space) 之中。 依據線性代數的 理論推演, 我們知道經過投影後的方向應該 是Pk(−Dkc)其中Pk是一個投影矩陣定義為

Pk

=[I − D kAT(AD2kAT)1ADk]。

所以(P) 的近似最佳解是

y = yk+1 = e +Pk(−Dkc) kPkDkck 同時 (P) 的近似最佳解則是

x = xk+1 = Dkyk+1

= xk− DkPkDkc kPkDkck

上式告訴了我們內點法的移動方向與步長, 至於如何判定xk+1是否是 (P) 的真正最佳解 則可藉助下列定理。

定理4:若是有任何一個j,j = 1, 2, · · · , n, 使得xk+1j = 0, 則 xk+1為 (P) 的最佳解。

寫到這兒, 我們可將 「Primal Affine Scal- ing」 內點法的重要步驟重新整理如下:

步驟一: 找一個可行內點x1∈ F0。 設定指標k = 1。

步驟二: 計算移動方向 dkx = −DkPkDkc, 步長αk= 1

kPkDkck, 新內點xk+1 = xk+ αkdkx。 步驟三: 檢驗是否有xk+1j = 0 , j =

1, 2, · · · , n。

若成立則輸出x = xk+1

否則重新設定k ← k + 1, 回頭做 步驟二。

特別要提醒讀者的是上述內點法僅是一個最 基本的架構, 它的本身並未經證明可以在多 項式時間內解決一個線性規劃問題。 但是只 要稍加修改, 便可具備此性質。 事實上自 1984 年 N. Karmarkar 提出第一個有效的 內點法之後, 這方面的研究蔚為一時風潮, 至 今仍然方興未艾。

(11)

IV. 三種解法比較

就前述三種方法而言, 單形法最老牌, 研究的最為透徹, 商業化的軟體程式也最成 熟, 許多公司行號, 機關學校都曾成功的應用 過。 橢球法則像曇花一現, 雖然在理論上證明 了線性規劃問題可在多項式時間內求解, 但 在實際應用上反而不如單形法來的有效便捷。

至於內點法則是最新的設計, 理論上它比橢 球法還要有效, 實際應用上它也可與單形法 相抗衡 ,不少的商業化軟體程式已經上市, 前 景甚佳。

若是要問單形法和內點法究竟何者較 佳? 這個問題並沒有一個黑白分明的答案。

這兩種方法的基本設計不同, 單形法沿著邊 界由一個頂點移動到相鄰的頂點, 內點法卻 跨過可行解集合的內部去逼近最佳解。 由於 一個頂點的相鄰頂點個數有限, 所以前者每 一步移動時的計算量不大。 反觀一個內點卻 有著無窮多的相鄰內點, 所以內點法要比較 仔細的衡量每一步移動方向與步長。 但正因 為內點法每一步的移動考量較周詳, 它就不 需要做太多次的移動, 至少不會像單形法有

「周遊列國」 繞過所有頂點的最惡劣情況發 生。 綜合來說, 對於中小型問題而言, 由於可 行解集合的頂點不多, 單形法的表現大體上 要比內點法為佳。 對於大型或超大型問題而 言, 可行解集合的頂點幾成天文數字, 此時內 點法的表現就有機會領先單形法了。

也正因為上述理由, 在今天要教或要學 線性規劃就要同時瞭解傳統的單形法和新創 的內點法, 可謂缺一不可。 市面上現行的線性

規劃教科書也正面臨著改寫的挑戰。 我們需 要有更多優秀的學者專家和學生來共襄盛舉。

參考文獻

1. Bazaraa, M. S., Jarvis, J. J., and Sher- ali, H. D., “Linear Programming and Network Flows”(second edition), John Wiley, New York (1990).

2. Bland, R. G., Goldfarb, D., and Todd, M. J. “The ellipsoid method: a sur- vey”, Operations Research 29, 1039- 1091 (1981).

3. Borgwardt, K. H., The Simplex Method: A probabilistic Analysis, Springer-Verlag, Berlin (1987).

4. Chvatal, V., Linear Programming, Freeman, San Francisco (1983).

5. Dantzig, G. B., “Maximization of a lin- ear function of variables subject to lin- ear inequalities”, Activity Analysis of Production and Allocation, edited by T.

C. Koopmans, John Wiley and Sons, New York, 339-347 (1951).

6. Dantzig, G. B., Linear Programming and Extensions, Princeton University Press, Princeton, New Jersey (1963).

7. Fang, S. C., and Puthenpura, S.

C., “Linear Optimization and Exten- sions: Theory and Algorithms”, Pren- tice Hall, New Jersey (1993).

8. Gass, S. I., Linear Programming:

Methods and Applications ( second edition ), McGraw-Hill, New York (1964).

9. Gilmore, P. C., and Gomory, R. E.,

“A linear programming approach to the cutting-stoch problem”, Operations Research9, 849-859 (1961).

(12)

10. Gilmore, P. C., and Gomory, R. E.,

“A linear programming approach to the cutting-stock problem-Part II”, Operations Research 11, 863-888 (1963).

11. Goldfarb, D., and Todd, M. J., Linear Programming, in Optimiza- tion, Hand- book in Operations Re- search and Management Science, edited by Nemhauser, G. L. and Rinnooy Kan, A. H. G., Volume 1, 73-170, Elsevier- North Holland, Amsterdam (1989).

12. Hooker, J. N., “Karmarkar’s linear pro- gramming algorithm”, Interfaces 16, 75-90 (1986).

13. Kantorovich, L. V., “Mathematical methods of organizing and planning production”, (in Russian) Publication House of the Leningrad State Uni- versity, Lennin- grad (1939), (English translation) Management Science 6, 366-422 (1959-60).

14. Karmarkar, N., “A new polyno- mial time algorithm for linear pro- gramming”, Combinatorica 4, 373-395 (1984).

15. Karush, W., “Minima of func- tions of several variables with inequalities as side constraints”, Master thesis, Department of Mathematics, University of Chicago, Chicago, Illinois (1939).

16. Khachian, L. G., “A polynomial algo- rithm in linear programming”, (in Rus- sian) Doklady Akademiia Nauk SSSR 224, 1093-1096, (English translation) Soviet Mathematics Doklady 20, 191- 194 (1979). translation), Soviet Math- ematics Doklady6, 286-290 (1965).

—本文作者為美國北卡洛萊納州立大學 作業 研究所教授兼所長,現為國立 清華大學工 業工程研究所國科會客座教授

參考文獻

相關文件

CDA 培 訓 課 程 是 由 美 國 生 涯 發 展 學 會 ( NCDA, National Career Development Association)發展出一套嚴謹的培訓方案,該訓練計劃由 CDA 講師(CDFI, Career Development Facilitator

這些類 型的問題, 都比線性規劃要難, 但是也都以線性規劃為基礎去加 以衍生, 所以說線性規劃是數學規劃的基礎, 一點都不為過.. 基於此一事實, 我們這門課對線性規劃的問題,

像民意調查就是抽樣調查的一種。 本來 抽樣的目的, 是想設計一套方法, 在一群很大 的母體 (如選民), 抽出一小部分具有代表性 的樣本來, 然後就他們的意見來做分析。 為了 具代表性,

從線性代數 這一學科中, 我們學到了琳瑯滿目的方法來 解決線性代數問題, 這些方法都有一個共同 的特性, 計算量隨著矩陣維數 (dimension) 的增大而可能增加到非人力可以勝任, 以至 於必須訴諸電子計算機的幫助。 由於電腦的 記憶體, 運算速度及算術誤差等因素, 我們 不能單純的利用電腦來執行我們在線性代數 學 科中所學的方法, 因此我們得針對電腦的 特性,

必需先把該飛行的數學 模式列出來, 然後求該模式的解。 這些繁瑣複 雜的式 子, 要靠有效率而精確的數值方法, 才 能快速而正確地得解, 以即時導航。 其他如飛 機的設計, 電子電路的設計,

現在回過頭來看 Hilbert 所提出的二十三個問題, 大多數的數學家對 Hilbert 的演講仍 給予肯定的評價, 因為這些問題的確對二十世紀數學的發展起了很大作用; 不過也有人提出不 同的意

Caffarelli教授是本期 「有朋自遠方來」 訪談的人物, 他在阿根廷受教育, 在美 國發展, 任教多所著名的大學和研究機構, 和許多人合作過, 是頂尖的學者。 這樣

有關著作從來沒 有人正面講過, 但這是一個不能長期迴避的 問 題。 如果這個問題不澄清, 那麼對中國傳統 數學的認識就會比較模糊。 早在 10 年前, 筆 者已非有意識的注意到這個問題, 認為宋元