国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)學(xué)建?!縋ython+Gurobi求解非線性規(guī)劃模型

這篇具有很好參考價(jià)值的文章主要介紹了【數(shù)學(xué)建?!縋ython+Gurobi求解非線性規(guī)劃模型。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1 概述

2 算例?

2.1 算例

2.2 參數(shù)設(shè)置

2.3 Python代碼實(shí)現(xiàn)

2.4 求解結(jié)果


1 概述

如果目標(biāo)函數(shù)或約束條件中包含非線性函數(shù),就稱這種規(guī)劃問(wèn)題為非線性規(guī)劃問(wèn)題。

參考:(非線性規(guī)劃Python)計(jì)及動(dòng)態(tài)約束及節(jié)能減排環(huán)保要求的經(jīng)濟(jì)調(diào)度

2 算例?

2.1 算例

【數(shù)學(xué)建模】Python+Gurobi求解非線性規(guī)劃模型

2.2 參數(shù)設(shè)置

求解NLP/非凸問(wèn)題時(shí),Python+Gurobi 的參數(shù)設(shè)置

1)需要設(shè)置參數(shù)'NonConvex=2';
2)Gurobi接受的冪函數(shù)y =中,α的最大值為2.c.雖然有解,但不一定是最優(yōu)值。
3)求解時(shí)間看模型規(guī)模。
觀察模型可知,要想求此模型,需要在編程中把多個(gè)變量乘積變成兩兩相乘的形式。令、y23=x2x3即可實(shí)現(xiàn)此功能。建模問(wèn)題解決了,調(diào)用Gurobi求解器即可求解了。可是運(yùn)行模型的時(shí)候,出問(wèn)題了: GurobiError: Q matrix is notpositive semi-definite (PSD). Set NonConvex parameter to 2 to solvemodel.錯(cuò)誤很明顯,告訴你需要設(shè)定參數(shù)NonConvex=2,Python+Gurobi設(shè)定參數(shù)的方法,即:

M_NLP.Params.NonConvex=2文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-491163.html

2.3 Python代碼實(shí)現(xiàn)


from gurobipy import *

# 創(chuàng)建模型
NLP=Model("NLP")

# 變量聲明
x1  =NLP.addVar(lb=1,ub=3, name="x1")
x2  =NLP.addVar(lb=1,ub=3, name="x2")
x3  =NLP.addVar(lb=1,ub=3, name="x3")
x4  =NLP.addVar(lb=1,ub=3, name="x4")

y14 =NLP.addVar(lb=0,ub=300, name="y14")
y23 =NLP.addVar(lb=0,ub=300, name="y23")

# 設(shè)置目標(biāo)函數(shù)
NLP.setObjective(y14*(x1+x2+x3)+x2,GRB.MAXIMIZE)

# 添加約束
NLP.addConstr(y14*y23>=20,"Con1")
NLP.addConstr(x1*x1+x2*x2+x3*x3+x4*x4==30,"Con2")

# 表示乘積項(xiàng)
NLP.addConstr(y14==x1*x4,"Con_y14")
NLP.addConstr(y23==x2*x3,"Con_y23")

NLP.Params.NonConvex=2

# Optimize model
NLP.optimize()

NLP.write("NLP.lp")

print('**************')
print(' The optimal solution ')
print('**************')
print('Obj is :',NLP.ObjVal) # 輸出目標(biāo)值
print('x1 is :',x1.x) # 輸出 x1 的值
print('x2 is :',x2.x) # 輸出 x2 的值
print('x3 is :',x3.x) # 輸出 x3 的值
print('x4 is :',x4.x) # 輸出 x4 的值
from gurobipy import *

# 創(chuàng)建模型
NLP=Model("NLP")

# 變量聲明
x1  =NLP.addVar(lb=1,ub=3, name="x1")
x2  =NLP.addVar(lb=1,ub=3, name="x2")
x3  =NLP.addVar(lb=1,ub=3, name="x3")
x4  =NLP.addVar(lb=1,ub=3, name="x4")

