Package-level declarations

Types

Link copied to clipboard
fun interface GenerateNeighborIfc

Given input values for a problem, this functional interface should generate a neighbor relative to the supplied input. The solver is supplied to allow potential access to its memory within the generation process.

Link copied to clipboard
fun interface NeighborhoodIfc

Defines a search neighborhood for the provided input with respect to the problem. The solver is supplied to allow potential access to its state/memory within the process to determine the neighborhood.

Link copied to clipboard
fun interface NeighborSelectorIfc

Defines a general functional interface for selecting a neighbor (point) from a defined neighborhood. The solver is supplied to allow potential access to its state/memory within the process to determine the neighbor.

Link copied to clipboard

This interface is used by solvers to determine the number of replications to request when asking the simulation oracle for responses. The user can supply different strategies for determining the number of replications when far from the optimal or close to the optimal.

Link copied to clipboard
Link copied to clipboard
abstract class Solver(evaluator: EvaluatorIfc, maximumIterations: Int, var replicationsPerEvaluation: ReplicationPerEvaluationIfc, name: String? = null) : IdentityIfc, CompareSolutionsIfc, SolutionEmitterIfc

A solver is an iterative algorithm that searches for the optimal solution to a defined problem. In this abstract base class, the algorithm is conceptualized as having a main iterative loop. The loop is the main loop that ultimately determines the convergence of the algorithm and recommended solution. Some algorithms have "inner" loops". In general, inner loops are used to control localized search for solutions. If an algorithm has additional inner loops, these can be embedded within the main loop via the subclassing process.