主要内容

。

线形法の,问题问题

ソルバーソルバー形式へのの问题の

この例では,问题ベースのアプローチを使使,线路,线路优化工具箱™ソルバーの构文にに方法ををます。

问题问题に含まれるれるれるやや式,化学工艺の运営を表しており,edgarとhemmelblauによる[1]からから引します.2つの关键词ビデオでが解说されます。

第2部分ののビデオに厳密に従っているこの例,问题问题をソルバー构ににするに焦点焦点が当ていい

モデルの明明

第1部分ののビデオ,问题を数学的形式にするの次のアプローチをしいますをしています。

  1. 问题の概要を示す。

  2. 目标(何かの最大容量または小气压)を特价する。

  3. 変数を特价(指定)する。

  4. 制约を特价する。

  5. 制御可能ななを判别する。

  6. すべてすべて数量の数学的表记表记する。

  7. モデルモデルの完全性性ととさをチェック

このこのででののについては,第1部分ののを参照しください。

最适化の问题で,すべての他のををとして,目的关键词。

ここでは,目的关键词。

0.002614 HPS + 0.0239 PP + 0.009825 EP

制约は次のとおりです。

2500≤.P1.≤.6250.
I1≤.192,000
C≤.62,000.
I1 - He1.≤.132,000.
I1 = Le1 + He1 + C.
1359.8 I1 = 1267.8 HE1 + 1251.4 LE1 + 192 C + 3413 P1
3000.≤.P2.≤.9000.
I2≤.244,000.
Le2.≤.142,000.
I2 = Le2 + He2
1359.8 I2 = 1267.8 HE2 + 1251.4 LE2 + 3413 P2
HPS = I1 + I2 + BF1
HPS = C + MPS + LPS
LPS = LE1 + LE2 + BF2
MPS = HE1 + HE2 + BF1 - BF2
P1 + P2 + PP24,550.
EP + PP.12,000.
议员271,536
LPS.100,623
すべてすべて分数が正です。

最初の解法:各各函数のの化数

最初最初の法で,各问题函数の最适最适を作用成し。変数目作物するに,それらの范囲をます。

p1 = Optimvar('p1''indowbound',2500,'上行',6250);p2 = Optimvar('p2''indowbound',3000,'上行',9000);i1 = Optimvar('i1''indowbound',0,'上行',192000);I2 = Optimvar('i2''indowbound',0,'上行',244000);c = Optimvar('C''indowbound',0,'上行',62000);Le1 = Optimvar('le1''indowbound',0);Le2 = Optimvar('le2''indowbound',0,'上行',142000);he1 = Optimvar('he1''indowbound',0);he2 = Optimvar('他''indowbound',0);hps = Optimvar('hps''indowbound',0);MPS = Optimvar('MPS''indowbound',271536);lps = Optimvar('lps''indowbound',100623);bf1 = Optimvar('bf1''indowbound',0);bf2 = Optimvar('bf2''indowbound',0);EP = Optimvar('EP''indowbound',0);pp = Optimvar('pp''indowbound',0);

问题问题および的の作物

最最化问题を作品成し。目し的关键词。

linprob = OptimProblem('客观的',0.002614 * HPS + 0.0239 * PP + 0.009825 * EP);

线形制约作物成して

问题问题の式に,次の3つの线路不合因が含まれています。

I1 - He1.≤.132,000.
EP + PP.12,000.
P1 + P2 + PP24,550.
(1)

これらの不成式を作物,问题に含めます。

linprob.constraints.cons1 = I1  -  He1 <= 132000;linprob.constraints.cons2 = EP + PP> = 12000;linprob.constraints.cons3 = p1 + p2 + pp> = 24550;

问题问题は,次の8つの线形式が含まれてい。

I2 = Le2 + He2
LPS = LE1 + LE2 + BF2
HPS = I1 + I2 + BF1
HPS = C + MPS + LPS
I1 = Le1 + He1 + C.
MPS = HE1 + HE2 + BF1 - BF2
1359.8 I1 = 1267.8 HE1 + 1251.4 LE1 + 192 C + 3413 P1
1359.8 I2 = 1267.8 HE2 + 1251.4 LE2 + 3413 P2
(2)

これらの制约も含めます。

linprob.constraints.econs1 = Le2 + He2 == I2;linprob.constraints.econs2 = Le1 + Le2 + BF2 == LPS;linprob.constraints.econs3 = i1 + i2 + bf1 == hps;linprob.constraints.econs4 = C + MPS + LPS == HPS;linprob.constraints.econs5 = Le1 + He1 + C == I1;linprob.constraints.econs6 = he1 + he2 + bf1 == bf2 + mps;linprob.constraints.econs7 = 1267.8 * he1 + 1251.4 * Le1 + 192 * C + 3413 * P1 == 1359.8 * I1;LinProb.Constraints.Econs8 = 1267.8 * He2 + 1251.4 * Le2 + 3413 * P2 == 1359.8 * I2;

问题を解く

问题问题の定式定式は完了解决をを使し,问题を解きます。

