Bilinear Programming

f(x, y) = a x + x Qy + b y, where a, x ∈ R, b, y ∈ R, and Q is a matrix of dimension n ×m. It is easy to see that bilinear functions compose a subclass of quadratic functions. We refer to optimization problems with bilinear objective and/or constraints as bilinear problems, and they can be viewed as a subclass of quadratic programming. Bilinear programming has various applications in constrained bimatrix games, Markovian assignment and complementarity problems. Many 0-1 integer programs can be formulated as bilinear problems. An extensive discussion of different applications can be found in [3]. Concave piecewise linear and fixed charge network flow problems, which are very common in the supply chain management, can be also solved using bilinear formulations (see, e.g., [5] and [6]).