README.md

changeset 54
cfd8d2304e9e
parent 52
1d8e5731a4d3
child 59
743984f4664e
equal deleted inserted replaced
53:60928f1440e0 54:cfd8d2304e9e
1 1
2 # Non-Riemannian optimisation 2 # Non-Riemannian optimisation
3 3
4 This package contains [Rust] codes for the manuscript “_Forward-backward methods in bilaterally bounded Alexandov spaces_” ([arXiv:????]) by Heikki von Koch and Tuomo Valkonen 4 This package contains [Rust] codes for the manuscript “_Forward-backward
5 ⟨tuomov@iki.fi⟩. It concerns the solution of problems of the type 5 methods in bilaterally bounded Alexandov spaces_” ([arXiv:????])
6 by Heikki von Koch and Tuomo Valkonen ⟨tuomov@iki.fi⟩.
7 It concerns the solution of problems of the type
6 $$ 8 $$
7 \min_{x ∈ M} F(x) + G(x) 9 \min_{x ∈ M} F(x) + G(x)
8 $$ 10 $$
9 where $F$ is a smooth function and $G$ a possibly nonsmooth convex function 11 where $F$ is a smooth function and $G$ a possibly nonsmooth convex function
10 on a manifold $M$, which we do not assume to be Riemannian. 12 on a manifold $M$, which we do not assume to be Riemannian. It may,
11 It may, for example, be an embedded manifold in $ℝ^3$, which sharp corners. 13 for example, be an embedded manifold in $ℝ^3$, which sharp corners.
12 We have implemented the cube, as well as squared and non-squared distance functions. 14 We have implemented the cube and the cylinder, as well as squared and
15 non-squared distance functions.
13 16
14 ## Installation and usage 17 ## Installation and usage
15 18
16 ### Installing dependencies 19 ### Installing dependencies
17 20
18 Most dependencies are managed by the Cargo build system of [Rust]. You will 21 Most dependencies are managed by the Cargo build system of [Rust]. You will
19 only need to manually install the “stable” Rust system itself. 22 only need to manually install the “stable” Rust system itself.
20 At the time of writing this README, [alg_tools] also needs to be downloaded 23 At the time of writing this README, [alg_tools] also needs to be downloaded
21 separately. 24 separately.
22 25
23 1. Install the [Rust] infrastructure (including Cargo) with [rustup]. 26 1. Install the [Rust] infrastructure (including Cargo) with [rustup].
24 2. Download [alg_tools] and unpack it under the same directory as this 27 2. Download [alg_tools] and unpack it under the same directory as this
25 package. 28 package.
26 29
27 [rustup]: https://rustup.rs 30 [rustup]: https://rustup.rs
28 [alg_tools]: https://tuomov.iki.fi/software/alg_tools/ 31 [alg_tools]: https://tuomov.iki.fi/software/alg_tools/
29 [Rust]: https://www.rust-lang.org/ 32 [Rust]: https://www.rust-lang.org/
30 [GNU Scientific Library]: https://www.gnu.org/software/gsl/
31 [Homebrew]: https://brew.sh
32 [arXiv:????]: https://arxiv.org/abs/???? 33 [arXiv:????]: https://arxiv.org/abs/????
33 34
34 ### Building and running the experiments 35 ### Building and running the experiments
35 36
36 To compile and install the program, use: 37 To compile and install the program, use:
46 Alternatively, you may build (without installing) and run the experiments with 47 Alternatively, you may build (without installing) and run the experiments with
47 ```console 48 ```console
48 cargo run --release 49 cargo run --release
49 ``` 50 ```
50 51
52 ### Generating the graphical illustrations
53
54 We include LaTeX/PGFPLOTS files for graphically illustrating the numerical results.
55 To generate `cube.pdf` and `cylinder.pdf` that visualise the computations, after running
56 `non-riemannian-opt` as indicated above, you can use:
57 ```console
58 cd visualisations
59 pdflatex cube
60 pdflatex cylinder
61 ```
62
51 ## Internals 63 ## Internals
52 64
53 If you are interested in the program internals, the integrated source code 65 If you are interested in the program internals, the integrated source code
54 documentation may be built and opened with 66 documentation may be built and opened with
55 ```console 67 ```console

mercurial