ROPTLIB: An Object-Oriented C plus plus Library for Optimization on Riemannian Manifolds

ROPTLIB: An Object-Oriented C plus plus Library for Optimization on Riemannian Manifolds
复制标题

DOI:
10.1145/3218822
复制
发表时间:
2018-08-01
影响因子:
2.7
通讯作者:
Hand, Paul
Hand, Paul
中科院分区:
计算机科学3区
文献类型:
--
作者:
Huang, Wen;Absil, P-A;Hand, Paul

文献摘要

被引文献

相似文献

黎曼优化是寻找定义在黎曼流形上的实值函数的最优值的任务。在过去的几年里,由于许多应用,包括计算机视觉,信号处理和数值线性代数,黎曼优化一直是一个非常感兴趣的话题。成功设计和应用黎曼优化算法所需的大量背景对许多潜在用户来说是一个重大障碍。因此,开发了多个软件包,例如Manopt(在Matlab中)和Pymanopt(在Python中)。本文介绍了ROPTLIB,一个用于黎曼优化的C++库。与先前的软件包不同,ROPTLIB同时实现了以下目标:(i)它在Matlab、Julia和C++中具有用户友好的界面;(ii)用户不需要实现流形和算法相关的对象;(iii)由于其C++核心,它提供了有效的计算时间;(iv)它实现了最先进的通用黎曼优化算法,包括拟牛顿算法;以及(v)它基于面向对象的编程,允许用户快速添加新的算法和流形。
Riemannian optimization is the task of finding an optimum of a real-valued function defined on a Riemannian manifold. Riemannian optimization has been a topic of much interest over the past few years due to many applications including computer vision, signal processing, and numerical linear algebra. The substantial background required to successfully design and apply Riemannian optimization algorithms is a significant impediment for many potential users. Therefore, multiple packages, such as Manopt (in Matlab) and Pymanopt (in Python), have been developed. This article describes ROPTLIB, a C++ library for Riemannian optimization. Unlike prior packages, ROPTLIB simultaneously achieves the following goals: (i) it has user-friendly interfaces in Matlab, Julia, and C++; (ii) users do not need to implement manifold-and algorithm-related objects; (iii) it provides efficient computational time due to its C++ core; (iv) it implements state-of-the-art generic Riemannian optimization algorithms, including quasi-Newton algorithms; and (v) it is based on object-oriented programming, allowing users to rapidly add new algorithms and manifolds.