久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 使用 Python 進(jìn)行線性規(guī)劃

使用 Python 進(jìn)行線性規(guī)劃

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-06 13:55:29 1699250129

解決線性規(guī)劃問(wèn)題的基本方法稱(chēng)為單純形法,它有多種變體。另一種流行的方法是內(nèi)點(diǎn)法。

混合整數(shù)線性規(guī)劃問(wèn)題可以通過(guò)更復(fù)雜且計(jì)算量更大的方法來(lái)解決,例如分支定界法,它在幕后使用線性規(guī)劃。這種方法的一些變體是分支和切割方法,它涉及使用切割平面,以及分支和價(jià)格方法。

有幾種適用于線性規(guī)劃和混合整數(shù)線性規(guī)劃的合適且眾所周知的Python工具。其中一些是開(kāi)源的,而另一些是專(zhuān)有的。您是否需要免費(fèi)或付費(fèi)工具取決于問(wèn)題的規(guī)模和復(fù)雜性,以及對(duì)速度和靈活性的需求。

值得一提的是,幾乎所有廣泛使用的線性規(guī)劃和混合整數(shù)線性規(guī)劃庫(kù)都是以Fortran或C或C++原生和編寫(xiě)的。這是因?yàn)榫€性規(guī)劃需要對(duì)(通常很大)矩陣進(jìn)行計(jì)算密集型工作。此類(lèi)庫(kù)稱(chēng)為求解器。Python工具只是求解器的包裝器。

Python適合圍繞本機(jī)庫(kù)構(gòu)建包裝器,因?yàn)樗梢院芎玫嘏cC/C++配合使用。對(duì)于本教程,您不需要任何C/C++(或Fortran),但如果您想了解有關(guān)此酷功能的更多信息,請(qǐng)查看以下資源:

構(gòu)建PythonC擴(kuò)展模塊

CPython內(nèi)部

用C或C++擴(kuò)展Python

基本上,當(dāng)您定義和求解模型時(shí),您使用Python函數(shù)或方法調(diào)用低級(jí)庫(kù),該庫(kù)執(zhí)行實(shí)際優(yōu)化工作并將解決方案返回給您的Python對(duì)象。

幾個(gè)免費(fèi)的Python庫(kù)專(zhuān)門(mén)用于與線性或混合整數(shù)線性規(guī)劃求解器交互:

SciPyOptimizationandRootFinding

PuLP

Pyomo

CVXOPT

不可行的線性規(guī)劃問(wèn)題

如果沒(méi)有解,線性規(guī)劃問(wèn)題是不可行的。當(dāng)沒(méi)有解決方案可以同時(shí)滿足所有約束時(shí),通常會(huì)發(fā)生這種情況。

例如,考慮如果添加約束x+y≤?1會(huì)發(fā)生什么。那么至少有一個(gè)決策變量(x或y)必須是負(fù)數(shù)。這與給定的約束x≥0和y≥0相沖突。這樣的系統(tǒng)沒(méi)有可行的解決方案,因此稱(chēng)為不可行的。

另一個(gè)示例是添加與綠線平行的第二個(gè)等式約束。這兩行沒(méi)有共同點(diǎn),因此不會(huì)有滿足這兩個(gè)約束的解決方案。

無(wú)界線性規(guī)劃問(wèn)題

一個(gè)線性規(guī)劃問(wèn)題是無(wú)界的,如果它的可行區(qū)域是無(wú)界,將溶液不是有限。這意味著您的變量中至少有一個(gè)不受約束,可以達(dá)到正無(wú)窮大或負(fù)無(wú)窮大,從而使目標(biāo)也無(wú)限大。

例如,假設(shè)您采用上面的初始問(wèn)題并刪除紅色和黃色約束。從問(wèn)題中刪除約束稱(chēng)為放松問(wèn)題。在這種情況下,x和y不會(huì)在正側(cè)有界。您可以將它們?cè)黾拥秸裏o(wú)窮大,從而產(chǎn)生無(wú)限大的z值。

資源分配問(wèn)題

在前面的部分中,您研究了一個(gè)與任何實(shí)際應(yīng)用程序無(wú)關(guān)的抽象線性規(guī)劃問(wèn)題。在本小節(jié)中,您將找到與制造業(yè)資源分配相關(guān)的更具體和實(shí)用的優(yōu)化問(wèn)題。

假設(shè)一家工廠生產(chǎn)四種不同的產(chǎn)品,第一種產(chǎn)品的日產(chǎn)量為x?,第二種產(chǎn)品的產(chǎn)量為x2,依此類(lèi)推。目標(biāo)是確定每種產(chǎn)品的利潤(rùn)最大化日產(chǎn)量,同時(shí)牢記以下條件:

第一種、第二種、第三種和第四種產(chǎn)品的每單位產(chǎn)品利潤(rùn)分別為20美元、12美元、40美元和25美元。

由于人力限制,每天生產(chǎn)的總數(shù)量不能超過(guò)五十臺(tái)。

對(duì)于每單位第一個(gè)產(chǎn)品,消耗三個(gè)單位的原材料A。每單位第二產(chǎn)品需要兩單位原料A和一單位原料B。每單位第三產(chǎn)品需要一單位A和兩單位B。最后,每單位第四產(chǎn)品需要三B的單位

由于運(yùn)輸和儲(chǔ)存的限制,工廠每天最多可以消耗一百單位的原材料A和九十單位的B。

以上內(nèi)容為大家介紹了使用Python進(jìn)行線性規(guī)劃,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python的進(jìn)程

什么是程序?程序:例如XXXX.py這是程序,處于靜態(tài)的。什么是進(jìn)程進(jìn)程:一個(gè)程序運(yùn)行起來(lái)后,代碼+用到的資源稱(chēng)之為進(jìn)程,它是操作系統(tǒng)分配資源...詳情>>

2023-11-06 16:55:30
python虛擬環(huán)境

我們?cè)趯?xiě)的Python程序的時(shí)候,經(jīng)常會(huì)用到非標(biāo)準(zhǔn)庫(kù)的包和模塊,比如要求等非常有用的第三方包和模塊。有時(shí)候也會(huì)用到某個(gè)包和模塊的特定版本,可...詳情>>

2023-11-06 16:51:54
python之當(dāng)前GIL設(shè)計(jì)的缺陷

基于pcode數(shù)量的調(diào)度方式按照Python社區(qū)的想法,操作系統(tǒng)本身的線程調(diào)度已經(jīng)非常成熟穩(wěn)定了,沒(méi)有必要自己搞一套。所以Python的線程就是C語(yǔ)言的...詳情>>

2023-11-06 16:37:29
Python字符串格式化 (%操作符)

在許多編程語(yǔ)言中都包含有格式化字符串的功能,比如C和Fortran語(yǔ)言中的格式化輸入輸出。在Python中內(nèi)置有對(duì)字符串進(jìn)行格式化的操作符是"%"。模...詳情>>

2023-11-06 16:30:17
python的filter,lambda函數(shù)表達(dá)式

filter(functionorNone,sequence),其中sequence可以是list,tuple,string。這個(gè)函數(shù)的功能是過(guò)濾出sequence中所有以元素自身作為參數(shù)調(diào)用func詳情>>

2023-11-06 16:23:05