AnyLogic
Expand
Font size

Class ExperimentParamVariation<ROOT extends Agent>

Type Parameters:
ROOT - class of top-level agent
All Implemented Interfaces:
AgentConstants, EnvironmentConstants, java.io.Serializable

public abstract class ExperimentParamVariation<ROOT extends Agent>
extends ExperimentMultipleRuns<ROOT>
Experiment used to run simulation several times with different parameter values. To use this experiment you need to subclass from it.
By default, this experiment works in range parameters variation mode (override getRangeParametersNumber(), calculateRangeParameterValuesNumbers(), setupRangeVariedParameter(Agent, int, int, boolean), setupRootParameters(Agent, int, boolean) methods),
for freeform parameters override getMaximumIterations() and setupRootParameters(Agent, int, boolean) methods
Experiments which use replications should call setUseReplications(boolean) and setFixedReplicationsNumber(int) or setVariableReplicationsNumber(int, int, com.anylogic.engine.ExperimentMultipleRuns.ConfidenceLevel, double) from overridden #setup(java.awt.Container) method,
For varied replications number mode also getValueForConfidenceComputation(Agent) method should be overridden define
Author:
AnyLogic North America, LLC https://anylogic.com
See Also:
Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class com.anylogic.engine.ExperimentMultipleRuns

ExperimentMultipleRuns.ConfidenceLevel

Nested classes/interfaces inherited from class com.anylogic.engine.Experiment

Experiment.Command, Experiment.State

Field Summary

Fields inherited from class com.anylogic.engine.ExperimentMultipleRuns

CONFIDENCE_LEVEL_80, CONFIDENCE_LEVEL_90, CONFIDENCE_LEVEL_95, CONFIDENCE_LEVEL_98, CONFIDENCE_LEVEL_99, CONFIDENCE_LEVEL_99_9

Fields inherited from class com.anylogic.engine.Experiment

ERROR, FINISHED, IDLE, modelExecutionCommandQueue, mutexModelActionQueue, OPEN_RESULTS, OPEN_SNAPSHOT, PAUSE, PAUSED, PLEASE_WAIT, RUN, RUNNING, SAVE_RESULTS, SAVE_SNAPSHOT, STEP, STOP

Fields inherited from class com.anylogic.engine.Utilities

AM, APRIL, AUGUST, CUSTOM_DISTRIBUTION_INTERPOLATION_LINEAR, CUSTOM_DISTRIBUTION_INTERPOLATION_NONE, CUSTOM_DISTRIBUTION_INTERPOLATION_STEP, DECEMBER, FEBRUARY, FRIDAY, infinity, JANUARY, JULY, JUNE, LENGTH_UNIT_CENTIMETER, LENGTH_UNIT_FOOT, LENGTH_UNIT_INCH, LENGTH_UNIT_KILOMETER, LENGTH_UNIT_METER, LENGTH_UNIT_MILE, MARCH, MAY, MONDAY, NOVEMBER, OCTOBER, PM, SATURDAY, SEPTEMBER, SUNDAY, THURSDAY, TIME_UNIT_DAY, TIME_UNIT_HOUR, TIME_UNIT_MILLISECOND, TIME_UNIT_MINUTE, TIME_UNIT_MONTH, TIME_UNIT_SECOND, TIME_UNIT_WEEK, TIME_UNIT_YEAR, TUESDAY, UNDECIMBER, WEDNESDAY

Fields inherited from class com.anylogic.engine.Presentable

ALIGNMENT_CENTER, ALIGNMENT_LEFT, ALIGNMENT_RIGHT, ARROW_FILLED, ARROW_NONE, ARROW_THIN, CAD_ANTIALIASING, CAD_INVERTED, LINE_STYLE_DASHED, LINE_STYLE_DOTTED, LINE_STYLE_SOLID, SHAPE_DRAW_2D, SHAPE_DRAW_2D3D, SHAPE_DRAW_3D

Fields inherited from interface com.anylogic.engine.AgentConstants

