lingo编程

MODEL:

SETS:
r/1..4/:t1,t2,t3;
t/1..7/:;
p(r,r,t):y;
q(r,r):A,B;
endsets
DATA:
G=50;
B=
1000 1500 1300 1000
800 800 900 800
600 700 700 700
500 600 400 500;
A =
250 200 170 110
250 200 170 110
250 200 170 110
250 200 170 110;
t1=17 20 15 18;
t2=12 25 17 10;
t3=48 125 119 70;
ENDDATA

max=@sum(p(i,j,k):y(i,j,k)*(B(i,j)-A(i,j)))-@sum(p(i,j,k)|i#GE#3:y(i,j,k)*G);
@for(r(i);@sum(p(i,j,k):y(i,j,k))<=t3(i));
@for(r(k):
@bnd(1,y(1,1,k),3);@bnd(2,y(1,2,k),5);y(1,3,k)=2;@bnd(1,y(1,4,k),2);
y(2,1,k)>=2;y(2,2,k)>=2;y(2,3,k)>=2;@bnd(2,y(2,4,k),8);
y(3,1,k)>=2;y(3,2,k)>=2;y(3,3,k)>=2;y(3,4,k)>=1;
y(4,1,k)>=1;y(4,2,k)>=3;y(4,3,k)>=1;y(4,4,k)=0
);
@for(q(i,k):@sum(p(i,j,k):y(i,j,k))<=t2(i));
@for(q(j,k):@sum(p(i,j,k):y(i,j,k))<=t1(j));

@for(p:@GIN(y));
END
有什么问题

第1个回答  2011-09-01
我把思路告诉你,这里没有lingo软件。。。
sets部分
你先假设有16个软盘disk(因为16个文件最多用到16个软盘)软盘的级属性是一个(0,1)变量q(0表示没有用到,1表示用到)。
16个文件doc,属性是他们分别的大小s。
doc和disk的父集link,属性是p也是0-1变量,表示某个doc是否放在某个disk里
data部分:
对文件的大小赋值。
目标函数:
min=@sum(disk(i):q(i));!用到软盘的最大数;
约束条件:
@for(doc(i):@sum(disk(j):p(i,j))=1);!每个文件只能放一次;
@for(disk(j):@sum(doc(i):s(i)*p(i,j))<1.44*1024);!每张盘的容量上限;
追问

这段程序运行有问题。希望知道问题出在哪

第2个回答  2011-09-01
我有加标记的两行里面有标点使用错误,应该用英文状态下的。。。

MODEL:

SETS:
r/1..4/:t1,t2,t3;!;
t/1..7/:;
p(r,r,t):y;
q(r,r):A,B;
endsets
DATA:
G=50;
B=
1000 1500 1300 1000
800 800 900 800
600 700 700 700
500 600 400 500;
A =
250 200 170 110
250 200 170 110
250 200 170 110
250 200 170 110;
t1=17 20 15 18;
t2=12 25 17 10;
t3=48 125 119 70;
ENDDATA

max=@sum(p(i,j,k):y(i,j,k)*(B(i,j)-A(i,j)))-@sum(p(i,j,k)|i#GE#3:y(i,j,k)*G);
@for(r(i):@sum(p(i,j,k):y(i,j,k))<=t3(i));!;
@for(r(k):
@bnd(1,y(1,1,k),3);@bnd(2,y(1,2,k),5);y(1,3,k)=2;@bnd(1,y(1,4,k),2);
y(2,1,k)>=2;y(2,2,k)>=2;y(2,3,k)>=2;@bnd(2,y(2,4,k),8);
y(3,1,k)>=2;y(3,2,k)>=2;y(3,3,k)>=2;y(3,4,k)>=1;
y(4,1,k)>=1;y(4,2,k)>=3;y(4,3,k)>=1;y(4,4,k)=0
);
@for(q(i,k):@sum(p(i,j,k):y(i,j,k))<=t2(i));
@for(q(j,k):@sum(p(i,j,k):y(i,j,k))<=t1(j));

@for(p:@GIN(y));
END本回答被提问者采纳

怎样能使 lingo 编程更简便?
Lingo 是一款数学建模软件,它的编程方式与 C 语言、Python 等语言在编程方面有较大的不同。但是,有一些技巧可以使 Lingo 编程更简便。例如,使用集合段定义要用到的集合与变量,给部分变量赋值,初始化迭代起始点,程序运行开始时需要计算的数据,以及编写目标和约束段等等 。

lingo什么意思
Lingo是一种专门用于求解优化问题的编程语言,它广泛应用于线性规划、整数规划、非线性规划等领域。其名称来源于“Linear Interactive and General Optimizer”的缩写,即线性交互式通用优化器,它提供了一种简洁明了的语法和强大的优化求解功能。Lingo的主要特点是直观易用。用户无需深入了解复杂的...

怎么用lingo求解整数规划
1,打开lingo。2,输入程序框架。3,输入问题,只需要按照图中的格式去写。可以看到,lingo的编程语言与我们所学到的运筹学公式基本一致。4,添加整数约束,希望哪一个变量是整数,就在末尾加一行“@gin(变量);”就可以了。5,得出结果,点击图中的“solve”按钮,即可。6,查看结果,解决后,会弹出一个...

lingo如何用代码实现全局求解?
打开lingo,这是它的主界面。输入程序框架输入问题只需要按照图中的格式去写。可以看到,lingo的编程语言与我们所学到的运筹学公式基本一致。

lingo如何使用
lingo使用流程如下:工具/原料:戴尔XPS13-9350-3708、win10、lingo17.0。1、求minz=2*x1+3*x2+x3。2、打开Lingo软件,进入下面编程状态。3、输入目标函数:minz=2*x1+3*x2+x3。4、看看自己是否输入正确,如果没有出现error,那么继续输入下面的约数条件。5、输入约数方程之后,再次运行...

Lingo快速入门基础知识详解合集
5. 变量界定函数:定义变量取值范围,对编程逻辑有重要影响。6. 集操作函数:帮助进行集合操作,简化数据处理。7. 集循环函数:遍历集合元素,执行特定操作。8. 数据输入输出函数:允许模型与外部数据源交互,进行数据交换。9. 辅助函数:提供各种辅助功能,增强程序的灵活性。此外,Lingo还包含两种特殊函数...

lingo是什么意思?
Lingo这个词可以指语言中的方言或特色词汇,或者是指某个特定领域或行业中的术语。例如,常听到的IT行业中的“coding lingo”,即是程序员们常说的编程术语。而在某些文化中,年轻人可能会使用一些不同于主流语言的特殊词汇,这些词汇可能会被视为该文化之间的共享语言或密语。除此之外,有时候Lingo也...

lingo编程问题,感谢呀!麻烦给出具体代码
由于lingo不区分大小写,所以r用lr代替 代码如下:min=s;s=3.1415926*(R+lr)*l+3.1415926*lr*lr;3.1415926*h*(R^2+R*lr+lr^2)=380;l=(h^2+(R-lr)^2)^0.5;lr<R;结果:S 101.7609 R 4.184900 LR 2.295768 L 4.184900 H 3.734243 ...

在lingo中求解优化问题后怎么利用结果计算别的式子
3、打开lingo,这是它的主界面。输入程序框架输入问题只需要按照图中的格式去写。可以看到,lingo的编程语言与我们所学到的运筹学公式基本一致。4、你好,答案如下所示。没明白你的意思,Lingo它会自动变换x1,x2,p的取值,自动求得最优解希望你能够详细查看。如果你有不会的,你可以提问我有时间就会...

lingo程序数据部分以什么开始以什么结束
1.1 LINGO编写格式LINGO模型以MODEL开始,以END结束.中间为语句,分为四大部分。(1)集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS"结束.这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,在LINGO中称为集合(SET)及其元素和属性。(2)目标与约束:这部分定义了目标函数、约束...

相似回答