| Copyright | © 2016-2017 George Steel and Peter Jurgec |
|---|---|
| License | GPL-2+ |
| Maintainer | george.steel@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Text.PhonotacticLearner.Util.ConjugateGradient
Description
Implementations of line search and conjugate gradient search for minimization. Line search uses Illinois False Position.
Documentation
traceInline :: String -> a -> a Source #
Version of trace which does not output a trailing linebreak. Good for progress bars.
Arguments
| :: Double | stoping threshold uncertainty |
| -> (Vec -> Vec -> Double) | derivative of function to minimize |
| -> Vec | starting point |
| -> Vec | direction to search in |
| -> Vec | minimum point |
Line search minimization using a modified Illinois False Position method.
Adapted from description at https://en.wikipedia.org/wiki/False_position_method
conjugateGradientSearch Source #
Arguments
| :: Bool | trace progress to |
| -> (Double, Double) | stopping thresholds for conjugate gradient step and line search |
| -> (Vec -> (Vec, Bool)) | function to project points back into area defined by inequality constraints
(for unconstrained problems use |
| -> (Vec -> (Double, Vec)) | function to minimize, returns value and gradient |
| -> (Vec -> Vec -> Double) | partial derivative of function to minimize |
| -> Vec | starting point |
| -> Vec | minimum point |
Nonlinear conjugate gradient search using Polak-Ribière method. Stopping condition is two steps both havong a delta below the threshold.