Hi everyone,

I have the following optimization problem to solve:

minimize c^T*x, subject to ||c^T*x||_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^T*x, subject to ||c^T*x||_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`

.

3 Likes

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
```

4 Likes

thank you so much

2 Likes