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 … pwhere 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 constraintwhich 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. - GPSolver
Config - Configuration for the GP interior-point solver.
- LogConvex
Problem - 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
GPProblemto its log-domain convex representation. - solve_
gp - Solve the GP using a log-barrier interior-point method.