Posynomials

GP > Posynomials | Standard Forms | Applications
  • Monomials

  • Posynomials

  • Generalized posynomials

  • Convex representation via the log-sum-exp function

Monomials

Definition

A function f : mathbf{R}^n rightarrow mathbf{R} is a monomial if its domain is mathbf{R}_{++} (the set of vectors with positive components) and its values take the form

 f(x) = c x_1^{a_1} ldots x_n^{a_n},

where c > 0 and a in mathbf{R}^n. We can write in short-hand notation:

 f(x)=c x^{a},

where we follow the power law notation: by convention, for two vectors x,a in mathbf{R}^n, x^a is the product x_1^{a_1} ldots x_n^{a_n}.

Examples:

  • The function with domain { x in mathbf{R}^2 ::: x_1 > 0, : x_2 >0} and values f(x) = 3x_1^{1.2}x_2^{-0.003} is a monomial, while -f is not.

Log-linearity and power laws

Monomials are closely related to linear or affine functions: indeed, if f is a monomial in variable x, then log f is affine in the vector log x := (log x_1,ldots,log x_n). Hence monomial functions could be called ‘log-linear’’, although the term is not widely used.

Just as linear models are important in (approximate) models between general variables, monomials play an ubiquituous role for modeling relationships between positive variables, such as prices, concentrations, energy, or geometric data such as length, area and volume, etc. Like their linear counterpart, power laws can be easily fitted to experimental data, via least-squares methods.

Examples:

  • The Stephan law of physics states that the power radiated by a body evolves as AT^4, where A is the surface area of the body, and T the temperature; this is a monomial in variables A,T.

  • In industrial engineering, the experience curve relates the cost C_1 of producing a unit for the first time, to the cost of producing the unit for the n-th time, as C_n = C_1 n^{-a}, where n is the cumulative number of unit produced, and exponent a depends on the industry. Thus C is a monomial in C_1 and n.

Posynomials

A function f : mathbf{R}^n rightarrow mathbf{R} is a posyomial if its domain is mathbf{R}_{++} (the set of vectors with positive components) and its values take the form of a non-negative sum of monomials:

 f(x) = sum_{k=1}^K c_k f_k(x),

where c_k ge 0, k=1,ldots,K, and each f_k is a monomial.

The values of a posynomial can be always written as

 f(x)=sum_{k=1}^K c_k x_{1}^{a_{k1}}dots x_{n}^{a_{kn}},

for some c in mathbf{R}^K_+, and A = (a_{kj}) in mathbf{R}^{K times n}. If we denote by a_k, k=1,ldots,K the k-th row of A, then we can write in short-hand notation

 f(x)=sum_{k=1}^K c_k x^{a_k},

where we follow the above power law notation to define what x^a means when x,a are two vectors of the same size.

Examples:

Generalized Posynomials

A generalized posynomial function is any function obtained from posynomials using addition, multiplication, pointwise maximum, and raising to constant positive power. For example, the function f : mathbf{R}_{++}^3 rightarrow mathbf{R} with values

 max( 2x_1^{2.3}x_2^7+4x_2, x_1x_2x_3^{3.14}, sqrt{x_1+x_2^3})

is a generalized posynomial.

Convex Representation

Monomials and (generalized) posynomials are not convex. However, with a simple transformation of the variables, we can transform them into convex ones.

Convex representation of posynomials

Consider a posynomial function f. Instead of the original (positive) variables, we use the new variable y_i = log x_i, i=1,ldots,n. We then take the logarithm of the function f. Let us look at the effect of such transformations on monomials and posynomials.

  • For a monomial f with values f(x) = c x_1^{a_1} ldots x_n^{a_n}, where a in mathbf{R}^n and c>0, we have

 log f(x) = a^Ty + b,

where y_i = log x_i, i=1,ldots,n, and b = log c. Our transformation yields an affine function.

  • For a posynomial f with values

 f(x) = sum_{k=1}^K c_k x^{a_k},

where c >0, we have

 log f(x) = log left( sum_{k=1}^K e^{a_k^Ty + b_k} right),

where b_k := log c_k, k=1,ldots,K. The above can be written

 log f(x) = mbox{rm lse}(Ay + b),

where A is the K times n matrix with rows a_1,ldots,a_K, b in mathbf{R}^K, and mbox{rm lse} is the log-sum-exp function. Recall that this function is convex.

Thus, we can view a posynomial as the log-sum-exp function of an affine combination of the logarithm of the original variables. Since the mbox{rm lse} function is convex, this transformation will allow us to use convex optimization to optimize posynomials.

Remark: Why do we take the log?.

Convex representation of generalized posynomials

Adding variables, and with the logarithmic change of variables seen above, we can also transform generalized posynomial inequalities into convex ones.

For example, consider the posynomial f : mathbf{R}_{++}^n rightarrow mathbf{R} with values

 f(x) = max(f_1(x) , f_2(x)),

where f_1,f_2 are two posynomials. For t>0, the constraint

 f(x) le t

can be expressed as two posynomial constraints in (x,t).

Likewise, for t >0, consider the power constraint

 f_1(x)^alpha le t,

with f an ordinary posynomial and alpha >0. Since alpha>0, the above is equivalent to

 f(x) le t^{1/alpha} ,

which in turn is equivalent to the posynomial constraint

 g(x,t) := t^{-1/alpha} f(x) le 1 .

Hence, by adding as many variables as necessary, we can express a generalized posynomial constraint as a set of ordinary ones.