| 1 |
1 |
| 2 # Proximal methods for point source localisation: the implementation |
2 # Proximal methods for point source localisation: the implementation |
| 3 |
3 |
| 4 This package contains [Rust] codes for the manuscript “_Proximal methods for |
4 This package contains the [Rust] codes for the numerical experiments in the articles |
| 5 point source localisation_” ([arXiv:2212.02991]) by Tuomo Valkonen |
5 * T. Valkonen, “_Proximal methods for |
| 6 ⟨tuomov@iki.fi⟩. It concerns solution of problems of the type |
6 point source localisation_”, Journal of Nonsmooth Analysis and Optimization 4 (2023), 10433, [doi:10.46298/jnsao-2023-10433] ([arXiv:2212.02991]) |
| |
7 * T. Valkonen, “_Point source localisation with unbalanced optimal transport_” (2025), submitted. |
| |
8 |
| |
9 It concerns solution of problems of the type |
| 7 $$ |
10 $$ |
| 8 \min_{μ ∈ ℳ(Ω)}~ F(μ) + λ \|μ\|_{ℳ(Ω)} + δ_{≥ 0}(μ), |
11 \min_{μ ∈ ℳ(Ω)}~ F(μ) + λ \|μ\|_{ℳ(Ω)} + δ_{≥ 0}(μ), |
| 9 $$ |
12 $$ |
| 10 where $F$ is a data term, and $ℳ(Ω)$ is the space of Radon measures on the |
13 where $F$ is a data term, and $ℳ(Ω)$ is the space of Radon measures on the |
| 11 (rectangular) domain $Ω ⊂ ℝ^n$. Implemented are $F(μ)=\frac12\|Aμ-b\|_2^2$ and |
14 (rectangular) domain $Ω ⊂ ℝ^n$. Implemented are $F(μ)=\frac12\|Aμ-b\|_2^2$ and |
| 12 $F(μ)=\|Aμ-b\|_1$ for the forward operator $A \in 𝕃(ℳ(Ω); ℝ^m)$ modelling a |
15 $F(μ)=\|Aμ-b\|_1$ for the forward operator $A \in 𝕃(ℳ(Ω); ℝ^m)$ modelling a |
| 13 simple sensor grid. For the 2-norm-squared data term implemented are the |
16 simple sensor grid. |
| 14 algorithms μFB, μFISTA, and μPDPS from the aforementioned manuscript along with |
|
| 15 comparison relaxed and fully corrective conditional gradient methods from the |
|
| 16 literature. For the 1-norm data term only the μPDPS is applicable. |
|
| 17 |
17 |
| 18 ## Installation and usage |
18 ## Installation and usage |
| 19 |
19 |
| 20 ### Installing dependencies |
20 ### Installing dependencies |
| 21 |
21 |
| 47 [Rust]: https://www.rust-lang.org/ |
47 [Rust]: https://www.rust-lang.org/ |
| 48 [GNU Scientific Library]: https://www.gnu.org/software/gsl/ |
48 [GNU Scientific Library]: https://www.gnu.org/software/gsl/ |
| 49 [rust-GSL]: https://docs.rs/GSL/6.0.0/rgsl/ |
49 [rust-GSL]: https://docs.rs/GSL/6.0.0/rgsl/ |
| 50 [Homebrew]: https://brew.sh |
50 [Homebrew]: https://brew.sh |
| 51 [arXiv:2212.02991]: https://arxiv.org/abs/2212.02991 |
51 [arXiv:2212.02991]: https://arxiv.org/abs/2212.02991 |
| |
52 [doi:10.46298/jnsao-2023-10433]: http://doi.org/10.46298/jnsao-2023-10433 |
| 52 |
53 |
| 53 ### Building and running the experiments |
54 ### Building and running the experiments |
| 54 |
55 |
| 55 To compile and install the program, use |
56 To compile and install the program, use |
| 56 ```console |
57 ```console |
| 57 cargo install --path=. |
58 cargo install --path=. |
| 58 ``` |
59 ``` |
| 59 When doing this for the first time, several dependencies will be downloaded. |
60 When doing this for the first time, several dependencies will be downloaded. |
| 60 Now you can run the default experiment with |
61 Now you can run the default set of experiments with |
| 61 ``` |
62 ``` |
| 62 pointsource_algs -o results |
63 pointsource_algs -o results |
| 63 ``` |
64 ``` |
| 64 The `-o results` option tells `pointsource_algs` to write results in the |
65 The `-o results` option tells `pointsource_algs` to write results in the |
| 65 `results` directory. The option is required. |
66 `results` directory. The option is required. |