Skip to main content

Module geometric_programming

Module geometric_programming 

Source
Expand description

Geometric Programming (GP) solver.

§Standard-Form GP

minimise   f₀(x)
subject to fᵢ(x) ≤ 1,   i = 1 … m
           hⱼ(x) = 1,   j = 1 … p

where every fᵢ is a posynomial (sum of monomials with positive coefficients) and every hⱼ is a monomial.

A monomial in n variables x = (x₁, …, xₙ) with all xᵢ > 0 is:

g(x) = c · x₁^a₁ · x₂^a₂ · … · xₙ^aₙ

where c > 0 and aᵢ ∈ ℝ are the exponents.

§Log Transformation

Substituting xᵢ = exp(yᵢ) turns the GP into a convex problem:

minimise   log Σₖ exp(aₖ·y + log cₖ)
subject to log Σₖ exp(aₖ·y + log cₖ) ≤ 0   for each constraint

which is a sum-of-exponentials (log-sum-exp) minimisation problem solved here by a barrier interior-point method.

Structs§

GPProblem
A Geometric Program in standard form:
GPResult
Result returned by solve_gp.
GPSolverConfig
Configuration for the GP interior-point solver.
LogConvexProblem
The log-transformed convex problem produced by gp_to_convex.
Monomial
A single monomial c · x₁^a₁ · … · xₙ^aₙ (c > 0, xᵢ > 0 required).
Posynomial
A posynomial: sum of monomials, each with a positive coefficient.

Functions§

gp_to_convex
Convert a GPProblem to its log-domain convex representation.
solve_gp
Solve the GP using a log-barrier interior-point method.