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. |