AGENT_ORIENTATION_FRONT, AGENT_ORIENTATION_LEFT, AGENT_ORIENTATION_REAR, AGENT_ORIENTATION_RIGHT, ALL, ALL_CONNECTED, ALL_NEIGHBORS, AREA_ACCESS_RESTRICTION_BY_CAPACITY, AREA_ACCESS_RESTRICTION_BY_CONDITION, AREA_ACCESS_RESTRICTION_BY_SCHEDULE, AREA_ACCESS_RESTRICTION_BY_THROUGHPUT, AREA_ACCESS_RESTRICTION_MANUAL, CENTIMETER, CONVEYOR_BACKWARD, CONVEYOR_CUSTOM_STATION_AGENT_LOCATION_CENTER, CONVEYOR_CUSTOM_STATION_AGENT_LOCATION_NEAR_CONVEYOR, CONVEYOR_CUSTOM_STATION_AGENT_LOCATION_RANDOM, CONVEYOR_FORWARD, CONVEYOR_SIMPLE_STATION_DELAY_TYPE_MANUAL, CONVEYOR_SIMPLE_STATION_DELAY_TYPE_TIMEOUT, CONVEYOR_TYPE_BELT, CONVEYOR_TYPE_CELL, CONVEYOR_TYPE_ROLLER, CUBIC_METER, CUBIC_METER_PER_SECOND, CUSTOM_COLOR_SCHEME, DAY, DEG_PER_SECOND, DEGREE, DENSITY_VALUE_MAX, DENSITY_VALUE_MEAN, EAST, ESCALATOR_STAY_ALL, ESCALATOR_WALK_ALL, ESCALATOR_WALK_ON_LEFT_SIDE, ESCALATOR_WALK_ON_RIGHT_SIDE, EVENT_TIMEOUT_MODE_CYCLIC, EVENT_TIMEOUT_MODE_ONCE, EVENT_TIMEOUT_MODE_USER, EXCEEDED_QUEUE_CROWD_ROUND_AT_THE_END, EXCEEDED_QUEUE_EXTEND_TO_THE_FREE_SPACE, EXT_AGENT_CONTINUOUS, EXT_AGENT_DISCRETE, EXT_AGENT_GIS, EXT_AGENT_INTERACTIVE, EXT_AGENT_NETWORK, EXT_ENTITY, EXT_ENVIRONMENT_CONTINUOUS, EXT_ENVIRONMENT_DISCRETE, EXT_ENVIRONMENT_GIS, EXT_ENVIRONMENT_INTERACTIVE, EXT_SPACE, FLOW_STATISTICS_BOTH, FLOW_STATISTICS_LEFT, FLOW_STATISTICS_RIGHT, FOOT, FPM, FPS, FPS_SQ, HOUR, INCH, JIB_CRANE_CAT_HEAD, JIB_CRANE_FLAT_TOP, JIB_CRANE_INDUSTRIAL, JIB_CRANE_MOVEMENT_CONCURRENT, JIB_CRANE_MOVEMENT_STEP_BY_STEP, KILOGRAM, KILOGRAM_PER_SECOND, KILOMETER, KN, KPH, LIFT_PLATFORM_FLAT, LIFT_PLATFORM_ROLLER, LIFT_SELECTION_MODE_COMPARISON, LIFT_SELECTION_MODE_FIFO, LIFT_SELECTION_MODE_PRIORITY, LINEAR_COLOR_SCHEME, LITER, LITER_PER_SECOND, LOGARITHMIC_COLOR_SCHEME, METER, MILE, MILLIMETER, MILLISECOND, MINUTE, MONTH, MPH, MPS, MPS_SQ, NAUTICAL_MILE, NORTH, NORTHEAST, NORTHWEST, OBJECT_3D_INTERNAL_LIGHTING_GLOBAL, OBJECT_3D_INTERNAL_LIGHTING_INSIDE, OBJECT_3D_INTERNAL_LIGHTING_OFF, OBJECT_3D_XYZ_AXIS_ORDER, OBJECT_3D_YZX_AXIS_ORDER, OBJECT_3D_ZXY_AXIS_ORDER, OIL_BARREL, OIL_BARREL_PER_SECOND, OVERHEAD_CRANE_BRIDGE, OVERHEAD_CRANE_GANTRY, OVERHEAD_CRANE_GIRDER_DOUBLE_TIE, OVERHEAD_CRANE_GIRDER_SINGLE_FLAT, OVERHEAD_CRANE_MOVEMENT_CONCURRENT, OVERHEAD_CRANE_MOVEMENT_INDEPENDENT_HOIST, OVERHEAD_CRANE_MOVEMENT_STEP_BY_STEP, PALLET_RACK_LEFT_TO_RIGHT, PALLET_RACK_NO_DIRECTION, PALLET_RACK_RIGHT_TO_LEFT, PALLET_RACK_SINGLE_AISLE_LEFT, PALLET_RACK_SINGLE_AISLE_RIGHT, PALLET_RACK_TWO_AISLES, PALLET_RACK_TWO_PALLET_RACKS, PARKING_LOT_PARALLEL, PARKING_LOT_PERPENDICULAR, PATH_CONVEYOR, PATH_DASHEDLINE, PATH_LINE, PATH_RAILROAD, PATH_ROAD, PEDESTRIAN_MAP_TYPE, PER_DAY, PER_HOUR, PER_MILLISECOND, PER_MINUTE, PER_MONTH, PER_SECOND, PER_WEEK, PER_YEAR, POSITION_CHOICE_ARRANGED, POSITION_CHOICE_BY_ATTRACTORS, POSITION_CHOICE_RANDOM, RACK_PLACEMENT_BACK_TO_BACK, RACK_PLACEMENT_STAND_ALONE, RACK_SKU_FLOW_DOUBLE_ENTRY, RACK_SKU_FLOW_FIFO, RACK_SKU_FLOW_LIFO, RACK_TYPE_DRIVE_IN, RACK_TYPE_SELECTIVE, RAD_PER_SECOND, RADIAN, RAILWAY_SWITCH_ALL_TO_ALL, RAILWAY_SWITCH_DOUBLE_SLIP, RAILWAY_SWITCH_SINGLE_SLIP, RANDOM, RANDOM_CONNECTED, RANDOM_NEIGHBOR, ROAD_LEFT_HAND, ROAD_LINE_DOUBLE, ROAD_LINE_DOUBLE_DASHED, ROAD_LINE_SINGLE, ROAD_LINE_SINGLE_DASHED, ROAD_RIGHT_HAND, RPM, SECOND, SERVICE_GROUP_BEHAVIOR_DEPENDS_ON_INCOMING_GROUP, SERVICE_GROUP_BEHAVIOR_SAME_FOR_ALL_GROUPS, SERVICE_GROUP_INDIVIDUAL_SERVING, SERVICE_GROUP_ONE_MEMBER_IS_SERVED_OTHERS_WAIT_IN_AREA, SERVICE_GROUP_ONE_MEMBER_IS_SERVED_OTHERS_WAIT_IN_QUEUE, SERVICE_QUEUE_CLOSEST_NON_EMPTY, SERVICE_QUEUE_CLOSEST_STRICT, SERVICE_QUEUE_CUSTOM, SERVICE_QUEUE_LONGEST, SERVICE_QUEUE_NEXT_ROUND_ROBIN, SERVICE_QUEUE_PRIORITY, SERVICE_TYPE_LINEAR, SERVICE_TYPE_POINT, SIGNAL_GREEN, SIGNAL_NONE, SIGNAL_RED, SIGNAL_YELLOW, SIMPLE_STATION_LOADING_MODE_AFTER_UNLOADING, SIMPLE_STATION_LOADING_MODE_SIMULTANEOUS_WITH_UNLOADING, SIMPLE_STATION_PROCESSING_WHEN_AGENT_ENTERS, SIMPLE_STATION_PROCESSING_WHEN_CAPACITY_FULL, SOUTH, SOUTHEAST, SOUTHWEST, SPACE_CONTINUOUS, SPACE_CONTINUOUS_2D, SPACE_DISCRETE, SPACE_DISCRETE_2D, SPACE_GIS, SPACE_UNDEFINED, SQ_CENTIMETER, SQ_FOOT, SQ_INCH, SQ_KILOMETER, SQ_METER, SQ_MILE, SQ_MILLIMETER, SQ_NAUTICAL_MILE, SQ_YARD, TON, TON_PER_SECOND, TRANSPORTER_MAP_TYPE, TURN, TURN_STATION_MODE_ANGLE, TURN_STATION_MODE_ORIENTATION, WALL_FILL_HATCHING, WALL_FILL_NONE, WALL_FILL_SOLID, WEEK, WEST, WINDOW_3D_NAVIGATION_FULL, WINDOW_3D_NAVIGATION_LIMITED_TO_Z_ABOVE_ZERO, WINDOW_3D_NAVIGATION_NONE, WINDOW_3D_NAVIGATION_ROTATION_ONLY, YARD, YEAR

