首页 > 解决方案 > 优化等数分布

问题描述

示例:我想最大化xy

lb = lowerbound
ub = upperbound
a = lb(0) ub(100) 
b = lb(0) ub(50) 
x == a+b 
y == a+b

关于这一点的特别之处在于我需要分发优化。解释:x 和 y 是房子,需要能量。它们从存储器 a 和 b 中获取能量。因此,如果 x 从 a 中取 30,从 b 中取 20,则 a 中仍然有 70,b 中仍然有 30,但应该相等。

我想要的解决方案是x = 50 + 25and y = 50 + 25,它会平均分配。我将如何在代码中表达这一点?

我想到但不适用于这种情况的示例代码:

xyprob = optimproblem;

a = optimvar('a','LowerBound',0,'UpperBound',100);
b = optimvar('b','LowerBound',0,'UpperBound',50);

y = optimvar('y');
x = optimvar('x');

xyprob.ObjectiveSense = 'maximize';

xyprob.Objective = x
xyprob.Objective = y

xyprob.Constraints.econs1 = x == a+b
xyprob.Constraints.econs2 = y == a+b

[xysol,fval] = solve(xyprob);
tbl = struct2table(xysol)

标签: matlabloopsoptimization

解决方案


推荐阅读