Fractional programming

In mathematical optimization, fractional programming is a generalization of linear-fractional programming. The objective function in a fractional program is a ratio of two functions that are in general nonlinear. The ratio to be optimized often describes some kind of efficiency of a system.

Definition
Let $$f, g, h_j, j=1, \ldots, m$$ be real-valued functions defined on a set $$\mathbf{S}_0 \subset \mathbb{R}^n$$. Let $$\mathbf{S} = \{\boldsymbol{x} \in \mathbf{S}_0: h_j(\boldsymbol{x}) \leq 0, j=1, \ldots, m\}$$. The nonlinear program



\underset{\boldsymbol{x} \in \mathbf{S}}{\text{maximize}} \quad \frac{f(\boldsymbol{x})}{g(\boldsymbol{x})}, $$

where $$g(\boldsymbol{x}) > 0$$ on $$\mathbf{S}$$, is called a fractional program.

Concave fractional programs
A fractional program in which f is nonnegative and concave, g is positive and convex, and S is a convex set is called a concave fractional program. If g is affine, f does not have to be restricted in sign. The linear fractional program is a special case of a concave fractional program where all functions $$f, g, h_j, j=1, \ldots, m$$ are affine.

Properties
The function $$q(\boldsymbol{x}) = f(\boldsymbol{x}) / g(\boldsymbol{x})$$ is semistrictly quasiconcave on S. If f and g are differentiable, then q is pseudoconcave. In a linear fractional program, the objective function is pseudolinear.

Transformation to a concave program
By the transformation $$\boldsymbol{y} = \frac{\boldsymbol{x}}{g(\boldsymbol{x})}; t = \frac{1}{g(\boldsymbol{x})}$$, any concave fractional program can be transformed to the equivalent parameter-free concave program



\begin{align} \underset{\frac{\boldsymbol{y}}{t} \in \mathbf{S}_0}{\text{maximize}} \quad & t f\left(\frac{\boldsymbol{y}}{t}\right) \\ \text{subject to} \quad & t g\left(\frac{\boldsymbol{y}}{t}\right) \leq 1, \\ & t \geq 0. \end{align} $$

If g is affine, the first constraint is changed to $$t g(\frac{\boldsymbol{y}}{t}) = 1$$ and the assumption that g is positive may be dropped. Also, it simplifies to $$g(\boldsymbol{y}) = 1$$.

Duality
The Lagrangian dual of the equivalent concave program is

\begin{align} \underset{\boldsymbol{u}}{\text{minimize}} \quad & \underset{\boldsymbol{x} \in \mathbf{S}_0}{\operatorname{sup}} \frac{f(\boldsymbol{x}) - \boldsymbol{u}^T \boldsymbol{h}(\boldsymbol{x})}{g(\boldsymbol{x})} \\ \text{subject to} \quad & u_i \geq 0, \quad i = 1,\dots,m. \end{align} $$