【Lingo】线性规划

矩阵工厂

一维矩阵


语法

!创建矩阵;
!说明:
 factory1代表工厂名字
 /1..6/代表1*6的一维矩阵
 a,b,c,d代表矩阵名字
;

sets:
factory1 /1..6/:a,b;
factory2 /1..3/:c,d;
endsets

!设置数据;
data:
a=1,2,3,4,5,6;
c=1.0,2,3.0;
enddata

在这里插入图片描述

【说明】

  1. 矩阵生产完毕后,工厂与矩阵之间就无关联;
  2. sets: endsets表示工厂生产流程的起止;
  3. 默认矩阵的值为:0;
  4. 若给矩阵赋值必须全部赋值,不可以只给一个矩阵中部分赋值;
  5. 赋值可以赋整数,小数;
  6. data: enddata表示矩阵赋值的起止。

二维矩阵


语法

sets:
factory1 /1..6/:a,b;
factory2 /1..3/:c,d;
factory3(factory1,factory2):e; !6*3;
factory4(factory2,factory1):f; !3*6;
endsets

data:
e=1,2,3,4,5,6
  7,8,9,10,1.1,2.2
  3.3,4.4,5.5,6.6,7.7,8.8;
enddata

在这里插入图片描述

for循环


语法

sets:
factory /1..6/:a,b;
endsets

data:
a=1,2,3,4,5,6;
b=1,1,1,1,1,1;
enddata

!说明:
factory(i)代表循环几次
a(i)*b(i)=s代表数组a和数组b数据一一相乘后的结果s
;

@for(factory(i):a(i)*b(i)=s);

【说明】:

  1. i在一维数组中可有可无;但在二维数组中必须指明ij

sum求和


语法

sets:
factory /1..6/:a,b;
endsets

data:
a=1,2,3,4,5,6;
b=1,1,1,1,1,1;
enddata

!说明:
factory(i)代表循环几次
整体表示数组a中所有数据相加等于100
;
@sum(factory(i):a(i))=100;

【说明】:

  1. i在一维数组中可有可无;但在二维数组中必须指明ij

线性规划基础


  1. 一个线程规划只有一个目标函数,若有多个目标需要建模转换成一个目标;
  2. 目标函数的最大/最小用max/min表示;
  3. 线性规划求解基本可以得到全局最优解,而非线性规划求解基本无法得到。

例题

例一


在这里插入图片描述

max=200*x1+300*x2;
x1<=100;
x2<=120;
x1+2*x2<=160;

在这里插入图片描述

例二


在这里插入图片描述

max=s;

sets:
factory01 /1..5/:a,x;
endsets

data:
a=1,2,3,4,5;
enddata

@for(factory01(i):a(i)*x(i)=s);
@sum(factory01(i):x(i))=5000;

在这里插入图片描述

例三


在这里插入图片描述

sets:
factory01 /1..6/:a;
factory02 /1..8/:d;
factory03(factory01,factory02):c,x;
endsets

data:
a=60,55,51,43,41,52;
d=35,37,22,32,41,32,43,38;
c=6,2,6,7,4,2,5,8
 4,9,5,3,8,5,8,2
 5,2,1,9,7,4,3,3
 7,6,7,3,9,2,7,1
 2,3,9,5,7,2,6,5
 5,5,2,2,8,1,4,3;
enddata

@for(factory01(i):@sum(factory02 (j):x(i,j))<= a(i));
@for(factory02(j):@sum(factory01(i):x(i,j)) = d(j));
min = @sum( factory03(i,j) : c(i,j)*x(i,j) );

在这里插入图片描述

  • 4
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

XiYang-DING

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

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

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

打赏作者

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

抵扣说明:

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

余额充值