{"id":28452696,"url":"https://github.com/juliasmoothoptimizers/shiftedproximaloperators.jl","last_synced_at":"2025-06-27T23:31:14.679Z","repository":{"id":37074187,"uuid":"357330060","full_name":"JuliaSmoothOptimizers/ShiftedProximalOperators.jl","owner":"JuliaSmoothOptimizers","description":"Proximal operators for use with RegularizedOptimization","archived":false,"fork":false,"pushed_at":"2025-05-04T19:21:16.000Z","size":476,"stargazers_count":7,"open_issues_count":11,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-06T18:12:25.841Z","etag":null,"topics":["composite-optimization","proximal-algorithms","proximal-operator","regularized-optimization"],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuliaSmoothOptimizers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.bib","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-04-12T20:27:27.000Z","updated_at":"2025-05-04T19:18:42.000Z","dependencies_parsed_at":"2023-02-18T09:45:56.022Z","dependency_job_id":"89454cef-22df-434e-9c7c-ea3245fedbe7","html_url":"https://github.com/JuliaSmoothOptimizers/ShiftedProximalOperators.jl","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/JuliaSmoothOptimizers/ShiftedProximalOperators.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FShiftedProximalOperators.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FShiftedProximalOperators.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FShiftedProximalOperators.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FShiftedProximalOperators.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliaSmoothOptimizers","download_url":"https://codeload.github.com/JuliaSmoothOptimizers/ShiftedProximalOperators.jl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FShiftedProximalOperators.jl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262351443,"owners_count":23297621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composite-optimization","proximal-algorithms","proximal-operator","regularized-optimization"],"created_at":"2025-06-06T18:12:25.003Z","updated_at":"2025-06-27T23:31:14.671Z","avatar_url":"https://github.com/JuliaSmoothOptimizers.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShiftedProximalOperators\n\n[![CI](https://github.com/JuliaSmoothOptimizers/ShiftedProximalOperators.jl/actions/workflows/ci.yml/badge.svg)](https://github.com/JuliaSmoothOptimizers/ShiftedProximalOperators.jl/actions/workflows/ci.yml)\n[![](https://img.shields.io/badge/docs-latest-3f51b5.svg)](https://JuliaSmoothOptimizers.github.io/ShiftedProximalOperators.jl/dev)\n[![codecov](https://codecov.io/gh/JuliaSmoothOptimizers/ShiftedProximalOperators.jl/branch/master/graph/badge.svg?token=CZzi6ufcXI)](https://codecov.io/gh/JuliaSmoothOptimizers/ShiftedProximalOperators.jl)\n[![DOI](https://zenodo.org/badge/357330060.svg)](https://zenodo.org/badge/latestdoi/357330060)\n\n## How to cite\n\nIf you use ShiftedProximalOperators.jl in your work, please cite using the format given in [CITATION.bib](CITATION.bib).\n\n## Synopsis\n\nShiftedProximalOperators is a library of proximal operators associated with proper\nlower-semicontinuous functions such as those implemented in\n[ProximalOperators.jl](https://github.com/JuliaFirstOrder/ProximalOperators.jl)\nfor use in the algorithms implemented in [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl).\n\nThe main difference between the proximal operators implemented in\n[ProximalOperators.jl](https://github.com/JuliaFirstOrder/ProximalOperators.jl)\nis that those implemented here involve a translation of the nonsmooth term.\nSpecifically, this package considers proximal operators defined as\n\n    argmin { ½ ‖t - q‖₂² + ν h(x + s + t) + χ(s + t; ΔB) | t ∈ ℝⁿ },\n\nwhere q is given, x and s are fixed shifts, h is the nonsmooth term with respect\nto which we are computing the proximal operator, and χ(.; ΔB) is the indicator of\na ball of radius Δ defined by a certain norm.\n\n## How to Install\n\nUntil this package is registered, use\n```julia\npkg\u003e add https://github.com/rjbaraldi/ShiftedProximalOperators.jl\n```\n\n## What is Implemented?\n\nPlease refer to the documentation.\n\n## Related Software\n\n* [RegularizedProblems.jl](https://github.com/JuliaSmoothOptimizers/RegularizedProblems.jl)\n* [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl)\n\n## References\n\n* A. Y. Aravkin, R. Baraldi and D. Orban, *A Proximal Quasi-Newton Trust-Region Method for Nonsmooth Regularized Optimization*, SIAM Journal on Optimization, 32(2), pp.900\u0026ndash;929, 2022. Technical report: https://arxiv.org/abs/2103.15993\n\n```bibtex\n@article{aravkin-baraldi-orban-2022,\n  author = {Aravkin, Aleksandr Y. and Baraldi, Robert and Orban, Dominique},\n  title = {A Proximal Quasi-{N}ewton Trust-Region Method for Nonsmooth Regularized Optimization},\n  journal = {SIAM Journal on Optimization},\n  volume = {32},\n  number = {2},\n  pages = {900--929},\n  year = {2022},\n  doi = {10.1137/21M1409536},\n  abstract = { We develop a trust-region method for minimizing the sum of a smooth term (f) and a nonsmooth term (h), both of which can be nonconvex. Each iteration of our method minimizes a possibly nonconvex model of (f + h) in a trust region. The model coincides with (f + h) in value and subdifferential at the center. We establish global convergence to a first-order stationary point when (f) satisfies a smoothness condition that holds, in particular, when it has a Lipschitz-continuous gradient, and (h) is proper and lower semicontinuous. The model of (h) is required to be proper, lower semi-continuous and prox-bounded. Under these weak assumptions, we establish a worst-case (O(1/\\epsilon^2)) iteration complexity bound that matches the best known complexity bound of standard trust-region methods for smooth optimization. We detail a special instance, named TR-PG, in which we use a limited-memory quasi-Newton model of (f) and compute a step with the proximal gradient method, resulting in a practical proximal quasi-Newton method. We establish similar convergence properties and complexity bound for a quadratic regularization variant, named R2, and provide an interpretation as a proximal gradient method with adaptive step size for nonconvex problems. R2 may also be used to compute steps inside the trust-region method, resulting in an implementation named TR-R2. We describe our Julia implementations and report numerical results on inverse problems from sparse optimization and signal processing. Both TR-PG and TR-R2 exhibit promising performance and compare favorably with two linesearch proximal quasi-Newton methods based on convex models. }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliasmoothoptimizers%2Fshiftedproximaloperators.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliasmoothoptimizers%2Fshiftedproximaloperators.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliasmoothoptimizers%2Fshiftedproximaloperators.jl/lists"}