AnyLogic AnyLogic
Expand
Font size
Type Parameters:
ROOT - class of top-level agent
All Implemented Interfaces:
AgentConstants, EnvironmentConstants, java.io.Serializable
Direct Known Subclasses:
ExperimentOptimization, ExperimentParamVariation

public abstract class ExperimentMultipleRuns<ROOT extends Agent>
extends ExperimentRunFast<ROOT>
Base class for all experiments that support multiple simulation runs (e.g. optimization, parameter variation)
Author:
AnyLogic North America, LLC https://anylogic.com
See Also:
Serialized Form

Nested Class Summary

Nested Classes 
static class  ExperimentMultipleRuns.ConfidenceLevel
Confidence level constants
Modifier and Type Class Description

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

Experiment.Command, Experiment.State

Field Summary

Fields 
static ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_80
Confidence level constant 80%
static ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_90
Confidence level constant 90%
static ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_95
Confidence level constant 95%
static ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_98
Confidence level constant 98%
static ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_99
Confidence level constant 99%
static ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_99_9
Confidence level constant 99.9%
Modifier and Type Field Description

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_CUSTOM_STATION_AGENT_LOCATION_CENTER, CONVEYOR_CUSTOM_STATION_AGENT_LOCATION_NEAR_CONVEYOR, CONVEYOR_CUSTOM_STATION_AGENT_LOCATION_RANDOM, 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 
ExperimentMultipleRuns​(boolean singleEngine)  
Constructor Description

Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods 
abstract int getCurrentIteration()
Returns the current iteration number (1, 2...)
abstract int getCurrentReplication()
Returns the replication number for the current iteration (1, 2...)
Ensure replications are used (isUseReplications()) before calling this method
Engine getEngine()
It is strongly recommended not to call this method because of possible parallel execution environment.
abstract int getMaximumIterations()
Returns the total number of iterations being performed in this experiment
java.lang.Object getMutexRead_xjal()
This field shouldn't be called by user
is public due to technical reasons
java.lang.Object getMutexWrite_xjal()
This field shouldn't be called by user
is public due to technical reasons
int getNumberOfCompletedIterations()
Returns the number of completed iterations.
int getParallelEvaluatorsCount()
Returns the number of parallel evaluators used in this experiment.
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 -1 if this cannot be calculated.
int getRunCount()
Returns the number of the current simulation run, more precisely the number of times the model was destroyed.
double[] getSimulationProgress_xjal​(double[] output)
This method is not designed to be called by user and may be changed/removed in the future releases.
Returns the progress of the parallel simulation runs: an array of numbers between 0 and 1.
long getStep()
Returns the number of events executed by the engine.
abstract boolean isLastReplication()
Return true if we have run the last replication for the current iteration
abstract boolean isUseReplications()
Returns true if experiment uses replications
void onAfterExperiment()
User's extension point for after experiment code.
Executed when all planned iterations are completed.
void onAfterIteration()
User's extension point for after iteration code
By default does nothing
void onDestroy_xjal()
This method normally shouldn't be called by user.
Is called when the experiment object is dynamically disposed - before closing the model window.
This method should be overridden to release resources (e.g. commit connections with database) and call super.doDestroy_xjal() method at the end.
void registerExperimentHost_xjal​(IExperimentHost experimentHost)
This method isn't designed to be called by user.
Public due to technical reasons
May be removed in future releases
abstract void setFixedReplicationsNumber​(int replicationsNumber)
Sets experiment to use a fixed number of replications.
No confidence testing is to be used
For confidence testing use setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

This is setup method, user should not call it
abstract void setUseReplications​(boolean useReplications)
Sets experiment to use replications

This is setup method, user should not call it
abstract 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. 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 setFixedReplicationsNumber(int)

This is optimization setup method, user should not call it
Modifier and Type Method Description

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

Field Detail

CONFIDENCE_LEVEL_80

public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_80
Confidence level constant 80%
See Also:
setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

CONFIDENCE_LEVEL_90

public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_90
Confidence level constant 90%
See Also:
setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

CONFIDENCE_LEVEL_95

public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_95
Confidence level constant 95%
See Also:
setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

CONFIDENCE_LEVEL_98

public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_98
Confidence level constant 98%
See Also:
setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

CONFIDENCE_LEVEL_99

public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_99
Confidence level constant 99%
See Also:
setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

CONFIDENCE_LEVEL_99_9

public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_99_9
Confidence level constant 99.9%
See Also:
setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

Constructor Detail

ExperimentMultipleRuns

public ExperimentMultipleRuns​(boolean singleEngine)

Method Detail

getEngine

public final Engine getEngine()
It is strongly recommended not to call this method because of possible parallel execution environment. Use root.getEngine() instead. Although, the method will most likely return the expected engine, this could be conceptually better to get engine by using root.getEngine() where root - is the top-level agent.
Overrides:
getEngine in class ExperimentRunFast<ROOT extends Agent>
Returns:
the engine executing the model. There may be different engines running at a time - in parallel - in this case the returned engine depends on the context (where this method is called from).

