Convex Optimization in Julia
This provides a more efficient and user-friendly tool for researchers and practitioners in optimization, though it is incremental as it builds on existing DCP and solver technologies.
The paper introduces Convex, a Julia framework for convex optimization that translates user-friendly problem descriptions into an abstract syntax tree, enabling automatic DCP compliance verification and solver selection, with multiple dispatch reducing verification and parsing times.
This paper describes Convex, a convex optimization modeling framework in Julia. Convex translates problems from a user-friendly functional language into an abstract syntax tree describing the problem. This concise representation of the global structure of the problem allows Convex to infer whether the problem complies with the rules of disciplined convex programming (DCP), and to pass the problem to a suitable solver. These operations are carried out in Julia using multiple dispatch, which dramatically reduces the time required to verify DCP compliance and to parse a problem into conic form. Convex then automatically chooses an appropriate backend solver to solve the conic form problem.