Minimize function of matrix subject to matrix equality

newbie here, both to julia, JuMP, only intermediate at optimization.

I would like to solve a problem

   min(A)      subject to       C = B*A

where A,B,C are all matrices.

Is it possible to express this in JuMP? Any hints please?

1 Like

What do you mean by minimizing a Matrix?

JuMP works very well for minimizing scalars. You can find many examples in JuMPTutorials.jl

You could use that to minimize some norm of the matrix.

There is experimental work on multi-objetive (Multiobjective support in JuMP · Issue #2099 · jump-dev/JuMP.jl · GitHub).

3 Likes

I think you mean min f(A) for some function f(A)?

If the matrix B is small enough to solve explicitly for its null space N = nullspace(B), then you can completely eliminate this constraint. If X = B \ C is a particular solution, then write A = X + N*Z where Z is an unknown matrix. You then have an unconstrained minimization problem: minimize f(X + N*Z) over Z.

3 Likes

err, that was a typo! First post and I was paying more attention to how to post than to what I wrote.

yes I meant

    min f(A)     subject to     C = B*A

where f() returns a scalar

1 Like

Is it possible to solve the proposed constrained problem?
Any hints on what the syntax would be?

The problem is that I think the particular f() no longer makes sense if applied to the sum X+N*Z, it has specific meaning for the matrix A.

1 Like

note that X+N*Z is a matrix with the same dimensions of A so there should be no problem computing f of that.

can you say something else about f?
you only have equalities and no inequalities?

1 Like