CDOpt: a Python package for a class of Riemannian optimization

  • Optimization over an embedded submanifold defined by equality constraints c(x) = 0 has attracted much interest over the past few decades due to its wide applications in var- ious areas, including computer vision, signal processing, numerical linear algebra, and deep learning. For solving such problems, many related optimization packages have been developed based on Riemannian optimization approaches, which rely on some basic geometrical materials of Riemannian manifolds, including Riemannian gradi- ents, retractions, vector transports, etc. These geometrical materials can be challenging to determine in general. In fact, existing packages only accommodate a few well-known manifolds whose geometrical materials are more easily accessible. For other mani- folds that are not contained in these packages, the users have to develop the geometric materials by themselves. In addition, it is not always tractable to adapt the advanced fea- tures from various state-of-the-art unconstrained optimization solvers to Riemannian optimization approaches. Here we introduce a user-friendly Python package, CDOpt (available at https://cdopt.github.io/ under BSD 3-clause license), for solving a class of Riemannian optimization problems. CDOpt is designed to complement existing Riemannian optimization packages by transforming Riemannian optimization problems into their unconstrained counterparts through the constraint dissolving approach. We prove that the when the penalty parameter in the constraint dissolving approach is suffi- ciently large, Riemannian optimization problems and their unconstrained counterparts are equivalent. Therefore, solving Riemannian optimization problems through CDOpt can directly benefit from various existing solvers and the rich expertise gained over the past few decades for unconstrained optimization. Moreover, all the computations in CDOpt related to any manifold in question are conducted through its constraints expression, hence users can easily define new manifolds in CDOpt without any back- ground on differential geometry. Furthermore, CDOpt extends the neural layers from PyTorch and Flax, thus allowing users to train manifold constrained neural networks directly by the solvers for unconstrained optimization. Extensive numerical experi- ments demonstrate that CDOpt is highly efficient and robust in solving various classes of Riemannian optimization problems.

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Nachuan Xiao, Xiaoyin Hu, Xin Liu, Kim-Chuan Toh
DOI:https://doi.org/10.1007/s12532-025-00277-z
ISSN:1867-2949
Parent Title (English):Mathematical Programming Computation
Publisher:Springer Science and Business Media LLC
Document Type:Article
Language:English
Year of Completion:2025
Volume:17
Issue:2
Page Number:58
First Page:173
Last Page:230
Mathematical Programming Computation :MPC 2025 - Issue 2
Verstanden ✔
Diese Webseite verwendet technisch erforderliche Session-Cookies. Durch die weitere Nutzung der Webseite stimmen Sie diesem zu. Unsere Datenschutzerklärung finden Sie hier.