中學生也能看懂的線性規劃問題!

2021-02-19 羅博深數學

作者 | 吳昊 & 編輯 | 羅數君

文 1967字  閱讀時間約 5分鐘

導語:

你是否有過這樣的經歷,在琳琅滿目的商品前無法抉擇,希望在預算內買到最有價值的東西?其實無論在個人的日常生活還是工作中,懂得線性規劃的數學知識都將使你事半功倍。想了解這個數學知識嗎?請讀者們看今天的文章吧!     

假如給你100塊錢,你會做什麼?學生們可能會買一本日趨昂貴的教材,家長們可能會給孩子買一套網絡課程,加班族們可能會買一張咖啡店的會員卡……哪個選擇最優呢?這就要看每個人心中,每件東西的價值了。

博深購物城最近舉辦了這樣一場活動:每一個到店中的顧客都會領到100塊錢的代金券,可以在購物城中任意挑選商品消費。皮卡丘轉了一圈,列了一個他看中的物品清單

皮卡丘的目的,就是在不超過100塊錢的前提下,最大化他的皮卡皮卡!可是由於他的手力量有限,只能拿總共不超過30克的物品。轉化成數學的語言,這就是說:

給定兩個條件15m + 20f + 12s ≤100,以及5m + 5f + 7s ≤ 30,最大化25m + 35f + 40s。當然,由於物品的數量只能是非負數,所以我們規定m, f, s ≥0。同時,由於以上物品都可以按重量賣,而重量可以是小數,所以我們不規定這三個變量是整數。

圖片來源:zh.fanpop.com/

這種生活中十分常見的最大化問題叫作線性規劃(linear programming)問題。它的嚴格定義是:已知x1, x2, x3 … ≥ 0,並給定一些線性的條件a1x1+a2x2+a3x3 …≤ c,最大化線性函數d1x1 + d2x2 + d3x3 …的取值。

我們來舉幾個最簡單的例子:x + y ≤ 3,-2x + 5y ≤ 3,x + 2y ≤ 2,x和y都非負,要最大化的線性函數 f = 6x + y。這該怎麼解決呢?我們可以畫一張圖:

 

這張圖裡的橫軸為x縱軸為y,三條線對應的不等式已在圖中標出,而同時符合三個不等式,並滿足兩個變量均非負的可行域(可取值範圍)就是藍色的這片區域。在這片區域上,我們畫出 6x + y 的等值線(比如6x + y = 1,6x + y=2,6x + y = 3等),發現其中函數6x + y 在(2, 0)這一點的取值最大。因此,我們就可以得到所求的最大值為12。

注釋:等值線是製圖對象某一數量指標值相等的各點連成的平滑曲線。

圖片來源:deansforimpact.org/content-of-thinking/

二元線性函數的等值線很容易找到:固定函數的值,只需解一個二元一次方程即可, 比如6x + y = 1。多元線性函數稍複雜一點,因為我們要找到的不再是等值線,而是使函數值相等的高維平面,比如三維平面6x + 3y + 7z = 5。

那麼問題來了:在高維空間中,就算我們能找出所有等值面,那如何看出哪個與可行域相交的等值面取值是最大的呢?畫出來是不太可能了,那該如何計算呢?

我們先來證明一個引理:使線性函數 f 取值最大的點一定是不等式對應的平面的交點,也就是可行域的頂點,而不會是可行域內部的點。

注釋:引理是數學中為了取得某個更好的結論而作為步驟被證明的命題,其意義並不在於自身被證明,而在於為達成最終目的作出貢獻。

圖片來源:tenor.com/view/garfield-thinking-think-get-to-work-gif-12041090

這個看似很複雜的定理證明卻十分簡潔明了:任意一個多維的多面體裡,任取一個點v,它對應的函數值 f(v) = r。如果它不是頂點,那麼經過v的任何平面(多面體本身的表面除外)都會把多面體切成至少兩塊(如果是凹多面體的話可能多於兩塊),v 所在的等值面 f = r 也不例外。它也會把可行域這個多面體切成至少兩塊,也就是說,等值面的兩邊都有可行域。又因為我們的函數 f 是線性的,所以兩邊中一定會有一邊取值大於 r,所以 v 取得的值 r 一定不是最大值。

那麼,如果等值面恰好就是多面體本身的一個表面呢?那麼這個表面也一定會經過至少一個頂點,引理證明完畢。

圖片來源:giphy.com/gifs/cheer-cheering

知道了這個性質之後,我們就可以用一個最基礎的方法——枚舉法:把多面體的每個頂點代入函數進行計算,最大的值就是我們想要的結果。

