|
1 | 1 | # IterativeAlgorithmsInterface.jl |
2 | 2 |
|
3 | | -`IterativeAlgorithmsInterface.jl` is a Julia package tp provide a common interface to run iterative tasks. **Algorith** here refers to an iterative sequence of commands, that are run until a certain stopping criterion is met. |
| 3 | +`IterativeAlgorithmsInterface.jl` is a Julia package to provide a common interface to run iterative tasks. **Algorithm** here refers to an iterative sequence of commands, that are run until a certain stopping criterion is met. |
4 | 4 |
|
5 | 5 | # Statement of need |
6 | 6 |
|
7 | 7 | A first approach to algorithms is a simple for-loop for a maximum number of iterations. |
8 | 8 | Using an interface instead allows to both specify different criteria to stop easily, even in their combination. |
9 | | -Furthermore a generic interface allows to both “hok into” an algorithm easily as well as combining them. |
| 9 | +Furthermore a generic interface allows to both “hook into” an algorithm easily as well as combining them. |
10 | 10 |
|
11 | | -A common interface for algorithms allows to reuse common code – especially stopping criteria, but especially also logging, debug, recording, and caching capabilities. Finally, a common interface also allows to easily combine existing algorithms, hence enhancing interoperability, for example using one algorithm as a sub routine of another one. |
| 11 | +A common interface for algorithms allows to reuse common code – especially stopping criteria, but especially also logging, debug, recording, and caching capabilities. |
| 12 | +Finally, a common interface also allows to easily combine existing algorithms, hence enhancing interoperability, for example using one algorithm as a sub routine of another one. |
12 | 13 |
|
13 | 14 | # Main features |
14 | 15 |
|
15 | | -We consider solving _Tasks_, which consist of a |
| 16 | +We consider solving _Tasks_, which consist of |
16 | 17 |
|
17 | | -* `AbstractProblem` to solve, which contains all information that is static to the problem and usually does not change during the iterations, this might for example be a cost function and its gradient in an optimisation problem |
| 18 | +* An `AbstractProblem` to solve, which contains all information that is static to the problem and usually does not change during the iterations, this might for example be a cost function and its gradient in an optimisation problem. |
18 | 19 | * An `AbstractAlgorithmState` that both specifies which algorithm to use to _solve_ the problem, but also stores all parameters that an algorithm needs as well as everything the algorithm needs to store between two iterations. |
19 | 20 |
|
20 | 21 | This generic data structures are accompanied by the methods |
|
0 commit comments