Estimate a vector given pairwise differences

33 Views Asked by At

I am not an expert in optimization, so I would appreciate any leads on the following problem, which I have stumbled upon in my research.

Essentially, we are asked to estimate an array $x \in \mathbb{R}^{n}_{+}$, given noisy observations $D$ of the differences of the array elements and subject to the constraint that $\min(x) = 0$. Specifically, $D$ is a skew-symmetric matrix with $D_{ij} = x_i - x_j$. We can assume the noise to be i.i.d. Gaussian with unit standard deviation, which transforms the problem to the following optimization problem: $$ \sum_{i<j} \left((x_i - x_j) - D_{ij}\right)^2 \quad \text{s.t.} \quad \min(x) = 0. $$

Ideally, I would want to use an off-the-shelf algorithm. However, I am only aware of the ones that require a differentiable constraint. So far, it seems to me the easiest approach would be to iteratively set some $x_i = 0$ and then optimize: $$ \sum_{i<j} \left((x_i - x_j) - D_{ij}\right)^2 \quad \text{s.t.} \quad x \geq 0, $$ for which many algorithms are available. However, I am afraid the computational cost and the error would be high.

1

There are 1 best solutions below

1
On BEST ANSWER

Notice that adding the same constant to each entry of $x$ doesn't change the objective function, which we denote by $$ f_D(x) = \sum_{i < j} ((x_i - x_j) - D_{ij})^2. $$

Now, let $x^*$ minimise $f_D$ over $\mathbf{R}^n$ (note that there are infinitely many such $x^*$). If we define $x^+ = x^* - \min_{i} x^*_i$ (where the subtraction is elementwise), then $f_D(x^+) = f_D(x^*)$. Since $\min x^+_i = 0$, this means that $x^+$ minimises $f_D$ over your constraint.

Now, also notice that if $x^{(0)} = x^* - x^*_1$, we also have that $f_D(x^{(0)}) = f_D(x^*)$ where $x^{(0)}_1 = 0$. This means that we can compute $x^{(0)}$ by solving \begin{align*} \operatorname{minimize} &\quad f_D(x) \\ \operatorname{subject to}&\quad x_1 = 0, \end{align*} which can be done with a typical linear regression solver with $x_1$ set to $0$.

Then, we can compute $$ x^+ = x^{(0)} - \min_i x^{(0)}_i, $$ which solves your problem.