Matlab 约束混合整数优化:与SimEvents一起使用的遗传算法。如何将模拟输出设置为约束?

Matlab 约束混合整数优化:与SimEvents一起使用的遗传算法。如何将模拟输出设置为约束?,matlab,optimization,genetic-algorithm,simulink,Matlab,Optimization,Genetic Algorithm,Simulink,我使用MATLAB全局优化工具箱中的遗传算法和SimEvents,利用模拟输出评估适应度函数,以实现混合整数优化。我的模型与MathWorks网站视频中描述的模型非常相似: 阅读文档后,我发现遗传算法只有在约束是线性不等式的情况下才能解决约束问题。这些约束被认为是问题变量的函数,在这种情况下,是模拟过程中使用的资源数量 相反,我希望设置一个约束,该约束考虑到另一个模拟输出(例如漏极利用率),即最小化 objfun = backlog*10000 + cost 其中backlog是模拟输出(使

我使用MATLAB全局优化工具箱中的遗传算法SimEvents,利用模拟输出评估适应度函数,以实现混合整数优化。我的模型与MathWorks网站视频中描述的模型非常相似:

阅读文档后,我发现遗传算法只有在约束是线性不等式的情况下才能解决约束问题。这些约束被认为是问题变量的函数,在这种情况下,是模拟过程中使用的资源数量

相反,我希望设置一个约束,该约束考虑到另一个模拟输出(例如漏极利用率),即最小化

objfun = backlog*10000 + cost
其中backlog是模拟输出(使用simOut.get获得),考虑到以下约束:

drain_utilization > 0.7
其中,drain_uu利用率是另一个模拟输出(同样,使用simOut.get获得)

是否可能,或者全局优化工具箱不支持此功能?
提前感谢您,并请原谅我的任何不当条款,但我是全局优化工具箱的新手

您可以随时修改成本/适应度函数,这样,如果违反了约束,那么与未违反约束相比,成本是“大的”。这是一个很好的“技巧”,可以轻松解决问题。但关键是,如果您不知道如何准确地“评估”成本方面的约束,您可能无法找到最佳解决方案(即,您知道 RoLoad * 10000 允许考虑积压如何影响最终成本,但是您错过了相应的乘法项,以供使用。无论如何,非常感谢您的建议!”