{"id":28452676,"url":"https://github.com/juliasmoothoptimizers/regularizedoptimization.jl","last_synced_at":"2025-06-27T23:31:36.572Z","repository":{"id":41940472,"uuid":"160387219","full_name":"JuliaSmoothOptimizers/RegularizedOptimization.jl","owner":"JuliaSmoothOptimizers","description":"Algorithms for regularized optimization","archived":false,"fork":false,"pushed_at":"2025-05-23T14:43:13.000Z","size":14264,"stargazers_count":13,"open_issues_count":25,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-23T16:15:35.428Z","etag":null,"topics":[],"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":"2018-12-04T16:30:16.000Z","updated_at":"2025-05-23T14:40:42.000Z","dependencies_parsed_at":"2022-08-11T23:50:11.164Z","dependency_job_id":"28353ad7-e30e-4a70-b4b2-d7ccb2336ff8","html_url":"https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FRegularizedOptimization.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FRegularizedOptimization.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FRegularizedOptimization.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FRegularizedOptimization.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliaSmoothOptimizers","download_url":"https://codeload.github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaSmoothOptimizers%2FRegularizedOptimization.jl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258450274,"owners_count":22702940,"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":[],"created_at":"2025-06-06T18:12:21.165Z","updated_at":"2025-06-27T23:31:36.563Z","avatar_url":"https://github.com/JuliaSmoothOptimizers.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RegularizedOptimization\n\n[![CI](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl/actions/workflows/ci.yml/badge.svg)](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl/actions/workflows/ci.yml)\n[![](https://img.shields.io/badge/docs-latest-3f51b5.svg)](https://JuliaSmoothOptimizers.github.io/RegularizedOptimization.jl/dev)\n[![codecov](https://codecov.io/gh/JuliaSmoothOptimizers/RegularizedOptimization.jl/branch/master/graph/badge.svg?token=lTbRmyBspS)](https://codecov.io/gh/JuliaSmoothOptimizers/RegularizedOptimization.jl)\n[![DOI](https://zenodo.org/badge/160387219.svg)](https://zenodo.org/badge/latestdoi/160387219)\n\n## How to cite\n\nIf you use RegularizedOptimization.jl in your work, please cite using the format given in [CITATION.bib](CITATION.bib).\n\n## Synopsis\n\nThis package contains solvers to solve regularized optimization problems of the form\n\n\u003cp align=\"center\"\u003e\nminₓ f(x) + h(x)\n\u003c/p\u003e\n\nwhere f: ℝⁿ → ℝ has Lipschitz-continuous gradient and h: ℝⁿ → ℝ is lower semi-continuous and proper.\nThe smooth term f describes the objective to minimize while the role of the regularizer h is to select\na solution with desirable properties: minimum norm, sparsity below a certain level, maximum sparsity, etc.\nBoth f and h can be nonconvex.\n\n## Installation\n\nTo install the package, hit `]` from the Julia command line to enter the package manager and type\n```julia\npkg\u003e add https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.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* [ShiftedProximalOperators.jl](https://github.com/JuliaSmoothOptimizers/ShiftedProximalOperators.jl)\n\n## References\n\n1. 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\n2. R. Baraldi, R. Kumar, and A. Aravkin (2019), [*Basis Pursuit De-noise with Non-smooth Constraints*](https://doi.org/10.1109/TSP.2019.2946029), IEEE Transactions on Signal Processing, vol. 67, no. 22, pp. 5811-5823.\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%2Fregularizedoptimization.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliasmoothoptimizers%2Fregularizedoptimization.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliasmoothoptimizers%2Fregularizedoptimization.jl/lists"}