用Lingo求解,没有可行解
用lingo求解,没有可行解的原因肯能有哪些?是不是非线性整数规划不能得到全局最优,为什么呢?局部最优可以视为全局最优么? 可能是初始值取的不合适,非线性规划非常复杂,初始值的取法很重要! 但是我里面全部都是0-1变量 或则0-1变量的乘积 为什么是非线性呢? 瓦片 发表于 2012-5-17 18:25 static/image/common/back.gif
但是我里面全部都是0-1变量 或则0-1变量的乘积 为什么是非线性呢?
因为出现了变量的乘积形式,所以是非线性规划!
如果不知道是何种形式的规划问题,Lingo求解器状态对话框会给出solver类型,你的应该是INLP(整数非线性规划)。
一般来说,非线性规划比较难于求解,除非具有特殊结构,比如目标函数是凸的,此时局部极值点也是全局极值点,其它情况下Lingo给出的都是局部极值点。
没有可行解的原因,可能是建模不当造成的;对于非线性规划,即使存在可行解,Lingo也不能保证一定可以找到可行解,通过使用全局求解器,多初始点求解,给出好的初始点,可以一定程度改善解得质量,但是会耗费较多的时间。 qlb061 发表于 2012-5-18 09:20 static/image/common/back.gif
因为出现了变量的乘积形式,所以是非线性规划!
如果不知道是何种形式的规划问题,Lingo求解器状态对话框 ...
谢谢你的回答。你所描述的情况正是我现在正遭遇的。说句老实话,我感觉LINGO都有点不可信。比如,有时候,为让他更快找到可行解,加了一个显然的约束,居然说不可行。但是取消显然约束后,运行的局部最优是满足显然约束的。此外,有时候,仅仅是调换一下语句中理论上不影响变量的位置居然也解也会变化。
一般对Linggo有疑惑的时候,你是去修改自己的模型么?不为什么,我的全局最优求解器用不起? qlb061 发表于 2012-5-18 09:20 static/image/common/back.gif
因为出现了变量的乘积形式,所以是非线性规划!
如果不知道是何种形式的规划问题,Lingo求解器状态对话框 ...
什么是凸的 什么又是凹的呢 如何判断目标函数是不是凸的?比如MIN =
@sum(vehicle(k):@sum(level2(j):@sum(level2(i):c(i,j)*x(i,j,k))))+
@sum(truck(k):@sum(level1(j):@sum(level1(i):c(i,j)*y(i,j,k))))+
@sum(vehicle(k):FV*@sum(sat(i):@sum(cus(j):x(i,j,k))))+
@sum(truck(k):FT*@sum(dep(i):@sum(sat(j):y(i,j,k))))+
@sum(dep(i):FD*p(i))+
@sum(sat(i):FS*o(i));!(1)目标函数; qlb061 发表于 2012-5-18 09:20 static/image/common/back.gif
因为出现了变量的乘积形式,所以是非线性规划!
如果不知道是何种形式的规划问题,Lingo求解器状态对话框 ...
谢谢你的回答。你所描述的正是我所遭遇的。慢慢的,觉得Lingo不太可靠。比如为了加快其寻找速度,加上显然约束,居然说不可行。但是注销后的解是满足显然约束的。此外,有时候就是替换一下语句的位置也会导致解的不同,位置调换经理论分析是不会导致值改变的。
请问你有遇到类似的问题吗?建一个好的数学模型比编一个好的lingo程序更重要么?没有提示程序情况有误的情况下,是不是往往是模型的问题,求解释。 madio 发表于 2012-5-17 12:42 static/image/common/back.gif
可能是初始值取的不合适,非线性规划非常复杂,初始值的取法很重要!
如何来取初始值呢? 瓦片 发表于 2012-5-19 16:51 static/image/common/back.gif
如何来取初始值呢?
初值取法没有固定的办法,主要看目标函数的情况,也可以做一些尝试 madio 发表于 2012-5-19 16:59 static/image/common/back.gif
初值取法没有固定的办法,主要看目标函数的情况,也可以做一些尝试
如何看目标函数的情况呢?