This paper introduces graph implementations as a method for representing convex functions via their epigraphs within a disciplined convex programming framework. The approach allows for the efficient specification and solution of both smooth and nonsmooth convex programs using interior-point methods. The key idea is to represent a function as the optimal value of a parameterized convex program, which can be efficiently transformed into a form compatible with existing solvers.
Disciplined convex programming (DCP) is a methodology that formalizes the construction of convex programs by imposing rules on how functions and constraints can be combined. This ensures that the resulting problem is convex and can be automatically analyzed and solved. The DCP ruleset includes a set of conditions that must be followed when constructing convex programs, ensuring that the resulting problem is convex and can be efficiently solved.
Graph implementations are a new method for defining functions in a modeling framework as the optimal value of a parameterized convex program. These implementations exploit the relationship between convex and concave functions and their epigraphs and hypographs. A graph implementation encapsulates a method for transforming instances of a specific function in a constraint or objective into a form compatible with the underlying solver's standard form. The conditions imposed by the DCP ruleset ensure that these transformations always preserve equivalence and convexity.
The paper describes the use of a modeling framework called cvx, which supports disciplined convex programming and graph implementations. cvx uses the object-oriented features of MATLAB to turn it into an optimization modeling language. It allows users to declare optimization variables and specify constraints and objectives using natural MATLAB syntax. cvx verifies compliance with the DCP ruleset, transforms conforming models to solvable form, calls an appropriate numerical solver, and translates the numerical results back to the original problem—all without user intervention.
The paper provides several examples of how cvx can be used to solve convex optimization problems, including linear programs, norm minimization problems, and the minimum volume ellipsoid problem. It also discusses the use of graph implementations to define and solve complex functions, such as the Huber penalty function and the square root function. The paper concludes that disciplined convex programming and graph implementations provide a powerful and efficient way to solve a wide variety of convex optimization problems.This paper introduces graph implementations as a method for representing convex functions via their epigraphs within a disciplined convex programming framework. The approach allows for the efficient specification and solution of both smooth and nonsmooth convex programs using interior-point methods. The key idea is to represent a function as the optimal value of a parameterized convex program, which can be efficiently transformed into a form compatible with existing solvers.
Disciplined convex programming (DCP) is a methodology that formalizes the construction of convex programs by imposing rules on how functions and constraints can be combined. This ensures that the resulting problem is convex and can be automatically analyzed and solved. The DCP ruleset includes a set of conditions that must be followed when constructing convex programs, ensuring that the resulting problem is convex and can be efficiently solved.
Graph implementations are a new method for defining functions in a modeling framework as the optimal value of a parameterized convex program. These implementations exploit the relationship between convex and concave functions and their epigraphs and hypographs. A graph implementation encapsulates a method for transforming instances of a specific function in a constraint or objective into a form compatible with the underlying solver's standard form. The conditions imposed by the DCP ruleset ensure that these transformations always preserve equivalence and convexity.
The paper describes the use of a modeling framework called cvx, which supports disciplined convex programming and graph implementations. cvx uses the object-oriented features of MATLAB to turn it into an optimization modeling language. It allows users to declare optimization variables and specify constraints and objectives using natural MATLAB syntax. cvx verifies compliance with the DCP ruleset, transforms conforming models to solvable form, calls an appropriate numerical solver, and translates the numerical results back to the original problem—all without user intervention.
The paper provides several examples of how cvx can be used to solve convex optimization problems, including linear programs, norm minimization problems, and the minimum volume ellipsoid problem. It also discusses the use of graph implementations to define and solve complex functions, such as the Huber penalty function and the square root function. The paper concludes that disciplined convex programming and graph implementations provide a powerful and efficient way to solve a wide variety of convex optimization problems.