LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
cache_ttl_lrum_map.m
1%{ @file cache_ttl_lrum_map.m
2 % @brief TTL approximation of LRU(m) caches under MAP request streams
3 %
4 % @author LINE Development Team
5%}
6
7%{
8 % @brief Request-weighted hit/miss probabilities for LRU(m) with MAP requests
9 %
10 % @details
11 % Front-end of the Gast-Van Houdt (Performance Evaluation 2017) TTL
12 % approximation for LRU(m) caches whose items have Markovian arrival
13 % process request streams. Intended for items with genuinely distinct or
14 % correlated request processes (e.g. marked MAP arrivals); when items are
15 % i.i.d. marks of a common stream the request sequence is IRM and the
16 % Poisson-based TTL approximations already apply.
17 %
18 % @par Syntax:
19 % @code
20 % [pij, pijtime] = cache_ttl_lrum_map(D0c, D1c, m)
21 % @endcode
22 %
23 % @par Parameters:
24 % <table>
25 % <tr><th>Name<th>Description
26 % <tr><td>D0c<td>Cell (1,n); D0c{k} is the (d,d) hidden-transition matrix of item k
27 % <tr><td>D1c<td>Cell (1,n); D1c{k} is the (d,d) arrival matrix of item k
28 % <tr><td>m<td>Cache capacity vector (1,h)
29 % </table>
30 %
31 % @par Returns:
32 % <table>
33 % <tr><th>Name<th>Description
34 % <tr><td>pij<td>(n,h+1) request-weighted probabilities; column 1 is the
35 % probability that a request for item k misses, column 1+l
36 % the probability that it hits in list l
37 % <tr><td>pijtime<td>(n,h+1) time-stationary level occupancy probabilities
38 % </table>
39%}
40function [pij, pijtime] = cache_ttl_lrum_map(D0c, D1c, m)
41n = numel(D0c);
42h = numel(m);
43
44t = cache_t_lrum_map(D0c, D1c, m);
45
46pij = zeros(n, h+1);
47pijtime = zeros(n, h+1);
48for k = 1:n
49 [prob, ~, hitfrac] = cache_lrum_map_levelstats(D0c{k}, D1c{k}, t);
50 pijtime(k, :) = prob;
51 pij(k, 2:end) = hitfrac;
52 pij(k, 1) = max(0, 1 - sum(hitfrac));
53end
54end
Definition Station.m:245