LINSOL =解决(LINPROB);
找到最佳解决方案。

解の検证

目的关道数を评価ます(解决を初めて呼び出す呼び出すとき,この値を要求することもますますますます。

评估(linprob.objective,linsol)
ans = 1.2703e + 03

この工艺の运営运営に最低コストは$ 1,207.30です。

解解分数値を调べます。

tbl = struct2table(linsol)
TBL = 1×16表BF1 BF2 C EP HE1 HE2 HPS I1 I2 LE1 LE2 LPS MPS P1 P2 PP ___ __________________________________________________ 0 0 8169.7 760.71 1.2816E + 05 1.4338E + 053.8033E + 05 1.3633E + 05 2.44E + 05 0 1.0062E + 05 1.0062E + 05 2.7154E + 05 2.7154E + 05 6250 7060.7 11239

この表は幅が広すぎて内容を简単に把握できません。変数を縦に并べて见やすくします。

vars = {'p1''p2''i1''i2''C''le1''le2''he1''他'......'hps''MPS''lps''bf1''bf2''EP''pp'};outputvars = stact(tbl,vars,'newdatavariablename''amt''indexvariablename''var'
OutputVars = 16×2表VAR AMT ___ __________ P1 6250 P2 7060.7 I1 1.3633E + 05 I2 2.44E + 05 C 8169.7 LE1 0 LE2 1.0062E + 05 HE1 1.4338E + 05 HPS 3.8033E + 05 HPS 2.7154E + 05 LPS 1.0062E + 05 BF1 0 BF2 0 EP 760.71 PP 11239
  • BF1.BF2.,およびle1.は,下限値値0.です。

  • I2は上限値である244,000.です。

  • 目ののゼロでないとおりですのとおりです。

    • HPS.-380,328.74.

    • PP.-11,239.29

    • EP.-760.71

第2部分のビデオでは,元の问题に关键,これらの特性が明されてます。

2番目の解法:1つの最适化学数量とと作作作作作者:作者

别の方法として,问题函数の名前インデックスとしてもつ最适ををつのみでて,问题を解くはでき。ます。

vars = {'p1''p2''i1''i2''C''le1''le2''he1''他'......'hps''MPS''lps''bf1''bf2''EP''pp'};x = Optimvar('X',vars,'indowbound',0);

変数范囲の设定

ドット表记を使使て,変数に范囲を含め。

X('p1').lowerbound = 2500;X('p2').LowerBound = 3000;X('MPS').LowerBound = 271536;X('lps').LowerBound = 100623;X('p1').pperbound = 6250;X('p2').pperbound = 9000;X('i1').pperbound = 192000;X('i2').pperbound = 244000;X('C').pperbound = 62000;X('le2').pperbound = 142000;

问题,线路制约,解の作用

违いは,个别のの设定残りは,个别ののを使い。P1.などの名称ででを指定するのではなく,そのインデックスx('p1')を实用するです。

问题のオブジェクトを作品成し,线路制约をて,问题问题解きます。

linprob = OptimProblem('客观的'0.002614 * x('hps')+ 0.0239 * x('pp')+ 0.009825 * x('EP'));linprob.constraints.cons1 = x('i1') - X('he1')<= 132000;linprob.constraints.cons2 = x('EP')+ x('pp')> = 12000;linprob.constraints.cons3 = x('p1')+ x('p2')+ x('pp')> = 24550;linprob.constraints.econs1 = x('le2')+ x('他')== x('i2');linprob.constraints.econs2 = x('le1')+ x('le2')+ x('bf2')== x('lps');linprob.constraints.econs3 = x('i1')+ x('i2')+ x('bf1')== x('hps');linprob.constraints.econs4 = x('C')+ x('MPS')+ x('lps')== x('hps');linprob.constraints.econs5 = x('le1')+ x('he1')+ x('C')== x('i1');linprob.constraints.econs6 = x('he1')+ x('他')+ x('bf1')== x('bf2')+ x('MPS');linprob.constraints.econs7 = 1267.8 * x('he1')+ 1251.4 * x('le1')+ 192 * x('C')+ 3413 * x('p1')== 1359.8 * x('i1');linprob.constraints.econs8 = 1267.8 * x('他')+ 1251.4 * x('le2')+ 3413 * x('p2')== 1359.8 * x('i2');[LINSOL,FVAL] =解决(LINPROB);
找到最佳解决方案。

インデックス付きの解の検证

解を縦型の表として调べます。

TBL =表(vars',linsol.x')
TBL = 16×2表var1 var2 _____ ___________'6250'P2'7060.7'I1'105'I2'2.44E + 05'C'8169.7'LE1'0'LE2'1.0062E + 05'HE1'1.2816E + 05'HE2'1.4338E + 05'HPS'3.8033E + 05'MPS'2.7154E + 05'LPS'1.0062E + 05'BF1'0'BF2'0'EP'760.71'PP'11239

参考文献

[1] Edgar,Thomas F.和David M. Hemmelblau。化学过程的优化。纽约:McGraw-Hill,1987年。

关键词トピック