Hi everyone,
I have the following optimization problem to solve:
minimize c^Tx, subject to ||c^Tx||_1 <= C
Can someone tell me how to write this in say NLopt, or any other library?
Hi everyone,
I have the following optimization problem to solve:
minimize c^Tx, subject to ||c^Tx||_1 <= C
Can someone tell me how to write this in say NLopt, or any other library?
The very problem statement is rather confusing. At least for me. I assume that x
and c
are vectors (1d arrays of numbers). Then c^Tx
is a scalar, but what does ||c^Tx||_1
mean? Why wouldn’t the constraint be written just as |c^Tx|<=C
?
If my understanding of the problem statement is correct, that is,
minimize c'x
subject to |c'x|<=C
the solution is pretty straightforward, isn’t it? Minimization of a linear function(al) with a lower (and upper) bound on its value. For a nonzero c
, the minimum value of the functional is -C
. A minimizer x
can be found by solving
c'x = -C
.
sorry, I wrote it wrong! The correct problem is
minimize 1’Ax,
subject to ||Ax||_1 <=C
here A is a matrix, 1 is a vector of all ones
using Convex, Clp
m,n = 2,3
A = rand(m,n)
γ = 3.0
x = Variable(n)
problem = minimize(sum(A*x), norm(A*x,1)<=γ)
solve!(problem, Clp.Optimizer)
problem.optval
x.value
thank you so much