lingo可以解决什么优化问题?
RT比如我有一个问题,包含n(数万)个变量,目标函数是log^2形式的,限制条件是:1)每个变量是0或1(或者松弛为每个变量为0-1之间也可)。2)每m个变量为1组,每组...
RT
比如我有一个问题,包含n(数万)个变量,目标函数是log^2形式的,限制条件是:
1)每个变量是0或1(或者松弛为每个变量为0-1之间也可)。
2)每m个变量为1组,每组里的全部m个变量相加之和等于k。
像这种优化问题用lingo可以求得全局最优解吗?lingo会采用什么优化方法?
拜谢!如能满意,必追加分。 展开
比如我有一个问题,包含n(数万)个变量,目标函数是log^2形式的,限制条件是:
1)每个变量是0或1(或者松弛为每个变量为0-1之间也可)。
2)每m个变量为1组,每组里的全部m个变量相加之和等于k。
像这种优化问题用lingo可以求得全局最优解吗?lingo会采用什么优化方法?
拜谢!如能满意,必追加分。 展开
3个回答
展开全部
LINGO是Linearnteractive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等。其特色在于可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。
一般地,使用LINGO 求解运筹学问题可以分为以下两个步骤来完成:
1)根据实际问题,建立数学模型,即使用数学建模的方法建立优化模型;
2)根据优化模型,利用LINGO 来求解模型。主要是根据LINGO 软件,把数学模型转译成计算机语言,借助于计算机来求解。
例题:在线性规划中的应用max Z =5 X1+3 X2+6X3,
s.t. X1 +2 X2 + X3 ≤18
2 X1 + X2 +3 X3 =16
X1 + X2 + X3 =10
X1 ,X2 ≥0 , X3 为自由变量
应用LINGO 来求解该模型,只需要在 lingo窗口中输入以下信息即可:
max=5*x1 +3*x2 +6*x3 ;
x1 + 2*x2 + x3 <=18 ;
2*x1 + x2 + 3*x3 =16 ;
x1 + x2 + x3 =10 ;
@free( x3) ;
然后按运行按钮,得到模型最优解,具体如下:
Objective value: 46.00000
Variable Value Reduced Cost
x1 14.00000 0.000000
x2 0.000000 1.000000
x3 -4 .000000 0.000000
由此可知,当 x1 =14 , x2 =0 , x3 =-4 时,模型得到最优值,且最优值为 46。
说明:在利用LINGO 求解线性规划时,如自变量都为非负的话,在LINGO 中输入的信息和模型基本相同;如自变量为自由变量,可以使用函数 @free来把系统默认的非负变量定义自由变量,如实例一中的 x3
一般地,使用LINGO 求解运筹学问题可以分为以下两个步骤来完成:
1)根据实际问题,建立数学模型,即使用数学建模的方法建立优化模型;
2)根据优化模型,利用LINGO 来求解模型。主要是根据LINGO 软件,把数学模型转译成计算机语言,借助于计算机来求解。
例题:在线性规划中的应用max Z =5 X1+3 X2+6X3,
s.t. X1 +2 X2 + X3 ≤18
2 X1 + X2 +3 X3 =16
X1 + X2 + X3 =10
X1 ,X2 ≥0 , X3 为自由变量
应用LINGO 来求解该模型,只需要在 lingo窗口中输入以下信息即可:
max=5*x1 +3*x2 +6*x3 ;
x1 + 2*x2 + x3 <=18 ;
2*x1 + x2 + 3*x3 =16 ;
x1 + x2 + x3 =10 ;
@free( x3) ;
然后按运行按钮,得到模型最优解,具体如下:
Objective value: 46.00000
Variable Value Reduced Cost
x1 14.00000 0.000000
x2 0.000000 1.000000
x3 -4 .000000 0.000000
由此可知,当 x1 =14 , x2 =0 , x3 =-4 时,模型得到最优值,且最优值为 46。
说明:在利用LINGO 求解线性规划时,如自变量都为非负的话,在LINGO 中输入的信息和模型基本相同;如自变量为自由变量,可以使用函数 @free来把系统默认的非负变量定义自由变量,如实例一中的 x3
展开全部
原则上任何优化问题都可求解,关键是(1)有没有解;(2)有解的话满意程度如何。
lingo编程比较简单,但优化模型的建立有时比较有技巧,比如在建模书上广泛存在的参与面试的人员的面试顺序安排问题。
lingo编程比较简单,但优化模型的建立有时比较有技巧,比如在建模书上广泛存在的参与面试的人员的面试顺序安排问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个很复杂 看你的约束和目标函数是不是线性或者二次规划 你这里没有说清楚
目标函数有log那你也可以考虑是不是可以去掉log后变成线性的
另外你这个是0-1规划 而且规模很大 可能在时间上也会有问题 这个都不知道 需要具体的考虑
目标函数有log那你也可以考虑是不是可以去掉log后变成线性的
另外你这个是0-1规划 而且规模很大 可能在时间上也会有问题 这个都不知道 需要具体的考虑
更多追问追答
追问
因为目标函数是特别设计的,所以肯定是log^2格式的,不可以转换成多项式函数。
0-1规划的化也可以变成取值为0~1之间。
像这种规模的问题和这样的目标函数(具体点是外部是log^2,log内部是某两个变量的二次函数,整体是对所有值求和),lingo在理论上是可解的吗?在编程上是可行的吗(比如要定义几万个变量)?
我不了解lingo,只知道可以用来求解最优化问题,望指教。
追答
理论上没有问题 写起来用集的话也不会很长 关键你要试一下才知道行不行
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询