![智能优化算法与MATLAB编程实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/318/52842318/b_52842318.jpg)
上QQ阅读APP看书,第一时间看更新
1.2.3 边界检查和约束函数
边界检查的目的是防止变量超过预先指定的范围,具体逻辑是当变量大于上边界(ub)时,将变量置为上边界;当变量小于下边界(lb)时,将变量置为下边界;当变量小于等于上边界(ub),且大于等于下边界(lb)时,变量保持不变。形式化描述如下:
![](https://epubservercos.yuewen.com/2FC313/31397990103805606/epubprivate/OEBPS/Images/Figure-P19_86509.jpg?sign=1739134531-kvqSE8mC0d8zK207goM7iAhK4aZflTue-0-7a90d0d1481520eaf4104b2517048032)
定义边界检查函数为BoundaryCheck。
![](https://epubservercos.yuewen.com/2FC313/31397990103805606/epubprivate/OEBPS/Images/Figure-P19_86511.jpg?sign=1739134531-2qsVXvYWaLhuVdEsiL2aiCKcsT3Gab9T-0-0450d2e925eb0733406720a90264c494)
如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)
运行结果如下:
![](https://epubservercos.yuewen.com/2FC313/31397990103805606/epubprivate/OEBPS/Images/Figure-P20_93575.jpg?sign=1739134531-lUGLZ2DhzOqsyD9eV2xXJEdErZr4EOQi-0-f0f435ee6ab3dbc161ac873ce014df6b)