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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【MATLAB】线性规划问题中的绝对值问题

發(fā)布時間:2023/12/31 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MATLAB】线性规划问题中的绝对值问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題描述

在求解線性規(guī)劃問題中碰到絕對值的情況:

minz=∣x1∣+2∣x2∣+3∣x3∣+4∣x4∣,min z=|x_1|+2|x_2|+3|x_3|+4|x_4|,minz=x1?+2∣x2?+3∣x3?+4∣x4?,
s.t.{x1?x2?x3+x4=0,x1?x2+x3?3x4=1,x1?x2?2x3+3x4=?12,s.t. \left\{ \begin{aligned} &x_1-x_2-x_3+x_4 & = & 0,\\ &x_1-x_2+x_3-3x_4 & = & 1,\\ &x_1-x_2-2x_3+3x_4 & = & -\frac{1}{2}, \end{aligned} \right.s.t.?????x1??x2??x3?+x4?x1??x2?+x3??3x4?x1??x2??2x3?+3x4??===?0,1,?21?,?


原因分析:

我們想用matlab的linprog函數(shù)進行求解,需要將其轉(zhuǎn)化成為matlab中線性規(guī)劃的標(biāo)準(zhǔn)形式

但是,對于絕對值的出現(xiàn),導(dǎo)致我們無法輕易進行轉(zhuǎn)換。


解決方案:

由于絕對值阻礙了我們的轉(zhuǎn)換,因此解決問題的主要思路便是去絕對值,再轉(zhuǎn)換成標(biāo)準(zhǔn)形式后進行求解。

絕對值轉(zhuǎn)換

目標(biāo):去除絕對值,且使得相應(yīng)的變量的范圍全部大于0;
要點:?xi∈R;ui,vi≥0\forall x_i \in R \ ;\ u_i,v_i \geq 0?xi?R?;?ui?,vi?0 滿足以下條件

xi=ui?vi,∣xi∣=ui+vix_i=u_i - v_i , \left\lvert {x_i} \right\rvert=u_i + v_ixi?=ui??vi?,xi?=ui?+vi?

對于分解的過程,取ui=xi+∣xi∣2,vi=∣xi∣?xi2u_i=\frac{x_i+\left\lvert {x_i} \right\rvert}{2},v_i=\frac{\left\lvert {x_i} \right\rvert - x_i}{2}ui?=2xi?+xi??,vi?=2xi??xi??

因此,上述目標(biāo)函數(shù)在去除絕對值之后為:

minz=u1+v1+2(u2+v2)+3(u3+v3)+4(u4+v4),min z=u_1 + v_1+2(u_2+ v_2)+3(u_3 + v_3)+4(u_4 + v_4),minz=u1?+v1?+2(u2?+v2?)+3(u3?+v3?)+4(u4?+v4?),
s.t.{u1?v1?u2?v2?u3?v3+u4?v4=0,u1?v1?u2?v2+u3?v3?3(u4?v4)=1,u1?v1?u2?v2?2(u3?v3)+3(u4?v4)=?12,s.t. \left\{ \begin{aligned} &u_1 - v_1 -u_2 - v_2-u_3 - v_3+u_4 - v_4& = & 0,\\ &u_1- v_1 -u_2 - v_2+u_3 - v_3-3(u_4 - v_4)& = & 1,\\ &u_1 - v_1 -u_2 - v_2-2(u_3 - v_3)+3(u_4 - v_4) & = & -\frac{1}{2}, \end{aligned} \right.s.t.?????u1??v1??u2??v2??u3??v3?+u4??v4?u1??v1??u2??v2?+u3??v3??3(u4??v4?)u1??v1??u2??v2??2(u3??v3?)+3(u4??v4?)?===?0,1,?21?,?
成功去除絕對值,后續(xù)根據(jù)matlab中線性規(guī)劃的標(biāo)準(zhǔn)形式 分別求解出fT,A,B,Aeq,Beq,lb,ubf^T,A,B,Aeq,Beq,lb,ubfT,A,B,Aeq,Beq,lb,ub
本題的matlab代碼如下:

clc,clear c=1:4; c=[c,c]'; aeq=[1 -1 -1 1; 1 -1 1 -3; 1 -1 -2 3;]; beq=[0 1 -1/2]; aeq=[aeq,-aeq]; [uv,val]=linprog(c,[],[],aeq,beq,zeros(8,1)); x=uv(1:4)-uv(5:end)

最終求得最優(yōu)結(jié)果為:
x1=0.25;x2=0;x3=0;x4=?0.25;val=1.25x_1 =0.25 ;x_2= 0; x_3 =0 ; x_4 = -0.25; val = 1.25x1?=0.25;x2?=0;x3?=0;x4?=?0.25;val=1.25

總結(jié)

以上是生活随笔為你收集整理的【MATLAB】线性规划问题中的绝对值问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。