class SpectralProjectedGradient[T] extends FirstOrderMinimizer[T, DiffFunction[T]] with Projecting[T] with SerializableLogging
SPG is a Spectral Projected Gradient minimizer; it minimizes a differentiable function subject to the optimum being in some set, given by the projection operator projection
- T
vector type
- Alphabetic
- By Inheritance
- SpectralProjectedGradient
- Projecting
- FirstOrderMinimizer
- SerializableLogging
- Serializable
- Minimizer
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new SpectralProjectedGradient(projection: (T) => T = (t: T) =>
t, tolerance: Double = 1e-6, suffDec: Double = 1e-4, fvalMemory: Int = 30, alphaMax: Double = 1e10, alphaMin: Double = 1e-10, bbMemory: Int = 10, maxIter: Int = -1, initFeas: Boolean = false, curvilinear: Boolean = false, bbType: Int = 1, maxSrcht: Int = 30)(implicit space: MutableVectorField[T, Double])- projection
projection operations
- tolerance
termination criterion: tolerance for norm of projected gradient
- suffDec
sufficient decrease parameter
- alphaMax
longest step
- alphaMin
shortest step
- bbMemory
number of history entries for linesearch
- maxIter
maximum number of iterations
- initFeas
is the initial guess feasible, or should it be projected?
- curvilinear
if curvilinear true, do the projection inside line search in place of doing it in chooseDescentDirection
- maxSrcht
maximum number of iterations inside line search
Type Members
- case class History(alphaBB: Double, fvals: IndexedSeq[Double]) extends Product with Serializable
- type State = FirstOrderMinimizer.State[T, Info, History]
- Definition Classes
- FirstOrderMinimizer
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def adjust(newX: T, newGrad: T, newVal: Double): (Double, T)
- Attributes
- protected
- Definition Classes
- FirstOrderMinimizer
- def adjustFunction(f: DiffFunction[T]): DiffFunction[T]
- Attributes
- protected
- Definition Classes
- FirstOrderMinimizer
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def bbAlpha(s: T, y: T): Double
From Mark Schmidt's Matlab code if bbType == 1 alpha = (s'*s)/(s'*y); else alpha = (s'*y)/(y'*y);
From Mark Schmidt's Matlab code if bbType == 1 alpha = (s'*s)/(s'*y); else alpha = (s'*y)/(y'*y);
- Attributes
- protected
- val bbType: Int
- def calculateObjective(f: DiffFunction[T], x: T, history: History): (Double, T)
- Attributes
- protected
- Definition Classes
- FirstOrderMinimizer
- def chooseDescentDirection(state: State, f: DiffFunction[T]): T
- Attributes
- protected
- Definition Classes
- SpectralProjectedGradient → FirstOrderMinimizer
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- val convergenceCheck: ConvergenceCheck[T]
- Definition Classes
- FirstOrderMinimizer
- val curvilinear: Boolean
- def determineStepSize(state: State, f: DiffFunction[T], direction: T): Double
- Attributes
- protected
- Definition Classes
- SpectralProjectedGradient → FirstOrderMinimizer
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def infiniteIterations(f: DiffFunction[T], state: State): Iterator[State]
- Definition Classes
- FirstOrderMinimizer
- val initFeas: Boolean
- def initialHistory(f: DiffFunction[T], init: T): History
- Attributes
- protected
- Definition Classes
- SpectralProjectedGradient → FirstOrderMinimizer
- def initialState(f: DiffFunction[T], init: T): State
- Attributes
- protected
- Definition Classes
- FirstOrderMinimizer
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def iterations(f: DiffFunction[T], init: T): Iterator[State]
- Definition Classes
- FirstOrderMinimizer
- def logger: LazyLogger
- Attributes
- protected
- Definition Classes
- SerializableLogging
- val maxSrcht: Int
- def minimize(f: DiffFunction[T], init: T): T
- Definition Classes
- FirstOrderMinimizer → Minimizer
- def minimizeAndReturnState(f: DiffFunction[T], init: T): State
- Definition Classes
- FirstOrderMinimizer
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def projectedVector(x: T, g: T)(implicit vspace: Module[T, Double]): T
- Definition Classes
- Projecting
- val projection: (T) => T
- Definition Classes
- SpectralProjectedGradient → Projecting
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def takeStep(state: State, dir: T, stepSize: Double): T
- Attributes
- protected
- Definition Classes
- SpectralProjectedGradient → FirstOrderMinimizer
- def toString(): String
- Definition Classes
- AnyRef → Any
- def updateHistory(newX: T, newGrad: T, newVal: Double, f: DiffFunction[T], oldState: State): History
- Attributes
- protected
- Definition Classes
- SpectralProjectedGradient → FirstOrderMinimizer
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])