Objective function and constraints are matrix form in an optimization problem, can Lagrange multipliers method be applied to solve?

122 Views Asked by At

I would like to solve the following optimization problem:

given $\mathbf{K} \in \mathbb{R}^{n \times n}$, $\mathbf{P_{0}} \in \mathbb{R}^{n \times 3}$, $\mathbf{M} \in \mathbb{R}^{m \times n}$, $\mathbf{A} \in \mathbb{R}^{m \times 3}$, $\mathbf{N} \in \mathbb{R}^{k \times n}$, $\mathbf{L} \in \mathbb{R}^{k \times 1}$ and $m,k < n$. We want to get $\mathbf{P}$ by solving the following optimization problem: $$ \begin{array}{l} minimize \ \frac{1}{2}\|\mathbf{KP-P_{0}}\|_{F}^{2} \end{array} $$

$$ subject \ to: \ \left\{\begin{array}{c} \quad \mathbf{MP=A} \\ \mathbf{(N P \odot N P)} \mathbf{1}_{3}=\mathbf{L} \end{array}\right. $$

where $\mathbf{P} \in \mathbb{R}^{n \times 3}$, $\mathbf{1}_{3}\in \mathbb{R}^{3 \times 1}$ is a vector with all the elements equal to 1, $\odot$ is Hadamard product (elements-wise product).

You can understand the above problem with a specific meaning. The objective function $\frac{1}{2}\|\mathbf{KP-P_{0}}\|_{F}^{2}$ (square of F-norm) or $\frac{1}{2}\langle\mathbf{KP-P_{0}}, \mathbf{KP-P_{0}}\rangle_{\mathrm{F}}$ (Frobenius inner product) is the sum of Euclidean distance of a points list, $\mathbf{P_{0}}$ is their original 3D coordinates and $\mathbf{KP}$ is the changed coordinates. Condition 1 $\mathbf{MP=A}$ can be seen as positional constraints, that is the coordinates of several points can be changed. And condition 2 $\mathbf{(N P \odot N P) 1}=\mathbf{L}$ is the length constraints, that is distances between some points are invariants.

Objective function and constraints are matrix form, I am not sure whether can it be seen as a QP or QCQP problem but with equality constraints. Will there be a closed-form solution? How to solve it? Or any known solver can be used to solve this problem?


One of my ideas is using Lagrange multipliers method, the objective function $\frac{1}{2}\|\mathbf{KP-P_{0}}\|_{F}^{2} $ is a scalar, but the constraints are matrix, we can not simply add them up.

Thanks so much.