FunctionOptimizationFFM

scalation.optimization.quasi_newtonC.FunctionOptimizationFFM
See theFunctionOptimizationFFM companion object
case class FunctionOptimizationFFM(objFunction: FunctionV2S, gradFunction: FunctionV2V) extends OptimizationLogicFFM

The FunctionOptimizationFFM case class ...

Attributes

Companion
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Constructors

def this(objFunction: FunctionV2S)
def this(benchmarkFunction: BenchmarkFunction)

Concrete methods

def evaluate(instance: MemorySegment, x: MemorySegment, g: MemorySegment, n: Int, step: Double): Double

Evaluates the gradients and objective function according to the state of the variables during the minimization process.

Evaluates the gradients and objective function according to the state of the variables during the minimization process.

Value parameters

g

Return location for the gradient vector that will be calculated with the current variables (this parameter is used to RETURN values, NOT to RECEIVE them). Empty MemorySegment with capacity for n elements with the ValueLayout of JAVA_DOUBLE.

instance

User data provided by each call of the lbfgsMain method of the LBFGS_FFM object. Can have any MemoryLayout defined by the user as long as the same layout is utilized in the progress method implementation for the class extending this trait and on the corresponding lbfgsMain calls from the LBFGS_FFM object that relies on this OptimizationLogicWrapper.

n

The number of variables. Also, the number of elements in the MemorySegment parameters x and g.

step

Current step used by the line search routine.

x

Current values of the variables presented in a MemorySegment containing n elements with the ValueLayout of JAVA_DOUBLE.

Attributes

Returns

Double Value of the objective function computed with the given variables.

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
def progress(instance: MemorySegment, x: MemorySegment, g: MemorySegment, fx: Double, xnorm: Double, gnorm: Double, step: Double, n: Int, k: Int, ls: Int): Int

Receives the progress of each iteration of the optimization process. Can be used to display or record said progress and to determine if the optimization should continue or be cancelled.

Receives the progress of each iteration of the optimization process. Can be used to display or record said progress and to determine if the optimization should continue or be cancelled.

The default implementation of this method always returns 0 and prints the iteration, function value, the value of each variable, the euclidean norms of the variables and the gradient vector and the step used in the line search in this iteration.

Value parameters

fx

Current value of the objective function.

g

Current value of the gradient vector presented in a MemorySegment containing n elements with the ValueLayout of JAVA_DOUBLE.

gnorm

Euclidean norm of the gradient vector.

instance

User data provided by each call of the lbfgsMain method of the LBFGS_FFM object. Can have any MemoryLayout defined by the user as long as the same layout is utilized in the evaluate method implementation for the class extending this trait and on the corresponding lbfgsMain calls from the LBFGS_FFM object that relies on this OptimizationLogicWrapper.

k

Iteration count.

ls

The number of evaluations called for this iteration.

n

The number of variables. Also, the number of elements in the MemorySegment parameters x and g.

step

Step used by the line search routine in this iteration.

x

Current values of the variables presented in a MemorySegment containing n elements with the ValueLayout of JAVA_DOUBLE.

xnorm

Euclidean norm of the variables.

Attributes

Returns

int Determines if optimization should continue. Zero continues optimization. Non-zero values cancel the optimization.

Inherited from:
OptimizationLogicFFM