Package com.anylogic.engine
- Nested Class Summary
- Nested classes/interfaces inherited from class com.anylogic.engine.Experiment
- Field Summary
- Fields inherited from class com.anylogic.engine.Experiment
- Fields inherited from class com.anylogic.engine.Utilities
- Fields inherited from class com.anylogic.engine.Presentable
- Fields inherited from interface com.anylogic.engine.AgentConstants
- Fields inherited from interface com.anylogic.engine.EnvironmentConstants
- Fields inherited from interface com.anylogic.engine.UtilitiesMath
- Fields inherited from interface com.anylogic.engine.UtilitiesRandom
- Constructor Summary
- Method Summary
- Methods inherited from class com.anylogic.engine.ExperimentRunFast
- Methods inherited from class com.anylogic.engine.Experiment
- Methods inherited from class com.anylogic.engine.Utilities
- Methods inherited from class com.anylogic.engine.Presentable
- Methods inherited from class java.lang.Object
- Methods inherited from interface com.anylogic.engine.UtilitiesRandom
- Field Details
- Constructor Details
- Method Details
- getEngine
- getStep
- getProgress
- getSimulationProgress_xjal
- getNumberOfCompletedIterations
- getRunCount
- getCurrentIteration
- getMaximumIterations
- setVariableReplicationsNumber
- setFixedReplicationsNumber
- isUseReplications
- setUseReplications
- getCurrentReplication
- isLastReplication
- onAfterIteration
- onAfterExperiment
- getMutexRead_xjal
- getMutexWrite_xjal
- registerExperimentHost_xjal
- getParallelEvaluatorsCount
- onDestroy_xjal
- java.lang.Object
- com.anylogic.engine.Presentable
- com.anylogic.engine.Utilities
- com.anylogic.engine.Experiment<ROOT>
- com.anylogic.engine.ExperimentRunFast<ROOT>
- com.anylogic.engine.ExperimentMultipleRuns<ROOT>
- Type Parameters:
ROOT
- class of top-level agent
- All Implemented Interfaces:
AgentConstants
,EnvironmentConstants
,UtilitiesMath
,UtilitiesRandom
,UtilitiesString
,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
Modifier and Type | Class | Description |
---|---|---|
static enum | ExperimentMultipleRuns.ConfidenceLevel |
Confidence level constants
|
Modifier and Type | Field | Description |
---|---|---|
static final ExperimentMultipleRuns.ConfidenceLevel | CONFIDENCE_LEVEL_80 |
Confidence level constant
80% |
static final ExperimentMultipleRuns.ConfidenceLevel | CONFIDENCE_LEVEL_90 |
Confidence level constant
90% |
static final ExperimentMultipleRuns.ConfidenceLevel | CONFIDENCE_LEVEL_95 |
Confidence level constant
95% |
static final ExperimentMultipleRuns.ConfidenceLevel | CONFIDENCE_LEVEL_98 |
Confidence level constant
98% |
static final ExperimentMultipleRuns.ConfidenceLevel | CONFIDENCE_LEVEL_99 |
Confidence level constant
99% |
static final ExperimentMultipleRuns.ConfidenceLevel | CONFIDENCE_LEVEL_99_9 |
Confidence level constant
99.9% |
ERROR, FINISHED, IDLE, modelExecutionCommandQueue, mutexModelActionQueue, OPEN_RESULTS, OPEN_SNAPSHOT, PAUSE, PAUSED, PLEASE_WAIT, RUN, RUNNING, SAVE_RESULTS, SAVE_SNAPSHOT, STEP, STOP
AM, APRIL, AUGUST, DECEMBER, FEBRUARY, FRIDAY, 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
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
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, ELEVATOR_DIRECTION_DOWN, ELEVATOR_DIRECTION_NONE, ELEVATOR_DIRECTION_UP, ELEVATOR_DOOR_FRONT, ELEVATOR_DOOR_REAR, ELEVATOR_DOORS_FRONT, ELEVATOR_DOORS_FRONT_REAR, ELEVATOR_DOORS_FRONT_REAR_XJAL, ELEVATOR_DOORS_FRONT_XJAL, ELEVATOR_MOVEMENT_BY_SPEED, ELEVATOR_MOVEMENT_BY_TIME_PER_LEVEL, ELEVATOR_STATE_FAILED, ELEVATOR_STATE_IDLE, ELEVATOR_STATE_LOADING, ELEVATOR_STATE_MOVING, 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_DIAGONAL, 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_TYPE_DRIVE_IN, RACK_TYPE_FIFO_FLOW, RACK_TYPE_LIFO_FLOW, 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, ROBOT_APPROACH_NEAREST_SIDE, ROBOT_APPROACH_TOP_SIDE, ROBOT_END_EFFECTOR_GRIPPER, ROBOT_END_EFFECTOR_NONE, 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, TRANSFER_MODE_AUTOMATIC, TRANSFER_MODE_MANUAL, 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
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 | Description |
---|---|
ExperimentMultipleRuns |
Modifier and Type | Method | Description |
---|---|---|
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 |
final 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
|
Object | getMutexRead_xjal() |
This field shouldn't be called by user
is public due to technical reasons |
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. |
final int | getRunCount() |
Returns the number of the current simulation run, more precisely the
number of times the model was destroyed.
|
double[] | getSimulationProgress_xjal |
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. |
void | registerExperimentHost_xjal |
This method isn't designed to be called by user.
Public due to technical reasons May be removed in future releases |
abstract void | setFixedReplicationsNumber |
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 |
Sets experiment to use replications
This is setup method, user should not call it |
abstract void | setVariableReplicationsNumber |
Sets experiment to stop replications after the minimum replications when
the confidence level is reached (i.e.
|
addExecutionListener, close, createRoot, destroy_xjal, error, errorInModel, getCommandLineArguments, getExperimentHost, getName, getSnapshotFileName, getWindowHeight, getWindowWidth, initDefaultRandomNumberGenerator, internalFillConfig, isCommandEnabled, isLoadRootFromSnapshot, isTestExperiment, onBeforeSimulationRun, onDestroy, onEngineFinished, onError, onError, removeExecutionListener, reset, setCommandLineArguments_xjal, setLoadRootFromSnapshot, setName, setup, setupEngine, warning, warning
addToDate, addToDate, atan2fast, bernoulli, beta, beta, binomial, binomial, briefInfoOn, castNumberTypes, castTypes, castTypesBack, cauchy, chi2, convertMarkupSegmentDescriptors_xjal, copyToClipboard, copyToClipboard, copyToClipboard, createTableElementDatabaseBuilder, createTrajectoryGIS, createURL_xjal, date, dateToTime, day, deleteFrom, difference, difference, differenceInCalendarUnits, differenceInCalendarUnits, differenceInDateUnits, differenceInDateUnits, differenceInDateUnits, differenceInDateUnits, dirToAngle, dropTime, erlang, error, error, error, errorInModel, errorInModel, errorInModel, executeAction, executeExpression, executeExpression, executeStatement, exponential, exponential, findExistingFile, format, format, format, format, format, format, format, formatAmountUnits, formatDayOfWeek, formatFlowRateUnits, formatGeoHeading, formatLatitude, formatLengthUnits, formatLengthUnits, formatLongitude, formatMonth, formatSpeedUnits, formatTimeInterval, gamma, gamma, gammaLog, 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, gumbel2, hour, hypergeometric, insertInto, inspectOf, inspectOfLink_xjal, isFinite, isLineIntersectingLine, isLineIntersectingRectangle, isLoggingClassToDB, isLoggingToDB, isPointInsideRay, isPointInsideRectangle, isPointInsideSegment, isPointOnTheSameLine, isRayIntersectingSegment, joinArrays_xjal, laplace, layoutTypeToString, limit, limit, limitMax, limitMax, limitMin, limitMin, logarithmic, logistic, lognormal, logToDB, logToDB, logToDB, logToDB, millisecond, minute, month, negativeBinomial, negativeBinomial, normal, normal, pareto, pert, poisson, poisson, prepareBeforeExperimentStart_xjal, prepareStatement, pulse, pulseTrain, quantum, ramp, randomColor, randomFalse, randomFrom, randomFrom, randomFrom, randomlyCreate, randomlyCreate, randomTrue, randomWhere, randomWhere, rayleigh, roundToDecimal, roundToInt, second, selectAndDoForEach, selectArrayOfDouble, selectArrayOfInt, selectExists, selectExists, selectFirstValue, selectFirstValue, selectFirstValue, selectFirstValue, selectFrom, selectResultSet, selectTableFunction, selectUniqueValue, selectUniqueValue, selectUniqueValue, selectUniqueValue, selectValues, selectValues, setDefaultRandomGenerator, 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, triangularAV, uniform, uniform, uniform_discr, uniform_pos, update, week, weibull, weibull, xidz, year, zidz
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
bernoulli, beta, beta, beta, binomial, binomial, binomial, cauchy, cauchy, chi2, chi2, erlang, erlang, exponential, exponential, exponential, exponential, gamma, gamma, gamma, geometric, gumbel1, gumbel2, hypergeometric, laplace, logarithmic, logistic, lognormal, negativeBinomial, negativeBinomial, normal, normal, normal, normal, pareto, pareto, pert, poisson, poisson, random, randomFalse, randomFrom, randomFrom, randomFrom, randomlyCreate, randomlyCreate, randomTrue, randomWhere, randomWhere, rayleigh, rayleigh, shuffle, triangular, triangular, triangular, triangularAV, uniform, uniform, uniform, uniform_discr, uniform_discr, uniform_pos, weibull, weibull, weibull
public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_80
Confidence level constant
80%
public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_90
Confidence level constant
90%
public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_95
Confidence level constant
95%
public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_98
Confidence level constant
98%
public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_99
Confidence level constant
99%
public static final ExperimentMultipleRuns.ConfidenceLevel CONFIDENCE_LEVEL_99_9
Confidence level constant
99.9%
public ExperimentMultipleRuns(boolean singleEngine)
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 classExperimentRunFast<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).
public long getStep()
Description copied from class:
Experiment
Returns the number of events executed by the engine.
- Overrides:
getStep
in classExperiment<ROOT extends Agent>
- Returns:
- the number of events executed
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 classExperimentRunFast<ROOT extends Agent>
- Returns:
- the progress of the experiment
@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
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()
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
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 classExperiment<ROOT extends Agent>
- Returns:
- the number of the current simulation run, more precisely the number of times the model was destroyed.
public abstract int getCurrentIteration()
Returns the current iteration number (1, 2...)
- Returns:
- the current iteration number
public abstract int getMaximumIterations()
Returns the total number of iterations being performed in this experiment
- Returns:
- the total number of iterations
public abstract void setVariableReplicationsNumber(int minimumReplications, int maximumReplications, ExperimentMultipleRuns.ConfidenceLevel confidenceLevel, double errorPercent)
Sets experiment to stop replications after the minimum replications when
This is optimization setup method, user should not call it
- 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
setFixedReplicationsNumber(int)
This is optimization setup method, user should not call it
- Parameters:
minimumReplications
- minimum number of replicationsmaximumReplications
- minimum number of replicationsconfidenceLevel
- one oferrorPercent
- the error percentage as a value > 0 and < 1.- See Also:
-
setUseReplications(boolean)
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
This is setup method, user should not call it
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)
public abstract boolean isUseReplications()
Returns
true
if experiment uses replications- Returns:
true
if experiment uses replications,false
otherwise
public abstract void setUseReplications(boolean useReplications)
Sets experiment to use replications
This is setup method, user should not call it
This is setup method, user should not call it
- Parameters:
useReplications
-- See Also:
public abstract int getCurrentReplication()
Returns the replication number for the current iteration (1, 2...)
Ensure replications are used (
Ensure replications are used (
isUseReplications()
) before
calling this method- Returns:
- the current number of replication
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
@AnyLogicInternalCodegenAPI public void onAfterIteration()
User's extension point for after iteration code
By default does nothing
By default does nothing
@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
Executed when all planned iterations are completed. Isn't executed when error occurs or when experiment is paused.
By default does nothing
@AnyLogicInternalAPI public Object getMutexRead_xjal()
Description copied from class:
Experiment
This field shouldn't be called by user
is public due to technical reasons
is public due to technical reasons
- Overrides:
getMutexRead_xjal
in classExperiment<ROOT extends Agent>
@AnyLogicInternalAPI public Object getMutexWrite_xjal()
Description copied from class:
Experiment
This field shouldn't be called by user
is public due to technical reasons
is public due to technical reasons
- Overrides:
getMutexWrite_xjal
in classExperiment<ROOT extends Agent>
@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
Public due to technical reasons
May be removed in future releases
- Overrides:
registerExperimentHost_xjal
in classExperimentRunFast<ROOT extends Agent>
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
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
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 classExperiment<ROOT extends Agent>