日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

基础线性规划实现---python

發布時間:2025/3/15 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础线性规划实现---python 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、問題

何為線性規劃問題:

二、python進行求解

1.通過觀察matlab解線性規劃步驟進行求解

?2.python求解步驟

1)求解用到的模塊(scipy 和? numpy):

2)對? max z=2x1+3x2-5x3??該問題確定c如下:

3) 對于不等式 2x1-5x2+x3>=10 ; x1+3x2+x3<=12

4)對于等式?x1+x2+x3=7 應該單寫為:

5)對于限條件? x1,x2,x3>0? 可寫為:

6)求解

7)求解過程遇到的問題

完整代碼如下:

求解結果如下:

總結:


一、問題

何為線性規劃問題:

線性規劃(Linear Programming,也稱為LP)是一種運籌學技術,當當所有的目標和約束都是線性的(在變量中)并且當所有的決策變量都是連續的時使用。線性規劃是最簡單的運籌學方法。

例如:

二、python進行求解

這個問題必須表述為一個最小化問題。不等式必須表示為≤ 。

1.通過觀察matlab解線性規劃步驟進行求解

線性規劃求解主要分?兩個部分,目標函數(max,min)和約束條件(s.t.),求解時一般要化為MATLAB標準形式:

?

x = linprog(f,A,b) 求解 min f'*x 約束條件為 A*x ≤ b. x = linprog(f,A,b,Aeq,beq) 求解上述問題,但是增加了約束條件,即將: Aeq*x = beq. 如果沒有等式存在可以用:A = [] and b = [] x = linprog(f,A,b,Aeq,beq,lb,ub) 定義變量x的下界lb和上街ub,使得x始終在該范圍內,即lb ≤ x ≤ ub。若沒有約束條件,則設: Aeq = [] and beq = []

?2.python求解步驟

1)求解用到的模塊(scipy 和? numpy):

from scipy import optimize as opt import numpy as np#引用無窮符號 inf #from numpy import inf

2)對? max z=2x1+3x2-5x3??該問題確定c如下:

c = [2, 3, -5]

3) 對于不等式 2x1-5x2+x3>=10 ; x1+3x2+x3<=12

先將其化成? ?-2x1+5x2-x3<=10 ; x1+3x2+x3<=12

因為該不等式結構類似,所以寫成如下:

A = np.array([[-2,5,-1],[1,3,1]]) b = np.array([-10,12])

4)對于等式?x1+x2+x3=7 應該單寫為:

Aeq = np.array([[1,1,1]]) beq = np.array([7])

5)對于限條件? x1,x2,x3>0? 可寫為:

lim1=(0,inf) lim2=(0,inf) lim3=(0,inf) #如果沒有定義無窮 inf 則可寫成 # lim1=(0,None) # lim2=(0,None) # lim3=(0,None)

6)求解

res = opt.linprog(-c,A,b,Aeq,beq,bounds=(lim1,lim2,lim3)) print(res)

7)求解過程遇到的問題

笨小孩初始求解時i,所得結果總是科學計數法,如果還有小伙伴也遇到了如下情況可以試試這些

?解決方法:在導入庫后,求解前寫入如下代碼試試

import pandas as pd np.set_printoptions(suppress=True) pd.set_option('display.float_format', lambda x: '%.2f' % x)

完整代碼如下:

#導入包 from scipy import optimize as opt import numpy as np from numpy import inf# #解決結果是科學計數法的問題 # import pandas as pd # np.set_printoptions(suppress=True) # pd.set_option('display.float_format', lambda x: '%.2f' % x)#確定c,A,b,Aeq,beq c = np.array([2,3,-5]) A = np.array([[-2,5,-1],[1,3,1]]) b = np.array([-10,12]) Aeq = np.array([[1,1,1]]) beq = np.array([7]) #限制 lim1=(0,None) lim2=(0,None) lim3=(0,None) #求解 res = opt.linprog(-c,A,b,Aeq,beq,bounds=(lim1,lim2,lim3)) #輸出結果 print(res)

