Nonnegativity

Although most of sageopt is designed with optimization in mind, the underlying mechanism of “SAGE certificates” is really about certifying function nonnegativity. Certifying function nonnegativity (whether globally over \(\mathbb{R}^n\), or over some proper subset \(X \subset \mathbb{R}^n\)) is an important problem in the mathematical field of algebraic geometry, and has practical applications to control theory. This page discusses how you can use sageopt to certify signomial and polynomial nonnegativity.

pre-made functions

Sageopt offers two pre-made functions for certifying nonnegativity and finding SAGE decompositions: sage_feasibility and sage_multiplier_search. These functions are accessible as top-level imports sageopt.sage_feasibility and sageopt.sage_multiplier_search, where they accept Signomial or Polynomial objects.

sageopt.sage_feasibility(f, X=None)

Construct a Problem for checking if f admits an X-SAGE decomposition.

Parameters
Returns

prob – Has objective “maximize 0”, and constraints that f is X-SAGE.

Return type

coniclifts.Problem

Construct a Problem for an attempt to certify that f is X-nonnegative.

Parameters
  • f (Signomial or Polynomial) – We are looking for a certificate that f is nonnegative over X.

  • level (int) – A positive integer. This determines the complexity of a modulator g which is positive over X.

  • X (SigDomain or PolyDomain) – Default to \(X = \mathbb{R}^{\texttt{f.n}}\).

Returns

prob – A problem with objective “maximize 0”, and constraints that both g and f * g are X-SAGE. The main variables in this problem are the coefficients of g. The complexity of g is determined by level.

Return type

coniclifts.Problem