Class LcStrategy
- All Implemented Interfaces:
TransformSolve.Strategy
TransformSolve.
Birman and Kogan (Stochastic Models 8(3):543-563, 1992), Algorithm 2. The
saddle point analysis of their Corollary 2 shows that chain l may be
solved on its own provided every station is slowed by the residual capacity
the other chains leave it, A_i = 1 - sum_{k!=l} L(i,k) X_k, so that
chain l sees the concealed demand L(i,l)/A_i.
WHAT THIS ADDS OVER THE KERNEL. Pfqn_bk.pfqn_bklc solves each
single-chain subproblem on a DEMAND VECTOR with the inner solve hard-wired to
MVA or the uniform expansion. Here the subproblem is a real single-class
Network, so the inner solve is the CALLER'S OWN solver, which is what makes
the concealment approximation measurable rather than merely asserted.
IT IS NOT A STRICTLY BETTER LC. The kernel sees only L; the chain
aggregation refits the chain service law to two moments. On a product-form
model they coincide; off it they are different approximations.
THE TOLERANCE IS FIXED AT 1e-10 and is deliberately not
options.iter_tol: a looser one stops the sweep at a different
iteration in each codebase.
Mirrors MATLAB solver_tr_lc_analyzer.m and python
transform_driver._lc_strategy.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classCarries the concealment state across the sweep. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleThe fixed convergence tolerance; a parity requirement, not a knob. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanconverged(TransformSolve.Expanded ctx, List<TransformSolve.Inner> res, int it) True when the sweep may stop.couple(TransformSolve.Expanded ctx, List<TransformSolve.Inner> res, int e) Updates the subproblems from the sweep so far.expand(Network model, NetworkStruct sn, SolverOptions options) Builds the subproblems and the context the lift will need.lift(TransformSolve.Expanded ctx, List<TransformSolve.Inner> res) Maps the subproblem metrics back onto the original model.
-
Field Details
-
TOL
public static final double TOLThe fixed convergence tolerance; a parity requirement, not a knob.- See Also:
-
-
Constructor Details
-
LcStrategy
public LcStrategy()
-
-
Method Details
-
expand
Description copied from interface:TransformSolve.StrategyBuilds the subproblems and the context the lift will need.- Specified by:
expandin interfaceTransformSolve.Strategy
-
couple
public TransformSolve.Expanded couple(TransformSolve.Expanded ctx, List<TransformSolve.Inner> res, int e) Description copied from interface:TransformSolve.StrategyUpdates the subproblems from the sweep so far. Called only by an iterated strategy, immediately after each subproblem's solve, which is what makes the coupling Gauss-Seidel.- Specified by:
couplein interfaceTransformSolve.Strategy
-
converged
Description copied from interface:TransformSolve.StrategyTrue when the sweep may stop. Called only by an iterated strategy.- Specified by:
convergedin interfaceTransformSolve.Strategy
-
lift
Description copied from interface:TransformSolve.StrategyMaps the subproblem metrics back onto the original model.- Specified by:
liftin interfaceTransformSolve.Strategy
-