lingo 目标规划篇(3/3)

本文详细介绍了如何使用Lingo编程语言解决非线性目标规划、0-1规划和整数规划问题,包括具体模型构建、代码示例和结果解读。通过实例演示了如何优化钻井成本、运输费用和井位选择,以求得最小费用和最佳决策。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍如何用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.

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

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

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等于0z最大值是49428.00

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

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

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

(1) 或选择s1s7, 或选择钻探s9

(2) 选择了s3s4就不能选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。

其费用分别为56578

使总费用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

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君无戏言。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值