个人记录lingo的学习

课本96页就是数学规划模型,写的很详细。

其中p111对分段线性函数的处理很巧妙。

(只有x1=500时,才能买x2, x2=500时才能买x3)

(x1-500)*x2=0      (x2-500)*x3=0

p102中 对分式扩大倍数时,对于影子价格分析时也得扩大相同倍数。


几个例子

 @free(x1)  ——free掉对x1>=0的限制

@gin(x1) 限制为整数变量

@bin(x1) 限制为0 1变量

@bnd(l,x,u) 表示 x为 [l,u]之间的实数

默认变量是非负实数


model:
sets:
supply/1..2/:s;
demand/1..3/:d;
link(supply,demand):road,g;
endsets

data:
road=10,5,6,4,8,12;
d=50,70,40;
s=60,100;
enddata

min=@sum(link(i,j):road(i,j)*g(i,j));

@for(demand(j):@sum(supply(i):g(i,j))=d(j));
@for(supply(i):@sum(demand(j):g(i,j))=s(i));
end

结构是@xxx(类型:…..) 


∑Xij=1  j=1...4   先来后面j的1...4再对xij的类型求和。

两个∑的时候即视为矩阵形式理解。(创建二维工厂)


目标函数中可以带有max min  (最大最小化模型考虑)

通过for循环来约束x为01变量


​
model:
sets:
g/1..5/:a,x;
endsets

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

max=S;
@for(g(i):a(i)*x(i)=S);
@sum(g(i):x(i))=5000;
end

!sum=的值在外面 for在里面

​

0723更

model:
sets:
aaa/1..2/:x,y,e;
bbb/1..6/:d,a,b;
ccc(bbb,aaa):c;
endsets

data:
a=1.25 8.75 0.5 5.75 3 7.25;
b=1.25 0.75 4.75 5 6.5 7.75;
d=3  5  4  7  6  11;
x=5 2;
y=1 7;
e=20 20;
enddata
min=@sum(aaa(j):@sum(bbb(i):c(i,j)*@sqrt((x(j)-a(i))^2+(y(j)-b(i))^2)));

@for(bbb(i):@sum(aaa(j):c(i,j))=d(i));
@for(aaa(j):@sum(bbb(i):c(i,j))<=e(j));
end

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Lindo 和 Lingo 是美国 Lindo 系统公司开发的一套专门用于求解最优化问题的软件包。Lindo 用于求解线性规划和二次规划问题,Lingo 除了具有 Lindo 的全部功能外,还可以用于求解非线性规划问题,也可以用于一些线性和非线性方程(组)的求解,等等。Lindo 和 Lingo 软件的最大特色在于可以允许优化模型的决策变量是整数(即整数规划),而且执行速度很快。   Lingo 实际上还是最优化问题的一种建模语言,包括许多常用的函数可供使用者建立优化模型时调用,并提供与其他数据文件(如文本文件、Excel电子表格文件、数据库文件等)的接口,易于方便地输入、求解和分析大规模最优化问题。   由于这些特点,Lindo系统公司的线性、非线性和整数规划求解程序已经被全世界数千万的公司用来做最大化利润和最小化成本的分析。应用的范围包含生产线规划、运输、财务金融、投资分配、资本预算、混合排程、库存管理、资源配置等等...   Lindo/Lingo 软件作为著名的专业优化软件,其功能比较强、计算效果比较好,与那些包含部分优化功能的非专业软件相比,通常具有明显的优势。此外,Lindo/Lingo 软件使用起来非常简便,很容易学会,在优化软件(尤其是运行于个人电脑上的优化软件)市场占有很大份额,在国外运筹学类的教科书也被广泛用做教学软件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值