Constraint forcing maximum parameter value to constant

32 Views Asked by At

I have an optimisation problem that I thought should be in the form, \begin{align} \mathrm{maximise}_{x\in\mathbb{R}^p} & f(x) + \lambda\|x\|_1 \\ \mathrm{subject~to~~~~~~~} & x_i \in [0,1], \forall i,\\ & \mathrm{max}_i x_i = 1. \end{align} The properties of $f$ may matter later on, but my main interest right now is in the second constraint. It is a convex constraint, and the projection onto the feasible set should be (unless I missed something) just to set the maximum value to 1.

This is, however, not really what I want to do. I would prefer to "spread" the values of $x$ throughout the interval $[0, 1]$, and so would like the projection to be $$ \mathrm{proj}(x) = x / \mathrm{max}_i x_i, \tag{1} $$ or something similar.

So the problem is then that I don't recognise this "projection" in (1), and thus don't know what constraint function it would correspond to, nor if I could use that at all. So my question is if anyone has seen something like that before, or has any ideas what to do?

1

There are 1 best solutions below

0
On

Because $x_i \le 1$ for all $i$, one way to enforce $\max_i x_i = 1$ is to introduce binary variables $y_i$ and linear constraints \begin{align} \sum_i y_i &\ge 1 \tag1\label1\\ y_i &\le x_i &&\text{for all $i$} \tag2\label2 \end{align} Constraint $\eqref{1}$ enforces $y_i = 1$ for at least one $i$. Constraint $\eqref{2}$ enforces $y_i = 1 \implies x_i \ge 1$ (hence $x_i=1$).