那麼,皮卡丘最多能得到多少皮卡皮卡呢?我們一共有5個不等式(包括3個非負變量)。每3個平面都會產生0個,1個,或無窮個交點。在本題目中,每三個不等式都會產生1個交點,但有些交點並不在可行域內。根據排列組合的知識,我們一共可以得到10個交點。但是事實上,在10個可能的交點裡,只有6個滿足所有的不等式,而這六個交點裡,皮卡丘能獲得皮卡皮卡的最大值是198.75。此時,m = 0, f = 4.25, s = 1.25。也就是說,皮卡丘要拿4.25單位的番茄醬,1.25單位的飼料以最大化他的皮卡皮卡。

圖片來源:stockphoto.com/illustrations/aha

在現實問題中,我們通常會有很多個變量和條件,這時枚舉法就太耗時間了。線性規劃最常用的幾個方法包括單純形法、橢球算法、內點法等,比枚舉法快得多。有興趣的讀者們可以深入探索一番哦!

假如給你一百塊錢,你會怎麼花呢?下一次,不妨建個模最大化你的皮卡皮卡~

喜歡這篇文章嗎?歡迎給我們留言,探討有趣的數學問題,如果你還想看其他的相關內容,也可以向我們提出來哦! 

相關焦點

  • 用Python求解線性規劃問題
    線性規劃簡介及數學模型表示線性規劃簡介一個典型的線性規劃問題線性規劃模型的三要素線性規劃模型的數學表示圖解法和單純形法圖解法單純形法使用python求解簡單線性規劃模型編程思路求解案例例1:使用scipy求解例2:包含非線性項的求解從整數規劃到0-1規劃整數規劃模型0-1規劃模型案例:投資的收益和風險問題描述與分析建立與簡化模型線性規劃簡介及數學模型表示線性規劃簡介在人們的生產實踐中
  • 線性規劃問題最全匯總!!!
    線性規劃問題:求線性目標函數在線性約束條件下的最大值或最小值的問題,通常稱為線性規劃問題. 可行解、可行域和最優解:滿足線性約束條件的解(x,y)叫可行解.由所有可行解組成的集合叫做可行域.使目標函數取得最大或最小值的可行解叫線性規劃問題的最優解.
  • 線性規劃中的對偶問題
    線性規劃的對偶問題在很多領域中都會用到,舉個例子,SVM(支持向量機)中就用對偶問題將Soft-Margin和Hard-Margin轉換成了相同的形式,並使得其中的樣本以內積形式呈現,以便能夠使用核函數進行替換。    而我陸續上了運籌學、算法中的最優化,仍然對對偶問題理解不到位,直到上了卜東波老師的算法課。
  • 線性規劃的起源
    被大家稱為線性規劃之父的Dantzig (丹齊克)是伯克利加利福尼亞大學的學生。
  • 數學建模(一):用python解決線性規劃問題
    線性規劃說起來很高端,但實際上在高中學習過數學的同學應該對此不陌生。舉個慄子,工廠生產甲、乙兩種商品,其需要A、B、C三種資源,每種產品資源消耗量及單位產品銷售後所能獲得的利潤值以及這三種資源的儲備如下表所示:消耗資源ABC銷售利潤甲94370乙4610120資源儲備360200300線性規劃問題可以表述為一個目標函數與一系列約束條件
  • 線性規劃題型匯總
    簡單的線性規劃問題是幾何與代數結合的典型
  • 吳國平:高考數學線性規劃問題難度不大,但為何很多人都錯了?
    什麼是線性規劃問題?定義目標函數在線性約束條件下的最大值或最小值問題,就統稱為線性規劃問題。線性規劃的問題應用比較廣泛,題目非常靈活,常和其他知識交叉融合讓學生進行求解,所以對學生的學習能力是一次考驗。因此,線性規劃問題也成為高考數學一個熱點和「分值增長點」。
  • 數學高考中有關線性規劃問題的考試題型分析
    線性規劃是數形結合的體現線性規劃實質上是「數形結合」數學思想方法在一個方面的體現,將最值問題藉助圖形直觀、簡便地尋找出來,是一種較快地求最值的方法。在求解應用問題時要特別注意題目中的變量的取值範圍,不可將範圍盲目擴大.探究提高本題主要考查不等式表示的平面區域、數列求和及不等式的應用等基礎知識,考查了數形結合的方法和邏輯推理能力.
  • De Bock等關於中學生錯誤地運用線性推理的研究
    De Bock等關於中學生錯誤地運用線性推理的研究De Bock,Van Dooren,Janssens&Verschaffel(2002)運用訪談法深入研究了中學生錯誤地運用線性推理的問題,研究者試圖揭示該類錯誤的本質和不可抗拒性。
  • 高考數學題丨線性規劃知識點匯總
    4 .線性規劃問題:求線性目標函數在線性約束條件下的最大值或最小值的問題,通常稱為線性規劃問題。只含有兩個變量的簡單線性規劃問題可用圖解法來解決。 5  .整數線性規劃:要求量整數的線性規劃稱為整數線性規劃。
  • 高考數學丨線性規劃知識點匯總
    4 .線性規劃問題:求線性目標函數在線性約束條件下的最大值或最小值的問題,通常稱為線性規劃問題。只含有兩個變量的簡單線性規劃問題可用圖解法來解決。 5  .整數線性規劃:要求量整數的線性規劃稱為整數線性規劃。
  • 數學乾貨丨線性規劃知識點匯總
    4 線性規劃問題:求線性目標函數在線性約束條件下的最大值或最小值的問題,通常稱為線性規劃問題。只含有兩個變量的簡單線性規劃問題可用圖解法來解決。 5  整數線性規劃:要求量整數的線性規劃稱為整數線性規劃。
  • 信息系統項目管理師綜合知識:線性規劃
    圖解法簡單直觀,有助於了解線性規劃問題求解的基本原理,下面,通過一個例子來說明圖解法的應用。【例】某工廠在計劃期內要安排生產Ⅰ、Ⅱ兩種產品,已知生產單位產品所需的設備臺時及A、B兩種原料的消耗,如表27-5所示。
  • 使用Python進行線性規劃示例
    約束:決策變量的一組約束(即線性不等式或等式)。非負性約束限制了決策變量取正值。優化模型的解稱為最優可行解。建模步驟對運籌學問題進行準確建模是最重要的任務,也是最困難的任務。線性規劃線性規劃(Linear Programming,也稱為LP)是一種運籌學技術,噹噹所有的目標和約束都是線性的(在變量中)並且當所有的決策變量都是連續的時使用。線性規劃是最簡單的運籌學方法。
  • 高中數學線性規劃知識點及典型例題詳解
    4 線性規劃問題:求線性目標函數在線性約束條件下的最大值或最小值的問題,通常稱為線性規劃問題。只含有兩個變量的簡單線性規劃問題可用圖解法來解決。   5整數線性規劃:要求量整數的線性規劃稱為整數線性規劃。
  • 線性規劃你真的掌握了嗎?
    如果真是良民,為什麼連線性規劃都不會!?」「誒~為什麼良民也要學線性規劃…」「砰!」… …多年的抗戰即將迎來勝利的曙光,在黎明前死在了敵人的槍口下,那是一件多麼令人傷心的往事…以上的故事充分論證了學好線性規劃的重要性!以下我將帶領大家穿梭時光,回到過去,重新學習線性規劃的知識,改變歷史,改變自己,改變那本該倒下的命運...
  • 高中數學:線性規劃的常見題型
    A. [6,15]B. [7,15]C. [6,8]D. [7,8]分析:本題主要考查線性規劃的基礎知識,藉助圖形解題。解析:由C. 1D. 4分析:本題主要考查運用線性規劃的基礎知識與分類討論的數學思想綜合解決問題的能力。解析:由A(1,3)、B(5,2)、C(3,1)的坐標位置知,
  • Matlab 中的線性規劃函數使用方法
    線性規劃 LP(Linear programming,線性規劃)是一種優化方法,在優化問題中目標函數和約束函數均為向量變量的線性函數,LP問題可描述為:min  xs.t.    A·x b    Aeq·x=beq    vlb x vub其中 ,b,beq均為向量,A,Aeq為矩陣,x為向量變量.矩陣A和向量b是線性不等式約束條件的係數,Aeq和beq是等式約束條件的係數.
  • 2020年高考加油,每日一題13:簡單線性規劃有關的題型
    線性規劃本質上是解決最大值或最小值問題,而最值問題恰恰是現實生活當中遇到的問題,也就是我們常說的最優解問題。線性規劃的問題應用比較廣泛,題目非常靈活,常和其他知識交叉融合讓學生進行求解,所以對學生的學習能力是一次考驗。因此,線性規劃問題也成為高考數學一個熱點和「分值增長點」。
  • 中學生生涯規劃測評是什麼?
    知己知彼,方能百戰不殆,生涯規劃同樣如此。中學生生涯規劃測評作為中學生涯規劃教育中的重要一環,是中學生在進行自我認識和外部探索的重要輔助工具。我們以51選校生涯規劃測評體系為例,向大家介紹中學生生涯規劃測評究竟是什麼。中學生生涯規劃測評是能力測試的一種,主要是針對中學生群體,測試的內容包括興趣傾向、個性、學習潛能、多元智能、價值觀等。51選校的測評工具主要包含中學生興趣測評、人格測驗、多元智能測評、學科效能測驗等。