求解結果如下:

?重點關注的就是fun和最后一行了,fun是最優值,最后一行是每個x的最優解

至于第一行為什么是負的呢?

原來這個函數其實是求最小值的,那么求最大值,怎么辦呢?

很簡單,仔細觀察的人應該發現,之前的函數里面,我寫的是-c,而不是c。

為什么這么寫?

這是由于python庫的設定。

因此這個函數的出來的結果其實就是-c的最小值,但很明顯這恰恰是c最大值的相反數。那么答案就是14.5714了

總結:

經過一段時間學習,不但鞏固了所學新知識,更是在實踐中發現了自己的不足,真心很感謝這次機會!如有不當之處,請大家多多指點,非常感謝!!!

本次博客緊隨建模學習打卡第一天_菜菜笨小孩的博客-CSDN博客

總結

以上是生活随笔為你收集整理的基础线性规划实现---python的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产真实生活伦对白 | 四虎少妇做爰免费视频网站四 | 五月激情天 | 免费h片在线观看 | 亚洲欧美一区二区三区在线观看 | 国产在线精品视频 | 碧蓝之海动漫在线观看免费高清 | 91搞搞| 欧美久久天堂 | 国产精品日韩电影 | 99久久国产综合 | 真实偷拍激情啪啪对白 | 7m精品福利视频导航 | 狠狠艹视频 | 涩里番在线观看 | 岳乳丰满一区二区三区 | 欧美一级视频在线观看 | 黄色日批 | 日本三级全黄 | 国外亚洲成av人片在线观看 | 久久久久久久久久99 | 欧美国产日韩在线视频 | 午夜精品美女久久久久av福利 | 色猫咪av| 欧美黑人性生活 | 伊人伊人网 | 天堂在线免费视频 | 青青青手机视频 | 国产无遮挡呻吟娇喘视频 | 91在线高清 | 亚洲综合久久网 | 日韩黄色片网站 | 18成人在线观看 | 日本中文字幕一区二区 | 日韩天堂网 | 黄色一区二区三区 | 在线观看午夜视频 | 国产美女永久免费 | 国产性―交―乱―色―情人 | 在线看的免费网站 | 小珊的性放荡羞辱日记 | 婷婷激情小说 | 国产午夜久久久 | 99久久99久久精品国产片果冰 | 风韵少妇性饥渴推油按摩视频 | 另类激情 | 91嫩草影视| 日韩18p | 国产一区二区三区精品愉拍 | 日本韩国欧美中文字幕 | 国产一区二区三区亚洲 | av电影在线观看网址 | 日本r级电影在线观看 | 先锋资源在线视频 | 亚洲精品~无码抽插 | 成人另类小说 | 美丽的姑娘在线观看 | 不卡影院 | 中文字幕啪啪 | 婷婷麻豆 | 韩国黄色片网站 | 伊人国产女 | 亚洲黄色视屏 | 99久久精品免费视频 | 伊人网在线视频 | 男人午夜影院 | 国产91在线视频观看 | 在线观看精品国产 | 天天干天天舔 | 亚洲成人第一网站 | 欧美日韩一二区 | 亚洲少妇一区二区三区 | 干一夜综合 | 久久夜色精品 | 天天干天天爱天天操 | av草逼 | 国产麻豆电影在线观看 | 欧美色综合 | 亚洲AV成人无码网站天堂久久 | 日操干| 日韩高清在线观看 | 伊人超碰在线 | 久久久久久久久亚洲 | 亚洲色婷婷一区二区三区 | 亚洲午夜免费 | 欧美日韩在线免费播放 | 操极品美女 | 久视频在线观看 | 娇喘顶撞深初h1v1 | 在线观看国产黄色 | 青青草97国产精品麻豆 | 好吊视频一区二区三区四区 | 国产成人一区二区三区小说 | av黄色天堂 | 伦理片一区二区三区 | 一级特黄色片 | 精品少妇一区二区三区密爱 | 国产无遮挡呻吟娇喘视频 | 在线小视频 |