getStep

public long getStep()
Description copied from class: Experiment
Returns the number of events executed by the engine.
Overrides:
getStep in class Experiment<ROOT extends Agent>
Returns:
the number of events executed

getProgress

public 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 -1 if this cannot be calculated.
Overrides:
getProgress in class ExperimentRunFast<ROOT extends Agent>
Returns:
the progress of the experiment

getSimulationProgress_xjal

@AnyLogicInternalAPI
public double[] getSimulationProgress_xjal​(double[] output)
This method is not designed to be called by user and may be changed/removed in the future releases.
Returns the progress of the parallel simulation runs: an array of numbers between 0 and 1. The length of the array is the number of parallel processors. Progress is the part of model time simulated so far in case the stop time is set, or -1 if it is not set.
Parameters:
output - will be used for output if its length matches the number of processors, otherwise new array will be created and returned
Returns:
the progress of the parallel simulation runs.
See Also:
Engine.getProgress()

getNumberOfCompletedIterations

public int getNumberOfCompletedIterations()
Returns the number of completed iterations. Use this method to track the progress in preference to the getCurrentIteration() because of parallel (multi-threaded) implementation.
Returns:
the number of completed iterations

getRunCount

public final int getRunCount()
Description copied from class: Experiment
Returns the number of the current simulation run, more precisely the number of times the model was destroyed.
Overrides:
getRunCount in class Experiment<ROOT extends Agent>
Returns:
the number of the current simulation run, more precisely the number of times the model was destroyed.

getCurrentIteration

public abstract int getCurrentIteration()
Returns the current iteration number (1, 2...)
Returns:
the current iteration number

getMaximumIterations

public abstract int getMaximumIterations()
Returns the total number of iterations being performed in this experiment
Returns:
the total number of iterations

setVariableReplicationsNumber

public abstract 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. 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 setFixedReplicationsNumber(int)

This is optimization setup method, user should not call it
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:
setUseReplications(boolean)

setFixedReplicationsNumber

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

This is setup method, user should not call it
Parameters:
replicationsNumber - the number of replications to be run
See Also:
setUseReplications(boolean)

isUseReplications

public abstract boolean isUseReplications()
Returns true if experiment uses replications
Returns:
true if experiment uses replications, false otherwise

setUseReplications

public abstract void setUseReplications​(boolean useReplications)
Sets experiment to use replications

This is setup method, user should not call it
Parameters:
useReplications -
See Also:
setFixedReplicationsNumber(int), setVariableReplicationsNumber(int, int, ConfidenceLevel, double)

getCurrentReplication

public abstract int getCurrentReplication()
Returns the replication number for the current iteration (1, 2...)
Ensure replications are used (isUseReplications()) before calling this method
Returns:
the current number of replication

isLastReplication

public abstract boolean isLastReplication()
Return true if we have run the last replication for the current iteration
Returns:
true if this is the last replication of the iteration

onAfterIteration

@AnyLogicInternalCodegenAPI
public void onAfterIteration()
User's extension point for after iteration code
By default does nothing

onAfterExperiment

@AnyLogicInternalCodegenAPI
public void onAfterExperiment()
User's extension point for after experiment code.
Executed when all planned iterations are completed. Isn't executed when error occurs or when experiment is paused.
By default does nothing

getMutexRead_xjal

@AnyLogicInternalAPI
public java.lang.Object getMutexRead_xjal()
Description copied from class: Experiment
This field shouldn't be called by user
is public due to technical reasons
Overrides:
getMutexRead_xjal in class Experiment<ROOT extends Agent>

getMutexWrite_xjal

@AnyLogicInternalAPI
public java.lang.Object getMutexWrite_xjal()
Description copied from class: Experiment
This field shouldn't be called by user
is public due to technical reasons
Overrides:
getMutexWrite_xjal in class Experiment<ROOT extends Agent>

registerExperimentHost_xjal

@AnyLogicInternalAPI
public void registerExperimentHost_xjal​(IExperimentHost experimentHost)
Description copied from class: Experiment
This method isn't designed to be called by user.
Public due to technical reasons
May be removed in future releases
Overrides:
registerExperimentHost_xjal in class ExperimentRunFast<ROOT extends Agent>

getParallelEvaluatorsCount

public int getParallelEvaluatorsCount()
Returns the number of parallel evaluators used in this experiment. On multicore/multiprocessor systems this number may be greater than one - for improved performance.
Returns:
the number of parallel evaluators used in this experiment

onDestroy_xjal

public void onDestroy_xjal()
Description copied from class: Experiment
This method normally shouldn't be called by user.
Is called when the experiment object is dynamically disposed - before closing the model window.
This method should be overridden to release resources (e.g. commit connections with database) and call super.doDestroy_xjal() method at the end. Don't call Experiment.onDestroy() when overriding this method: it is called automatically
Overrides:
onDestroy_xjal in class Experiment<ROOT extends Agent>
How can we improve this article?