y14 =NLP.addVar(lb=0,ub=300, name="y14")
y23 =NLP.addVar(lb=0,ub=300, name="y23")

# 設(shè)置目標(biāo)函數(shù)
NLP.setObjective(y14*(x1+x2+x3)+x2,GRB.MAXIMIZE)

# 添加約束
NLP.addConstr(y14*y23>=20,"Con1")
NLP.addConstr(x1*x1+x2*x2+x3*x3+x4*x4==30,"Con2")

# 表示乘積項(xiàng)
NLP.addConstr(y14==x1*x4,"Con_y14")
NLP.addConstr(y23==x2*x3,"Con_y23")

NLP.Params.NonConvex=2

# Optimize model
NLP.optimize()

NLP.write("NLP.lp")

print('**************')
print(' The optimal solution ')
print('**************')
print('Obj is :',NLP.ObjVal) # 輸出目標(biāo)值
print('x1 is :',x1.x) # 輸出 x1 的值
print('x2 is :',x2.x) # 輸出 x2 的值
print('x3 is :',x3.x) # 輸出 x3 的值
print('x4 is :',x4.x) # 輸出 x4 的值

2.4 求解結(jié)果

Set parameter NonConvex to value 2
Gurobi Optimizer version 9.5.2 build v9.5.2rc0 (win64)
Thread count: 8 physical cores, 16 logical processors, using up to 16 threads
Optimize a model with 0 rows, 6 columns and 0 nonzeros
Model fingerprint: 0x11cd71a3
Model has 3 quadratic objective terms
Model has 4 quadratic constraints
Coefficient statistics:
  Matrix range     [0e+00, 0e+00]
  QMatrix range    [1e+00, 1e+00]
  QLMatrix range   [1e+00, 1e+00]
  Objective range  [1e+00, 1e+00]
  QObjective range [2e+00, 2e+00]
  Bounds range     [1e+00, 3e+02]
  RHS range        [0e+00, 0e+00]
  QRHS range       [2e+01, 3e+01]

Continuous model is non-convex -- solving as a MIP

Presolve time: 0.00s
Presolved: 28 rows, 14 columns, 74 nonzeros
Presolved model has 1 quadratic constraint(s)
Presolved model has 9 bilinear constraint(s)
Variable types: 14 continuous, 0 integer (0 binary)

Root relaxation: objective 7.463397e+01, 16 iterations, 0.00 seconds (0.00 work units)

    Nodes    |    Current Node    |     Objective Bounds      |     Work
 Expl Unexpl |  Obj  Depth IntInf | Incumbent    BestBd   Gap | It/Node Time

     0     0   74.63397    0    3          -   74.63397      -     -    0s
H    0     0                      73.6047208   74.63397  1.40%     -    0s
     0     0   73.62217    0    3   73.60472   73.62217  0.02%     -    0s
     0     0   73.61845    0    3   73.60472   73.61845  0.02%     -    0s
     0     0   73.61845    0    3   73.60472   73.61845  0.02%     -    0s
     0     2   73.61845    0    3   73.60472   73.61845  0.02%     -    0s

Cutting planes:
  PSD: 1

Explored 5 nodes (37 simplex iterations) in 0.02 seconds (0.00 work units)
Thread count was 16 (of 16 available processors)

Solution count 1: 73.6047 

Optimal solution found (tolerance 1.00e-04)
Best objective 7.360472078597e+01, best bound 7.361117907001e+01, gap 0.0088%
**************
 The optimal solution 
**************
Obj is : 73.60472078597236
x1 is : 2.9999999998974762
x2 is : 2.5748464524640973
x3 is : 2.317361807798582
x4 is : 2.9999999997674647

Process finished with exit code 0

