本文介绍如何用lingo实现非线性的目标规划问题

lingo较matlab简单 参考例题学习,语句功能不再叙述。

编程求解下面的非线性规划模型

,

程序代码:(不允许粘图,重点语句加上注释)

MODEL:

MAX=2*X1+3*X1^2+3*X2+X2^2+X3;

X1+2*X1^2+X2+2*X2^2+X3<10;

X1+X1^2+X2+X2^2-X3<50;

2*X1+X1^2+2*X2+X3<40;

X1^2+X3=2;

X1+2*X2>1;

@FREE(X2); %不限制x2

@FREE(X3);
END

程序运行结果:

  Local optimal solution found.

  Objective value:                              18.08333

Variable           Value        Reduced Cost

X1             2.333333            0.000000

X2            0.1666667            0.000000

X3            -3.444444            0.000000

程序运行结果解读

当x1等于2.333333,

x2等于0.1666667,

x3等于-3.444444时

z取得最大为18.08333

编程求解下面的0-1规划模型

程序代码:(不允许粘图,重点语句加上注释)

MODEL:

MAX=3*X1-2*X2+5*X3;

X1+2*X2-X3<2;

X1+4*X2+X3<4;

X1+X2<3;

4*X2+X3<5;

@BIN(X1);

@BIN(X2);

@BIN(X3);
END

程序运行结果:

Global optimal solution found.

Objective value:                              8.000000

Variable           Value        Reduced Cost

X1              1.000000        -3.000000

X2              0.000000         2.000000

X3              1.000000        -5.000000

程序运行结果解读

当x1取1,

x2取0,

x3取1时,

z取得最大值8.

* 编程求解下面的整数规划模型

程序代码:(不允许粘图,重点语句加上注释)

MODEL:

MAX=X1^2+X2^2+3*X3^2+4*X4^2+2*X5^2-8*X1-2*X2-3*X3-X4-2*X5;

X1+X2+X3+X4+X5<400;

X1+2*X2+2*X3+X4+5*X5<800;

2*X1+X2+6*X3<200;

X3+X4+5*X5<200;

@BND(0,X1,99);

@BND(0,X2,99);

@BND(0,X3,99);

@BND(0,X4,99);

@BND(0,X5,99);

@GIN(X1);

@GIN(X2); 

@GIN(X3); 

@GIN(X4); 

@GIN(X5);  

END

程序运行结果:

Local optimal solution found.

Objective value:                    49428.00

Variable           Value        Reduced Cost

X1                0.000000         8.000000

X2               99.00000         -196.0000

X3               16.00000         -93.00001

X4               99.00000         -791.0000

X5                0.000000         2.000000

程序运行结果解读:

当x1等于0,

x2等于99,

x3等于16,

x4等于99,

x5等于0时z最大值是49428.00

 上面都是基础知识,实践重点掌握下面即可

编程求解下面的优化模型非线性规划模型

某钻井队要从10个可供选择的井位中确定5个钻井探油,使总的钻探费用为最小。若10个井位的代号为s1,s2,⋯,s10相应的钻探费用c1,c2,⋯,c10
为5,8,10,6,9,5,7,6,10,8.并且井位选择上要满足下列限制条件:

(1) 或选择s1和s7, 或选择钻探s9;

(2) 选择了s3或s4就不能选s5,或反过来也一样;

(3) 在s5, s6, s7, s8中最多只能选两个.

试建立这个问题的整数规划模型,确定选择的井位。取0-1变量si,若si=1,则表示选取第i个井,若si=0,则表示不选取第i个井。建立数学模型如下:

程序代码:(不允许粘图,重点语句加上注释)

MODEL:

SETS:

HANG/1..10/:S,C;
ENDSETS

DATA:

C=5,8,10,6,9,5,7,6,10,8;

ENDDATA;

MIN=@SUM(HANG(I):S(I)*C(I));

(S(1)+S(7)-2)*(S(9)-1)=0;

S(3)*S(5)+S(4)*S(5)=0;

S(5)+S(6)+S(7)+S(8)<2;

@SUM(HANG(I):S(I))=5);

@FOR(HANG(I):@BIN(S));

END

程序运行结果:

  Global optimal solution found.

  Objective value:                              31.00000

Variable           Value        Reduced Cost

                                   S( 1)        1.000000            5.000000

                                   S( 4)        1.000000            6.000000

                                   S( 6)        1.000000            5.000000

                                   S( 7)        1.000000            7.000000

                                  S( 10)        1.000000            8.000000

程序运行结果解读:

根据程序运行结果:

确定钻井为s1,s4,s6,s7,s10。

其费用分别为5,6,5,7,8。

使总费用z最少为31

编程求解下面的运输问题模型

某食品公司经销的主要产品之一是糖果,他下面设有三个加工厂,每天的糖果生产量分别为A1-7t,
A2-4t,A3-9t.该公司把这些糖果分别运往四个地区的门市部销售,各地区每天的销售量为B1-3t,B2-6t,B3-5t,B4-6t,已知每个加工厂到各销售门市部每吨糖果的运价如下表所示,问该食品公司应如何调运,在满足各门市部销售的情况下,使总的运费支出为最少。

B1

B2

B3

B4

A1

3

11

3

10

A2

1

9

2

8

A3

7

4

10

5

     设cij,xij分别为各工厂向各门市部的单位运价及运送量,pi为第i个工厂的产量,dj为第j个门市部的销售量,则这个运输问量的数学模型为

min z=i=13j=14cijxij
s.t.&j=14xij=pi,i=1,2,3&j=13xij=dj,j=1,2,3,4&xij≥0,i=1,2,3,j=1,2,3,4

程序代码:(不允许粘图,重点语句加上注释)

MODEL:

SETS:

HANG/1..3/:P;

LIE/1..4/:D;

LINK(HANG,LIE):C,X;

ENDSETS

DATA:

P=7,4,9;

D=3,6,5,6;

C=

3,11,3,10

1,9,2,8

7,4,10,5;

ENDDATA

MIN=@SUM(LINK(I,J):C(I,J)*X(I,J));

@FOR(HANG(I):@SUM(LIE(J):X(I,J))=P(I));

@FOR(LIE(J):@SUM(HANG(I):X(I,J))=D(J));
END

程序运行结果:

  Global optimal solution found.

  Objective value:                              85.00000

Variable           Value        Reduced Cost

                                X( 1, 1)        2.000000            0.000000

                                X( 1, 3)        5.000000            0.000000

                                X( 2, 1)        1.000000            0.000000

                                X( 2, 4)        3.000000            0.000000

                                X( 3, 2)        6.000000            0.000000

                                X( 3, 4)        3.000000            0.000000

程序运行结果解读:

根据程序运行结果:

可知A1工厂向B1地区运送2吨糖果;

可知A1工厂向B3地区运送5吨糖果;

可知A2工厂向B1地区运送1吨糖果;

可知A2工厂向B4地区运送3吨糖果;

可知A3工厂向B2地区运送6吨糖果;

可知A3工厂向B4地区运送3吨糖果;

得到最少运费为85

 

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信