欧美麻豆久久久久久中文_成年免费观看_男人天堂亚洲成人_中国一级片_动漫黄网站免费永久在线观看_国产精品自产av一区二区三区

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 軟件研發 > Python中的線性編程:直接教程

Python中的線性編程:直接教程

2020-09-11 17:47:58 | 來源:中培企業IT培訓網

線性編程是最常見的優化技術之一。它具有廣泛的應用范圍,并且經常用于運籌學,工業設計,計劃等,并且還在不斷增加。Python中的線性編程并沒有像機器學習那樣被大肆宣傳,但是它是可以通過具有線性關系的決策變量,來解決問題。這是一個快速實用的Python中的線性教程。下面讓我們來詳細了解一下這些內容吧。

  問題陳述

只是想知道一個主意,我們將解決一個有關生產計劃的簡單問題。想象一下,您在一家制造計算機的公司工作。計算機是一種相當復雜的產品,有幾家工廠組裝它們,而公司每單位要支付一定的費用。這種計算機模型在市場上的價格固定為500美元,不同的工廠以不同的速度和成本組裝計算機。f0工廠每天生產2000件,每件450美元;f1工廠每天生產1500件,每件420 $;f2 1000件每天生產,每件400 $。我們有1個月的時間來組裝8萬個單元,這是因為任何工廠的產量都不是其他任何工廠的兩倍。問題是,工廠之間的最佳生產分配是什么,以使我們在這些限制下通過出售計算機獲得的利潤最大化 ?

  在本教程中,我們將使用Python和線性編程優化包PuLP,并使用pip復制粘貼安裝:

  點安裝紙漿

  現在,為了通過線性編程解決計算機生產問題,我們需要執行以下操作:

  1. 決策變量集;

  2. 這些變量的線性約束集;

  3. 線性目標函數以最大化或最小化。

  因此,打開您喜歡的編輯器,讓我們開始吧。在PuLP中定義變量之前,我們需要使用以下代碼創建問題對象:

  來自紙漿進口*

  問題= LpProblem(“ problemName”,LpMaximize)

  我們將向該對象添加約束和目標函數。請注意,問題構造函數收到問題名稱和LpMaximize,這意味著我們要最大化目標函數。在我們的案例中,這是銷售一定數量的計算機所獲得的利潤。此外,我們還定義了從問題陳述中收到的常量:

  #每天的工廠成本

  cf0 = 450

  cf1 = 420

  cf2 = 400

  #每天的工廠吞吐量

  f0 = 2000

  f1 = 1500

  f2 = 1000

  #生產目標

  目標= 80000

  #時間限制

  max_num_days = 30

  num_factories = 3

  在下一節中,我們將定義決策變量。

  決策變量

  在PuLP中,通過以下方式定義決策變量:

  變量= LpVariable(“ variableName”)

  有時我們需要為變量提供界限(默認為無界限),在這種情況下,我們將編寫以下內容:

  var = LpVariable(“ boundedVariableName”,lowerBound,upperBound)

  在PuLP中定義變量的另一種有用方法是使用dicts函數。在我們需要定義大量相同類型和范圍的變量的情況下,這很有用,variableNames是字典的鍵列表:

  varDict = LpVariable.dicts(“ varDict”,variableNames,lowBound,upBound)

  因此,根據先前的定義,計算機生產問題的決策變量是我們為每個工廠花費的生產天數:

  #工廠

  num_factories = 3個

  factory_days = LpVariable.dicts( “factoryDays”,列表(范圍(num_factories)),0,30,貓= “連續”)

  約束條件

  現在我們定義了決策變量,我們可以轉到定義問題的約束條件了。注意,在線性編程設置中約束必須是線性的。我們關注的約束條件是,組裝的單元數應大于或等于目標數量,并且生產約束條件是任何工廠的產量都不應該超過其他工廠的兩倍:

  #目標約束

  c1 = factory_days [0] * f1 + factory_days [1] * f2 + factory_days [2] * f3> =目標

  #生產限制條件

  c2 = factory_days [0] * f0 <= 2 * factory_days [1] * f1

  c3 = factory_days [0] * f0 <= 2 * factory_days [2] * f2

  c4 = factory_days [1] * f1 <= 2 * factory_days [2] * f2

  c5 = factory_days [1] * f1 <= 2 * factory_days [0] * f0

  c6 = factory_days [2] * f2 <= 2 * factory_days [1] * f1

  c7 = factory_days [2] * f2 <= 2 * factory_days [0] * f0

  #將約束添加到問題

  問題+ = c1

  問題+ = c2

  問題+ = c3

  問題+ = c4

  問題+ = c5

  問題+ = c6

  問題+ = c7

  計算機組裝問題的目標功能基本上是最小化組裝所有這些計算機的成本。這可以簡單地寫成最大化負成本:

  #目標函數

  問題+ = -factory_days [0] * cf0 * f0-factory_days [1] * cf1 * f1-factory_days [2] * cf2 * f2

  讓我們看一下問題定義,這可以通過調用簡單地實現:

  打印(問題)

  這導致以下輸出,我認為這是不言自明的,它列出了問題中的目標函數,約束和各種決策變量:

  computerAssembly:

  MAXIMIZE

  -900000 * factoryDays_0 + -630000 * factoryDays_1 + -400000 * factoryDays_2 + 0

  SUBJECT TO

  _c1:1500 factoryDays_0 + 1000 factoryDays_1 + 1000 factoryDays_2> = 80000

  _c2:2000 factoryDays_0 - 3000 factoryDays_1 <= 0

  _c3:2000 factoryDays_0 - 2000

  factoryDays_2 <= 0 _C4:1500 factoryDays_1-2000 factoryDays_2 <= 0 _C5:

  -4000 factoryDays_0 + 1500

  factoryDays_1 <= 0 _C6:-3000 factoryDays_1 + 1000

  factoryDays_2 <= 0 _C7:-4000 factoryDays_0 + 1000 factoryDays_2 <= 0

  變量

  factoryDays_0 < = 30連續

  factoryDays_1 <= 30連續

  factoryDays_2 <= 30連續

  解決

  在定義了線性編程問題中的所有必要條件之后,我們可以調用solve方法,如果解決了該問題,則輸出1;如果不可行,則輸出-1,這很簡單:

  #解決

  問題.solve()

  可以通過訪問每個變量的varValue屬性來獲得該問題的解決方案:

  對于范圍(3)中的i:

  print(f“ Factory {i}:{factory_days [i] .varValue}”)

  結果為以下輸出:

  工廠0:23.076923

  工廠1:15.384615

  工廠2:30.0

  在線性編程中,我們假設變量之間的關系是線性的,并且變量本身是連續的。

