Problem-based optimization: Initial guess for only one variable

3 次查看(过去 30 天)
Hello,
I have a optimization problem with the problem-based approach and I am defining a few variables
A = ones(50,10);
a = optimvar("a",size(A),"Type","integer","LowerBound",0,"UpperBound",2);
b = optimvar("b",size(a),"Type","integer","LowerBound",0,"UpperBound",2);
c = optimvar("c",size(a),"Type","integer","LowerBound",0,"UpperBound",2);
Now I want to make an initial guess for only a, because I can't guess values for b and c. I tried it like this, but it doesn't work:
initial_guess = ...;
x0 = struct('a', initial_guess, 'b', [], 'c', []);
...
solution = solve(prob, x0);
It says, that b and c can't be empty. But I don't know how to implemnt it in another way.
Is there a possibilty to make a guess for only one variable?
(If I am defining b and c e.g. as zeros, the guess is infeasable)
  2 个评论
Fabio Freschi
Fabio Freschi 2023-10-25
Why don't you set your b and c variables in the middle of the range? In your case 1?
b999
b999 2023-10-25
Because I have a lot of constraints besides the variables, which are not fulfilled then.

请先登录,再进行评论。

回答(1 个)

Walter Roberson
Walter Roberson 2023-10-25
there are only 3^3 different possibilities. Run them each in turn hardcoding one particular a, b, c possibility. Take the best of the 27 results as the solution.
  2 个评论
b999
b999 2023-10-25
It is an easy example to show my problem. The Size of the Variables could be 50x10 or more and there are more than three variables. The a,b and c is just an example. I can't try taht many possibilities

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Get Started with Optimization Toolbox 的更多信息

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by