如何在 MATLAB 中使用约束对粒子群优化进行编码?

问题描述

我有一个 GAMS 代码,它表示一个数学模型,该模型取决于每个作业 i 的延迟 (i,p) 和第 p 天的时间段。所以,我有表示延迟的指数,目标是最小化这些延迟的总和。

约束示例..

GAMS 中的结构:

constraint(this part means constraint covers each indice in this part)$(if condition structure)..
        (constraint function is here)

模型约束示例:

*jobstart,delay: 变量 *readytime、distance_oven 和 speed_cookline:参数

constraint1(i,j,u,p)$(param1(j,u)>0 and j=param2(i) and p = param3(i))..
     jobstart(i) = readytime(i) + (distance_oven(j,u)/(speed_cookline(j,u)))*3600 + delay1(i);

constraint2(i,i2,j2,u2)$(i<>k and j=param2(i) and n=param2(i2) and param1(j,u) = 1 and param1(j2,u2) = 1 and u=u2)..
     abs(jobstart(i) - jobstart(i2)) => 120

objective function: min sum(delay1(i,p))

是否有现成的结构来解决问题,或者我是否必须将其编码为启发式然后将此代码实施到 PSO 中?

*我之所以这么问是因为我通过将模拟退火作为启发式方法来定义另一个问题,然后将其实施到模拟退火中。但是,采用PSO编码方式控制分配随机延迟的约束条件过于详尽且效率低下。

谢谢,

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)