is it possible to optimally solve the following optimization problem?

90 Views Asked by At

I have following optimization problem $$\underbrace{\max}_{x,y,u,v,\eta} \eta \\ \text{s.t: } u\log(1+ax)\geq \eta \\ v\log(1+by)\geq\eta\\ u+v\leq1\\ux+vy\leq c\\x\geq0\\y\geq 0$$ where $a,b,c$ are some positive constants. Any help in this regard will be much appreciated. Thanks in advance.

1

There are 1 best solutions below

0
On

Depends on what you mean with possible? Of course you can just throw the problem at any nonlinear solver. Here I use the MATLAB toolbox YALMIP (disclaimer, developed by me) and use its internal spatial branch&bound global solver to compute a globally optimal solution. The global solver requires bounds on all variables, so I just added some without much thought, I think you can derive valid upper bounds on $x$ and $y$ easily from the bounds you have.

The globally optimal solution is the solution that the local solver computes in the first iteration, hence the problem is probably fairly easy, and all effort spent (1 second) is basically just to prove optimality. Same thing when I use the global solver in the package SCIP.

a = 1; b = 2; c = 3;
sdpvar x y u v eta

Model = [u*log(1+a*x) >= eta, v*log(1+b*y) >= eta, u+v <= 1, u*x + v*y <= c];
Model = [Model, 0 <= [x y ] <= 100, 0 <= [u v] <= 1]
Objective = -eta;
optimize(Model,Objective,sdpsettings('solver','bmibnb'))