Fields inherited from interface com.anylogic.engine.EnvironmentConstants

LAYOUT_ARRANGED, LAYOUT_RANDOM, LAYOUT_RING, LAYOUT_SPRING_MASS, LAYOUT_USER_DEFINED, NEIGHBORHOOD_EUCLIDEAN, NEIGHBORHOOD_MOORE, NETWORK_ALL_IN_RANGE, NETWORK_RANDOM, NETWORK_RING_LATTICE, NETWORK_SCALE_FREE, NETWORK_SMALL_WORLD, NETWORK_USER_DEFINED

Constructor Summary

Constructors 
ExperimentParamVariation()  
ExperimentParamVariation​(boolean allowParallelEvaluations)
Same as ExperimentParamVariation() but allows to disable parallel evaluations on multicore/multiprocessor systems (which are enabled by default)
Constructor Description

Method Summary

All Methods Instance Methods Concrete Methods 
int[] calculateRangeParameterValuesNumbers()
This method should be overridden in experiments which work with parameters varied in range
This method will be called only one time
boolean evaluateStopConditions​(ROOT root)
User's extension point for experiment stop conditions
By default returns false
int getCurrentIteration()
Returns the current iteration number (1, 2...)
int getCurrentReplication()
Returns the replication number for the current iteration (1, 2...)
Ensure replications are used (ExperimentMultipleRuns.isUseReplications()) before calling this method
int getMaximumIterations()
Returns total number of iterations being performed in this experiment
Default implementation works with range varied parameters
Override in subclass if experiment uses free-form parameters
int getNumberOfCompletedIterations()
Returns the number of completed iterations.
double getProgress()
Returns the progress of the experiment: a number between 0 and 1 corresponding to the part of the experiment completed so far (based on iteration count or time limit), or -1 if this cannot be calculated.
int getRangeParametersNumber()
This method should be overridden to return the number of parameters varied in range in the corresponding experiments
double getValueForConfidenceComputation​(ROOT root)
Returns the value used in confidence computation when experiment uses replications and variable replications number is used
Must be implemented in a subclass in such experiments.
boolean isLastReplication()
Return true if we have run the last replication for the current iteration
boolean isUseReplications()
Returns true if experiment uses replications
void setFixedReplicationsNumber​(int replicationsNumber)
Sets experiment to use a fixed number of replications.
No confidence testing is to be used
For confidence testing use ExperimentMultipleRuns.setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

