![智能优化算法与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=1739229019-QA60Pf2gWw1TgJ99vW1IfDY1bJJcxAdA-0-db6274ebd7f6dc379bd453a4e101dbb3)
定义边界检查函数为BoundaryCheck。
![](https://epubservercos.yuewen.com/2FC313/31397990103805606/epubprivate/OEBPS/Images/Figure-P19_86511.jpg?sign=1739229019-eiZXUl8QXTZjXQQgVOAunOm9BKN3LKw3-0-3acb2ac99ca3232b3eb3c536cb2eac8c)
如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=1739229019-cFPrvUQNkU232H7qazHECfU3Cla9el8u-0-04f7cfd8fcf6684bb8af5f2657fab0bf)