受線性不等式約束的線性函數最大化
線性規劃的最優解,永遠落在一個「角」上——於是沿著角走,便能找到它。
每一條運轉良好的供應鏈、每一張航班時刻表背後,都藏著 1947 年的一個洞見:最優的方案,永遠住在一個角上。
核心想法
想像你要在種種限制下定一個計畫——一筆預算、若干小時、一批原料——而你想從中榨出最大的成效。如果一切都是「線性」的(雙倍的料,雙倍的錢;雙倍的工,雙倍的產出),那麼這些規則就劃出了「你被允許的全部方案」所構成的一塊多邊形,而你的目標,則朝著它的某個方向。
喬治·丹齊格證明了一件既出人意料、又極其有用的事:那個最優的方案,絕不會含含糊糊地落在中間——它永遠落在這塊形狀的一個角上。於是,你不必去試無窮多種可能,只需從一個角跳到另一個角,一路向上,直到沒有相鄰的角更好為止。那個角,就是答案。他把這套步驟稱為單純形法,它讓「找出最優方案」成了機器真能辦到的事。
它是如何誕生的
1947 年,丹齊格是美國空軍的一位數學家,研究如何安排整支軍隊的訓練、補給與部署——當時的規劃者稱之為一份「program(方案)」。他把這些難題提煉成單一的數學形式,再發明了單純形法去求解它。那年十月,當他向偉大的約翰·馮·諾伊曼描述這個問題時,馮·諾伊曼一眼便認出了它的骨架:那正是他剛剛寫成一本書的賽局理論裡、同樣的極小極大結構——他當場就勾勒出了它那隱藏的孿生兄弟,「對偶」。
圍繞它,有一團署名的糾葛。在蘇聯,列昂尼德·康托洛維奇早在 1939 年就已找到線性規劃,但他的工作在西方多年無人知曉。當 1975 年的諾貝爾經濟學獎表彰線性規劃時,獎項授予了康托洛維奇與佳林·庫普曼斯——卻沒有丹齊格,而正是他的演算法,讓這個領域得以實用;庫普曼斯認為這不公平。(丹齊格也是一則著名傳說背後那個真實的學生:讀研時他遲到進教室,把黑板上的兩道題當作業抄了下來、並解了出來——事後才知道,那是統計學裡兩個著名的未解難題。)
它為何重要
幾乎任何「我們如何最好地利用手上所有」這種形式的問題,都能寫成一個線性規劃,而單純形法第一次解出了其中海量的問題。它讓規劃——為軍隊、為工廠、為航空公司、為電網、為整個經濟體——從憑猜測與經驗法則,變成了一項計算;而這項計算,還會順帶告訴你:你所面對的每一份稀缺資源,究竟值多少。
一個可以想像的畫面
想像一塊由筆直的牆圍起來的、平面的田地,再把整塊田輕輕往某個方向一傾。放開一顆球,它滾下坡、停下來——絕不會停在空曠的中央,而是卡進兩堵牆相交的一個角裡。正因為牆是直的、坡也是直的,那個最低點(反過來看,就是最高點)必定是一個角。單純形法,無非是一種沿著圍牆、一路走到那個角的巧辦法,而不必去搜遍整塊田。
它的位置
線性規劃,生長自一支古老的、關於線性不等式的數學(一個世紀前傅立葉就曾擺弄過它),又與馮·諾伊曼和摩根斯特恩的賽局理論一同到來——那同一個極小極大的念頭,戴著兩頂帽子。從這裡,一條線通向貝爾曼的動態規劃、通向卡馬卡的內點法,並匯入今天悄然驅動著物流與機器學習的最佳化之中;而「一條約束值多少」的念頭,那個影子價格,則成了經濟學日常語言的一部分。