Shared Solver Options

This reference documents the MATLAB LINE options interface. The top-level fields belong to options; shared and solver-specific settings belong to options.config. Defaults are MATLAB defaults unless indicated otherwise. A field affects only the solvers and methods that read it.

Usage · Top-level options · Shared configuration · Fixed-point driver · ODE integrators · Solver-specific options

Set options

Start from the solver's defaults and pass an options struct to configure any field in this reference. Name/value pairs also work for registered keys such as method and iter_tol. Solver.mergeOptions merges partial config and odesolvers structs, preserving their other defaults.

MATLAB's dotted shorthand is supported for config.eventcache, config.warmupfrac, config.highvar, config.multiserver, config.np_priority and config.fork_join. Set other configuration fields directly on the struct, for example opt.config.mem_tol = 1e-8. Likewise, set events, ctmc_max_states, replications, rest_url and rewardIterations on the struct; these fields are read by solvers but are not registered as name/value keys.

% model is an existing Network; choose a method compatible with it.
solver = SolverMVA(model, 'method', 'amva', ...
    'iter_tol', 1e-8, 'config.multiserver', 'conway');

% The equivalent struct style:
opt = SolverOptions('MVA');
opt.method = 'amva';
opt.iter_tol = 1e-8;
opt.config.multiserver = 'conway';
solver = SolverMVA(model, opt);
solver.listValidMethods()

% AUTO accepts family-qualified method names:
solver = LINE(model, 'method', 'nc.comom');

unset, derived, cap and method default mean that the consumer supplies a model- or method-dependent value; they are not literal option values. Fields marked internal carry state between solver passes and are normally left alone.

Top-level options

Fields of options
OptionDefaultDescription and values
cachetrueReuse the stored average results on a repeat getAvg; false re-solves every call.
configstruct()Per-solver sub-struct; shared fields are below and specialized fields are on each solver page.
confintfalseConfidence intervals for simulation solvers: true means 95%, a number in (0,1) is the level itself.
ctmc_max_states3e6Hard cap on the generated CTMC state space; State.spaceGenerator refuses above it and says to raise this.
cutoffInf (CTMC: 10)Per-class truncation of an open or mixed queue-length dimension when a finite state space is needed.
eventsNaNSimulation budget counted in events rather than samples; NaN leaves the budget to samples.
forcefalseBypass the state-space size controls and solve anyway.
init_sol[]Initial state or initial queue lengths to start the solver from, in station-major order.
iter_max1000 (ENV/AG/MAM 100, FLD/LN 200, UQ 1)Maximum iterations of the solver's outer fixed point.
iter_tol1e-4 (MVA/BA/NN 1e-6, LN 5e-3)Convergence tolerance that stops that fixed point.
keeptrueKeep the intermediate files a subprocess wrapper writes (JMT, LQNS); false deletes the folder afterwards.
lang'matlab' (LDES 'java')Which backend runs the solver: 'matlab', 'java' (JLINE), 'python' (native line_solver) or 'cpp'. The MATLAB session can override the default with LINEDefaultLang / LINE_DEFAULT_LANG.
level2BA only: hierarchy level of pbh/cbh and iteration count k of pbk/bjbk.
method'default'The algorithm to run; each solver page lists its accepted names and aliases.
odesolvers5 handlesThe ODE integrators the fluid solver reaches: fast, accurate, fast stiff, accurate stiff (LSODA) and DAE.
replicationsunsetLDES only: independent replications, overriding config.replications.
rest_url''LDES and JMT: URL of a REST engine to solve on instead of a local binary.
rewardIterations1000CTMC only: value iterations used to compute a reward measure.
samples1e4 (NC 1e5, LDES 2e5, UQ 11)Sampling budget, read differently per consumer: JMT max samples, SSA fired transitions, LDES completions, NC importance-sampling draws. UQ uses nodes per continuous Prior or the Monte Carlo design size.
seedrandi([1,1e6])RNG seed of every stochastic path, so a run is reproducible when pinned.
stifftrueUse the stiff ODE integrator slot rather than the non-stiff one.
timeoutInfWall-clock budget in seconds; the solver aborts once lineTimeoutExceeded fires.
timespan[Inf,Inf] (FLD/SSA [0,Inf])Time horizon of the analysis; a finite pair asks for a transient rather than a steady state.
timestep[]Fixed output step of a transient; empty lets the integrator or the grid choose.
tol1e-4Tolerance for everything that is not the outer iteration (linear solves, comparisons, closures).
verbosesession levelConsole verbosity, inherited from GlobalConstants.Verbose; VerboseLevel.DEBUG turns on the solver console.

Shared configuration

