Class SolverSingleClosedMVA

java.lang.Object
solvers.Solver
solvers.singleSolverAlgorithms.SolverSingleClosedMVA

public class SolverSingleClosedMVA extends Solver
Solves a single class closed model with the exact MVA (Mean Value Analysis) algorithm [RL80]. The implemented version is the stabilized MVA [BBC+81], which avoids the numerical instabilities of the classic MVA when the model contains load dependent stations.
Author:
Federico Granata, Stefano Omini
  • Field Details

    • DEBUG

      public static final boolean DEBUG
      See Also:
    • customers

      protected int customers
      number of customers or jobs in the system
    • intermediate_results

      protected boolean intermediate_results
      Tells whether intermediate results have been computed or not
    • interm_throughput

      protected double[][] interm_throughput
      array containing the throughput for each population and for each service center
      [population][service center]
    • interm_utilization

      protected double[][] interm_utilization
      array containing the utilization for each population and for each service center
      [population][service center]
    • interm_queueLen

      protected double[][] interm_queueLen
      array containing the queue length for each population and for each service center
      [population][service center]
    • interm_residenceTime

      protected double[][] interm_residenceTime
      array containing the residence time for each population and for each service center (residence time = time spent in queue + time spent in service)
      [population][service center]
    • interm_totThroughput

      protected double[] interm_totThroughput
      total throughput for each population
    • interm_totRespTime

      protected double[] interm_totRespTime
      total response time for each population
    • interm_totUser

      protected double[] interm_totUser
      total number of users for each population
  • Constructor Details

    • SolverSingleClosedMVA

      public SolverSingleClosedMVA(int cust, int stat)
      Creates a new instance of SolverSingleClosedMVA
      Parameters:
      cust - number of customers
      stat - number of stations
  • Method Details

    • input

      public boolean input(String[] n, int[] t, double[][] s, double[] v)
      Initializes the solver with the system parameters. It must be called before trying to solve the model.
      WARNING: This method changes the order of the stations (LI and DELAY before, LD after): the original order is restored only after calling the "solve" method (so if you solve the model, you do not need to reorder results, they are reordered by the "solve" method itself; otherwise, if you do not solve the model after calling "input" method, you may have some problems).
      Overrides:
      input in class Solver
      Parameters:
      n - array of names of service centers.
      t - array of the types (LD or LI) of service centers.
      s - matrix of service times of the service centers.
      v - array of visits to the service centers.
      Returns:
      true if the operation is completed with success
    • hasSufficientProcessingCapacity

      public boolean hasSufficientProcessingCapacity()
      A system is said to have sufficient capacity to process a given load lambda if no service center is saturated as a result of such a load.
      WARNING: This method should be called before solving the system.
      Specified by:
      hasSufficientProcessingCapacity in class Solver
      Returns:
      true if sufficient capacity exists for the given workload, false otherwise
    • solve

      public void solve()
      Solves a single class closed model using MVA algorithm.
      "input(...)" method must have been called before solving the model!!

      Reference:
      G.Balbo, S.C.Bruell, L.Cerchio, D.Chiaberto, L.Molinatti
      "Mean Value Analysis of Closed Load Dependent Networks"
      Specified by:
      solve in class Solver
    • solve

      public void solve(boolean intermediate)
      Solves a single class closed model using MVA algorithm.
      "input(...)" method must have been called before solving the model!!

      To solve a closed model with N customers, all the models with 0, 1, 2, ... N-1 customers must be solved before. This method allows to save the results for these intermediate models. Reference:
      G.Balbo, S.C.Bruell, L.Cerchio, D.Chiaberto, L.Molinatti
      "Mean Value Analysis of Closed Load Dependent Networks"
      Parameters:
      intermediate - true to save results for intermediate populations
    • toString

      public String toString()
      generates a string with all the calculated indices.
      Overrides:
      toString in class Solver
      Returns:
      the string