**Separable programming** is an approximate method for solving nonlinear
problems.

It involves a minor modification of the simplex technique. This technique can be applied to problems in which all the nonlinear functions are separable. A separable function can be expressed as the sum of sub-functions where each sub-function is a function of one variable only.

The main idea behind this technique is to construct a constrained optimization model that linearly approximates the original nonlinear problem. This technique has a considerable practical significance because after breaking the problem, usual simplex method with certain modifications can be applied. But this technique increases the computational burden because converting a nonlinear problem into an approximate version with separable functions increases the size of the model.

Maximize f_{0} (x_{1}, x_{2}, ........,
x_{n})

subject to

f_{1} (x_{1}, x_{2}, ........, x_{n}) ≤ b_{i}; i = 1, 2, ......, m

x_{j} ≥ 0, j = 1, 2, ......,
n

If the objective function and the constraints are separable, then we can write

f_{0} (x_{1}, x_{2}, ........, x_{n})
= f_{0j} (x_{j})

f_{i} (x_{1}, x_{2}, ........, x_{n})
= f_{ij} (x_{j})

i = 1, 2, ......, m

Thus, the problem under consideration can be expressed as

Maximize f_{0j} (x_{j})

subject to

f_{ij} (x_{j}) ≤ b_{i};
i = 1, 2, ......, m

x_{j} ≥ 0

Suppose there are two break points. We can evaluate f_{ij} (x_{j}) at two consecutive break points and then make a linear
approximation of f_{ij} (x_{j}) between x_{j} = a_{j}^{k} and x_{j} = a_{j}^{k
+ 1} in terms of two end points f_{ij} (a_{j}^{k})
and f_{ij} (a_{j}^{k + 1}) as:

f_{ij} (x_{j}) = W_{j}^{k }f_{ij} (a_{j}^{k}) + W_{j}^{k + 1}f_{ij} (a_{j}^{k + 1})

a_{j}^{k }≤ x_{j} ≤ a_{j}^{k + 1}

W_{j}^{k} + W_{j}^{k + 1} = 1, W_{j}^{k} ≥ 0

In general, there are k_{j} break points for the sub-function
rather than two. The function f_{ij} (x_{j}) can be
expressed as

f_{ij} (x_{j}) = W_{j}^{k }f_{ij} (a_{j}^{k})

In the above expression, not more than two W_{j}^{k} can be positive. And if two are positive, then they must be adjacent.

W_{j}^{k} ≥ j = 1,
2, ......, n; k = 1, 2, ......, k_{j}

W_{j}^{k }= 1

Thus, the technique of **separable programming** transforms the original
nonlinear programming problem into a linear programming problem with
decision variables W_{j}^{k}.