These options.config fields are read by more than one solver or during model preparation. Values such as multiserver can have a different interpretation in an external-tool wrapper; consult its page.

Shared fields of options.config
OptionDefaultDescription and values
aoi_preemptionunsetAge-of-information analysis: override the preemption (or replacement) probability instead of deriving it from the model.
compress'default'Whether merged MMAP traffic is compressed ('default') or left at full order ('none').
fj_warmstarttrueStart the fork-join fixed point from the previous iterate rather than cold.
fork_join'default'Fork-join response-time approximation: 'default'/'fjt'/'mmt' is Marie-Makowski-Towsley, 'ht'/'heidelberger-trivedi' is Heidelberger-Trivedi.
hide_immediatetrueStochastically complement immediate (infinite-rate) coordinates out of the event set instead of integrating or enumerating them.
highvar'default' (NC 'interp')Residence-time correction under high service variability: 'hvmva' is the high-SCV AMVA form, 'interp' the NC interpolation.
map_env'auto'What a solver that cannot consume a MAP/MMPP/MMAP does with one: 'auto' approximates it as a random environment, 'off' rejects the model.
map_env_method'auto'Coupling used by that approximation: 'meanfield' (transient-capable solvers), 'dec' (slow, accurate), 'avg' (fast).
map_env_maxstages64Cap on the product of the phase orders the environment construction may build.
merge'default'How per-class MMAP streams are merged at a class switch; 'default'/'super' is the marked superposition.
multiserver'default'Multiserver AMVA approximation: 'default'/'seidmann', 'softmin', 'suri', 'conway', 'erlang', 'krzesinski'.
nonmkv'bernstein'How a non-Markovian distribution is turned into a phase-type one: 'bernstein' fits, 'none' refuses.
nonmkvorder20Number of phases that approximation is allowed.
np_priority'default'Non-preemptive priority scaling at HOL stations: 'default'/'cl' is Chandy-Lakshmi in Eager-Lipscomb form, 'shadow' is Sevcik's shadow server.
num_cdf_pts200Number of points at which a response-time CDF is evaluated.
phfit'cme'Fitting target when a general distribution is replaced: 'cme' (matrix exponential, exact two moments) or 'ph' for solvers that cannot consume one.
preserveDetfalseKeep a deterministic service time deterministic instead of fitting it, for exact MAP/D/c analysis.
state_space_genCTMC 'full', SSA 'none'How the state space is built: 'full' enumerates the product space, 'reachable' only what is reachable (required by fork-join), 'none' builds none.
symbolic'auto'Symbolic backend: 'auto' discovers a line-sage-rest service or falls back to the toolbox, or give the service URL directly.
symbolic_timeout300Seconds allowed per symbolic request.
timescale'auto'Whether the model is read on a continuous or a slot lattice: 'auto', 'discrete', 'continuous'.
transform'none'Model transformation run before solving: 'chains' collapses each chain onto one class, 'lc' is Birman-Kogan load concealment.
transform_depth0Recursion guard on that driver; a transformed submodel carries depth+1 and cannot re-enter it.

Fixed-point driver (da_fpi)

These options.config fields control the damped iterator shared by decomposition-aggregation and loss-network routines.

Fixed-point fields of options.config
OptionDefaultDescription and values
da_damping1Under-relaxation factor in (0,1] applied to each fixed-point update; 1 is undamped.
da_miniter1Iterations performed before the convergence test is allowed to stop the loop.
da_nanstopfalseStop on a NaN convergence measure when true. When false, a NaN measure does not stop the iteration; the iteration limit still applies.
da_norm@(d) max(abs(d(:)))Convergence measure: by default the maximum absolute iterate difference. Supply a one-argument handle on the difference, such as @(d) norm(d,1), or a two-argument handle on the new and reference iterates.

ODE integrators

These function handles belong to options.odesolvers, separate from config. The fluid solver selects a slot according to the method, stiffness and accuracy requirements.

Fields of options.odesolvers
OptionDefaultDescription and values
fastOdeSolver@ode23Fast non-stiff ODE slot.
accurateOdeSolver@ode113Accurate non-stiff ODE slot.
fastStiffOdeSolver@ode23sFast stiff ODE slot.
accurateStiffOdeSolver@lsoda_accurate_stiffAccurate stiff ODE slot; the default fluid path uses LSODA.
daeSolver@ode15sIntegrator for the fluid DAE method. Set to @rodas for the vendored RODAS implementation used by the other native backends.

Solver-specific options

AUTO · MVA · NC · CTMC · FLD · MAM · AG · SSA · BA · LN · ENV · UQ · JMT · LQNS · QNS · LDES