如何在PSO中为整数变量定义等式约束

时间:2018-08-14 05:56:03

标签: matlab particle-swarm

我正在使用Matlab的全局优化工具箱来使用PSO优化成本函数。我的一些输入变量涉及相等约束,并且它们必须是整数。如何在PSO中定义它?

我试图通过在成本函数文件中添加此if语句来使用惩罚函数,

onCollectionChanged

x(1)是开始时间,x(2)是结束时间,结束时间和开始时间之间的差必须等于持续时间(最初定义)。时间应该是整数,这就是为什么我使用ceil的原因。同样,开始时间必须小于结束时间(在逻辑上并受方程式t_end-t_start = duration的控制)。当我运行此命令时,输出为非整数,并且不满足if语句中的条件,但成本(C)仍然最小。我想念什么吗?还是有其他替代方法。

谢谢

0 个答案:

没有答案