Skip to content

Commit 31bff1e

Browse files
Fixing link
1 parent c88fe9d commit 31bff1e

File tree

2 files changed

+78
-59
lines changed

2 files changed

+78
-59
lines changed

README.md

+2-55
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
[![appveyor badge][appveyor_badge]][appveyor_url]
55
[![codecov badge][codecov_badge]][codecov_url]
66

7-
## Documentation [here][documenter_latest]
8-
97
[travis_badge]: https://travis-ci.org/JuliaIntervals/IntervalOptimisation.jl.svg?branch=master
108
[travis_url]: https://travis-ci.org/JuliaIntervals/IntervalOptimisation.jl
119

@@ -16,7 +14,6 @@
1614
[codecov_url]: http://codecov.io/github/JuliaIntervals/IntervalOptimisation.jl?branch=master
1715

1816
[documenter_stable]: https://JuliaIntervals.github.io/IntervalOptimisation.jl/stable
19-
[documenter_latest]: https://JuliaIntervals.github.io/IntervalOptimisation.jl/latest
2017

2118

2219
## Rigorous global optimisation using Julia
@@ -25,59 +22,9 @@ This package provides rigorous global optimisation routines written in pure Juli
2522

2623
Currently, the package uses an implementation of the Moore-Skelboe algorithm.
2724

28-
## Usage
29-
30-
Functions `minimise` and `maximise` are provided to find the **global** minimum or maximum, respectively, of a standard Julia function `f` of one or several variables.
31-
32-
They return an `Interval` that is guaranteed to contain the global minimum (maximum), and a `Vector` of `Interval`s or `IntervalBox`es whose union contains all the minimisers.
33-
34-
### Examples
35-
36-
37-
#### 1D
38-
```
39-
using IntervalArithmetic, IntervalOptimisation
40-
41-
julia> @time global_min, minimisers = minimise(x -> (x^2 - 2)^2, -10..11);
42-
0.046620 seconds (36.07 k allocations: 1.586 MiB)
43-
44-
julia> global_min
45-
[0, 1.50881e-09]
46-
47-
julia> minimisers
48-
2-element Array{IntervalArithmetic.Interval{Float64},1}:
49-
[1.41387, 1.41453]
50-
[-1.41428, -1.41363]
51-
```
52-
53-
#### 2D
54-
55-
```
56-
julia> @time global_min, minimisers = minimise( X -> ( (x,y) = X; x^2 + y^2 ),
57-
(-10000..10001) × (-10000..10001) );
58-
0.051122 seconds (46.80 k allocations: 2.027 MiB)
59-
60-
julia> global_min
61-
[0, 2.33167e-08]
62-
63-
julia> minimisers
64-
3-element Array{IntervalArithmetic.IntervalBox{2,Float64},1}:
65-
[-0.000107974, 0.000488103] × [-0.000107974, 0.000488103]
66-
[-0.000107974, 0.000488103] × [-0.000704051, -0.000107973]
67-
[-0.000704051, -0.000107973] × [-0.000107974, 0.000488103]
68-
```
69-
Note that the last two `IntervalBox`es do not actually contain the global minimum;
70-
decreasing the tolerance (maximum allowed box diameter) removes them:
71-
72-
```
73-
julia> @time global_min, minimisers = minimise( X -> ( (x,y) = X; x^2 + y^2 ),
74-
(-10000..10001) × (-10000..10001), 1e-5 );
75-
0.047196 seconds (50.72 k allocations: 2.180 MiB)
25+
## Documentation
26+
Documentation of this package is available [here](https://JuliaIntervals.github.io/IntervalOptimisation.jl/latest/)
7627

77-
julia> minimisers
78-
1-element Array{IntervalArithmetic.IntervalBox{2,Float64},1}:
79-
[-5.52321e-06, 3.79049e-06] × [-5.52321e-06, 3.79049e-06]
80-
```
8128

8229
## Author
8330

docs/src/index.md

+76-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,80 @@
1-
# IntervalOptimisation.jl
1+
# `IntervalOptimisation.jl`
22

