Biconvex optimization is a generalization of convex optimization where the objective function and the constraint set can be biconvex. There are methods that can find the global optimum of these problems.
A set B ⊂ X × Y {\displaystyle B\subset X\times Y} is called a biconvex set on X × Y {\displaystyle X\times Y} if for every fixed y ∈ Y {\displaystyle y\in Y} , B y = { x ∈ X : ( x , y ) ∈ B } {\displaystyle B_{y}=\{x\in X:(x,y)\in B\}} is a convex set in X {\displaystyle X} and for every fixed x ∈ X {\displaystyle x\in X} , B x = { y ∈ Y : ( x , y ) ∈ B } {\displaystyle B_{x}=\{y\in Y:(x,y)\in B\}} is a convex set in Y {\displaystyle Y} .
A function f ( x , y ) : B → R {\displaystyle f(x,y):B\to \mathbb {R} } is called a biconvex function if fixing x {\displaystyle x} , f x ( y ) = f ( x , y ) {\displaystyle f_{x}(y)=f(x,y)} is convex over Y {\displaystyle Y} and fixing y {\displaystyle y} , f y ( x ) = f ( x , y ) {\displaystyle f_{y}(x)=f(x,y)} is convex over X {\displaystyle X} .
A common practice for solving a biconvex problem (which does not guarantee global optimality of the solution) is alternatively updating x , y {\displaystyle x,y} by fixing one of them and solving the corresponding convex optimization problem.
The generalization to functions of more than two arguments is called a block multi-convex function. A function f ( x 1 , … , x K ) → R {\displaystyle f(x_{1},\ldots ,x_{K})\to \mathbb {R} } is block multi-convex iff it is convex with respect to each of the individual arguments while holding all others fixed.