This is setup method, user should not call it
void setupRangeVariedParameter​(ROOT root, int paramIndex, int valueIndex, boolean callOnChangeActions)
This method should be overridden in experiments which work with parameters varied in range
void setupRootParameters​(ROOT root, int index, boolean callOnChangeActions)
Setups all parameters of top-level agent
Default implementation works only with range varied parameters
Override in subclass if experiment uses freeform parameters or uses range varied parameters and has fixed parameters, in this case overridden method should call super.setupRootParameters(root, index); and then setup values for fixed parameters
void setUseReplications​(boolean useReplications)
Sets experiment to use replications

This is setup method, user should not call it
void setVariableReplicationsNumber​(int minimumReplications, int maximumReplications, ExperimentMultipleRuns.ConfidenceLevel confidenceLevel, double errorPercent)
Sets experiment to stop replications after the minimum replications when the confidence level is reached (i.e.
Modifier and Type Method Description

Methods inherited from class com.anylogic.engine.ExperimentMultipleRuns

getEngine, getMutexRead_xjal, getMutexWrite_xjal, getParallelEvaluatorsCount, getRunCount, getSimulationProgress_xjal, getStep, onAfterExperiment, onAfterIteration, onDestroy_xjal, registerExperimentHost_xjal

Methods inherited from class com.anylogic.engine.ExperimentRunFast

getRunTimeSeconds, getState, pause, run, step, stop

Methods inherited from class com.anylogic.engine.Experiment

addExecutionListener, close, createRoot, destroy_xjal, error, errorInModel, getCommandLineArguments, getExperimentHost, getName, getSnapshotFileName, getWindowHeight, getWindowWidth, initDefaultRandomNumberGenerator, internalFillConfig, isCommandEnabled, isLoadRootFromSnapshot, onBeforeSimulationRun, onDestroy, onEngineFinished, onError, onError, removeExecutionListener, reset, setCommandLineArguments_xjal, setLoadRootFromSnapshot, setName, setup, setupEngine, warning, warning

Methods inherited from class com.anylogic.engine.Utilities

addToDate, addToDate, atan2fast, bernoulli, bernoulli, beta, beta, beta, beta, beta, binomial, binomial, binomial, binomial, binomial, briefInfoOn, castNumberTypes, castTypes, castTypesBack, cauchy, cauchy, cauchy, chi2, chi2, chi2, copyToClipboard, copyToClipboard, copyToClipboard, createTableElementDatabaseBuilder, createTrajectoryGIS, createURL_xjal, date, dateToTime, day, deleteFrom, difference, difference, differenceInCalendarUnits, differenceInCalendarUnits, differenceInDateUnits, differenceInDateUnits, differenceInDateUnits, differenceInDateUnits, dirToAngle, dropTime, erlang, erlang, erlang, error, error, error, errorInModel, errorInModel, errorInModel, executeAction, executeExpression, executeExpression, executeStatement, exponential, exponential, exponential, exponential, exponential, exponential, findExistingFile, format, format, format, format, format, format, format, formatAmountUnits, formatDayOfWeek, formatFlowRateUnits, formatGeoHeading, formatLatitude, formatLengthUnits, formatLengthUnits, formatLongitude, formatMonth, formatSpeedUnits, formatTimeInterval, gamma, gamma, gamma, gamma, gamma, gamma_frac, gammaLog, geometric, geometric, getAmPm, getAmPm, getCanonicalPath, getDatabaseConnection, getDateWithTimeNextTo, getDayOfMonth, getDayOfMonth, getDayOfWeek, getDayOfWeek, getDayOfYear, getDefaultRandomGenerator, getDistance, getDistance, getDistanceFromPointToLine, getDistanceFromPointToLineSq, getDistanceFromPointToSegment, getDistanceFromPointToSegment, getDistanceFromPointToSegmentSq, getDistanceFromPointToSegmentSq, getDistanceGIS, getDistanceGIS, getDistanceSq, getDistanceSq, getFullName, getHour, getHour, getHourOfDay, getHourOfDay, getLength, getLength, getLengthSq, getLengthSq, getMillisecond, getMillisecond, getMinute, getMinute, getMonth, getMonth, getName, getNearestPointOnSegment, getNearestPointOnSegment, getPerformanceParallelWorkersCount_xjal, getRandom, getRandom, getResult, getSecond, getSecond, getTime, getTimeoutToNextTime, getYear, getYear, gumbel1, gumbel1, gumbel2, gumbel2, hour, hypergeometric, hypergeometric, initializeRadians, insertInto, inspectOf, inspectOfLink_xjal, isFinite, isLineIntersectingLine, isLineIntersectingRectangle, isLoggingClassToDB, isLoggingToDB, isPointInsideRay, isPointInsideRectangle, isPointInsideSegment, isPointOnTheSameLine, isRayIntersectingSegment, joinArrays_xjal, laplace, laplace, layoutTypeToString, limit, limit, limitMax, limitMax, limitMin, limitMin, logarithmic, logarithmic, logistic, logistic, lognormal, lognormal, logToDB, logToDB, logToDB, logToDB, millisecond, minute, month, negativeBinomial, negativeBinomial, negativeBinomial, negativeBinomial, normal, normal, normal, normal, normal, normal, pareto, pareto, pareto, pert, pert, poisson, poisson, poisson, poisson, prepareBeforeExperimentStart_xjal, prepareStatement, pulse, pulseTrain, quantum, ramp, random, randomColor, randomFalse, randomFalse, randomFrom, randomFrom, randomFrom, randomFrom, randomFrom, randomFrom, randomlyCreate, randomlyCreate, randomlyCreate, randomlyCreate, randomTrue, randomTrue, randomWhere, randomWhere, randomWhere, randomWhere, rayleigh, rayleigh, rayleigh, roundToDecimal, roundToInt, second, selectAndDoForEach, selectArrayOfDouble, selectArrayOfInt, selectExists, selectExists, selectFirstValue, selectFirstValue, selectFirstValue, selectFirstValue, selectFrom, selectResultSet, selectTableFunction, selectUniqueValue, selectUniqueValue, selectUniqueValue, selectUniqueValue, selectValues, selectValues, setDefaultRandomGenerator, shuffle, sqlGetObject, sqlGetObject, sqlGetObject, sqlGetObject, sqlSetObject, sqr, step, time, time, timeToDate, toDate, toDate, toDate, toDateInMillis, toLatitude, toLongitude, toModelRate, toModelTime, toRateUnits, toStringAlignedNameValues, toTimeout, toTimeout, toTimeoutInCalendar, toTimeUnits, trace, trace, traceln, traceln, traceln, traceln, traceln, traceToDB, traceToDB, triangular, triangular, triangular, triangular, triangular, triangularAV, triangularAV, uniform, uniform, uniform, uniform, uniform, uniform_discr, uniform_discr, uniform_discr, uniform_pos, uniform_pos, update, week, weibull, weibull, weibull, weibull, weibull, xidz, year, zidz

Methods inherited from class com.anylogic.engine.Presentable

createElementDescriptors, executeShapeControlAction, executeShapeControlAction, executeShapeControlAction, executeShapeControlAction, executeShapeControlAction, executeShapeControlAction, getElementDesciptors, getElementProperty, getExperiment, getModelElementsShape, getPresentation, getPresentationShape, getShapeControlDefaultValueBoolean, getShapeControlDefaultValueDouble, getShapeControlDefaultValueInt, getShapeControlDefaultValueString, getViewAreas, iconContains, onSelectionChanged_xjal, onShapeClick, onShapeGroupDraw, presentationContains, readCustomData, updateShapeDynamicProperties, writeCustomData

Methods inherited from class java.lang.Object

equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

ExperimentParamVariation

public ExperimentParamVariation()

ExperimentParamVariation

public ExperimentParamVariation​(boolean allowParallelEvaluations)
Same as ExperimentParamVariation() but allows to disable parallel evaluations on multicore/multiprocessor systems (which are enabled by default)
Parameters:
allowParallelEvaluations - if false, the iterations/replications of experiment will be performed sequentially
See Also:
ExperimentMultipleRuns.getParallelEvaluatorsCount()

Method Detail

getProgress

public final double getProgress()
Returns the progress of the experiment: a number between 0 and 1 corresponding to the part of the experiment completed so far (based on iteration count or time limit), or -1 if this cannot be calculated.
Overrides:
getProgress in class ExperimentMultipleRuns<ROOT extends Agent>
Returns:
the progress of the experiment

getCurrentIteration

public int getCurrentIteration()
Description copied from class: ExperimentMultipleRuns
Returns the current iteration number (1, 2...)
Specified by:
getCurrentIteration in class ExperimentMultipleRuns<ROOT extends Agent>
Returns:
the current iteration number

getNumberOfCompletedIterations

public int getNumberOfCompletedIterations()
Description copied from class: ExperimentMultipleRuns
Returns the number of completed iterations. Use this method to track the progress in preference to the ExperimentMultipleRuns.getCurrentIteration() because of parallel (multi-threaded) implementation.
Overrides:
getNumberOfCompletedIterations in class ExperimentMultipleRuns<ROOT extends Agent>
Returns:
the number of completed iterations

getCurrentReplication

public int getCurrentReplication()
Description copied from class: ExperimentMultipleRuns
Returns the replication number for the current iteration (1, 2...)
Ensure replications are used (ExperimentMultipleRuns.isUseReplications()) before calling this method
Specified by:
getCurrentReplication in class ExperimentMultipleRuns<ROOT extends Agent>
Returns:
the current number of replication

isUseReplications

public final boolean isUseReplications()
Description copied from class: ExperimentMultipleRuns
Returns true if experiment uses replications
Specified by:
isUseReplications in class ExperimentMultipleRuns<ROOT extends Agent>
Returns:
true if experiment uses replications, false otherwise

setUseReplications

public void setUseReplications​(boolean useReplications)
Description copied from class: ExperimentMultipleRuns
Sets experiment to use replications

This is setup method, user should not call it
Specified by:
setUseReplications in class ExperimentMultipleRuns<ROOT extends Agent>
See Also:
ExperimentMultipleRuns.setFixedReplicationsNumber(int), ExperimentMultipleRuns.setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

setFixedReplicationsNumber

public void setFixedReplicationsNumber​(int replicationsNumber)
Description copied from class: ExperimentMultipleRuns
Sets experiment to use a fixed number of replications.
No confidence testing is to be used
For confidence testing use ExperimentMultipleRuns.setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

This is setup method, user should not call it
Specified by:
setFixedReplicationsNumber in class ExperimentMultipleRuns<ROOT extends Agent>
Parameters:
replicationsNumber - the number of replications to be run
See Also:
ExperimentMultipleRuns.setUseReplications(boolean)

setVariableReplicationsNumber

public void setVariableReplicationsNumber​(int minimumReplications,
                                          int maximumReplications,
                                          ExperimentMultipleRuns.ConfidenceLevel confidenceLevel,
                                          double errorPercent)
Description copied from class: ExperimentMultipleRuns
Sets experiment to stop replications after the minimum replications when
  • the confidence level is reached (i.e. mean confidence is within the given percentage errorPercent of the value obtained at the last replication)
  • maximum replications number is reached
For fixed number of replications use ExperimentMultipleRuns.setFixedReplicationsNumber(int)

This is optimization setup method, user should not call it
Specified by:
setVariableReplicationsNumber in class ExperimentMultipleRuns<ROOT extends Agent>
Parameters:
minimumReplications - minimum number of replications
maximumReplications - minimum number of replications
confidenceLevel - one of
errorPercent - the error percentage as a value > 0 and < 1.
See Also:
ExperimentMultipleRuns.setUseReplications(boolean)

isLastReplication

public final boolean isLastReplication()
Description copied from class: ExperimentMultipleRuns
Return true if we have run the last replication for the current iteration
Specified by:
isLastReplication in class ExperimentMultipleRuns<ROOT extends Agent>
Returns:
true if this is the last replication of the iteration

evaluateStopConditions

@AnyLogicInternalCodegenAPI
public boolean evaluateStopConditions​(ROOT root)
User's extension point for experiment stop conditions
By default returns false
Returns:
true if experiment needs to be terminated after current iteration/replication

getRangeParametersNumber

public int getRangeParametersNumber()
This method should be overridden to return the number of parameters varied in range in the corresponding experiments
Returns:
the number of parameters varied in range

setupRangeVariedParameter

@AnyLogicInternalCodegenAPI
public void setupRangeVariedParameter​(ROOT root,
                                      int paramIndex,
                                      int valueIndex,
                                      boolean callOnChangeActions)
This method should be overridden in experiments which work with parameters varied in range
Parameters:
root - root Agent whose parameter value is being setup
paramIndex - index of parameter (from 0 to getRangeParametersNumber())
valueIndex - index of parameter value (from 0 to getRangeParameterValuesNumber(paramIndex) - 1)
callOnChangeActions - if true this method should use set_* methods of root to setup parameters, otherwise parameter values should be simply assigned to the fields of root

getMaximumIterations

public int getMaximumIterations()
Returns total number of iterations being performed in this experiment
Default implementation works with range varied parameters
Override in subclass if experiment uses free-form parameters
Specified by:
getMaximumIterations in class ExperimentMultipleRuns<ROOT extends Agent>
Returns:
total number of iterations being performed in this experiment

setupRootParameters

@AnyLogicInternalCodegenAPI
public void setupRootParameters​(ROOT root,
                                int index,
                                boolean callOnChangeActions)
Setups all parameters of top-level agent
Default implementation works only with range varied parameters
Override in subclass if experiment
  • uses freeform parameters or
  • uses range varied parameters and has fixed parameters, in this case overridden method should call super.setupRootParameters(root, index); and then setup values for fixed parameters
Parameters:
root - root Agent whose parameters are being setup
index - iteration number (0-based)
callOnChangeActions - if true this method should use set_* methods of root to setup parameters, otherwise parameter values should be simply assigned to the fields of root

getValueForConfidenceComputation

@AnyLogicInternalCodegenAPI
public double getValueForConfidenceComputation​(ROOT root)
Returns the value used in confidence computation when experiment uses replications and variable replications number is used
Must be implemented in a subclass in such experiments.
Parameters:
root - the top-level agent
Returns:
the value used in confidence computation

calculateRangeParameterValuesNumbers

@AnyLogicInternalCodegenAPI
public int[] calculateRangeParameterValuesNumbers()
This method should be overridden in experiments which work with parameters varied in range
This method will be called only one time
Returns:
array with dimensions of parameters values ranges
How can we improve this article?