
matlab线性规划
它不是可以设置上下限的范围嘛,但是吧,我要是其中一个变量x,要满足3<x<4或x=0,这样怎么办...
它不是可以设置上下限的范围嘛,但是吧,我要是其中一个变量x,要满足 3<x<4或x=0,这样怎么办
展开
2个回答
展开全部
数学规划问题都是要求在闭集上求解的,也就是说,约束条件中涉及到大于或小于的符号,都应该包含等号,例如 3<=x<=4,否则,从原理上可能是无解的。等式约束当然没什么问题。
举一个非常简单的例子,求 min x, st. x>0,这个问题看似简单,却是无解的。
对于非闭集的情况,一个勉强可行的做法是,把不等式约束给加上等号使得问题符合闭集的要求,然后看求解得到的结果,如果刚好落在原问题并不包括的等号约束上,那就说明无解,否则就是最优解。这是我在一个国外的论坛上看到的方法,并没有见到严格的证明,但从基本思路上看应该是可行的。
追问
或x=0这个怎么办呢?
追答
如果你的约束条件是 3<x<4 或 x=0,很显然,可行解空间不是连续的,当然也就不满足凸集的条件,原理上是不能直接求解的。我能想到的建议是,你可以试试把问题分解成两个子问题,把对x的两种可能的约束分别用在两个子问题上,然后分别求解,最后再选择二者中的最优。
最好把问题贴出来,不要泛泛而谈,也许你建立的模型就有问题,问题根本没那么复杂呢。
2014-01-28
展开全部
没见过可以同时这样设置变量范围的,不过你可以试试根据这个条件拆成两个问题,分开求解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |