Class SolverENV

Direct Known Subclasses:
ENV

public class SolverENV extends EnsembleSolver
ENV - Ensemble environment solver for models immersed in a random environment.
  • Constructor Details

  • Method Details

    • getFeatureSet

      public static FeatureSet getFeatureSet()
    • supports

      public boolean supports(Network model)
      Description copied from class: Solver
      Checks if this solver supports the given network model. Default implementation returns true; subclasses should override to provide specific feature validation.
      Overrides:
      supports in class Solver
      Parameters:
      model - the network model to check
      Returns:
      true if the model is supported, false otherwise
    • defaultOptions

      public static SolverOptions defaultOptions()
    • setStateDepMethod

      public void setStateDepMethod(String method)
    • setSMPMethod

      public void setSMPMethod(boolean SMPMethod)
    • setCompression

      public void setCompression(boolean compression)
    • converged

      protected boolean converged(int it)
      Specified by:
      converged in class EnsembleSolver
    • init

      protected void init()
      Specified by:
      init in class EnsembleSolver
    • pre

      protected void pre(int it)
      Specified by:
      pre in class EnsembleSolver
    • post

      protected void post(int it)
      Specified by:
      post in class EnsembleSolver
    • finish

      protected void finish()
      Specified by:
      finish in class EnsembleSolver
    • getName

      public String getName()
      Description copied from class: Solver
      Returns the name identifier of this solver.
      Overrides:
      getName in class Solver
      Returns:
      the solver name
    • getGenerator

      public SolverENV.EnvGeneratorResult getGenerator()
    • setRef

      public void setRef(int i)
    • getAvg

      public void getAvg()
    • getEnsembleAvg

      public AvgTable getEnsembleAvg()
      Specified by:
      getEnsembleAvg in class EnsembleSolver
    • getSamplePathTable

      public SolverENV.SamplePathResult getSamplePathTable(List<Object[]> samplePath)
      Computes transient performance metrics for a sample path through environment states. The method runs transient analysis for each segment and extracts initial and final metric values.
      Parameters:
      samplePath - List of entries where each entry is an Object[] containing: - entry[0]: stage identifier (Integer for 0-based index, or String for stage name) - entry[1]: duration (Double, time spent in that stage)
      Returns:
      SamplePathResult containing metrics for each segment
      Throws:
      IllegalArgumentException - if sample path is empty, stage not found, or duration non-positive Example:
       Listinvalid input: '<'Object[]> path = new ArrayListinvalid input: '<'>();
       path.add(new Object[]{"Fast", 5.0});
       path.add(new Object[]{"Slow", 10.0});
       path.add(new Object[]{"Fast", 3.0});
       SamplePathResult result = solver.getSamplePathTable(path);
       
    • analyze

      protected SolverResult analyze(int it, int e)
      Specified by:
      analyze in class EnsembleSolver
    • runAnalyzerByCTMC

      public CTMCResult runAnalyzerByCTMC()
    • getAvgTable

      public final NetworkAvgTable getAvgTable()
    • getAvgTable

      public final NetworkAvgTable getAvgTable(SolverOptions options, boolean keepDisabled)
    • getAvgTable

      public final NetworkAvgTable getAvgTable(SolverOptions options)
    • printAvgTable

      public void printAvgTable(boolean keepDisabled)
      Prints the average metrics table for all stations and job classes.
      Parameters:
      keepDisabled - If true, includes disabled/inactive entries (0-valued metrics).
    • printAvgTable

      public void printAvgTable()
    • runAnalyzer

      public void runAnalyzer()
      Description copied from class: Solver
      Executes the solver algorithm to analyze the model. This abstract method must be implemented by concrete solver classes.
      Specified by:
      runAnalyzer in class Solver
    • getStruct

      public NetworkStruct[] getStruct()
      Returns the network structures for all stages in the environment. Each element in the returned array corresponds to a stage's network structure.
      Returns:
      Array of NetworkStruct objects, one for each stage
    • listValidMethods

      public String[] listValidMethods()
      Returns the list of valid solution methods supported by this solver. Currently only supports the "default" method.
      Returns:
      Array of method names
    • ctmc_courtois

      public static jline.solvers.env.SolverENV.Compression_result ctmc_courtois(Matrix Q, MatrixCell MS, double q)
    • ctmc_courtois

      public static jline.solvers.env.SolverENV.Compression_result ctmc_courtois(Matrix Q, MatrixCell MS)
    • ctmc_decompose

      public static jline.solvers.env.SolverENV.Compression_result ctmc_decompose(Matrix Q, MatrixCell MS, SolverOptions options)
      Perform CTMC decomposition using the configured method. Uses options.config.da to select the decomposition algorithm: 'courtois' - Courtois decomposition (default) 'kms' - Koury-McAllister-Stewart method 'takahashi' - Takahashi's method 'multi' - Multigrid method
      Parameters:
      Q - Infinitesimal generator matrix
      MS - Macro-state partition
      options - Solver options containing config.da and config.da_iter
      Returns:
      Compression_result with decomposition results