10.8 Summary

The KSL provides classes to construct, run, and analyze experiments for a simulation model. In addition, the KSL provides a comprehensive set of classes that facilitate the development and use of simulation optimization algorithms. The optimization problem can contain both deterministic and stochastic constraints and facilitates both continuous and discrete variables within the search space.

The following classes or interfaces were highlighted in this chapter for working with experiments.

  • Factor - This class provides a general approach to defining the factors used within an experiment and tying them to the simulation model. In addition, the coding of the factor at different levels is facilitated.
  • ExperimentalDesignIfc - This interface defines how an experiment behaves.
  • ExperimentalDesign - This class is a concrete implementation of the ExperimentalDesignIfc interface to specify a general experiment.
  • FactorialDesign - This class implements the ExperimentalDesignIfc interface and provides the ability to define an experiment that has many factors with many levels.
  • TwoLevelFactorialDesign - This class is a special case of FactorialDesign class and provides a representation for the use of the classic full \(2^K\) factorial design and its fractions.
  • CentralCompositeDesign - This class facilitates the construction of a factorial design that uses central composite points.
  • DesignedExperiment - This class facilitates the running of an experimental design and the tabulation of the results in a database.
  • LinearModel - This class can be used to specify a linear model for the output of a designed experiment and prepare the output for use in a linear regression.

The following classes or interfaces were highlighted in this chapter for working in the area of simulation optimization.

  • ProblemDefinition - This class facilitates the definition of an optimization problem involving an objective function, deterministic linear constraints, deterministic functional constraints, and response constraints.
  • PenaltyFunctionIfc - This interface specifies a functional interface for the definition of penalty functions that can be used to handle constraints within an optimization problem.
  • InputDefinition - This class facilitates the definition of input variables for an optimization problem.
  • ConstraintIfc - This interface defines the behavior of deterministic constraints for an optimization problem. There are two types of deterministic constraints specified by the LinearConstraint and FunctionalConstraint classes.
  • ResponseConstraint - This class models constraints in a simulation optimization problem that are based on responses from the execution of the simulation model.
  • SimulationOracleIfc - This interface provides a general protocol for translating evaluation requests into evaluation results.
  • SimulationProviderIfc - This interface implements the SimulationOracleIfc interface and provides functionality to validate evaluation requests.
  • SimulationServiceIfc - This interface implements the SimulationOracleIfc interface to enable the requesting of simulation evaluations from many models.
  • EvaluatorIfc - This interface defines a general protocol for translating evaluation requests into solutions that are needed by simulation optimization solvers.
  • Evaluator - This class is a concrete implementation of the EvaluatorIfc interface that executes a model in a local execution.
  • EvaluationRequest - A key class for communicating between solvers and evaluators. It represents the inputs associated with the evaluation, the outputs needed for the evaluation, and options for running common random numbers and using solution caching.
  • ModelInputs - This class is an intermediary between input variables within a problem definition and the input variables of a simulation model.
  • ResponseMap - This class represents the named responses from the simulation and their estimated value.
  • EstimatedResponseIfc - This interface encapsulates summary statistics for the simulation responses across the replications.
  • EstimatedResponse - This class is a concrete implementation of the EstimatedResponseIfc interface.
  • Solution - This fundamental class encapsulates the inputs, outputs, and constraints associated with an evaluation request placed by a solver.
  • Solver - This is an abstract base class the represents the concepts needed by all simulation optimization algorithms.
  • StochasticSolver - This is an abstract class that represents solvers that use randomness in the search process. It has concrete implementations of StochasticHillClimber, SimulatedAnnealing, CrossEntropySolver, RSplineSovler, and RandomRestartSolver.
  • ReplicationPerEvaluationIfc - This interface facilitates algorithms that change the number of replications during the search process. It has concrete implementations of FixedReplicationsPerEvaluation and FixedGrowthRateReplicationSchedule.
  • SolutionEqualtyIfc - This interface as its variations allow for different processes to compare or check for solution equality, which is essential in implementing stopping criteria for algorithms.

The KSL provides comprehensive functionality that facilitates the use of simulation models within the context of experimental design and simulation optimization.