Package jline.solvers.ldes
Class LDESOptions
java.lang.Object
jline.solvers.SolverOptions
jline.solvers.ldes.LDESOptions
Configuration options for LINE Discrete Event Simulator (LDES) solver.
LDESOptions extends the base solver options to provide LDES-specific configuration parameters. LDES uses the SSJ library for discrete-event simulation that generates sample paths of the queueing network state evolution over time.
Key LDES characteristics:
- Discrete event simulation approach using SSJ library
- Handles multiclass Jackson queueing networks
- Supports steady-state analysis
- Provides statistical estimates with confidence intervals
- Uses event-count based stopping (samples = max service completions)
- Default: 200,000 service completion events
Default Configuration (based on benchmark analysis):
samples = 200,000 (good accuracy/speed balance, ~5% mean error) tranfilter = "mser5" (adaptive warmup detection) warmupfrac = 0.20 (20% warmup for fixed filter) cimethod = "obm" (overlapping batch means) obmoverlap = 0.50 (50% overlap) cnvgon = false (fixed event count)For heavy-tailed workloads (high SCV), consider increasing samples to 500,000+.
- Since:
- 1.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class jline.solvers.SolverOptions
SolverOptions.Config, SolverOptions.ODESolvers -
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanEnable detailed BAS (Blocking After Service) tracing for debugging.Confidence interval computation method.intMinimum batch size for confidence interval computation.intMinimum number of post-warmup observations required before computing CIs.intMinimum number of batches required before checking for convergence.intNumber of events between convergence checks.booleanEnable convergence-based stopping.doubleConvergence tolerance - stop when (CI half-width / mean) is below this threshold.static final intDefault minimum batch size for CI computationstatic final intDefault minimum observations required for CI computationstatic final intDefault minimum number of batches before checking convergencestatic final doubleDefault convergence tolerance (5% relative precision)static final intDefault MSER batch size (MSER-5 standard)static final doubleDefault OBM overlap fraction (50% overlap)static final intDefault number of replications (1 = single run, backward compatible)static final intDefault number of service completion events for LDES solver (200,000)static final doubleDefault fraction of lowest frequencies used for spectral regressionstatic final doubleDefault warmup fraction when using fixed methodintMaximum number of total simulation events (all types: arrivals, departures, routing, setup, etc.).intBatch size for MSER transient detection algorithm.intNumber of parallel threads for replication execution.doubleOverlap fraction for OBM confidence intervals (0.0 to 1.0).intNumber of independent replications to run.doubleFraction of lowest frequencies to use for log-periodogram regression in the Heidelberger-Welch spectral method.Transient filter method for warmup detection and removal.doubleWarmup fraction when using fixed transient filter.Fields inherited from class jline.solvers.SolverOptions
cache, config, confint, cutoff, force, hide_immediate, init_sol, iter_max, iter_tol, keep, lang, method, odesolvers, qrfAlpha, remote, remote_endpoint, rewardIterations, samples, seed, stiff, timespan, timestep, tol, verbose -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new LDESOptions instance with default LDES solver configuration. -
Method Summary
Modifier and TypeMethodDescriptioncopy()Creates a deep copy of this LDESOptions object.setCimethod(String method) Sets the confidence interval computation method.setCiminbatch(int minSize) Sets the minimum batch size for CI computation.setCiminobs(int minObs) Sets the minimum observations required for CI computation.setCnvgbatch(int minBatches) Sets the minimum number of batches before checking convergence.setCnvgchk(int interval) Sets the number of events between convergence checks.setCnvgon(boolean enabled) Sets whether convergence-based stopping is enabled.setCnvgtol(double tolerance) Sets the convergence tolerance.setMaxSimEvents(int maxEvents) Sets the maximum number of total simulation events.setMserbatch(int batchSize) Sets the MSER batch size.setNumThreads(int threads) Sets the number of parallel threads for replication execution.setObmoverlap(double overlap) Sets the OBM overlap fraction.setReplications(int numReps) Sets the number of independent replications to run.setSpectralLowFreqFrac(double fraction) Sets the fraction of lowest frequencies for spectral log-periodogram regression.setTranfilter(String method) Sets the transient filter method.setWarmupfrac(double fraction) Sets the warmup fraction for fixed transient filter.Methods inherited from class jline.solvers.SolverOptions
confint, cutoff, cutoff, cutoff, force, getCutoffMatrix, keep, method, samples, seed, setLsodaMaxSteps, setODEMaxStep, setODEMinStep, verbose, verbose
-
Field Details
-
DEFAULT_SAMPLES
public static final int DEFAULT_SAMPLESDefault number of service completion events for LDES solver (200,000)- See Also:
-
DEFAULT_CNVG_TOL
public static final double DEFAULT_CNVG_TOLDefault convergence tolerance (5% relative precision)- See Also:
-
DEFAULT_CNVG_BATCH
public static final int DEFAULT_CNVG_BATCHDefault minimum number of batches before checking convergence- See Also:
-
cnvgon
public boolean cnvgonEnable convergence-based stopping. When enabled, simulation stops when confidence interval half-width relative to mean falls below the convergence tolerance for all metrics. Default: false (disabled to maintain backward compatibility with existing tests) -
cnvgtol
public double cnvgtolConvergence tolerance - stop when (CI half-width / mean) is below this threshold. A value of 0.05 means 5% relative precision. Default: 0.05 -
cnvgbatch
public int cnvgbatchMinimum number of batches required before checking for convergence. More batches provide more reliable confidence interval estimates. Default: 20 -
cnvgchk
public int cnvgchkNumber of events between convergence checks. A value of 0 means auto-calculate (samples / 50). Default: 0 (auto) -
DEFAULT_MSER_BATCH
public static final int DEFAULT_MSER_BATCHDefault MSER batch size (MSER-5 standard)- See Also:
-
DEFAULT_WARMUP_FRAC
public static final double DEFAULT_WARMUP_FRACDefault warmup fraction when using fixed method- See Also:
-
tranfilter
Transient filter method for warmup detection and removal. Valid values: "mser5" (automatic MSER-5), "fixed" (fixed fraction), "none" (no filtering). Default: "mser5" -
mserbatch
public int mserbatchBatch size for MSER transient detection algorithm. Only used when tranfilter = "mser5". Default: 5 (standard MSER-5) -
warmupfrac
public double warmupfracWarmup fraction when using fixed transient filter. Fraction of total events discarded as warmup (0.0 to 1.0). Only used when tranfilter = "fixed". Default: 0.2 (20% warmup) -
DEFAULT_OBM_OVERLAP
public static final double DEFAULT_OBM_OVERLAPDefault OBM overlap fraction (50% overlap)- See Also:
-
DEFAULT_CI_MIN_BATCH
public static final int DEFAULT_CI_MIN_BATCHDefault minimum batch size for CI computation- See Also:
-
DEFAULT_CI_MIN_OBS
public static final int DEFAULT_CI_MIN_OBSDefault minimum observations required for CI computation- See Also:
-
cimethod
Confidence interval computation method. Valid values: "obm" (overlapping batch means), "bm" (batch means), "spectral" (Heidelberger-Welch spectral analysis), "none" (no CI). Default: "obm" -
obmoverlap
public double obmoverlapOverlap fraction for OBM confidence intervals (0.0 to 1.0). 0.5 = 50% overlap (standard), 0.0 = non-overlapping (same as bm). Only used when cimethod = "obm". Default: 0.5 -
ciminbatch
public int ciminbatchMinimum batch size for confidence interval computation. Actual batch size is max(ciminbatch, sqrt(n)) where n is sample count. Default: 10 -
ciminobs
public int ciminobsMinimum number of post-warmup observations required before computing CIs. If fewer observations available, CI is set to 0 (unavailable). Default: 100 -
DEFAULT_SPECTRAL_LOW_FREQ_FRAC
public static final double DEFAULT_SPECTRAL_LOW_FREQ_FRACDefault fraction of lowest frequencies used for spectral regression- See Also:
-
spectralLowFreqFrac
public double spectralLowFreqFracFraction of lowest frequencies to use for log-periodogram regression in the Heidelberger-Welch spectral method. Only used when cimethod = "spectral". Default: 0.25 (lowest 25% of frequencies) -
basTrace
public boolean basTraceEnable detailed BAS (Blocking After Service) tracing for debugging. Default: false -
maxSimEvents
public int maxSimEventsMaximum number of total simulation events (all types: arrivals, departures, routing, setup, etc.). When set to a positive value, the simulation stops when this limit is reached, regardless of service completion count. A value of -1 means no limit (only service completion count is used). Default: -1 (no limit) -
DEFAULT_REPLICATIONS
public static final int DEFAULT_REPLICATIONSDefault number of replications (1 = single run, backward compatible)- See Also:
-
replications
public int replicationsNumber of independent replications to run. When > 1, enables parallel replication mode where each replication runs independently with its own RNG stream, and results are aggregated using cross-replication variance for confidence intervals. Default: 1 (single long run with batch means, backward compatible) -
numThreads
public int numThreadsNumber of parallel threads for replication execution. Default: Runtime.getRuntime().availableProcessors() / 2 Only used when replications > 1.
-
-
Constructor Details
-
LDESOptions
public LDESOptions()Constructs a new LDESOptions instance with default LDES solver configuration. Sets the maximum service completion events to 200,000 by default. Verbose output is disabled by default for LDES.
-
-
Method Details
-
setCnvgon
Sets whether convergence-based stopping is enabled.- Parameters:
enabled- true to enable convergence checking- Returns:
- this options instance for method chaining
-
setCnvgtol
Sets the convergence tolerance.- Parameters:
tolerance- the relative precision threshold (e.g., 0.05 for 5%)- Returns:
- this options instance for method chaining
-
setCnvgbatch
Sets the minimum number of batches before checking convergence.- Parameters:
minBatches- the minimum number of batches required- Returns:
- this options instance for method chaining
-
setCnvgchk
Sets the number of events between convergence checks.- Parameters:
interval- the number of events (0 for auto-calculation)- Returns:
- this options instance for method chaining
-
setTranfilter
Sets the transient filter method.- Parameters:
method- the transient filter method ("mser5", "fixed", or "none")- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if method is not valid
-
setMserbatch
Sets the MSER batch size.- Parameters:
batchSize- the batch size for MSER algorithm (must be >= 1)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if batchSize is less than 1
-
setWarmupfrac
Sets the warmup fraction for fixed transient filter.- Parameters:
fraction- the warmup fraction (0.0 to 1.0, exclusive)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if fraction is not in [0, 1)
-
setCimethod
Sets the confidence interval computation method.- Parameters:
method- the CI method ("obm", "bm", or "none")- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if method is not valid
-
setSpectralLowFreqFrac
Sets the fraction of lowest frequencies for spectral log-periodogram regression.- Parameters:
fraction- the fraction (0.0 to 1.0, exclusive of 0)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if fraction is not in (0, 1]
-
setObmoverlap
Sets the OBM overlap fraction.- Parameters:
overlap- the overlap fraction (0.0 to 1.0)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if overlap is not in [0, 1]
-
setCiminbatch
Sets the minimum batch size for CI computation.- Parameters:
minSize- the minimum batch size (must be >= 2)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if minSize is less than 2
-
setCiminobs
Sets the minimum observations required for CI computation.- Parameters:
minObs- the minimum number of observations (must be >= 10)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if minObs is less than 10
-
setMaxSimEvents
Sets the maximum number of total simulation events.- Parameters:
maxEvents- the maximum number of events (-1 for no limit, must be >= 1 or -1)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if maxEvents is less than 1 and not -1
-
setReplications
Sets the number of independent replications to run. When > 1, enables parallel replication mode with cross-replication CI.- Parameters:
numReps- number of replications (must be >= 1)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if numReps is less than 1
-
setNumThreads
Sets the number of parallel threads for replication execution.- Parameters:
threads- number of threads (must be >= 1)- Returns:
- this options instance for method chaining
- Throws:
IllegalArgumentException- if threads is less than 1
-
copy
Creates a deep copy of this LDESOptions object. Overrides the base class copy() to preserve LDES-specific fields.- Overrides:
copyin classSolverOptions- Returns:
- a deep copy of this LDESOptions object
-