上述就是關于Python中的線性編程:直接教程的全部內容介紹,想了解更多關于Python的信息,請繼續關注中培偉業。

標簽: Python 線性編程
主站蜘蛛池模板: 久久天天躁狠狠躁夜夜2020一 | 成年免费人香蕉视频在线 | 欧美综合在线激情专区 | 无码中文字幕日韩专区 | 快穿妲己高H荡肉呻吟NP | 亚洲AV无码乱码国产麻豆穿越 | 麻豆网神马久久人鬼片 | 亚洲涩涩 | 精品无码专区久久久水蜜桃 | 精品国产乱码久久久久久小说 | 午夜一区欧美二区高清三区 | 日本中文字幕有码在线视频 | 18hdxxxx中国 | 精品久久8X国产免费观看 | 成年人在线免费看的惊悚动作片 | 日本熟日本熟妇中文在线观看 | 欧美又粗又硬又大免费视频Q | 亚洲 欧洲 日韩 综合二区 | 人妻无码一区二区不卡无码AV | 欧美日韩一区二区三区视频播放 | 最美情侣中文在线播放 | 亚洲人成综合网站7777香蕉 | 中国少妇内射XXXHD免费 | 97超碰人人人人人人少妇 | 亚洲AV无码成人黄网站在线观看 | 亚洲熟伦熟女新五十路熟妇 | 蜜桃视频在线免费观看 | 午夜福利无遮挡十八禁视频 | 97性无码区免费 | 一区网 | 国产av一区最新精品 | 国内少妇人妻丰满av | 免费国产凹凸在线视频 | 三级中文字幕永久在线 | 欧美一区二区三区性生活 | 中文字幕一本到无线 | 在线播放偷拍一区精品小说 | 调教凌虐妻妾奴在线播放 | 久久久久久人妻毛片a片 | 男生自慰gay网址 | 五月综合激情婷婷六月 |