使用fmincon优化变量的离散值。

27日视图(30天)
我试图解决非线性约束优化问题的非线性模型预测控制。
我用的是fmincon优化功能。
系统是一个火车,我试图找到最优轨迹受限制的最大允许速度变量在不同的空间瞬间和最大的旅行时间,必须实现。
fmincon效果很好,但我需要找到离散值,这意味着我的fminon应该可以把值从这组(1 0、0.5、0.75,1]。
在这点上我知道fmincon是有限的,但是有什么办法可以让我fmincon优化中只选择这些值?
现在选择1和1之间的任何值,使控制器非常缓慢。
其次我的输入不能假设值0.001,0.003,0.75666,他们需要在上述价值观?
任何帮助将非常感激在这方面,我一直在这个问题上停留太久。
谢谢你!
1评论
Torsten
Torsten 2016年2月5日
如果你意味着某一变量只能取一个5值在完成优化,叫fmincon五次,设置变量1在第一次运行,为0在第二次运行等等。然后比较得到的目标函数值五分。
最好的祝愿
Torsten。

登录置评。

接受的答案

马特·J
马特·J 2016年2月5日
编辑:马特·J 2016年2月5日
没有理由使用FMINCON问题不是建造。试着用ga()相反,IntCon选项。当然,你会重新映射你的字典的值(1 0、0.5、0.75,1)整数,但这应该是简单的。
2的评论
houda mejri
houda mejri 2017年4月13日
你好,我和你有同样的问题与fmincon不能处理离散变量。我尝试了ga但没有得到最好的结果。你能告诉我你使用的通用代码吗?谢谢

登录置评。

答案(1)

约翰D 'Errico
约翰D 'Errico 2016年2月5日
编辑:约翰D 'Errico 2016年2月5日
Fmincon不能处理离散变量。它假设函数是一个连续的,处处可微函数的变量。如果你的变量是离散的,这个假设失败。时期。
你最佳选择最简单的例子是,这样简单地用一个循环遍历每个可能值的变量,而另一个使用fmincon解决连续变量。然后将最好的解决方案。因为只有5变量可能的情况下,没有问题。
它更复杂,更担心可能的情况下,您可以使用文件交换的工具,允许一个混合的问题,一些离散和连续变量。
如果你所有的变量是离散的,再说,你有两个选择。只使用一个完整的抽样的所有可能的情况下,或使用一个工具,可以处理离散变量。Fmincon不是一个选择。
1评论
houda mejri
houda mejri 2017年4月13日
你好,请在文件交换你能提到一些工具,让我对待离散和连续变量的混合问题?我也有同样的问题关于fmincon不能把离散变量干杯

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!