到了這里,關(guān)于【數(shù)學(xué)建?!縋ython+Gurobi求解非線性規(guī)劃模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)學(xué)建模學(xué)習(xí)---非線性規(guī)劃

    數(shù)學(xué)建模學(xué)習(xí)---非線性規(guī)劃

    目錄 前言 一、非線性規(guī)劃問(wèn)題是什么? 二、非線性規(guī)劃的數(shù)學(xué)模型 1.一般形式 三、線性規(guī)劃的 Matlab 解法 Matlab 中非線性規(guī)劃的數(shù)學(xué)模型: 2.Matlab 中的命令: 本篇講述非線性規(guī)劃問(wèn)題極其matlab解法 如果目標(biāo)函數(shù)或約束條件中包含非線性函數(shù),就稱這種規(guī)劃問(wèn)題為非線性規(guī)

    2024年02月06日
    瀏覽(32)
  • 數(shù)學(xué)建模(五)非線性規(guī)劃

    數(shù)學(xué)建模(五)非線性規(guī)劃

    ?課程推薦: 13 非線性規(guī)劃算法在數(shù)學(xué)建模中的應(yīng)用與編程實(shí)現(xiàn)_嗶哩嗶哩_bilibili 如果目標(biāo)函數(shù)或約束條件中包含非線性函數(shù),就稱這種規(guī)劃問(wèn)題為非線性規(guī)劃問(wèn)題 。一般說(shuō)來(lái),解非線性規(guī)劃要比解線性規(guī)劃問(wèn)題困難得多。而且,也不像線性規(guī)劃有單純形法這一通用方法,

    2024年02月11日
    瀏覽(21)
  • 三、數(shù)學(xué)建模之非線性規(guī)劃

    三、數(shù)學(xué)建模之非線性規(guī)劃

    1、定義 2、例題matlan代碼求解 1.非線性規(guī)劃 (Nonlinear Programming,簡(jiǎn)稱NLP)是一種數(shù)學(xué)優(yōu)化問(wèn)題的方法,它處理的目標(biāo)函數(shù)或約束條件包含非線性項(xiàng)。與線性規(guī)劃不同,非線性規(guī)劃涉及到在非線性約束下尋找最優(yōu)解。在許多領(lǐng)域都有廣泛的 應(yīng)用,包括工程、經(jīng)濟(jì)學(xué)、物流、金

    2024年01月16日
    瀏覽(28)
  • 數(shù)學(xué)建模| 非線性規(guī)劃(Matlab)

    非線性規(guī)劃:約束條件和目標(biāo)函數(shù)存在非線性函數(shù)。簡(jiǎn)單點(diǎn)說(shuō),約束條件和目標(biāo)函數(shù)中至少一個(gè)決策變量不是一次方,例如三角函數(shù)、對(duì)數(shù)、多次方等。 線性規(guī)劃和非線性在解決上的不同:線性規(guī)劃可以有通用方法,但是非線性規(guī)劃的求解是沒(méi)有特定算的,只能用近似的算法

    2024年02月07日
    瀏覽(20)
  • 數(shù)學(xué)建模:線性與非線性優(yōu)化算法

    ?? 文章首發(fā)于我的個(gè)人博客:歡迎大佬們來(lái)逛逛 優(yōu)化算法 是指在滿足一定條件下,在眾多方案中或者參數(shù)中最優(yōu)方案,或者參數(shù)值,以使得某個(gè)或者多個(gè)功能指標(biāo)達(dá)到最優(yōu),或使得系統(tǒng)的某些性能指標(biāo)達(dá)到最大值或者最小值 優(yōu)化的兩個(gè)關(guān)鍵點(diǎn): 1.明確優(yōu)化的目標(biāo)函數(shù) 2.明確優(yōu)化

    2024年02月07日
    瀏覽(22)
  • 數(shù)學(xué)建模整理-線性規(guī)劃、整數(shù)規(guī)劃、非線性規(guī)劃

    數(shù)學(xué)建模整理-線性規(guī)劃、整數(shù)規(guī)劃、非線性規(guī)劃

    在人們的生產(chǎn)實(shí)踐中,經(jīng)常會(huì)遇到如何利用現(xiàn)有資源來(lái)安排生產(chǎn),以取得最大經(jīng)濟(jì) 效益的問(wèn)題。若目標(biāo)函數(shù)及約束條件均為線性函數(shù),則稱為線性規(guī)劃(Linear Programming 簡(jiǎn)記 LP)。 可行解 :滿足約束條件的解。 可行預(yù) :所有可行解構(gòu)成的集合稱為問(wèn)題的可行域,記為R。 圖解法

    2024年02月06日
    瀏覽(33)
  • 數(shù)學(xué)建模十大算法03—線性規(guī)劃、整數(shù)規(guī)劃、非線性規(guī)劃、多目標(biāo)規(guī)劃

    數(shù)學(xué)建模十大算法03—線性規(guī)劃、整數(shù)規(guī)劃、非線性規(guī)劃、多目標(biāo)規(guī)劃

    一、線性規(guī)劃(Linear Programming,LP) 1.1 引例 在人們的生產(chǎn)實(shí)踐中,經(jīng)常會(huì)遇到 如何利用現(xiàn)有資源來(lái)安排生產(chǎn),以取得最大經(jīng)濟(jì)效益的問(wèn)題。 此類問(wèn)題構(gòu)成了運(yùn)籌學(xué)的一個(gè)重要分支一數(shù)學(xué)規(guī)劃,而 線性規(guī)劃(Linear Programming, LP) 則是數(shù)學(xué)規(guī)劃的一個(gè)重要分支。 簡(jiǎn)而言之,線

    2024年02月13日
    瀏覽(26)
  • 【數(shù)學(xué)建?!炕旌险麛?shù)規(guī)劃MIP(Python+Gurobi代碼實(shí)現(xiàn))

    【數(shù)學(xué)建?!炕旌险麛?shù)規(guī)劃MIP(Python+Gurobi代碼實(shí)現(xiàn))

    目錄 1 概述 2 入門算例 2.1 算例 2.2 求解 ——Pulp庫(kù)和cvxpy 3 進(jìn)階算例 3.1 算例 3.2 Python+Gurobi代碼實(shí)現(xiàn) 3.3 運(yùn)行結(jié)果 混合整數(shù)規(guī)劃 (MIP) 是 NP-hard 問(wèn)題中的一類,它的目標(biāo)是在線性約束下將線性目標(biāo)最小化,同時(shí)使部分或全部變量均為整數(shù)值,在容量規(guī)劃、資源分配與裝箱等等現(xiàn)

    2024年02月07日
    瀏覽(28)
  • 數(shù)學(xué)建模--非整數(shù)規(guī)劃求解的Python實(shí)現(xiàn)

    數(shù)學(xué)建模--非整數(shù)規(guī)劃求解的Python實(shí)現(xiàn)

    目錄 1.算法流程簡(jiǎn)介 2.算法核心代碼 3.算法效果展示

    2024年02月10日
    瀏覽(25)
  • python數(shù)學(xué)建模--線性規(guī)劃問(wèn)題案例及求解

    python數(shù)學(xué)建模--線性規(guī)劃問(wèn)題案例及求解

    本博客參考: 《python數(shù)學(xué)實(shí)驗(yàn)與建?!?《MATLAB數(shù)學(xué)建模經(jīng)典案例實(shí)戰(zhàn)》 m a x ? z = 8 x 1 ? 2 x 2 + 3 x 3 ? x 4 ? 2 x 5 { x 1 + x 2 + x 3 + x 4 + x 5 ≤ 400 x 1 + 2 x 2 + 2 x 3 + x 4 + 6 x 5 ≤ 800 2 x 1 + x 2 + 6 x 3 ≤ 200 x 3 + x 4 + 5 5 ≤ 200 0 ≤ x i ≤ 99 , i = 1 , 2 , 3 , 4 x 5 ≥ ? 10 max z=8x_1-2x_2+3x_3-x_

    2023年04月13日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包