3-
```@index
3+
## Rigorous global optimisation using Julia
4+
5+
This package provides rigorous global optimisation routines written in pure Julia, using interval arithmetic provided by the author's [IntervalArithmetic.jl](https://github.com/JuliaIntervals/IntervalArithmetic.jl) package.
6+
7+
Currently, the package uses an implementation of the Moore-Skelboe algorithm.
8+
9+
## Usage
10+
11+
Functions `minimise` and `maximise` are provided to find the **global** minimum or maximum, respectively, of a standard Julia function `f` of one or several variables.
12+
13+
They return an `Interval` that is guaranteed to contain the global minimum (maximum), and a `Vector` of `Interval`s or `IntervalBox`es whose union contains all the minimisers.
14+
15+
### Examples
16+
17+
18+
#### 1D
19+
```
20+
using IntervalArithmetic, IntervalOptimisation
21+
22+
julia> @time global_min, minimisers = minimise(x -> (x^2 - 2)^2, -10..11);
23+
0.046620 seconds (36.07 k allocations: 1.586 MiB)
24+
25+
julia> global_min
26+
[0, 1.50881e-09]
27+
28+
julia> minimisers
29+
2-element Array{IntervalArithmetic.Interval{Float64},1}:
30+
[1.41387, 1.41453]
31+
[-1.41428, -1.41363]
32+
```
33+
34+
#### 2D
35+
36+
```
37+
julia> @time global_min, minimisers = minimise( X -> ( (x,y) = X; x^2 + y^2 ),
38+
(-10000..10001) × (-10000..10001) );
39+
0.051122 seconds (46.80 k allocations: 2.027 MiB)
40+
41+
julia> global_min
42+
[0, 2.33167e-08]
43+
44+
julia> minimisers
45+
3-element Array{IntervalArithmetic.IntervalBox{2,Float64},1}:
46+
[-0.000107974, 0.000488103] × [-0.000107974, 0.000488103]
47+
[-0.000107974, 0.000488103] × [-0.000704051, -0.000107973]
48+
[-0.000704051, -0.000107973] × [-0.000107974, 0.000488103]
449
```
50+
Note that the last two `IntervalBox`es do not actually contain the global minimum;
51+
decreasing the tolerance (maximum allowed box diameter) removes them:
552

6-
```@autodocs
7-
Modules = [IntervalOptimisation]
853
```
54+
julia> @time global_min, minimisers = minimise( X -> ( (x,y) = X; x^2 + y^2 ),
55+
(-10000..10001) × (-10000..10001), 1e-5 );
56+
0.047196 seconds (50.72 k allocations: 2.180 MiB)
57+
58+
julia> minimisers
59+
1-element Array{IntervalArithmetic.IntervalBox{2,Float64},1}:
60+
[-5.52321e-06, 3.79049e-06] × [-5.52321e-06, 3.79049e-06]
61+
```
62+
63+
## Author
64+
65+
- [David P. Sanders](http://sistemas.fciencias.unam.mx/~dsanders),
66+
Departamento de Física, Facultad de Ciencias, Universidad Nacional Autónoma de México (UNAM)
67+
68+
69+
## References:
70+
71+
- *Validated Numerics: A Short Introduction to Rigorous Computations*, W. Tucker, Princeton University Press (2010)
72+
73+
- *Applied Interval Analysis*, Luc Jaulin, Michel Kieffer, Olivier Didrit, Eric Walter (2001)
74+
75+
- van Emden M.H., Moa B. (2004). Termination Criteria in the Moore-Skelboe Algorithm for Global Optimization by Interval Arithmetic. In: Floudas C.A., Pardalos P. (eds), *Frontiers in Global Optimization. Nonconvex Optimization and Its Applications*, vol. 74. Springer, Boston, MA. [Preprint](http://webhome.cs.uvic.ca/~vanemden/Publications/mooreSkelb.pdf)
76+
77+
- H. Ratschek and J. Rokne, [*New Computer Methods for Global Optimization*](http://pages.cpsc.ucalgary.ca/~rokne/global_book.pdf)
78+
79+
## Acknowledements
80+
Financial support is acknowledged from DGAPA-UNAM PAPIIT grant IN-117117.

0 commit comments

Comments
 (0)