1%{ @file cache_miss_spm.m
2 % @brief Computes miss rates
using saddle-point method
4 % @author LINE Development Team
8 % @brief Computes cache miss rates
using saddle-point approximation
11 % This function computes global, per-user, and per-item miss rates
for
12 % cache models
using the saddle-point method (SPM).
16 % [M, MU, MI, pi0, lE] = cache_miss_spm(gamma, m, lambda)
21 % <tr><th>Name<th>Description
22 % <tr><td>gamma<td>Item popularity probabilities
23 % <tr><td>m<td>Cache capacity vector
24 % <tr><td>lambda<td>(Optional) Arrival rates per user per item
29 % <tr><th>Name<th>Description
30 % <tr><td>M<td>Global miss rate
31 % <tr><td>MU<td>Per-user miss rate
32 % <tr><td>MI<td>Per-item miss rate
33 % <tr><td>pi0<td>Per-item miss probability
34 % <tr><td>lE<td>Log of normalizing constant
37function [M,MU,MI,pi0,lE]=cache_miss_spm(gamma,m,lambda)
39% MU: per-user miss rate
40% MI: per-item miss rate
42[~,lE,xi] = cache_spm(gamma,m);
43[~,lEa,~] = cache_spm(gamma,ma);
55 [~,lE1(k)]=cache_spm(gamma(setdiff(1:n,k),:),m,xi);
56 pi0(k) = exp(lE1(k) - lE);
57 if pi0(k)>1 || pi0(k)<0 %
try to recompute xi
58 [~,lE1(k)]=cache_spm(gamma(setdiff(1:n,k),:),m);
59 pi0(k) = exp(lE1(k) - lE);
62 MU(v) = MU(v) + lambda(v,k,1)*pi0(k);
72 MI(k) = MI(k) + sum(lambda(:,k,1))*exp(lE1(k)-lE);