Browse code

add the different learner types

Bas Nijholt authored on 09/01/2018 15:02:02
Showing 1 changed files
... ...
@@ -14,6 +14,23 @@ Check out the Adaptive [example notebook `learner.ipynb`](learner.ipynb) (or run
14 14
 **WARNING: `adaptive` is still in an early alpha development stage**
15 15
 
16 16
 
17
+## Implemented algorithms / learners
18
+We introduce the concept of a "learner", which is an object that knows:
19
+* the function it is trying to "learn"
20
+* the bounds of the function domain that you are interested in
21
+* the data that has been calculated (which could be empty at the start)
22
+
23
+Using this information, a learner can return as many suggested points as are requested.
24
+Adding more data to the learner means that the newly suggested points will become better and better.
25
+
26
+The following learners are implemented
27
+* `Learner1D` which learns a 1D function `f: ℝ → ℝ^N`
28
+* `Learner2D` which learns a 2D function `f: ℝ^2 → ℝ^N`
29
+* `AverageLearner` which learns a 0D function that has a source of randomness
30
+* `IntegratorLearner` which learns the integral value of a 1D function `f: ℝ → ℝ` up to a specified tolerance
31
+* `BalancingLearner` which takes a list of learners and suggests points of the learners that improve the loss (quality) the most
32
+
33
+
17 34
 ## Installation
18 35
 Adaptive works with Python 3.5 and higher on Linux, Windows, or Mac, and provides optional extensions for working with the Jupyter/IPython Notebook.
19 36
 
... ...
@@ -35,9 +52,9 @@ in the repository.
35 52
 
36 53
 ## Credits
37 54
 We would like to give credits to the following people:
38
-- Pedro Gonnet for his implementation of [`CQUAD`](https://cran.r-project.org/web/packages/cquad/index.html), "Algorithm 3" as described in "Increasing the Reliability of Adaptive Quadrature Using Explicit Interpolants", P. Gonnet, ACM Transactions on Mathematical Software, 37 (3), art. no. 26, 2010.
55
+- Pedro Gonnet for his implementation of [`CQUAD`](https://www.gnu.org/software/gsl/manual/html_node/CQUAD-doubly_002dadaptive-integration.html), "Algorithm 4" as described in "Increasing the Reliability of Adaptive Quadrature Using Explicit Interpolants", P. Gonnet, ACM Transactions on Mathematical Software, 37 (3), art. no. 26, 2010.
39 56
 - Christoph Groth for his Python implementation of [`CQUAD`](https://gitlab.kwant-project.org/cwg/python-cquad) which served as inspiration for the [`IntegratorLearner`](adaptive/learner/integrator_learner.py)
40
-- Pauli Virtanen for his `AdaptiveTriSampling` (no longer available online since SciPy Central went down) script which served as inspiration for the [`Learner2D`](adaptive/learner/learner2D.py)
57
+- Pauli Virtanen for his `AdaptiveTriSampling` script (no longer available online since SciPy Central went down) which served as inspiration for the [`Learner2D`](adaptive/learner/learner2D.py)
41 58
 
42 59
 For general discussion, we have a [chat channel](https://chat.quantumtinkerer.tudelft.nl/external/channels/adaptive). If you find any bugs or have any feature suggestions please file a GitLab [issue](https://gitlab.kwant-project.org/qt/adaptive/issues/new?issue) or submit a [merge request](https://gitlab.kwant-project.org/qt/adaptive/merge_requests).
43 60