首页 > 解决方案 > 在优化问题中指定下限和上限的技巧

问题描述

我正在最小化(使用paretosearchMATLAB 中的函数)两个都依赖于x和的目标函数y

假设我们有约束0<= x <=0.50.1<= y <= 0.3。在这种情况下,我们可以简单地为特定优化问题定义下限 ( lb) 和上限 ( ub),如下所示:

lb = [0, 0.1];
ub = [0.5, 0.3]; 

相反,假设现在我们有0.04<= x <=0.5and0<= y <=x - 0.03

在这种情况下,我们有lb = [0.04, 0],但是呢ub

x我认为作为的最小值0.04,所以我们只能接受0<= y <= 0.01并且我们可以拒绝所有其他可能性y。但我相信我错了。那么我如何定义(在 MATLAB 中)一个ub自动更新的每个值x

任何帮助将不胜感激!

标签: algorithmmatlaboptimizationmathematical-optimization

解决方案


paretosearch 有一种形式paretosearch(fun,nvars,A,b)可以让您Ax ≤ b以矩阵形式指定线性不等式。将约束重写0 ≤ y ≤ x − 0.03为两个:−y ≤ 0然后−x + y ≤ − 0.03派生A = [0,-1;-1,1]b = [0,-0.03]


推荐阅读