pogs, Proximal算子图求解器

分享于 

3分钟阅读

GitHub

  繁體
Proximal Operator Graph Solver
  • 源代码名称:pogs
  • 源代码网址:http://www.github.com/foges/pogs
  • pogs源代码文档
  • pogs源代码下载
  • Git URL:
    git://www.github.com/foges/pogs.git
    Git Clone代码到本地:
    git clone http://www.github.com/foges/pogs
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/foges/pogs
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    POGS

    Proximal图求解器是图形式凸优化问题的求解器,采用乘子的交替方向法 ( ADMM )。

    图形形式问题可以表示为

    
    minimize f(y) + g(x)
    
    
    subject to y = Ax
    
    
    
    

    其中 fg 是凸的,可以接受值 R cup {∞}。 求解器要求接近于和 g,并且 fg 是可以分离的,这意味着它们可以作为一个独立的子对象写入。

    
    f(y) = sum_{i=1}^m f_i(y_i)
    
    
    g(x) = sum_{i=1}^n g_i(x_i)
    
    
    
    

    目前支持以下功能

    Supported Equations

    如果 I(.) 是指示函数,则在满足条件的情况下接受值 0,否则为无穷大。 更多的功能可以通过修改近端操作符头 file: 来增加 <pogs>/src/include/prox_lib.h

    语言/框架

    规划求解的三种不同实现既可以是规划的,也可以已经被支持:

    • C++/BLAS/OpenMP: 在文件 <pogs>/src/cpu/ 中可以找到一个CPU版本。 POGS必须链接到 BLAS 库( 比如苹果加速框架或者地图集)。
    • C++/cuBLAS/CUDA:的GPU版本位于文件 <pogs>/src/gpu/ 中。 要使用GPU版本,必须安装 CUDA,并且计算机必须具备一个CUDA能力的GPU。
    • MATLAB: 在 <pogs>/matlab 目录中可以找到一个与示例一起的MATLAB实现。 代码有大量的文档,主要用于教学目的。
    • 问题类

    其中,求解器可以用于下列( 线性约束) 问题类

    • 套索,岭回归,逻辑回归,全息照相拟合和弹性网 Regulariation,
    • 全变去噪,最优控制
    • 线性程序和二次程序。
    引用

    POGS使用BSD-3授权。

    作者

    Chris Fougner,来自 Stephen Boyd的输入。 基本算法是基于块分裂的分布式优化--算法。 Parikh和S。Boyd"。


    Opera  Solver  operator  
    相关文章