# Converting an non-linear problem to linear (linear programming)

I would like to use simplex on a non-linear programming problem and was wondering if there was a way to transform it to a linear constraint.

The problem is the following:

$$\mathbb{min:} \space \space {q^*}_{q<0}*{C^T_{q<0}} + {q^*}_{q>0}*{C^T_{q>0}}$$ $$subject \space to: \space {\tau}_{\mathbb{lower\_limit}} \lt (p+q)*w^T < {\tau}_{\mathbb{upper\_limit}}$$

where: $$\text{q is the variable vector of length n and }$$ $$q^*_{q<0} = q \text{ where q < 0 and 0 else (same definition for } q^*_{q>0} )$$ $$\text{C}_{q<0} \text{ is a cost vector of length n for when q <0}$$ $$\text{C}_{q>0} \text{ is a cost vector of length n for when q >0}$$ $$\text{w} \text{ is a weight vector of length n}$$ $$\tau \text{ are scalars}$$

\begin{align} \min & \sum_i c^+_i q^+_i + c^-_i q^-_i\\ & q_i = q^+_i - q^-_i\\ & q^+_i, q^-_i \ge 0 \end{align}
• I ended up doing the following: $$.5 ( C^- + C^+)^T q + .5(C^- - C^+)^T |q|$$ Now we use the absolute value linearization trick and we get: $$.5(C^- + C^+)^T(T_1 + T_2) + .5(C^- - C^+)^T (T_1 - T_2)$$ – Andrew Nov 21 '16 at 15:59