Class Mapqn_bnd_lr_mva

java.lang.Object
jline.api.mapqn.Mapqn_bnd_lr_mva

public final class Mapqn_bnd_lr_mva extends Object
Implementation of bnd_mvaversion.mod linear program: the MAP-AMVA optimization program of G. Casale, E. Smirni, "MAP-AMVA: Approximate Mean Value Analysis of Bursty Systems", IEEE/IFIP DSN 2009, pp. 409-418.

The constraints assembled below are the paper's: the population constraint (1), the utilization bound (2), the MAP phase balance (3), the flow balance (4), the generalized horizontal cut (12), the vertical-cut MVA relation (13) in the linearized form (18)-(19) whose B(j,k,i) variables are the E_i^{j,k} of Theorem 4, and the two auxiliary families QN <= N*UN and sum_w QN >= N*UN.

  • Method Details

    • solve

      public static Mapqn_solution solve(MVAVersionParameters params, int objectiveQueue, int objectiveLevel)
    • solve

      public static Mapqn_solution solve(MVAVersionParameters params, int objectiveQueue, int objectiveLevel, String sense)
      As above, optimizing in the requested direction. The LP is a relaxation containing the exact solution, so "max" is a valid upper bound on the utilization at that population level and "min" the matching lower bound.
      Parameters:
      sense - "min" or "max"
    • solve

      public static Mapqn_solution solve(MVAVersionParameters params, int objectiveQueue, int objectiveLevel, String sense, String objectiveVar)
      As above, over a chosen variable family and optionally over the SUM of the levels.

      objectiveLevel == 0 optimizes the aggregate sum_k X(queue, k), which is the quantity the paper's bounds are stated on: U_i(N) = sum_k U_i^k(N) is the utilization of station i, while U_i^k alone is its utilization while the MAP sits in phase k. Optimizing the K terms separately and adding them is also a bound but a strictly looser one, since the phases cannot all peak at once.

      Parameters:
      objectiveVar - "UN" or "QN", the variable family optimized over
    • getUtilizationMVA

      public static double getUtilizationMVA(Mapqn_solution sol, int i, int k)
    • getQueueLengthMVA

      public static double getQueueLengthMVA(Mapqn_solution sol, int i, int k)