智能优化算法与MATLAB编程实践
上QQ阅读APP看书,第一时间看更新

1.2.3 边界检查和约束函数

边界检查的目的是防止变量超过预先指定的范围,具体逻辑是当变量大于上边界(ub)时,将变量置为上边界;当变量小于下边界(lb)时,将变量置为下边界;当变量小于等于上边界(ub),且大于等于下边界(lb)时,变量保持不变。形式化描述如下:

定义边界检查函数为BoundaryCheck。

如x=[0.5,2,-2,1],定义的上边界为[1,1,1,1],下边界为[-1,-1,-1,-1],经过边界检查和约束后,x应该为[0.5,1,-1,1]。

x = [0.5,1,-1,1];
ub = [1,1,1,1];
lb = [-1,-1,-1,-1];
x = BoundaryCheck(x)

运行结果如下: