你好,有个关于用lingo软件做选课的优化问题想问您

关键路径2023-04-25  19

如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。(2)目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。求解优化问题时,该部分是必须的。(3)数据部分(DATA):这部分以“DATA:”开始,以“END DA TA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。

(4)初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。

编写LINGO程序要注意的几点:

1所有的语句除SETS、ENDSETS、DA TA、ENDDATA、INIT、ENDINIT和MODEL,END 之外必须以一个分号“;”结尾。

2L INGO求解非线性规划时已约定各变量非负。

LINGO内部函数使用详解。

LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。

(1)常用数学函数

@ABS(X) 返回变量X的绝对数值。

@COS( X)

返回X的余弦值,X的单位为弧度

@EXP( X)

不得用于商业用途

返回x e 的值,其中e 为自然对数的底,即 718282

@FLOOR( X)

向0靠近返回X 的整数部分。如@FLOOR(37),则返回3;@FLOOR(-37),则返回-3。 @LGM( X)

返回Γ函数的自然对数值。

@LOG( X)

返回变量X 的自然对数值。

@SIGN( X)

返回变量X 的符号值,当X<0时为-1;当X>0时为1。

@SIN( X)

返回X 的正弦值,X 的单位为弧度

@SMAX( X1, X2,, XN)

返回一列值X1, X2,, XN 的最大值。

@SMIN( X1, X2,, XN)

返回一列值X1, X2,, XN 的最小值。

@TAN( X)

返回X 的正切值,X 的单位为弧度

根据你提供的资料,lingo程序如下:

min

=Z1+Z2+Z3;

Z1=5X11+7X21+5X31+4X41+6X51+5X61+5X71+3X81+P1;

Z2=5X12+7X22+5X32+4X42+6X52+5X62+5X72+3X82+P2;

Z3=5X13+7X23+5X33+4X43+6X53+5X63+5X73+3X83+P3;

Z1<=60;Z2<=60;

Z3<=60;

N1=25X11+36X21+32X31+15X41+31X51+28X61+22X71+12X81;

N2=25X12+36X22+32X32+15X42+31X52+28X62+22X72+12X82+25X1109+36X2109+32X3109+15X4109+31X5109+28X6109+22X7109+12X8109;

N3=25X13+36X23+32X33+15X43+31X53+28X63+22X73+12X83+25X1209+36X2209+32X3209+15X4209+31X5209+28X6209+22X7209+12X8209+25X11081+

36X21081+32X31081+15X41081+31X51081+28X61081+22X71081+12X81081;

N4=N309;

N5=N3081;

W1=434754+N1;

W2=317983+N2;

W3=240045+N3;

W4=207178+N4+Q;

W5=174312+N5+Q;

W1>=150;W2>=160;W3>=170;

W4>=180;W5>=190;

L1+L2+L3

>=

20;

P1=066Q^051L1;

P2=066Q^051L2;

P3=066Q^051L3;

@gin(P1);@gin(P2);@gin(P3);

但个人觉得似乎不太对,有可能的话用原题重新提问

简单的线性规划,代码如下:

model:

min=X1+X2+X3+X4+X5+X6;

X1+X6>=60;

X1+X2>=70;

X2+X3>=60;

X3+X4>=50;

X4+X5>=20;

X5+X6>=30;

end

运行结果:

Global optimal solution found

Objective value: 1500000

Infeasibilities: 0000000

Total solver iterations: 4

Model Class: LP

Total variables: 6

Nonlinear variables: 0

Integer variables: 0

Total constraints: 7

Nonlinear constraints: 0

Total nonzeros: 18

Nonlinear nonzeros: 0

Variable Value Reduced Cost

X1 6000000 0000000

X2 1000000 0000000

X3 5000000 0000000

X4 0000000 0000000

X5 3000000 0000000

X6 0000000 0000000

Row Slack or Surplus Dual Price

1 1500000 -1000000

2 0000000 0000000

3 0000000 -1000000

4 0000000 0000000

5 0000000 -1000000

6 1000000 0000000

7 0000000 -1000000

最优值150,VALUE那一列就是对应的变量的取值。

主要用来解决将实际问题模型化后,在几条限制条件下,编程解决一些优化、规划问题,诸如最短路线问题、最少费用问题、分配问题(指派问题)、最小生成树问题、二次分配问题,,得出局部或全局最优解,经常构造0—1变量,解决实际中的整数规划问题,,还可以做灵敏度分析等等 件目前以仅有版本10了吧。

说不难,有的地方像是线性规划那一块直接把式子列上就行,说难吧,像是动态规划会比线性规划难一点,不过我们老师说做建模最好用MATLAB软件,这个软件很强大,能解决各种问题,而LINGO只能解决一小部分问题~

以上就是关于你好,有个关于用lingo软件做选课的优化问题想问您全部的内容,包括:你好,有个关于用lingo软件做选课的优化问题想问您、如何使用lingo软件编程解决线性规划问题问题如补充所示。、用lingo软件进行线性规划的计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

转载请注明原文地址:https://juke.outofmemory.cn/read/3675524.html

最新回复(0)