Package jline.api.retrieval
Class Retrieval_mva
java.lang.Object
jline.api.retrieval.Retrieval_mva
Exact MVA-style recursion for delayed-hit (list-based) cache metrics.
Port of matlab/src/api/retrieval/retrieval_mva.m, twin of
cpp/include/line/api/retrieval/retrieval_mva.h and of the native
Python api.retrieval.retrieval_mva.
This is the exact recursion that Retrieval_fpi approximates.
Writing phi^(k) for the delayed-hit probability in the system WITHOUT item k,
theta_ij(m) = gamma_ij / (1 + lambda_i eta_0i
+ sum_s lambda_i eta_si (1 + sum_{k!=i} phi^(i)_sk(m - 1_j)))
xi_j(m) = m_j / sum_i theta_ij(m) (1 - pihit_i(m - 1_j))
pi_ij(m) = theta_ij(m) xi_j(m) (1 - pihit_i(m - 1_j))
pi_i0(m) = (1 - pihit_i(m)) / (1 + lambda_i eta_0i
+ sum_s lambda_i eta_si (1 + sum_{k!=i} phi^(i)_sk(m)))
phi_sk(m) = lambda_k pi_k0(m) eta_sk (1 + sum_{i!=k} phi^(k)_si(m))
phi_0k(m) = lambda_k eta_0k pi_k0(m)
memoized over (item subset, capacity vector). The recursion bottoms out at the
empty item set and at any capacity able to hold every remaining item, where
the items are permanently cached: hit probability one, no miss and no fetch.
Cost is O(2^n n^2 h r prod_j (1+m_j)) in time and memory, so this is a
small-case ORACLE; use Retrieval_fpi beyond that.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classMirrors the [pmiss, phit, pdh] return list of the MATLAB function. -
Method Summary
Modifier and TypeMethodDescriptionstatic Retrieval_mva.Resultretrieval_mva(int[] m, double[] lambda, Matrix eta, Matrix gamma)
-
Method Details
-
retrieval_mva
public static Retrieval_mva.Result retrieval_mva(int[] m, double[] lambda, Matrix eta, Matrix gamma) - Parameters:
m- 1 x h cache list capacitieslambda- 1 x n per-item arrival rateseta- n x (r+1) fetching demands; column 0 is the IS station, columns 1..r the PS stationsgamma- n x h access factors
-