Software Open Access

# Julia codes for "Primal–dual proximal splitting and generalized conjugation in non-smooth non-convex optimization"

Christian Clason; Stanislav Mazurenko; Tuomo Valkonen

GPDPS

GPDPS is a Julia package that provides the reference implementation of the generalized primal-dual proximal splitting approach described in the paper "Primal-dual proximal splitting and generalized conjugation in non-smooth non-convex optimization" by Christian Clason, Stanislav Mazurenko, and Tuomo Valkonen.

Usage

To use the provided test codes (compatible with Julia version 1.0-1.2, tested on macOS and Linux x86_64):

• start Julia from this directory with julia --project=. (or with the relative path to the GPDPS.jl directory from somewhere else)
• do ]instantiate to download all dependencies (only required the first time, make sure you go back to standard Julia prompt with backspace afterwards)
• (highly recommended: using Revise so you can make changes in the code without having to restart Julia; if not install, start julia (without --project) and ]add Revise)
• load the package with using GPDPS

To run the example for the elliptic Nash equilibrium problem:

• do test_enep(N), where N controls the discretization (number of nodes per coordinate, default N=128)

To run the example for the Huber-Potts segmentation model:

• do test_potts(alpha,gamma,keyword=value), where keyword is one or more of the following (comma separated, order insensitive, may be removed before submission) with default value if omitted:

• image: test image; default is "blobs" (size 256x254), other images in .tif format can be specified by file name if placed in the img folder

• isotropic: use isotropic (value true, default) or anisotropic (value false) Potts model

• maxit: maximum number of iterations (default 500000)

If alpha or gamma are not specified, the default values 1 and 1e-3 are used.

Possible issues:

• on macOS, it may also be required to ]add QuartzImageIO if it is not included in the default environment.

Development

This code can also be found at https://github.com/clason/GPDPS.jl

Reference

If you find this code useful, you can cite the paper as

@article{GPDPS,
author = {Clason, Christian and Mazurenko, Stanislav and Valkonen, Tuomo},
title = {Primal-dual proximal splitting and generalized conjugation in non-smooth non-convex optimization},
year = {2019},
eprinttype = {arxiv},
eprint = {1901.02746},
}

Files (34.9 kB)
Name Size
GPDPS.jl.zip
md5:342f395473b7e0e3cf16d04ae7efff12
34.9 kB
68
3
views