I'm not a programmer really (interested in mathematics actually). Excuse me if I can not coding good. I'm also interested in implementation of mathematics results in programming language. That's my hobby!
Yesterday I asked the question below but I did not mention my way of coding! For this reason and some other ones, I decided to delete that. First of all, I thanks rm-rf for his/her Compassionate advice.
I have a combination of two optimization problem, one is bilevel optimization like this:
$$\min_{x,y} \max_{\omega} f(x,y,\omega)$$ and the other is linear programming: $$\min \beta $$ $$ s.t. A\alpha \leq b $$
where $$\alpha = \begin{bmatrix} x\\ y\\ \beta \end{bmatrix}$$
My mean of combination two optimization problem is sth like this:
$$\min_{x,y} \left [ \theta\max_\omega f(x,y,\omega)+ (1-\theta)\beta\right ]$$ $$s.t. A\alpha \leq b$$ where $\theta \in [0,1]$.
How can I do this by mathematica?
My try:
From the answer of this, I enter the code:
T = 0.01;
f[x_, y_, w_] := (((x + (T/2) y) Exp[I w] + ((T/2) y - x)) (1 -
Exp[-0.3 T]))/((Exp[I w]^100) (Exp[I w] -
Exp[-0.3 T]) (Exp[I w] - 1) + ((x + (T/2) y) Exp[I w] +
((T/2) y - x)) (1 - Exp[-0.3 T]));
g[x_?NumberQ, y_?NumberQ] :=
NMaximize[{Evaluate[Abs[f[x, y, w]]], 0 <= w <= 1}, {w, 0, 1}][[1]]
NMinimize[{g[x, y], 2 <= x <= 4.5, 0.5 <= y <= 2}, {x, y}]
for bilevel minimization. And use the linear programming command sth like this:
p = LinearProgramming[{1, 2, 0}, A, b, {{-10, 10}, {-10, 10}, {-10, 10}}];
where A
, b
are data matrices.
My problem is with how to combine two optimization problems in code and I have not any ideas to explain the problem to mathematica! Because one is linear programming (min or max nature!) and another is minimax problem. I think it may be better to convert linear programming to min/max form. I also read documentation of FindMinimum
& NMinimum
but it doesn't make any sense to me.